From 835eb57994bb9e1fc38cccda401cfdc137cb9785 Mon Sep 17 00:00:00 2001 From: zZeleZz Date: Tue, 28 May 2024 11:32:57 +0000 Subject: [PATCH] feat(locale): add ru locale --- src/lib/dayjs.js | 1 + src/locales/ru/block.json | 806 +++++++++++++++++++++++++++++++++++++ src/locales/ru/common.json | 77 ++++ src/locales/ru/newtab.json | 516 ++++++++++++++++++++++++ src/locales/ru/popup.json | 32 ++ src/utils/shared.js | 1 + 6 files changed, 1433 insertions(+) create mode 100644 src/locales/ru/block.json create mode 100644 src/locales/ru/common.json create mode 100644 src/locales/ru/newtab.json create mode 100644 src/locales/ru/popup.json diff --git a/src/lib/dayjs.js b/src/lib/dayjs.js index 0b7e57c41..ce7cf2103 100644 --- a/src/lib/dayjs.js +++ b/src/lib/dayjs.js @@ -7,6 +7,7 @@ import 'dayjs/locale/fr'; import 'dayjs/locale/it'; import 'dayjs/locale/uk'; import 'dayjs/locale/tr'; +import 'dayjs/locale/ru'; dayjs.extend(relativeTime); diff --git a/src/locales/ru/block.json b/src/locales/ru/block.json new file mode 100644 index 000000000..e6b2b1f96 --- /dev/null +++ b/src/locales/ru/block.json @@ -0,0 +1,806 @@ +{ + "collection": { + "blocks": { + "export-result": { + "name": "Экспорт результата", + "description": "Экспортировать результат коллекции в формате JSON" + } + } + }, + "workflow": { + "blocks": { + "base": { + "title": "Блоки", + "moveToGroup": "Переместить блок в группу блоков", + "selector": "Селектор элемента", + "selectorOptions": "Опции селектора", + "timeout": "Таймаут (миллисекунды)", + "noPermission": "У Automa недостаточно разрешений для выполнения этого действия", + "grantPermission": "Предоставить разрешение", + "action": "Действие", + "element": { + "select": "Выбрать элемент", + "verify": "Проверить селектор" + }, + "settings": { + "title": "Настройки блока", + "blockTimeout": { + "title": "Таймаут выполнения блока (миллисекунды)", + "description": "Максимальное время выполнения блока (0 для отключения)" + }, + "line": { + "title": "Линии", + "label": "Метка", + "animated": "Анимировано", + "select": "Выбрать линию", + "to": "Линия к блоку {name}", + "lineColor": "Цвет" + } + }, + "toggle": { + "enable": "Включить блок", + "disable": "Отключить блок" + }, + "onError": { + "info": "Эти правила будут применяться при возникновении ошибки в блоке", + "button": "При ошибке", + "title": "При возникновении ошибки", + "retry": "Повторить действие", + "fallbackTitle": "Будет выполнено при возникновении ошибки в блоке", + "times": { + "name": "Раз", + "description": "Количество попыток повторного выполнения действия" + }, + "interval": { + "name": "Интервал", + "description": "Временной интервал ожидания между каждой попыткой", + "second": "секунда" + }, + "toDo": { + "error": "Выбросить ошибку", + "continue": "Продолжить выполнение", + "fallback": "Выполнить резервное действие", + "restart": "Перезапустить выполнение" + }, + "insertData": { + "name": "Вставить данные" + } + }, + "table": { + "checkbox": "Вставить в таблицу", + "select": "Выбрать колонку", + "extraRow": { + "checkbox": "Добавить дополнительную строку", + "placeholder": "Значение", + "title": "Значение дополнительной строки" + } + }, + "findElement": { + "placeholder": "Найти элемент по", + "options": { + "cssSelector": "CSS Селектор", + "xpath": "XPath" + } + }, + "markElement": { + "title": "Элемент не будет выбран, если его уже выбрали ранее", + "text": "Отметить элемент" + }, + "multiple": { + "title": "Выбрать несколько элементов", + "text": "Много" + }, + "waitSelector": { + "title": "Ожидание селектора", + "timeout": "Таймаут селектора (мс)" + }, + "downloads": { + "onConflict": { + "uniquify": "Уникализировать", + "overwrite": "Перезаписать", + "prompt": "Запросить" + } + } + }, + "wait-connections": { + "name": "Ожидание соединений", + "description": "Ожидание всех соединений перед переходом к следующему блоку", + "specificFlow": "Продолжить только конкретный поток", + "selectFlow": "Выбрать поток" + }, + "cookie": { + "name": "Куки", + "description": "Получить, установить или удалить куки", + "types": { + "get": "Получить куки", + "set": "Установить куки", + "remove": "Удалить куки", + "getAll": "Получить все куки" + }, + "useJson": "Использовать формат JSON" + }, + "note": { + "name": "Заметка" + }, + "slice-variable": { + "name": "Разделение переменной", + "description": "Извлечение раздела значения переменной", + "start": "Начальный индекс", + "end": "Конечный индекс" + }, + "workflow-state": { + "name": "Состояние рабочего процесса", + "description": "Управление состояниями рабочих процессов", + "actions": { + "stop": "Остановить рабочие процессы" + } + }, + "regex-variable": { + "name": "Переменная RegEx", + "description": "Сопоставление значения переменной с регулярным выражением" + }, + "data-mapping": { + "source": "Источник", + "destination": "Назначение", + "name": "Сопоставление данных", + "edit": "Редактировать карту данных", + "dataSource": "Источник данных", + "description": "Сопоставление данных переменной или таблицы", + "addSource": "Добавить источник", + "addDestination": "Добавить назначение" + }, + "sort-data": { + "name": "Сортировка данных", + "description": "Сортировка элементов данных", + "property": "Сортировать по свойству элемента", + "addProperty": "Добавить свойство" + }, + "increase-variable": { + "name": "Увеличить переменную", + "description": "Увеличение значения переменной на определенную величину", + "increase": "Увеличить на" + }, + "notification": { + "name": "уведомление", + "description": "Отображение уведомления", + "title": "Заголовок", + "message": "Сообщение", + "imageUrl": "URL изображения (необязательно)", + "iconUrl": "URL иконки (необязательно)" + }, + "delete-data": { + "name": "Удалить данные", + "description": "Удалить данные таблицы или переменные", + "from": "Данные от", + "allColumns": "[Все столбцы]" + }, + "log-data": { + "name": "Получить данные лога", + "description": "Получить последние данные лога рабочего процесса", + "data": "Данные лога" + }, + "tab-url": { + "name": "Получить URL вкладки", + "description": "Получить URL вкладки", + "select": "Выбрать вкладку", + "types": { + "active-tab": "Активная вкладка", + "all": "Все вкладки" + }, + "query": { + "title": "Запрос", + "matchPatterns": "@:workflow.blocks.switch-tab.matchPattern (необязательно)", + "tabTitle": "Название вкладки (необязательно)" + } + }, + "reload-tab": { + "name": "Перезагрузить вкладку", + "description": "Перезагрузить активную вкладку" + }, + "press-key": { + "name": "Нажать клавишу", + "description": "Нажмите клавишу или комбинацию клавиш", + "target": "Целевой элемент (необязательно)", + "key": "Клавиша", + "detect": "Обнаружить клавишу", + "actions": { + "press-key": "Нажать клавишу", + "multiple-keys": "Нажать несколько клавиш" + }, + "press-time": "Время нажатия (миллисекунды)" + }, + "save-assets": { + "name": "Сохранить активы", + "description": "Сохранить активы (изображение, видео, аудио или файл) из элемента или URL", + "filename": "Имя файла (необязательно)", + "saveDownloadIds": "Сохранить ID загрузки элементов", + "contentTypes": { + "title": "Тип", + "element": "Медиа элемент (изображение, аудио или видео)", + "url": "URL" + } + }, + "handle-dialog": { + "name": "Управление диалогом", + "description": "Принимает или отклоняет диалог, инициированный JavaScript (alert, confirm, prompt или onbeforeunload)", + "accept": "Принять диалог", + "promptText": { + "label": "Текст для prompt (необязательно)", + "description": "Текст, который нужно ввести в диалоговое окно prompt перед принятием" + } + }, + "handle-download": { + "name": "Управление загрузками", + "description": "Управление загруженным файлом", + "timeout": "Таймаут (миллисекунды)", + "noPermission": "Нет разрешения на доступ к загрузкам", + "onConflict": "При конфликте", + "waitFile": "Ждать завершения загрузки файла", + "downloadId": "ID загрузки файла (необязательно)", + "filePath": "Путь к файлу" + }, + "insert-data": { + "name": "Вставка данных", + "description": "Вставка данных в таблицу или переменную" + }, + "clipboard": { + "name": "Буфер обмена", + "description": "Получение скопированного текста из буфера обмена", + "data": "Данные буфера обмена", + "noPermission": "Нет доступа к буферу обмена", + "grantPermission": "Предоставить доступ", + "copySelection": "Копировать выделенный текст на странице", + "types": { + "get": "Получить данные буфера обмена", + "insert": "Вставить текст в буфер обмена" + } + }, + "hover-element": { + "name": "Наведение на элемент", + "description": "Наведение курсора на элемент" + }, + "create-element": { + "name": "Создание элемента", + "description": "Создание элемента и вставка его в страницу", + "edit": "Редактировать элемент", + "wrap": "Обернуть внутри элемента", + "insertEl": { + "title": "Вставка элемента", + "items": { + "before": "Вставить первым дочерним элементом", + "after": "Вставить последним дочерним элементом", + "next-sibling": "Вставить следующим соседним элементом", + "prev-sibling": "Вставить предыдущим соседним элементом", + "replace": "Заменить целевой элемент" + } + } + }, + "upload-file": { + "name": "Загрузка файла", + "description": "Загрузить файл в элемент ", + "filePath": "URL или путь к файлу", + "addFile": "Добавить файл", + "onlyURL": "Загрузка файлов по URL поддерживается только в браузере Firefox", + "requirement": "Прочитайте требования перед использованием этого блока", + "noFileAccess": "У Automa нет доступа к файлам" + }, + "browser-event": { + "name": "Событие браузера", + "description": "Выполняет следующий блок, когда запускается указанное событие", + "events": "События", + "timeout": "Таймаут (миллисекунды)", + "activeTabLoaded": "Активная вкладка", + "setAsActiveTab": "Установить как активную вкладку" + }, + "blocks-group-2": { + "name": "Группа блоков 2", + "description": "Описание группы блоков" + }, + "blocks-group": { + "name": "Группа блоков", + "groupName": "Имя группы", + "description": "Группирование блоков", + "dropText": "Перетащите блок сюда", + "cantAdd": "Не удается добавить блок \"{blockName}\" в группу" + }, + "trigger": { + "name": "Триггер", + "description": "Блок, с которого начинается выполнение рабочего процесса", + "addTime": "Добавить время", + "selectDay": "Выбрать день", + "timeExist": "Вы уже установили триггер на {time} в {day}", + "fixedDelay": "Фиксированная задержка", + "contextMenus": { + "noPermission": "Для работы этого триггера необходимо получить разрешение \"contextMenus\"", + "grantPermission": "Предоставить разрешение", + "appearIn": "Отобразится в", + "contextName": "Имя рабочего процесса в контекстном меню" + }, + "days": [ + "Воскресенье", + "Понедельник", + "Вторник", + "Среда", + "Четверг", + "Пятница", + "Суббота" + ], + "useRegex": "Использовать регулярные выражения", + "shortcut": { + "tooltip": "Запись сочетания клавиш", + "stopRecord": "Остановить запись", + "checkboxTitle": "Выполнять сочетание клавиш даже в элементе ввода", + "checkbox": "Активно в полях ввода", + "note": "Примечание: сочетание клавиш работает только когда вы находитесь на веб-странице" + }, + "forms": { + "triggerWorkflow": "Запуск рабочего процесса", + "interval": "Интервал (минуты)", + "delay": "Задержка (минуты)", + "date": "Дата", + "time": "Время", + "url": "URL или Regex", + "shortcut": "Сочетание клавиш", + "cron-expression": "Cron выражение" + }, + "element-change": { + "target": "Целевой элемент для наблюдения", + "optionsInfo": "Какое изменение элемента будет запускать рабочий процесс", + "targetWebsite": "Соответствие шаблону веб-сайта, где находится целевой элемент (нажмите, чтобы увидеть больше примеров шаблонов)", + "baseEl": { + "title": "Базовый элемент (необязательно)", + "description": "Automa будет перезапускать наблюдение за целевым элементом, когда этот элемент изменится" + }, + "subtree": { + "title": "Включая поддерево", + "description": "Расширить мониторинг на весь поддерево целевого элемента" + }, + "childList": { + "title": "Список дочерних элементов", + "description": "Мониторинг добавления новых дочерних элементов или удаления существующих" + }, + "attributes": { + "title": "Атрибуты", + "description": "Наблюдение за изменениями значений атрибутов целевого элемента" + }, + "attributeFilter": { + "title": "Фильтр атрибутов", + "separate": "Используйте запятые для разделения имен атрибутов", + "description": "Наблюдение только за определенными атрибутами (оставьте пустым для всех)" + }, + "characterData": { + "title": "Данные символов", + "description": "Наблюдение за изменениями данных символов/текста внутри целевого элемента" + } + }, + "items": { + "manual": "Вручную", + "interval": "Интервал", + "cron-job": "Задание Cron", + "date": "В определенную дату", + "context-menu": "Контекстное меню", + "element-change": "При изменении элемента", + "specific-day": "В определенный день", + "visit-web": "При посещении веб-сайта", + "on-startup": "При запуске браузера", + "keyboard-shortcut": "Горячая клавиша" + } + }, + "execute-workflow": { + "name": "Выполнить рабочий процесс", + "overwriteNote": "Это перезапишет глобальные данные выбранного рабочего процесса", + "select": "Выбрать рабочий процесс", + "executeId": "ID выполнения (необязательно)", + "description": "", + "insertAllVars": "Использовать все переменные текущего рабочего процесса", + "insertVars": "Вставить переменные текущего рабочего процесса", + "useCommas": "Использовать запятые для разделения имен переменных", + "insertAllGlobalData": "Использовать все глобальные данные текущего рабочего процесса" + }, + "google-sheets-drive": { + "name": "Google Таблицы (GDrive)", + "description": "Подключенные таблицы", + "connected": "Соединено", + "select": "Выбрать лист", + "connect": "Соединить" + }, + "google-drive": { + "name": "Google Диск", + "description": "Загрузить файлы на Google Диск", + "actions": { + "upload": "Загрузить файлы" + } + }, + "google-sheets": { + "name": "Google Таблицы", + "description": "Читать или обновлять данные Google Таблиц", + "previewData": "Предварительный просмотр данных", + "firstRow": "Использовать первую строку как ключи", + "keysAsFirstRow": "Использовать ключи как первую строку", + "insertData": "Вставить данные", + "valueInputOption": "Опция ввода значений", + "insertDataOption": "Опция вставки данных", + "rangeToSearch": "Диапазон для начала поиска", + "dataFrom": { + "label": "Данные из", + "options": { + "data-columns": "Таблица", + "custom": "Пользовательские" + } + }, + "refKey": { + "label": "Справочный ключ (необязательно)", + "placeholder": "Имя ключа" + }, + "spreadsheetId": { + "label": "ID таблицы", + "link": "Смотрите, как получить ID таблицы" + }, + "range": { + "label": "Диапазон", + "link": "Нажмите, чтобы увидеть больше примеров" + }, + "select": { + "get": "Получить значения ячеек таблицы", + "getRange": "Получить диапазон таблицы", + "update": "Обновить значения ячеек таблицы", + "append": "Добавить значения ячеек таблицы", + "clear": "Очистить значения ячеек таблицы", + "create": "Создать таблицу", + "add-sheet": "Добавить лист" + } + }, + "active-tab": { + "name": "Активная вкладка", + "description": "Установить вкладку, на которой вы находитесь, как активную вкладку" + }, + "proxy": { + "name": "Прокси", + "description": "Установить прокси для браузера", + "clear": "Очистить все прокси", + "bypass": { + "label": "Список исключений", + "note": "Используйте запятые для разделения URL" + } + }, + "new-window": { + "name": "Новое окно", + "description": "Создать новое окно", + "top": "Верх", + "left": "Лево", + "height": "Высота", + "width": "Ширина", + "note": "Примечание: используйте 0 для отключения", + "position": "Позиция окна", + "size": "Размер окна", + "windowState": { + "placeholder": "Состояние окна", + "options": { + "normal": "Обычное", + "minimized": "Свернутое", + "maximized": "Развернутое", + "fullscreen": "Полноэкранное" + } + }, + "incognito": { + "text": "Установить как окно инкогнито", + "note": "Сначала вы должны разрешить 'Разрешить в инкогнито' для этого расширения" + } + }, + "go-back": { + "name": "Вернуться назад", + "description": "Вернуться на предыдущую страницу" + }, + "forward-page": { + "name": "Вперед", + "description": "Перейти на следующую страницу" + }, + "close-tab": { + "name": "Закрыть вкладку/окно", + "description": "", + "url": "Соответствие шаблонам", + "activeTab": "Закрыть активную вкладку", + "allWindows": "Закрыть все окна" + }, + "event-click": { + "name": "Клик по элементу", + "description": "" + }, + "delay": { + "name": "Задержка", + "description": "Добавить задержку перед выполнением следующего блока", + "input": { + "title": "Задержка в миллисекундах", + "placeholder": "Задержка в миллисекундах" + } + }, + "parameter-prompt": { + "name": "Параметр Prompt" + }, + "get-text": { + "name": "Получить текст", + "description": "Получить текст из элемента", + "checkbox": "Вставить в таблицу", + "includeTags": "Включать HTML теги", + "prefixText": { + "placeholder": "Префикс текста", + "title": "Добавить префикс к тексту" + }, + "suffixText": { + "placeholder": "Суффикс текста", + "title": "Добавить суффикс к тексту" + } + }, + "export-data": { + "name": "Экспорт данных", + "description": "Экспорт данных рабочего процесса", + "exportAs": "Экспортировать как", + "refKey": "Справочный ключ", + "bomHeader": "Добавить BOM UTF-8", + "dataToExport": { + "placeholder": "Данные для экспорта", + "options": { + "data-columns": "Таблица", + "google-sheets": "Google Sheets", + "variable": "Переменная" + } + } + }, + "element-scroll": { + "name": "Прокрутка элемента", + "description": "", + "scrollY": "Прокрутка по вертикали", + "scrollX": "Прокрутка по горизонтали", + "intoView": "Прокрутить к видимой части", + "smooth": "Плавная прокрутка", + "incScrollX": "Увеличить горизонтальную прокрутку", + "incScrollY": "Увеличить вертикальную прокрутку" + }, + "switch-tab": { + "name": "Переключение вкладок", + "description": "Переключение между вкладками", + "matchPattern": "Шаблоны соответствия", + "url": "URL новой вкладки", + "createIfNoMatch": "Создать, если совпадений нет" + }, + "new-tab": { + "name": "Новая вкладка", + "description": "", + "url": "URL новой вкладки", + "tab-zoom": "Масштабирование вкладки", + "customUserAgent": "Использовать пользовательское значение User-Agent", + "activeTab": "Сделать активной вкладкой", + "tabToGroup": "Добавить вкладку в группу", + "waitTabLoaded": "Ждать загрузки вкладки", + "updatePrevTab": { + "title": "Использовать ранее открытую новую вкладку вместо создания новой", + "text": "Обновить ранее открытую вкладку" + } + }, + "link": { + "name": "Ссылка", + "description": "Открыть элемент ссылки", + "openInNewTab": "Открыть в новой вкладке" + }, + "attribute-value": { + "name": "Значение атрибута", + "description": "Получить значение атрибута элемента", + "forms": { + "name": "Имя атрибута", + "checkbox": "Вставить в таблицу", + "column": "Выбрать столбец", + "value": "Значение атрибута", + "action": { + "get": "Получить значение атрибута", + "set": "Задать значение атрибута" + }, + "extraRow": { + "checkbox": "Добавить дополнительную строку", + "placeholder": "Значение", + "title": "Значение дополнительной строки" + } + } + }, + "forms": { + "name": "Формы", + "description": "", + "selected": "Выбрано", + "type": "Тип формы", + "getValue": "Получить значение формы", + "text-field": { + "name": "Текстовое поле", + "value": "Значение", + "clearValue": "Очистить значение формы", + "delay": { + "placeholder": "Задержка", + "label": "Задержка при вводе (миллисекунды)(0 чтобы отключить)" + } + }, + "select": { + "name": "Выпадающий список" + }, + "radio": { + "name": "Переключатель" + }, + "checkbox": { + "name": "Флажок" + } + }, + "repeat-task": { + "name": "Повторение задачи", + "description": "", + "times": "раз", + "repeatFrom": "Повторить с" + }, + "javascript-code": { + "name": "Код JavaScript", + "description": "Выполнение вашего кода JavaScript на веб-странице", + "availabeFuncs": "Доступные функции:", + "removeAfterExec": "Удалить после выполнения блока", + "everyNewTab": "Выполнить в каждой новой вкладке", + "context": { + "name": "Контекст выполнения", + "items": { + "website": "Активная вкладка", + "background": "Фоновый режим" + } + }, + "modal": { + "tabs": { + "code": "Код JavaScript", + "preloadScript": "Скрипт предзагрузки" + } + }, + "timeout": { + "placeholder": "Таймаут (миллисекунды)", + "title": "Таймаут выполнения кода JavaScript" + } + }, + "trigger-event": { + "name": "Событие запуска", + "description": "", + "selectEvent": "Выбрать событие" + }, + "conditions": { + "name": "Условия", + "add": "Добавить путь", + "retryConditions": "Повторить, если условия не выполнены", + "description": "Условный блок", + "refresh": "Обновить соединения условий", + "fallbackTitle": "Выполняется, когда ни одно из сравнений не соответствует требованию", + "equals": "Равно", + "gt": "Больше чем", + "gte": "Больше или равно", + "lt": "Меньше чем", + "lte": "Меньше или равно", + "ne": "Не равно", + "contains": "Содержит" + }, + "element-exists": { + "name": "Элемент существует", + "description": "Проверить существование элемента", + "selector": "Селектор элемента", + "fallbackTitle": "Выполняется, когда элемент не существует", + "throwError": "Генерировать ошибку, если элемент не существует", + "tryFor": { + "title": "Количество попыток проверки существования элемента", + "label": "Попыток" + }, + "timeout": { + "label": "Таймаут (миллисекунды)", + "title": "Таймаут для каждой попытки" + } + }, + "webhook": { + "name": "HTTP запрос", + "description": "Выполнение HTTP запроса", + "contentType": "Тип содержимого", + "method": "Метод запроса", + "url": "URL запроса", + "fallback": "Выполняется, когда HTTP запрос не удался", + "buttons": { + "header": "Добавить заголовок" + }, + "timeout": { + "placeholder": "Таймаут", + "title": "Таймаут выполнения HTTP запроса (мс)" + }, + "tabs": { + "headers": "Заголовки", + "body": "Тело запроса", + "response": "Ответ" + } + }, + "while-loop": { + "name": "Цикл while", + "description": "Выполняет блоки, пока условие истинно", + "editCondition": "Редактировать условие", + "fallback": "Выполняется, когда условие ложно" + }, + "loop-elements": { + "name": "Перебор элементов", + "description": "Итерация по элементам", + "loadMore": "Загрузить больше элементов", + "scrollToBottom": "Прокрутить вниз", + "scrollToTop": "Прокрутить вверх", + "actions": { + "none": "Без действий", + "click-element": "Клик по элементу", + "scroll": "Прокрутить вниз", + "click-link": "Клик по ссылке", + "scroll-up": "Прокрутить вверх" + } + }, + "loop-data": { + "name": "Перебор данных", + "description": "Итерация по таблице или вашим пользовательским данным", + "loopId": "ID цикла", + "refKey": "Справочный ключ", + "startIndex": "Начать с индекса", + "resumeLastWorkflow": "Возобновить последний рабочий процесс", + "reverse": "Обратный порядок цикла", + "modal": { + "fileTooLarge": "Файл слишком велик для редактирования", + "maxFile": "Максимальный размер файла — 1 МБ", + "options": { + "firstRow": "Использовать первую строку как ключи" + } + }, + "buttons": { + "clear": "Очистить данные", + "insert": "Вставить данные", + "import": "Импортировать файл" + }, + "maxLoop": { + "title": "Максимальное количество данных для цикла", + "label": "Максимум данных для цикла (0 для отключения)" + }, + "loopThrough": { + "placeholder": "Перебирать через", + "fromNumber": "С числа", + "toNumber": "По число", + "options": { + "numbers": "Числа", + "variable": "Переменная", + "data-columns": "Таблица", + "table": "Таблица", + "custom-data": "Пользовательские данные", + "google-sheets": "Google Таблицы", + "elements": "Элементы" + } + } + }, + "loop-breakpoint": { + "name": "Точка останова цикла", + "description": "Указание, где блок 'Перебор данных' должен остановиться" + }, + "take-screenshot": { + "name": "Сделать снимок экрана", + "fullPage": "Сделать снимок всей страницы", + "description": "Сделать снимок текущей активной вкладки", + "imageQuality": "Качество изображения", + "saveToColumn": "Вставить снимок экрана в таблицу", + "saveToComputer": "Сохранить снимок экрана на компьютер", + "types": { + "title": "Сделать снимок экрана", + "page": "Страницы", + "fullpage": "Всей страницы", + "element": "Элемента" + } + }, + "switch-to": { + "name": "Переключиться на фрейм", + "description": "Переключение между основным окном и фреймом (iframe)", + "iframeSelector": "Селектор элемента", + "windowTypes": { + "main": "Основное окно", + "iframe": "Фрейм (iframe)" + } + }, + "debugMode": { + "title": "Режим отладки", + "description": "Выполнение блока с использованием Chrome DevTools Protocol" + } + } + } + } \ No newline at end of file diff --git a/src/locales/ru/common.json b/src/locales/ru/common.json new file mode 100644 index 000000000..388b92d91 --- /dev/null +++ b/src/locales/ru/common.json @@ -0,0 +1,77 @@ +{ + "common": { + "dashboard": "Панель управления", + "workflow": "Рабочий процесс | Рабочие процессы", + "collection": "Коллекция | Коллекции", + "log": "Лог | Логи", + "block": "Блок | Блоки", + "schedule": "Расписание", + "folder": "Папка | Папки", + "new": "Новый", + "docs": "Документация", + "search": "Поиск", + "example": "Пример | Примеры", + "import": "Импорт", + "export": "Экспорт", + "rename": "Переименовать", + "execute": "Выполнить", + "delete": "Удалить", + "cancel": "Отменить", + "settings": "Настройки", + "options": "Опции", + "confirm": "Подтвердить", + "name": "Название", + "all": "Все", + "add": "Добавить", + "save": "Сохранить", + "data": "данные", + "stop": "Стоп", + "sheet": "Лист", + "pause": "Пауза", + "resume": "Возобновить", + "action": "Действие | Действия", + "packages": "Пакеты", + "storage": "Хранилище", + "editor": "Редактор", + "running": "Выполнение", + "globalData": "Глобальные данные", + "fileName": "Имя файла", + "description": "Описание", + "disable": "Отключить", + "disabled": "Отключен", + "enable": "Включить", + "fallback": "Резервный вариант", + "update": "Обновить", + "feature": "Функция", + "duplicate": "Дублировать", + "password": "Пароль", + "category": "Категория", + "optional": "Необязательный", + "0disable": "0 для отключения", + "millisecond": "миллисекунда | миллисекунды" + }, + "message": { + "noBlock": "Нет блока", + "noData": "Данные для отображения отсутствуют", + "noTriggerBlock": "Не удается найти блок триггера", + "useDynamicData": "Узнайте, как добавить динамические данные", + "delete": "Вы уверены, что хотите удалить \"{name}\"?", + "empty": "Ой... Похоже, у вас нет ни одного элемента", + "maxSizeExceeded": "Размер файла превысил максимально допустимый", + "notSaved": "Вы действительно хотите уйти? У вас есть несохраненные изменения!", + "somethingWrong": "Что-то пошло не так", + "limitExceeded": "Вы превысили лимит" + }, + "sort": { + "sortBy": "Сортировать по", + "name": "Название", + "createdAt": "Дата создания", + "updatedAt": "Последнее обновление", + "mostUsed": "Наиболее используемые" + }, + "logStatus": { + "stopped": "остановлено", + "error": "ошибка", + "success": "успешно" + } + } \ No newline at end of file diff --git a/src/locales/ru/newtab.json b/src/locales/ru/newtab.json new file mode 100644 index 000000000..2c7b5bbf2 --- /dev/null +++ b/src/locales/ru/newtab.json @@ -0,0 +1,516 @@ +{ + "home": { + "viewAll": "Просмотреть все", + "communities": "Сообщества" + }, + "welcome": { + "title": "Добро пожаловать в Automa! 🎉", + "text": "Начните с чтения документации или поиска рабочих процессов в каталоге Automa.", + "marketplace": "Каталог" + }, + "packages": { + "name": "Пакет | Пакеты", + "add": "Добавить пакет", + "icon": "Иконка пакета", + "open": "Открыть пакеты", + "new": "Новый пакет", + "import": "Импортировать пакет", + "set": "Установить как пакет", + "settings": { + "asBlock": "Установить пакет как блок" + }, + "categories": { + "my": "Мои пакеты", + "installed": "Установленные пакеты" + } + }, + "scheduledWorkflow": { + "title": "Расписания рабочих процессов", + "nextRun": "Следующий запуск", + "active": "Активно", + "refresh": "Обновить", + "schedule": { + "title": "Расписание", + "types": { + "everyDay": "Каждый день", + "general": "Каждые {time}", + "interval": "Каждые {time} минут" + } + } + }, + "storage": { + "title": "Хранилище", + "table": { + "add": "Добавить таблицу", + "edit": "Редактировать таблицу", + "createdAt": "Создано в", + "modifiedAt": "Изменено в", + "rowsCount": "Количество строк", + "delete": "Удалить таблицу" + } + }, + "credential": { + "title": "Учетные данные | Учетные данные", + "add": "Добавить учетную запись", + "use": { + "title": "Используемые учетные данные", + "description": "Этот рабочий процесс использует эти учетные данные" + } + }, + "workflowPermissions": { + "title": "Разрешения рабочего процесса", + "description": "Для корректной работы этому рабочему процессу требуются следующие разрешения", + "contextMenus": { + "title": "Контекстное меню", + "description": "Для выполнения рабочего процесса через контекстное меню" + }, + "clipboardRead": { + "title": "Буфер обмена", + "description": "Для доступа к данным буфера обмена" + }, + "notifications": { + "title": "Уведомление", + "description": "Для отображения уведомления" + }, + "downloads": { + "title": "Загрузка", + "description": "Сохранение ресурсов страницы и переименование скачанного файла" + }, + "cookies": { + "title": "Куки", + "description": "Чтение, установка или удаление куки" + } + }, + "updateMessage": { + "text1": "Automa обновлен до версии v{version},", + "text2": "смотрите что нового." + }, + "workflows": { + "folder": { + "new": "Новая папка", + "name": "Имя папки", + "delete": "Удалить папку", + "rename": "Переименовать папку" + } + }, + "auth": { + "title": "Авторизация", + "signIn": "Войти", + "username": "Сначала установите свое имя пользователя", + "clickHere": "Нажмите здесь", + "text": "Вы должны войти в систему, прежде чем сможете это сделать" + }, + "running": { + "start": "Запущено {date}", + "message": "Здесь отображаются только последние 5 записей" + }, + "settings": { + "theme": "Тема", + "shortcuts": { + "duplicate": "Сочетание клавиш уже используется \"{name}\"" + }, + "editor": { + "title": "Заголовок", + "curvature": { + "title": "Кривизна линии", + "line": "Линия", + "reroute": "Перенаправление", + "rerouteFirstLast": "Перенаправление первой и последней точки" + }, + "arrow": { + "title": "Стрелка линии", + "description": "Добавить стрелку в конце линии" + }, + "snapGrid": { + "title": "Привязка к сетке", + "description": "Привязывать блок к сетке при перемещении" + }, + "saveWhenExecute": { + "title": "Авто-сохранение при выполнении рабочего процесса", + "description": "Изменения в рабочем процессе будут сохранены при его выполнении" + } + }, + "deleteLog": { + "title": "Авто-удаление журналов рабочих процессов", + "after": "Удалить после", + "deleteAfter": { + "never": "Никогда", + "days": "{day} дней" + } + }, + "language": { + "label": "Язык", + "helpTranslate": "Не можете найти свой язык? Помогите с переводом.", + "reloadPage": "Перезагрузите страницу, чтобы изменения вступили в силу" + }, + "menu": { + "backup": "Резервное копирование рабочих процессов", + "editor": "Редактор", + "general": "Общие", + "shortcuts": "Ярлыки", + "about": "О программе" + }, + "backupWorkflows": { + "title": "Локальное резервное копирование", + "invalidPassword": "Неверный пароль", + "workflowsAdded": "{count} рабочие процессы были добавлены", + "name": "Резервные рабочие процессы", + "needSignin": "Сначала войдите в систему", + "backup": { + "button": "Резервное копирование", + "settings": "Настройки резервного копирования", + "encrypt": "Зашифровать паролем", + "schedule": "Запланировать локальное резервное копирование" + }, + "restore": { + "title": "Восстановить рабочие процессы", + "button": "Восстановить", + "update": "Обновить, если рабочий процесс существует" + }, + "cloud": { + "buttons": { + "local": "Локально", + "cloud": "Облако" + }, + "location": "Местоположение", + "delete": "Удалить резервную копию", + "title": "Облачное резервное копирование", + "sync": "Синхронизация", + "lastSync": "Последняя синхронизация", + "lastBackup": "Последнее резервное копирование", + "select": "Выберите рабочие процессы", + "storedWorkflows": "Рабочие процессы, хранящиеся в облаке", + "selected": "Выбрано", + "selectText": "Выберите рабочие процессы, которые хотите резервно скопировать", + "selectAll": "Выбрать все", + "deselectAll": "Отменить выбор всего", + "needSelectWorkflow": "Необходимо выбрать рабочие процессы, которые вы хотите резервно скопировать" + } + } + }, + "workflow": { + "events": { + "title": "События рабочего процесса", + "add-action": "Добавить действие", + "description": "Выполнить действия, когда происходит событие.", + "event": "Событие | События", + "action": "Действие", + "actions": { + "js-code": { + "title": "Выполнить JS код" + }, + "http-request": { + "title": "HTTP запрос" + } + }, + "types": { + "finish:success": { + "name": "Завершить (успех)", + "description": "Выполнение рабочего процесса завершено успешно" + }, + "finish:failed": { + "name": "Завершить (ошибка)", + "description": "Выполнение рабочего процесса завершено с ошибкой" + } + } + }, + "previewMode": { + "title": "Режим предпросмотра", + "description": "Вы находитесь в режиме предпросмотра, изменения, которые вы сделали, не будут сохранены" + }, + "pinWorkflow": { + "pin": "Закрепить рабочий процесс", + "unpin": "Открепить рабочий процесс", + "pinned": "Закрепленные рабочие процессы" + }, + "parameters": { + "add": "Добавить параметр", + "preferInTab": "Предпочитать ввод параметров во вкладке" + }, + "my": "Мои рабочие процессы", + "testing": { + "title": "Режим тестирования", + "nextBlock": "Следующий блок", + "startRun": "Начать исполнение с", + "disabled": "Сначала сохраните изменения" + }, + "import": "Импортировать рабочий процесс", + "new": "Новый рабочий процесс", + "delete": "Удалить рабочий процесс", + "browse": "Просмотр рабочих процессов", + "name": "Название рабочего процесса", + "rename": "Переименовать рабочий процесс", + "backupCloud": "Резервное копирование рабочего процесса в облако", + "add": "Добавить рабочий процесс", + "clickToEnable": "Нажмите, чтобы включить", + "toggleSidebar": "Переключить боковую панель", + "cantEdit": "Невозможно редактировать общий рабочий процесс", + "undo": "Отменить", + "redo": "Повторить", + "autoAlign": { + "title": "Авто-выравнивание" + }, + "blocksFolder": { + "title": "Папка блоков", + "add": "Добавить блоки в папку", + "save": "Сохранить в папку" + }, + "searchBlocks": { + "title": "Поиск блоков в редакторе" + }, + "conditionBuilder": { + "title": "Конструктор условий", + "add": "Добавить условие", + "and": "И", + "or": "ИЛИ", + "topAwait": "Поддерживает ожидание на верхнем уровне и функцию \"automaRefData\"" + }, + "host": { + "title": "Рабочий процесс хоста", + "set": "Установить как рабочий процесс хоста", + "id": "ID хоста", + "add": "Добавить хостовый рабочий процесс", + "sync": { + "title": "Синхронизация", + "description": "Синхронизировать с рабочим процессом хоста" + }, + "messages": { + "hostExist": "Вы уже добавили этого хоста", + "notFound": "Не могу найти хостовый рабочий процесс с ID \"{id}\"" + } + }, + "type": { + "local": "Локальный", + "shared": "Общий", + "host": "Хост" + }, + "unpublish": { + "title": "Отменить публикацию рабочего процесса", + "button": "Отменить публикацию", + "body": "Вы уверены, что хотите отменить публикацию рабочего процесса \"{name}\"?" + }, + "share": { + "url": "Поделиться URL", + "publish": "Опубликовать", + "sharedAs": "Опубликовано как \"{name}\"", + "title": "Поделиться рабочим процессом", + "download": "Сохранить рабочий процесс локально", + "edit": "Редактировать описание", + "fetchLocal": "Загрузить локальный рабочий процесс", + "update": "Обновить", + "unpublish": "Отменить публикацию" + }, + "variables": { + "title": "Переменная | Переменные", + "name": "Имя переменной", + "assign": "Назначить переменной" + }, + "protect": { + "title": "Защитить рабочий процесс", + "remove": "Снять защиту", + "button": "Защитить", + "note": "Примечание: этот пароль потребуется позже для редактирования или удаления рабочего процесса." + }, + "locked": { + "title": "Этот рабочий процесс защищён", + "body": "Введите пароль, чтобы разблокировать его", + "unlock": "Разблокировать", + "messages": { + "incorrect-password": "Неверный пароль" + } + }, + "state": { + "executeBy": "Выполнено: \"{name}\"" + }, + "table": { + "title": "Таблица | Таблицы", + "placeholder": "Поиск или добавление столбца", + "select": "Выбрать столбец", + "column": { + "name": "Название столбца", + "type": "Тип данных" + } + }, + "sidebar": { + "workflowIcon": "Иконка рабочего процесса" + }, + "editor": { + "zoomIn": "Увеличить", + "zoomOut": "Уменьшить", + "resetZoom": "Сброс масштаба", + "duplicate": "Дублировать", + "copy": "Копировать", + "paste": "Вставить", + "group": "Группировать блоки", + "ungroup": "Разгруппировать блоки" + }, + "settings": { + "saveLog": "Сохранить лог рабочего процесса", + "executedBlockOnWeb": "Показывать выполненный блок на веб-странице", + "notification": { + "title": "Уведомление рабочего процесса", + "description": "Показывать статус рабочего процесса (успех или неудача) после его выполнения", + "noPermission": "Эта опция требует разрешения на \"уведомления\" для работы" + }, + "publicId": { + "title": "Общедоступный ID рабочего процесса", + "description": "Установить общедоступный ID для выполнения рабочего процесса через пользовательское событие JavaScript" + }, + "defaultColumn": { + "title": "Вставить в столбец по умолчанию", + "description": "Вставить данные в столбец по умолчанию, если в блоке не выбран другой столбец", + "name": "Имя столбца по умолчанию" + }, + "autocomplete": { + "title": "Автозаполнение", + "description": "Включить автозаполнение в блоке ввода (отключить, если это делает Automa нестабильной)" + }, + "clearCache": { + "title": "Очистить кэш", + "description": "Очистить кэш (состояние и индекс цикла) рабочего процесса", + "info": "Кэш рабочего процесса успешно очищен", + "btn": "Очистить" + }, + "reuseLastState": { + "title": "Использовать последнее состояние рабочего процесса", + "description": "Использовать данные состояния (таблицу, переменные и общие данные) из последнего выполненного рабочего процесса" + }, + "debugMode": { + "title": "Режим отладки", + "description": "Выполнить рабочий процесс, используя протокол Chrome DevTools" + }, + "restartWorkflow": { + "for": "Перезапустить рабочий процесс", + "times": "Раз", + "description": "Максимальное количество перезапусков рабочего процесса" + }, + "onError": { + "title": "При ошибке в рабочем процессе", + "description": "Установить действие при возникновении ошибки в рабочем процессе", + "items": { + "keepRunning": "Продолжать выполнение", + "stopWorkflow": "Остановить рабочий процесс", + "restartWorkflow": "Перезапустить рабочий процесс" + } + }, + "timeout": { + "title": "Таймаут рабочего процесса (в миллисекундах)" + }, + "blockDelay": { + "title": "Задержка блока (в миллисекундах)", + "description": "Добавить задержку перед выполнением каждого блока" + }, + "tabLoadTimeout": { + "title": "Таймаут загрузки вкладки", + "description": "Максимальное время загрузки вкладки в миллисекундах, введите 0 для отключения таймаута" + } + } + }, + "collection": { + "description": "Выполнить рабочие процессы последовательно", + "new": "Новая коллекция", + "delete": "Удалить коллекцию", + "add": "Добавить коллекцию", + "rename": "Переименовать коллекцию", + "flow": "Поток", + "dragDropText": "Перетащите рабочий процесс или блок сюда", + "options": { + "atOnce": { + "title": "Выполнить все рабочие процессы в коллекции одновременно", + "description": "Блоки не будут выполняться, когда эта опция используется" + } + }, + "globalData": { + "note": "Это перезапишет глобальные данные рабочего процесса" + } + }, + "log": { + "flowId": "ID потока", + "goBack": "Вернуться к логам \"{name}\"", + "goWorkflow": "Перейти к рабочему процессу", + "startedDate": "Дата запуска", + "duration": "Продолжительность", + "selectAll": "Выбрать все", + "deselectAll": "Отменить выбор всего", + "deleteSelected": "Удалить выбранные логи", + "clearLogs": { + "title": "Очистить логи", + "description": "Вы уверены, что хотите очистить все логи?" + }, + "types": { + "stop": "Рабочий процесс остановлен", + "finish": "Завершить" + }, + "messages": { + "url-empty": "URL пуст", + "invalid-url": "Недействительный URL", + "conditions-empty": "Условия пусты", + "invalid-proxy-host": "Недействительный хост прокси", + "workflow-disabled": "Рабочий процесс отключен", + "selector-empty": "Селектор элемента пуст", + "invalid-body": "Тело контента не является допустимым JSON", + "invalid-active-tab": "\"{url}\" является недействительным URL", + "empty-spreadsheet-id": "ID таблицы пуст", + "invalid-loop-data": "Недопустимые данные для цикла", + "empty-workflow": "Сначала вы должны выбрать рабочий процесс", + "active-tab-removed": "Активная вкладка рабочего процесса удалена", + "empty-spreadsheet-range": "Диапазон таблицы пуст", + "stop-timeout": "Рабочий процесс остановлен из-за тайм-аута", + "no-file-access": "У Automa нет доступа к файлу", + "no-workflow": "Не могу найти рабочий процесс с ID \"{workflowId}\"", + "no-match-tab": "Не могу найти вкладку, соответствующую шаблону \"{pattern}\"", + "no-clipboard-acces": "Нет разрешения на доступ к буферу обмена", + "browser-not-supported": "Эта функция не поддерживается в браузере {browser}", + "element-not-found": "Не могу найти элемент с селектором \"{selector}\"", + "no-permission": "Нет разрешения \"{permission}\" для выполнения этого действия", + "not-iframe": "Элемент с селектором \"{selector}\" не является элементом iframe", + "iframe-not-found": "Не могу найти элемент iframe с селектором \"{selector}\"", + "workflow-infinite-loop": "Не могу выполнить рабочий процесс, чтобы предотвратить бесконечный цикл", + "not-debug-mode": "Рабочий процесс должен быть запущен в режиме отладки для работы этого блока", + "no-iframe-id": "Не могу найти ID фрейма для элемента iframe с селектором \"{selector}\"", + "no-tab": "Не могу подключиться к вкладке, используйте блок \"Новая вкладка\" или \"Активная вкладка\" перед использованием блока \"{name}\"" + }, + "description": { + "text": "{status} на {date} за {duration}", + "status": { + "success": "Успешно", + "error": "Ошибка", + "stopped": "Остановлено" + } + }, + "delete": { + "title": "Удалить лог", + "description": "Вы уверены, что хотите удалить все выбранные логи?" + }, + "exportData": { + "title": "Экспорт данных", + "types": { + "json": "JSON", + "csv": "CSV", + "plain-text": "Простой текст" + } + }, + "filter": { + "title": "Фильтр", + "byStatus": "По статусу", + "byDate": { + "title": "По дате", + "items": { + "lastDay": "Последний день", + "last7Days": "Последние 7 дней", + "last30Days": "Последние 30 дней" + } + } + } + }, + "components": { + "pagination": { + "text1": "Показано", + "text2": "элементов из {count}", + "nextPage": "Следующая страница", + "currentPage": "Текущая страница", + "prevPage": "Предыдущая страница", + "of": "из {page}" + } + } + } \ No newline at end of file diff --git a/src/locales/ru/popup.json b/src/locales/ru/popup.json new file mode 100644 index 000000000..43f295373 --- /dev/null +++ b/src/locales/ru/popup.json @@ -0,0 +1,32 @@ +{ + "recording": { + "stop": "Остановить запись", + "title": "Запись" + }, + "home": { + "record": { + "title": "Записать рабочий процесс", + "button": "Запись", + "name": "Название рабочего процесса", + "selectBlock": "Выберите блок для начала", + "anotherBlock": "Нельзя начать с этого блока", + "tabs": { + "new": "Новый рабочий процесс", + "existing": "Существующий рабочий процесс" + } + }, + "elementSelector": { + "name": "Выбор элемента", + "noAccess": "Нет доступа к этому сайту" + }, + "workflow": { + "new": "Новый рабочий процесс", + "rename": "Переименовать рабочий процесс", + "delete": "Удалить рабочий процесс", + "type": { + "host": "Хост", + "local": "Локальный" + } + } + } +} diff --git a/src/utils/shared.js b/src/utils/shared.js index 6761a815d..d497ba580 100644 --- a/src/utils/shared.js +++ b/src/utils/shared.js @@ -1583,6 +1583,7 @@ export const supportLocales = [ { id: 'zh', name: '简体中文' }, { id: 'zh-TW', name: '繁體中文' }, { id: 'tr', name: 'Türkçe' }, + { id: 'ru', name: 'Русский' }, ]; export const communities = [