renat-sagut commented on code in PR #63450:
URL: https://github.com/apache/airflow/pull/63450#discussion_r2942992891


##########
airflow-core/src/airflow/ui/public/i18n/locales/ru/dag.json:
##########
@@ -0,0 +1,191 @@
+{
+  "allRuns": "Все Запуски",
+  "blockingDeps": {
+    "dependency": "Зависимость",
+    "reason": "Причина",
+    "title": "Зависимости, которые блокируют Запуск задачи"
+  },
+  "calendar": {
+    "daily": "Ежедневно",
+    "hourly": "Каждый час",
+    "legend": {
+      "less": "Меньше",
+      "mixed": "Смешанные",
+      "more": "Больше"
+    },
+    "navigation": {
+      "nextMonth": "Следующий месяц",
+      "nextYear": "Следующий год",
+      "previousMonth": "Предыдущий месяц",
+      "previousYear": "Предыдущий год"
+    },
+    "noData": "Нет доступных данных",
+    "noFailedRuns": "Нет неудачных запусков",
+    "noRuns": "Нет запусков",
+    "totalRuns": "Всего запусков",
+    "week": "Неделя {{weekNumber}}",
+    "weekdays": {
+      "friday": "Пт",
+      "monday": "Пн",
+      "saturday": "Сб",
+      "sunday": "Вс",
+      "thursday": "Чт",
+      "tuesday": "Вт",
+      "wednesday": "Ср"
+    }
+  },
+  "code": {
+    "bundleUrl": "URL пакета",
+    "noCode": "Код не найден",
+    "parseDuration": "Длительность разбора:",
+    "parsedAt": "Разобрано в:"
+  },
+  "extraLinks": "Дополнительные ссылки",
+  "grid": {
+    "buttons": {
+      "resetToLatest": "Сбросить до последнего",
+      "toggleGroup": "Переключить группу"
+    },
+    "runTypeLegend": "Легенда типа запуска"
+  },
+  "header": {
+    "buttons": {
+      "advanced": "Расширенные настройки",
+      "dagDocs": "Документация ДАГа"
+    }
+  },
+  "logs": {
+    "allLevels": "Все уровни логов",
+    "allSources": "Все источники",
+    "critical": "КРИТИЧЕСКИЙ",
+    "debug": "ОТЛАДКА",
+    "error": "ОШИБКА",
+    "fullscreen": {
+      "button": "На весь экран",
+      "tooltip": "Нажмите {{hotkey}} для полного экрана"
+    },
+    "info": "ИНФОРМАЦИЯ",
+    "noTryNumber": "Нет номера попытки",
+    "settings": "Настройки логов",
+    "viewInExternal": "Просмотреть логи в {{name}} (попытка {{attempt}})",
+    "warning": "ПРЕДУПРЕЖДЕНИЕ"
+  },
+  "navigation": {
+    "navigation": "Навигация: Shift+{{arrow}}",
+    "toggleGroup": "Переключить группу: Пробел"
+  },
+  "notFound": {
+    "back": "Назад",
+    "backToDags": "Назад к ДАГам",
+    "message": "ДАГ \"{{dagId}}\" не существует.",
+    "title": "ДАГ не найден"
+  },
+  "overview": {
+    "buttons": {
+      "failedRun_one": "Неудачный запуск",
+      "failedRun_other": "Неудачные запуски",
+      "failedTask_one": "Неудачная задача",
+      "failedTask_other": "Неудачные задачи",
+      "failedTaskInstance_one": "Неудачный экземпляр задачи",
+      "failedTaskInstance_other": "Неудачные экземпляры задач"
+    },
+    "charts": {
+      "assetEvent_one": "Созданное событие актива",
+      "assetEvent_other": "Созданные события актива"
+    },
+    "failedLogs": {
+      "hideLogs": "Скрыть логи",
+      "showLogs": "Показать логи",
+      "title": "Недавние логи неудачных задач",
+      "viewFullLogs": "Просмотреть полные логи"
+    }
+  },
+  "panel": {
+    "buttons": {
+      "options": "Опции",
+      "showGantt": "Показать Гантт",
+      "showGraphShortcut": "Показать граф (нажмите g)",
+      "showGridShortcut": "Показать сетку (нажмите g)"
+    },
+    "dagRuns": {
+      "label": "Количество запусков ДАГа"
+    },
+    "dependencies": {
+      "label": "Зависимости",
+      "options": {
+        "allDagDependencies": "Все зависимости ДАГа",
+        "externalConditions": "Внешние условия",
+        "onlyTasks": "Только задачи"
+      },
+      "placeholder": "Зависимости"
+    },
+    "graphDirection": {
+      "label": "Направление графа"
+    },
+    "showVersionIndicator": {
+      "label": "Показать индикатор версии",
+      "options": {
+        "hideAll": "Скрыть все",
+        "showAll": "Показать все",
+        "showBundleVersion": "Показать версию пакета",
+        "showDagVersion": "Показать версию ДАГа"
+      }
+    },
+    "taskStreamFilter": {
+      "activeFilter": "Активный фильтр",
+      "clearFilter": "Очистить фильтр",
+      "clickTask": "Нажмите на задачу, чтобы выбрать ее в качестве корня 
фильтра",
+      "depth": "Глубина",
+      "direction": "Направление",
+      "label": "Фильтр",
+      "mode": "Режим",
+      "modeTooltip": "Статический режим сохраняет текущее представление при 
навигации к другим задачам, в то время как режим Траверса автоматически 
обновляет активный фильтр до нажатой задачи для более легкой навигации по 
ДАГу.",
+      "modes": {
+        "static": "Статический",
+        "traverse": "Траверс"
+      },
+      "options": {
+        "both": "Как вверх, так и вниз по потоку",
+        "downstream": "Вниз по потоку",
+        "upstream": "Вверх по потоку"
+      },
+      "selectedTask": "Выбранная задача"
+    }
+  },
+  "paramsFailed": "Не удалось загрузить параметры",
+  "parse": {
+    "toaster": {
+      "error": {
+        "description": "Не удалось разобрать запрос ДАГа. Возможно, остаются 
незавершенные запросы на разбор.",
+        "title": "Не удалось повторно разобрать ДАГ"

Review Comment:
   ```suggestion
           "title": "Не удалось выполнить повторный парсинг ДАГа"
   ```



##########
airflow-core/src/airflow/ui/public/i18n/locales/ru/admin.json:
##########
@@ -0,0 +1,189 @@
+{
+  "columns": {
+    "description": "Описание",
+    "key": "Ключ",
+    "name": "Имя",
+    "team": "Команда",
+    "value": "Значение"
+  },
+  "config": {
+    "columns": {
+      "section": "Раздел"
+    },
+    "title": "Конфигурация Airflow"
+  },
+  "connections": {
+    "add": "Добавить соединение",
+    "columns": {
+      "connectionId": "ID соединения",
+      "connectionType": "Тип соединения",
+      "host": "Хост",
+      "port": "Порт"
+    },
+    "connection_one": "Соединение",
+    "connection_other": "Соединений",
+    "delete": {
+      "deleteConnection_few": "Удалить {{count}} соединения",
+      "deleteConnection_one": "Удалить 1 соединение",
+      "deleteConnection_other": "Удалить {{count}} соединений",
+      "firstConfirmMessage_one": "Вы собираетесь удалить следующее 
соединение:",
+      "firstConfirmMessage_other": "Вы собираетесь удалить следующие 
соединения:",
+      "title": "Удалить соединение"
+    },
+    "edit": "Редактировать соединение",
+    "form": {
+      "connectionIdRequired": "ID соединения обязателен",
+      "connectionIdRequirement": "ID соединения не может состоять только из 
пробелов",
+      "connectionTypeRequired": "Тип соединения обязателен",
+      "extraFields": "Дополнительные поля",
+      "extraFieldsJson": "Дополнительные поля JSON",
+      "helperText": "Отсутствует тип соединения? Убедитесь, что вы установили 
соответствующий пакет Airflow Providers.",
+      "helperTextForRedactedFields": "Скрытые поля ('***') останутся 
неизменными, если не будут изменены.",
+      "selectConnectionType": "Выбрать тип соединения",
+      "standardFields": "Стандартные поля"
+    },
+    "nothingFound": {
+      "description": "Соединения, определенные через переменные окружения или 
менеджеры секретов, здесь не перечислены.",
+      "documentationLink": "Узнайте больше в документации Airflow.",
+      "learnMore": "Эти соединения обрабатываются во время выполнения и не 
видны в интерфейсе.",
+      "title": "Соединение не найдено!"
+    },
+    "searchPlaceholder": "Поиск соединений",
+    "test": "Тестировать соединение",
+    "testDisabled": "Функция тестирования соединения отключена. Пожалуйста, 
свяжитесь с администратором, чтобы включить ее.",
+    "testError": {
+      "title": "Ошибка тестирования соединения"
+    },
+    "testSuccess": {
+      "title": "Тестирование соединения успешно"
+    },
+    "typeMeta": {
+      "error": "Не удалось получить метаданные типа соединения",
+      "standardFields": {
+        "description": "Описание",
+        "host": "Хост",
+        "login": "Логин",
+        "password": "Пароль",
+        "port": "Порт",
+        "url_schema": "Схема"
+      }
+    }
+  },
+  "deleteActions": {
+    "button": "Удалить",
+    "modal": {
+      "confirmButton": "Да, удалить",
+      "secondConfirmMessage": "Это действие является постоянным и не может 
быть отменено.",

Review Comment:
   ```suggestion
         "secondConfirmMessage": "Это действие необратимо и не может быть 
отменено.",
   ```



##########
airflow-core/src/airflow/ui/public/i18n/locales/ru/components.json:
##########
@@ -0,0 +1,176 @@
+{
+  "backfill": {
+    "affected_few": "Будет запущено {{count}} процесса.",
+    "affected_one": "Будет запущен 1 процесс.",
+    "affected_other": "Будет запущено {{count}} процессов.",
+    "affectedNone": "Нет процессов, соответствующих выбранным критериям.",
+    "allRuns": "Все процессы",
+    "backwards": "Запуск назад",
+    "dateRange": "Диапазон дат",
+    "errorStartDateBeforeEndDate": "Дата начала должна быть раньше даты 
окончания",
+    "maxRuns": "Максимум активных запусков",
+    "missingAndErroredRuns": "Отсутствующие и ошибочные запуски",
+    "missingRuns": "Отсутствующие запуски",
+    "permissionDenied": "Не удалось выполнить пробный запуск: У пользователя 
нет разрешения на создание заполнения.",
+    "reprocessBehavior": "Поведение повторной обработки",
+    "run": "Запуск заполнения",
+    "selectDescription": "Запуск этого ДАГа для диапазона дат",
+    "selectLabel": "Заполнение",
+    "title": "Запуск заполнения",
+    "toaster": {
+      "success": {
+        "description": "Запуск выполнения заполнения успешно инициирован.",
+        "title": "Заполнение сгенерировано"
+      }
+    },
+    "tooltip": "Заполнение требует расписания",
+    "unpause": "Снять паузу с {{dag_display_name}} при запуске",
+    "validation": {
+      "datesRequired": "Необходимо указать как дату начала, так и дату 
окончания.",
+      "startBeforeEnd": "Дата начала должна быть меньше или равной дате 
окончания."
+    }
+  },
+  "banner": {
+    "backfillInProgress": "Заполнение в процессе",
+    "cancel": "Отменить заполнение",
+    "pause": "Приостановить заполнение",
+    "unpause": "Снять паузу с заполнения"
+  },
+  "clipboard": {
+    "copy": "Копировать"
+  },
+  "close": "Закрыть",
+  "configForm": {
+    "advancedOptions": "Расширенные параметры",
+    "configJson": "Конфигурация JSON",
+    "invalidJson": "Некорректный формат JSON: {{errorMessage}}"
+  },
+  "dagWarnings": {
+    "error_one": "1 ошибка",
+    "errorAndWarning": "1 ошибка и {{warningText}}",
+    "warning_few": "{{count}} предупреждения",
+    "warning_one": "1 предупреждение",
+    "warning_other": "{{count}} предупреждений"
+  },
+  "dateRangeFilter": {
+    "validation": {
+      "invalidDateFormat": "Некорректный формат даты.",
+      "invalidTimeFormat": "Некорректный формат времени.",
+      "startBeforeEnd": "Начальная дата/время должно быть раньше конечной 
даты/времени"
+    }
+  },
+  "durationChart": {
+    "duration": "Продолжительность (секунды)",
+    "lastDagRun_few": "Последние {{count}} запуска ДАГа",
+    "lastDagRun_one": "Последний запуск ДАГа",
+    "lastDagRun_other": "Последние {{count}} запусков ДАГа",
+    "lastTaskInstance_few": "Последние {{count}} экземпляра задачи",
+    "lastTaskInstance_one": "Последний экземпляр задачи",
+    "lastTaskInstance_other": "Последние {{count}} экземпляров задачи",
+    "queuedDuration": "Длительность в очереди",
+    "runAfter": "Запустить после",
+    "runDuration": "Длительность запуска"
+  },
+  "fileUpload": {
+    "files_few": "{{count}} файла",
+    "files_one": "{{count}} файл",
+    "files_other": "{{count}} файлов"
+  },
+  "flexibleForm": {
+    "placeholder": "Выбрать значение",
+    "placeholderArray": "Введите каждую строку с новой строки",
+    "placeholderExamples": "Начните вводить, чтобы увидеть варианты",
+    "placeholderMulti": "Выберите одно или несколько значений",
+    "validationErrorArrayNotArray": "Значение должно быть массивом.",
+    "validationErrorArrayNotNumbers": "Все элементы в массиве должны быть 
числами.",
+    "validationErrorArrayNotObject": "Все элементы в массиве должны быть 
объектами.",
+    "validationErrorRequired": "Это поле обязательно"
+  },
+  "graph": {
+    "directionDown": "Сверху вниз",
+    "directionLeft": "Справа налево",
+    "directionRight": "Слева направо",
+    "directionUp": "Снизу вверх",
+    "downloadImage": "Скачать изображение графа",
+    "downloadImageError": "Не удалось скачать изображение графа.",
+    "downloadImageErrorTitle": "Ошибка загрузки",
+    "otherDagRuns": "+Другие запуски ДАГа",
+    "taskCount_few": "{{count}} задачи",
+    "taskCount_one": "{{count}} задача",
+    "taskCount_other": "{{count}} задач",
+    "taskGroup": "Группа задач"
+  },
+  "limitedList": "+{{count}} ещё",
+  "limitedList.allItems": "Все {{count}} элементы:",
+  "limitedList.allTags_few": "Все теги ({{count}})",
+  "limitedList.allTags_one": "Все теги (1)",
+  "limitedList.allTags_other": "Все теги ({{count}})",
+  "limitedList.clickToInteract": "Нажмите на тег, чтобы фильтровать ДАГи",
+  "limitedList.clickToOpenFull": "Нажмите \"+{{count}} ещё\", чтобы открыть 
полный вид",
+  "limitedList.copyPasteText": "Вы можете скопировать и вставить текст выше",
+  "limitedList.showingItems_few": "Показано {{count}} элемента",
+  "limitedList.showingItems_one": "Показан 1 элемент",
+  "limitedList.showingItems_other": "Показано {{count}} элементов",
+  "logs": {
+    "file": "Файл",
+    "location": "строка {{line}} в {{name}}"
+  },
+  "reparseDag": "Повторный разбор ДАГа",

Review Comment:
   ```suggestion
     "reparseDag": "Повторный парсинг ДАГа",
   ```



##########
airflow-core/src/airflow/ui/public/i18n/locales/ru/admin.json:
##########
@@ -0,0 +1,189 @@
+{
+  "columns": {
+    "description": "Описание",
+    "key": "Ключ",
+    "name": "Имя",
+    "team": "Команда",
+    "value": "Значение"
+  },
+  "config": {
+    "columns": {
+      "section": "Раздел"
+    },
+    "title": "Конфигурация Airflow"
+  },
+  "connections": {
+    "add": "Добавить соединение",
+    "columns": {
+      "connectionId": "ID соединения",
+      "connectionType": "Тип соединения",
+      "host": "Хост",
+      "port": "Порт"
+    },
+    "connection_one": "Соединение",
+    "connection_other": "Соединений",
+    "delete": {
+      "deleteConnection_few": "Удалить {{count}} соединения",
+      "deleteConnection_one": "Удалить 1 соединение",
+      "deleteConnection_other": "Удалить {{count}} соединений",
+      "firstConfirmMessage_one": "Вы собираетесь удалить следующее 
соединение:",
+      "firstConfirmMessage_other": "Вы собираетесь удалить следующие 
соединения:",
+      "title": "Удалить соединение"
+    },
+    "edit": "Редактировать соединение",
+    "form": {
+      "connectionIdRequired": "ID соединения обязателен",
+      "connectionIdRequirement": "ID соединения не может состоять только из 
пробелов",
+      "connectionTypeRequired": "Тип соединения обязателен",
+      "extraFields": "Дополнительные поля",
+      "extraFieldsJson": "Дополнительные поля JSON",
+      "helperText": "Отсутствует тип соединения? Убедитесь, что вы установили 
соответствующий пакет Airflow Providers.",
+      "helperTextForRedactedFields": "Скрытые поля ('***') останутся 
неизменными, если не будут изменены.",

Review Comment:
   ```suggestion
         "helperTextForRedactedFields": "Скрытые поля ('***') останутся без 
изменений, если их не редактировать.",
   ```



##########
airflow-core/src/airflow/ui/public/i18n/locales/ru/common.json:
##########
@@ -0,0 +1,362 @@
+{
+  "admin": {
+    "Config": "Конфигурация",
+    "Connections": "Соединения",
+    "Plugins": "Плагины",
+    "Pools": "Пулы",
+    "Providers": "Поставщики",
+    "Variables": "Переменные"
+  },
+  "allOperators": "Все операторы",
+  "appearance": {
+    "appearance": "Внешний вид",
+    "darkMode": "Темный режим",
+    "lightMode": "Светлый режим",
+    "systemMode": "Следовать системным настройкам"
+  },
+  "asset_one": "Актив",
+  "asset_other": "Активы",
+  "assetEvent_one": "Событие актива",
+  "assetEvent_other": "События активов",
+  "backfill_one": "Заполнение",
+  "backfill_other": "Заполнения",
+  "browse": {
+    "auditLog": "Журнал аудита",
+    "jobs": "Задания",
+    "requiredActions": "Необходимые действия",
+    "xcoms": "XComs"
+  },
+  "collapseAllExtra": "Свернуть все дополнительные JSON",
+  "collapseDetailsPanel": "Свернуть панель деталей",
+  "createdAssetEvent_one": "Создано событие актива",
+  "createdAssetEvent_other": "Созданы события активов",
+  "dag_one": "ДАГ",
+  "dag_other": "ДАГи",
+  "dagDetails": {
+    "catchup": "Сбор данных",
+    "dagRunTimeout": "Тайм-аут запуска ДАГа",
+    "defaultArgs": "Аргументы по умолчанию",
+    "description": "Описание",
+    "documentation": "Документация ДАГа",
+    "fileLocation": "Место хранения файла",
+    "hasTaskConcurrencyLimits": "Имеет ограничения на параллельные задачи",
+    "lastExpired": "Последний истекший",
+    "lastParseDuration": "Продолжительность последнего разбора",
+    "lastParsed": "Последний разобранный",
+    "latestDagVersion": "Последняя версия ДАГа",
+    "latestRun": "Последний запуск",
+    "maxActiveRuns": "Максимум активных запусков",
+    "maxActiveTasks": "Максимум активных задач",
+    "maxConsecutiveFailedDagRuns": "Максимум последовательных неудачных 
запусков ДАГа",
+    "nextRun": "Следующий запуск",
+    "owner": "Владелец",
+    "params": "Параметры",
+    "schedule": "Расписание",
+    "tags": "Теги"
+  },
+  "dagId": "ID ДАГа",
+  "dagRun": {
+    "conf": "Конфигурация",
+    "dagVersions": "Версии ДАГа",
+    "dataIntervalEnd": "Конец временного интервала",
+    "dataIntervalStart": "Начало временного интервала",
+    "lastSchedulingDecision": "Последнее решение о расписании",
+    "mappedPartitionKey": "Ключ распределенной части",
+    "partitionKey": "Ключ части",
+    "queuedAt": "В очереди в",
+    "runAfter": "Запустить после",
+    "runType": "Тип запуска",
+    "sourceAssetEvent": "Источник события актива",
+    "triggeredBy": "Инициировано",
+    "triggeringUser": "Инициатор запуска"
+  },
+  "dagRun_one": "Запуск ДАГа",
+  "dagRun_few": "Запуск ДАГов",
+  "dagRun_many": "Запуск ДАГов",
+  "dagRun_other": "Запусков ДАГов",
+  "dagRunId": "ID запуска ДАГа",
+  "dagWarnings": "Предупреждения/ошибки ДАГа",
+  "defaultToGraphView": "По умолчанию отображать график",
+  "defaultToGridView": "По умолчанию отображать в сетке",
+  "delete": "Удалить",
+  "diff": "Разница",
+  "diffCompareWith": "Сравнить с",
+  "diffExit": "Выйти из просмотра различий",
+  "diffSelectVersionToCompare": "Выбрать версию для сравнения",
+  "direction": "Направление",
+  "docs": {
+    "documentation": "Документация",
+    "githubRepo": "GitHub Репозиторий",
+    "restApiReference": "REST API Справочник"
+  },
+  "download": {
+    "download": "Скачать",
+    "hotkey": "d",
+    "tooltip": "Нажмите {{hotkey}}, чтобы скачать журналы"
+  },
+  "duration": "Длительность",
+  "edit": "Редактировать",
+  "endDate": "Дата окончания",
+  "error": {
+    "back": "Назад",
+    "defaultMessage": "Произошла непредвиденная ошибка",
+    "home": "Главная",
+    "invalidUrl": "Страница не найдена. Пожалуйста, проверьте URL и попробуйте 
снова.",
+    "notFound": "Страница не найдена",
+    "title": "Ошибка"
+  },
+  "expand": {
+    "collapse": "Свернуть",
+    "expand": "Развернуть",
+    "hotkey": "e",
+    "tooltip": "Нажмите {{hotkey}}, чтобы переключить развертывание"
+  },
+  "expandAllExtra": "Развернуть все дополнительные JSON",
+  "expression": {
+    "all": "Все",
+    "and": "И",
+    "any": "Любой",
+    "or": "ИЛИ"
+  },
+  "filter": "Фильтр",
+  "filters": {
+    "durationFrom": "Продолжительность с",
+    "durationTo": "Продолжительность до",
+    "endTime": "Время окончания",
+    "logicalDateFrom": "Логическая дата с",
+    "logicalDateTo": "Логическая дата до",
+    "runAfterFrom": "Запустить после с",
+    "runAfterTo": "Запустить после до",
+    "selectDateRange": "Выбрать диапазон дат",
+    "startTime": "Время начала"
+  },
+  "generateToken": "Сгенерировать токен",
+  "logicalDate": "Логическая дата",
+  "logout": "Выйти",
+  "logoutConfirmation": "Вы собираетесь выйти из приложения.",
+  "mapIndex": "Индекс карты",

Review Comment:
   ```suggestion
     "mapIndex": "Индекс маппинга",
   ```



##########
airflow-core/src/airflow/ui/public/i18n/locales/ru/common.json:
##########
@@ -0,0 +1,362 @@
+{
+  "admin": {
+    "Config": "Конфигурация",
+    "Connections": "Соединения",
+    "Plugins": "Плагины",
+    "Pools": "Пулы",
+    "Providers": "Поставщики",
+    "Variables": "Переменные"
+  },
+  "allOperators": "Все операторы",
+  "appearance": {
+    "appearance": "Внешний вид",
+    "darkMode": "Темный режим",
+    "lightMode": "Светлый режим",
+    "systemMode": "Следовать системным настройкам"
+  },
+  "asset_one": "Актив",
+  "asset_other": "Активы",
+  "assetEvent_one": "Событие актива",
+  "assetEvent_other": "События активов",
+  "backfill_one": "Заполнение",
+  "backfill_other": "Заполнения",
+  "browse": {
+    "auditLog": "Журнал аудита",
+    "jobs": "Задания",
+    "requiredActions": "Необходимые действия",
+    "xcoms": "XComs"
+  },
+  "collapseAllExtra": "Свернуть все дополнительные JSON",
+  "collapseDetailsPanel": "Свернуть панель деталей",
+  "createdAssetEvent_one": "Создано событие актива",
+  "createdAssetEvent_other": "Созданы события активов",
+  "dag_one": "ДАГ",
+  "dag_other": "ДАГи",
+  "dagDetails": {
+    "catchup": "Сбор данных",
+    "dagRunTimeout": "Тайм-аут запуска ДАГа",
+    "defaultArgs": "Аргументы по умолчанию",
+    "description": "Описание",
+    "documentation": "Документация ДАГа",
+    "fileLocation": "Место хранения файла",
+    "hasTaskConcurrencyLimits": "Имеет ограничения на параллельные задачи",
+    "lastExpired": "Последний истекший",
+    "lastParseDuration": "Продолжительность последнего разбора",
+    "lastParsed": "Последний разобранный",

Review Comment:
   ```suggestion
       "lastParsed": "Последний распарсенный",
   ```



##########
airflow-core/src/airflow/ui/public/i18n/locales/ru/admin.json:
##########
@@ -0,0 +1,189 @@
+{
+  "columns": {
+    "description": "Описание",
+    "key": "Ключ",
+    "name": "Имя",
+    "team": "Команда",
+    "value": "Значение"
+  },
+  "config": {
+    "columns": {
+      "section": "Раздел"
+    },
+    "title": "Конфигурация Airflow"
+  },
+  "connections": {
+    "add": "Добавить соединение",
+    "columns": {
+      "connectionId": "ID соединения",
+      "connectionType": "Тип соединения",
+      "host": "Хост",
+      "port": "Порт"
+    },
+    "connection_one": "Соединение",
+    "connection_other": "Соединений",
+    "delete": {
+      "deleteConnection_few": "Удалить {{count}} соединения",
+      "deleteConnection_one": "Удалить 1 соединение",
+      "deleteConnection_other": "Удалить {{count}} соединений",
+      "firstConfirmMessage_one": "Вы собираетесь удалить следующее 
соединение:",
+      "firstConfirmMessage_other": "Вы собираетесь удалить следующие 
соединения:",
+      "title": "Удалить соединение"
+    },
+    "edit": "Редактировать соединение",
+    "form": {
+      "connectionIdRequired": "ID соединения обязателен",
+      "connectionIdRequirement": "ID соединения не может состоять только из 
пробелов",
+      "connectionTypeRequired": "Тип соединения обязателен",
+      "extraFields": "Дополнительные поля",
+      "extraFieldsJson": "Дополнительные поля JSON",
+      "helperText": "Отсутствует тип соединения? Убедитесь, что вы установили 
соответствующий пакет Airflow Providers.",
+      "helperTextForRedactedFields": "Скрытые поля ('***') останутся 
неизменными, если не будут изменены.",
+      "selectConnectionType": "Выбрать тип соединения",
+      "standardFields": "Стандартные поля"
+    },
+    "nothingFound": {
+      "description": "Соединения, определенные через переменные окружения или 
менеджеры секретов, здесь не перечислены.",
+      "documentationLink": "Узнайте больше в документации Airflow.",
+      "learnMore": "Эти соединения обрабатываются во время выполнения и не 
видны в интерфейсе.",
+      "title": "Соединение не найдено!"
+    },
+    "searchPlaceholder": "Поиск соединений",
+    "test": "Тестировать соединение",
+    "testDisabled": "Функция тестирования соединения отключена. Пожалуйста, 
свяжитесь с администратором, чтобы включить ее.",
+    "testError": {
+      "title": "Ошибка тестирования соединения"
+    },
+    "testSuccess": {
+      "title": "Тестирование соединения успешно"
+    },
+    "typeMeta": {
+      "error": "Не удалось получить метаданные типа соединения",
+      "standardFields": {
+        "description": "Описание",
+        "host": "Хост",
+        "login": "Логин",
+        "password": "Пароль",
+        "port": "Порт",
+        "url_schema": "Схема"
+      }
+    }
+  },
+  "deleteActions": {
+    "button": "Удалить",
+    "modal": {
+      "confirmButton": "Да, удалить",
+      "secondConfirmMessage": "Это действие является постоянным и не может 
быть отменено.",
+      "thirdConfirmMessage": "Вы уверены, что хотите продолжить?"
+    },
+    "selected": "Выбрано",
+    "tooltip": "Удалить выбранные соединения"
+  },
+  "formActions": {
+    "save": "Сохранить"
+  },
+  "jobs": {
+    "columns": {
+      "executorClass": "Класс исполнителя",
+      "hostname": "Имя хоста",
+      "id": "ID",
+      "jobType": "Тип задания",
+      "latestHeartbeat": "Последний heartbeat",
+      "unixname": "Unix имя"
+    },
+    "filters": {
+      "allStates": "Все состояния",
+      "allTypes": "Все типы",
+      "dagProcessorJob": "DagProcessorJob",
+      "schedulerJob": "SchedulerJob",
+      "triggererJob": "TriggererJob"
+    }
+  },
+  "plugins": {
+    "columns": {
+      "source": "Источник"
+    },
+    "importError_one": "Ошибка импорта плагина",
+    "importError_other": "Ошибки импорта плагинов",
+    "searchPlaceholder": "Поиск по файлу"
+  },
+  "pools": {
+    "add": "Добавить пул",
+    "deferredSlotsIncluded": "Включены отложенные слоты",
+    "delete": {
+      "title": "Удалить пул",
+      "warning": "Это удалит все метаданные, связанные с пулом, и может 
повлиять на задачи, использующие этот пул."
+    },
+    "edit": "Редактировать пул",
+    "form": {
+      "checkbox": "Убедитесь, что отложенные задачи включены в расчет открытых 
слотов пула",
+      "description": "Описание",
+      "includeDeferred": "Включить отложенные",
+      "nameMaxLength": "Имя может содержать максимум 256 символов",
+      "nameRequired": "Имя обязательно",
+      "slots": "Слоты"
+    },
+    "noPoolsFound": "Пулы не найдены",
+    "pool_one": "Пул",
+    "pool_other": "Пулы",
+    "searchPlaceholder": "Поиск пулов",
+    "sort": {
+      "asc": "Имя (A-Z)",
+      "desc": "Имя (Z-A)",
+      "placeholder": "Сортировать по"
+    }
+  },
+  "providers": {
+    "columns": {
+      "packageName": "Название пакета",
+      "version": "Версия"
+    }
+  },
+  "variables": {
+    "add": "Добавить переменную",
+    "columns": {
+      "isEncrypted": "Зашифрована ли"
+    },
+    "delete": {
+      "deleteVariable_one": "Удалить 1 переменную",
+      "deleteVariable_other": "Удалить {{count}} переменных",
+      "firstConfirmMessage_one": "Вы собираетесь удалить следующую 
переменную:",
+      "firstConfirmMessage_other": "Вы собираетесь удалить следующие 
переменные:",
+      "title": "Удалить переменную",
+      "tooltip": "Удалить выбранные переменные"
+    },
+    "edit": "Редактировать переменную",
+    "form": {
+      "invalidJson": "Некорректный JSON",
+      "keyMaxLength": "Ключ может содержать максимум 250 символов",
+      "keyRequired": "Ключ обязателен",
+      "valueRequired": "Значение обязательно"
+    },
+    "import": {
+      "button": "Импортировать",
+      "conflictResolution": "Выберите разрешение конфликта переменной",

Review Comment:
   ```suggestion
         "conflictResolution": "Выберите способ разрешения конфликтов 
переменных",
   ```



##########
airflow-core/src/airflow/ui/public/i18n/locales/ru/dag.json:
##########
@@ -0,0 +1,191 @@
+{
+  "allRuns": "Все Запуски",
+  "blockingDeps": {
+    "dependency": "Зависимость",
+    "reason": "Причина",
+    "title": "Зависимости, которые блокируют Запуск задачи"
+  },
+  "calendar": {
+    "daily": "Ежедневно",
+    "hourly": "Каждый час",
+    "legend": {
+      "less": "Меньше",
+      "mixed": "Смешанные",
+      "more": "Больше"
+    },
+    "navigation": {
+      "nextMonth": "Следующий месяц",
+      "nextYear": "Следующий год",
+      "previousMonth": "Предыдущий месяц",
+      "previousYear": "Предыдущий год"
+    },
+    "noData": "Нет доступных данных",
+    "noFailedRuns": "Нет неудачных запусков",
+    "noRuns": "Нет запусков",
+    "totalRuns": "Всего запусков",
+    "week": "Неделя {{weekNumber}}",
+    "weekdays": {
+      "friday": "Пт",
+      "monday": "Пн",
+      "saturday": "Сб",
+      "sunday": "Вс",
+      "thursday": "Чт",
+      "tuesday": "Вт",
+      "wednesday": "Ср"
+    }
+  },
+  "code": {
+    "bundleUrl": "URL пакета",
+    "noCode": "Код не найден",
+    "parseDuration": "Длительность разбора:",
+    "parsedAt": "Разобрано в:"
+  },
+  "extraLinks": "Дополнительные ссылки",
+  "grid": {
+    "buttons": {
+      "resetToLatest": "Сбросить до последнего",
+      "toggleGroup": "Переключить группу"
+    },
+    "runTypeLegend": "Легенда типа запуска"
+  },
+  "header": {
+    "buttons": {
+      "advanced": "Расширенные настройки",
+      "dagDocs": "Документация ДАГа"
+    }
+  },
+  "logs": {
+    "allLevels": "Все уровни логов",
+    "allSources": "Все источники",
+    "critical": "КРИТИЧЕСКИЙ",
+    "debug": "ОТЛАДКА",
+    "error": "ОШИБКА",
+    "fullscreen": {
+      "button": "На весь экран",
+      "tooltip": "Нажмите {{hotkey}} для полного экрана"
+    },
+    "info": "ИНФОРМАЦИЯ",
+    "noTryNumber": "Нет номера попытки",
+    "settings": "Настройки логов",
+    "viewInExternal": "Просмотреть логи в {{name}} (попытка {{attempt}})",
+    "warning": "ПРЕДУПРЕЖДЕНИЕ"
+  },
+  "navigation": {
+    "navigation": "Навигация: Shift+{{arrow}}",
+    "toggleGroup": "Переключить группу: Пробел"
+  },
+  "notFound": {
+    "back": "Назад",
+    "backToDags": "Назад к ДАГам",
+    "message": "ДАГ \"{{dagId}}\" не существует.",
+    "title": "ДАГ не найден"
+  },
+  "overview": {
+    "buttons": {
+      "failedRun_one": "Неудачный запуск",
+      "failedRun_other": "Неудачные запуски",
+      "failedTask_one": "Неудачная задача",
+      "failedTask_other": "Неудачные задачи",
+      "failedTaskInstance_one": "Неудачный экземпляр задачи",
+      "failedTaskInstance_other": "Неудачные экземпляры задач"
+    },
+    "charts": {
+      "assetEvent_one": "Созданное событие актива",
+      "assetEvent_other": "Созданные события актива"
+    },
+    "failedLogs": {
+      "hideLogs": "Скрыть логи",
+      "showLogs": "Показать логи",
+      "title": "Недавние логи неудачных задач",
+      "viewFullLogs": "Просмотреть полные логи"
+    }
+  },
+  "panel": {
+    "buttons": {
+      "options": "Опции",
+      "showGantt": "Показать Гантт",
+      "showGraphShortcut": "Показать граф (нажмите g)",
+      "showGridShortcut": "Показать сетку (нажмите g)"
+    },
+    "dagRuns": {
+      "label": "Количество запусков ДАГа"
+    },
+    "dependencies": {
+      "label": "Зависимости",
+      "options": {
+        "allDagDependencies": "Все зависимости ДАГа",
+        "externalConditions": "Внешние условия",
+        "onlyTasks": "Только задачи"
+      },
+      "placeholder": "Зависимости"
+    },
+    "graphDirection": {
+      "label": "Направление графа"
+    },
+    "showVersionIndicator": {
+      "label": "Показать индикатор версии",
+      "options": {
+        "hideAll": "Скрыть все",
+        "showAll": "Показать все",
+        "showBundleVersion": "Показать версию пакета",
+        "showDagVersion": "Показать версию ДАГа"
+      }
+    },
+    "taskStreamFilter": {
+      "activeFilter": "Активный фильтр",
+      "clearFilter": "Очистить фильтр",
+      "clickTask": "Нажмите на задачу, чтобы выбрать ее в качестве корня 
фильтра",
+      "depth": "Глубина",
+      "direction": "Направление",
+      "label": "Фильтр",
+      "mode": "Режим",
+      "modeTooltip": "Статический режим сохраняет текущее представление при 
навигации к другим задачам, в то время как режим Траверса автоматически 
обновляет активный фильтр до нажатой задачи для более легкой навигации по 
ДАГу.",
+      "modes": {
+        "static": "Статический",
+        "traverse": "Траверс"
+      },
+      "options": {
+        "both": "Как вверх, так и вниз по потоку",
+        "downstream": "Вниз по потоку",
+        "upstream": "Вверх по потоку"
+      },
+      "selectedTask": "Выбранная задача"
+    }
+  },
+  "paramsFailed": "Не удалось загрузить параметры",
+  "parse": {
+    "toaster": {
+      "error": {
+        "description": "Не удалось разобрать запрос ДАГа. Возможно, остаются 
незавершенные запросы на разбор.",
+        "title": "Не удалось повторно разобрать ДАГ"
+      },
+      "success": {
+        "description": "ДАГ должен вскоре быть повторно разобран.",

Review Comment:
   ```suggestion
           "description": "ДАГ скоро будет повторно распарсен.",
   ```



##########
airflow-core/src/airflow/ui/public/i18n/locales/ru/dag.json:
##########
@@ -0,0 +1,191 @@
+{
+  "allRuns": "Все Запуски",
+  "blockingDeps": {
+    "dependency": "Зависимость",
+    "reason": "Причина",
+    "title": "Зависимости, которые блокируют Запуск задачи"
+  },
+  "calendar": {
+    "daily": "Ежедневно",
+    "hourly": "Каждый час",
+    "legend": {
+      "less": "Меньше",
+      "mixed": "Смешанные",
+      "more": "Больше"
+    },
+    "navigation": {
+      "nextMonth": "Следующий месяц",
+      "nextYear": "Следующий год",
+      "previousMonth": "Предыдущий месяц",
+      "previousYear": "Предыдущий год"
+    },
+    "noData": "Нет доступных данных",
+    "noFailedRuns": "Нет неудачных запусков",
+    "noRuns": "Нет запусков",
+    "totalRuns": "Всего запусков",
+    "week": "Неделя {{weekNumber}}",
+    "weekdays": {
+      "friday": "Пт",
+      "monday": "Пн",
+      "saturday": "Сб",
+      "sunday": "Вс",
+      "thursday": "Чт",
+      "tuesday": "Вт",
+      "wednesday": "Ср"
+    }
+  },
+  "code": {
+    "bundleUrl": "URL пакета",
+    "noCode": "Код не найден",
+    "parseDuration": "Длительность разбора:",
+    "parsedAt": "Разобрано в:"
+  },
+  "extraLinks": "Дополнительные ссылки",
+  "grid": {
+    "buttons": {
+      "resetToLatest": "Сбросить до последнего",
+      "toggleGroup": "Переключить группу"
+    },
+    "runTypeLegend": "Легенда типа запуска"
+  },
+  "header": {
+    "buttons": {
+      "advanced": "Расширенные настройки",
+      "dagDocs": "Документация ДАГа"
+    }
+  },
+  "logs": {
+    "allLevels": "Все уровни логов",
+    "allSources": "Все источники",
+    "critical": "КРИТИЧЕСКИЙ",
+    "debug": "ОТЛАДКА",
+    "error": "ОШИБКА",
+    "fullscreen": {
+      "button": "На весь экран",
+      "tooltip": "Нажмите {{hotkey}} для полного экрана"
+    },
+    "info": "ИНФОРМАЦИЯ",
+    "noTryNumber": "Нет номера попытки",
+    "settings": "Настройки логов",
+    "viewInExternal": "Просмотреть логи в {{name}} (попытка {{attempt}})",
+    "warning": "ПРЕДУПРЕЖДЕНИЕ"
+  },
+  "navigation": {
+    "navigation": "Навигация: Shift+{{arrow}}",
+    "toggleGroup": "Переключить группу: Пробел"
+  },
+  "notFound": {
+    "back": "Назад",
+    "backToDags": "Назад к ДАГам",
+    "message": "ДАГ \"{{dagId}}\" не существует.",
+    "title": "ДАГ не найден"
+  },
+  "overview": {
+    "buttons": {
+      "failedRun_one": "Неудачный запуск",
+      "failedRun_other": "Неудачные запуски",
+      "failedTask_one": "Неудачная задача",
+      "failedTask_other": "Неудачные задачи",
+      "failedTaskInstance_one": "Неудачный экземпляр задачи",
+      "failedTaskInstance_other": "Неудачные экземпляры задач"
+    },
+    "charts": {
+      "assetEvent_one": "Созданное событие актива",
+      "assetEvent_other": "Созданные события актива"
+    },
+    "failedLogs": {
+      "hideLogs": "Скрыть логи",
+      "showLogs": "Показать логи",
+      "title": "Недавние логи неудачных задач",
+      "viewFullLogs": "Просмотреть полные логи"
+    }
+  },
+  "panel": {
+    "buttons": {
+      "options": "Опции",
+      "showGantt": "Показать Гантт",
+      "showGraphShortcut": "Показать граф (нажмите g)",
+      "showGridShortcut": "Показать сетку (нажмите g)"
+    },
+    "dagRuns": {
+      "label": "Количество запусков ДАГа"
+    },
+    "dependencies": {
+      "label": "Зависимости",
+      "options": {
+        "allDagDependencies": "Все зависимости ДАГа",
+        "externalConditions": "Внешние условия",
+        "onlyTasks": "Только задачи"
+      },
+      "placeholder": "Зависимости"
+    },
+    "graphDirection": {
+      "label": "Направление графа"
+    },
+    "showVersionIndicator": {
+      "label": "Показать индикатор версии",
+      "options": {
+        "hideAll": "Скрыть все",
+        "showAll": "Показать все",
+        "showBundleVersion": "Показать версию пакета",
+        "showDagVersion": "Показать версию ДАГа"
+      }
+    },
+    "taskStreamFilter": {
+      "activeFilter": "Активный фильтр",
+      "clearFilter": "Очистить фильтр",
+      "clickTask": "Нажмите на задачу, чтобы выбрать ее в качестве корня 
фильтра",
+      "depth": "Глубина",
+      "direction": "Направление",
+      "label": "Фильтр",
+      "mode": "Режим",
+      "modeTooltip": "Статический режим сохраняет текущее представление при 
навигации к другим задачам, в то время как режим Траверса автоматически 
обновляет активный фильтр до нажатой задачи для более легкой навигации по 
ДАГу.",
+      "modes": {
+        "static": "Статический",
+        "traverse": "Траверс"
+      },
+      "options": {
+        "both": "Как вверх, так и вниз по потоку",
+        "downstream": "Вниз по потоку",
+        "upstream": "Вверх по потоку"
+      },
+      "selectedTask": "Выбранная задача"
+    }
+  },
+  "paramsFailed": "Не удалось загрузить параметры",
+  "parse": {
+    "toaster": {
+      "error": {
+        "description": "Не удалось разобрать запрос ДАГа. Возможно, остаются 
незавершенные запросы на разбор.",
+        "title": "Не удалось повторно разобрать ДАГ"
+      },
+      "success": {
+        "description": "ДАГ должен вскоре быть повторно разобран.",
+        "title": "Запрос на повторный разбор успешно отправлен"

Review Comment:
   ```suggestion
           "title": "Запрос на повторный парсинг успешно отправлен"
   ```



##########
airflow-core/src/airflow/ui/public/i18n/locales/ru/admin.json:
##########
@@ -0,0 +1,189 @@
+{
+  "columns": {
+    "description": "Описание",
+    "key": "Ключ",
+    "name": "Имя",
+    "team": "Команда",
+    "value": "Значение"
+  },
+  "config": {
+    "columns": {
+      "section": "Раздел"
+    },
+    "title": "Конфигурация Airflow"
+  },
+  "connections": {
+    "add": "Добавить соединение",
+    "columns": {
+      "connectionId": "ID соединения",
+      "connectionType": "Тип соединения",
+      "host": "Хост",
+      "port": "Порт"
+    },
+    "connection_one": "Соединение",
+    "connection_other": "Соединений",
+    "delete": {
+      "deleteConnection_few": "Удалить {{count}} соединения",
+      "deleteConnection_one": "Удалить 1 соединение",
+      "deleteConnection_other": "Удалить {{count}} соединений",
+      "firstConfirmMessage_one": "Вы собираетесь удалить следующее 
соединение:",
+      "firstConfirmMessage_other": "Вы собираетесь удалить следующие 
соединения:",
+      "title": "Удалить соединение"
+    },
+    "edit": "Редактировать соединение",
+    "form": {
+      "connectionIdRequired": "ID соединения обязателен",
+      "connectionIdRequirement": "ID соединения не может состоять только из 
пробелов",
+      "connectionTypeRequired": "Тип соединения обязателен",
+      "extraFields": "Дополнительные поля",
+      "extraFieldsJson": "Дополнительные поля JSON",
+      "helperText": "Отсутствует тип соединения? Убедитесь, что вы установили 
соответствующий пакет Airflow Providers.",
+      "helperTextForRedactedFields": "Скрытые поля ('***') останутся 
неизменными, если не будут изменены.",
+      "selectConnectionType": "Выбрать тип соединения",
+      "standardFields": "Стандартные поля"
+    },
+    "nothingFound": {
+      "description": "Соединения, определенные через переменные окружения или 
менеджеры секретов, здесь не перечислены.",
+      "documentationLink": "Узнайте больше в документации Airflow.",
+      "learnMore": "Эти соединения обрабатываются во время выполнения и не 
видны в интерфейсе.",

Review Comment:
   ```suggestion
         "learnMore": "Эти соединения обрабатываются во время выполнения и не 
отображаются в интерфейсе.",
   ```



##########
airflow-core/src/airflow/ui/public/i18n/locales/ru/admin.json:
##########
@@ -0,0 +1,189 @@
+{
+  "columns": {
+    "description": "Описание",
+    "key": "Ключ",
+    "name": "Имя",
+    "team": "Команда",
+    "value": "Значение"
+  },
+  "config": {
+    "columns": {
+      "section": "Раздел"
+    },
+    "title": "Конфигурация Airflow"
+  },
+  "connections": {
+    "add": "Добавить соединение",
+    "columns": {
+      "connectionId": "ID соединения",
+      "connectionType": "Тип соединения",
+      "host": "Хост",
+      "port": "Порт"
+    },
+    "connection_one": "Соединение",
+    "connection_other": "Соединений",
+    "delete": {
+      "deleteConnection_few": "Удалить {{count}} соединения",
+      "deleteConnection_one": "Удалить 1 соединение",
+      "deleteConnection_other": "Удалить {{count}} соединений",
+      "firstConfirmMessage_one": "Вы собираетесь удалить следующее 
соединение:",
+      "firstConfirmMessage_other": "Вы собираетесь удалить следующие 
соединения:",
+      "title": "Удалить соединение"
+    },
+    "edit": "Редактировать соединение",
+    "form": {
+      "connectionIdRequired": "ID соединения обязателен",
+      "connectionIdRequirement": "ID соединения не может состоять только из 
пробелов",
+      "connectionTypeRequired": "Тип соединения обязателен",
+      "extraFields": "Дополнительные поля",
+      "extraFieldsJson": "Дополнительные поля JSON",
+      "helperText": "Отсутствует тип соединения? Убедитесь, что вы установили 
соответствующий пакет Airflow Providers.",
+      "helperTextForRedactedFields": "Скрытые поля ('***') останутся 
неизменными, если не будут изменены.",
+      "selectConnectionType": "Выбрать тип соединения",
+      "standardFields": "Стандартные поля"
+    },
+    "nothingFound": {
+      "description": "Соединения, определенные через переменные окружения или 
менеджеры секретов, здесь не перечислены.",
+      "documentationLink": "Узнайте больше в документации Airflow.",
+      "learnMore": "Эти соединения обрабатываются во время выполнения и не 
видны в интерфейсе.",
+      "title": "Соединение не найдено!"
+    },
+    "searchPlaceholder": "Поиск соединений",
+    "test": "Тестировать соединение",
+    "testDisabled": "Функция тестирования соединения отключена. Пожалуйста, 
свяжитесь с администратором, чтобы включить ее.",
+    "testError": {
+      "title": "Ошибка тестирования соединения"
+    },
+    "testSuccess": {
+      "title": "Тестирование соединения успешно"
+    },
+    "typeMeta": {
+      "error": "Не удалось получить метаданные типа соединения",
+      "standardFields": {
+        "description": "Описание",
+        "host": "Хост",
+        "login": "Логин",
+        "password": "Пароль",
+        "port": "Порт",
+        "url_schema": "Схема"
+      }
+    }
+  },
+  "deleteActions": {
+    "button": "Удалить",
+    "modal": {
+      "confirmButton": "Да, удалить",
+      "secondConfirmMessage": "Это действие является постоянным и не может 
быть отменено.",
+      "thirdConfirmMessage": "Вы уверены, что хотите продолжить?"
+    },
+    "selected": "Выбрано",
+    "tooltip": "Удалить выбранные соединения"
+  },
+  "formActions": {
+    "save": "Сохранить"
+  },
+  "jobs": {
+    "columns": {
+      "executorClass": "Класс исполнителя",
+      "hostname": "Имя хоста",
+      "id": "ID",
+      "jobType": "Тип задания",
+      "latestHeartbeat": "Последний heartbeat",
+      "unixname": "Unix имя"
+    },
+    "filters": {
+      "allStates": "Все состояния",
+      "allTypes": "Все типы",
+      "dagProcessorJob": "DagProcessorJob",

Review Comment:
   ```suggestion
         "dagProcessorJob": "Задание обработки ДАГа",
   ```



##########
airflow-core/src/airflow/ui/public/i18n/locales/ru/dag.json:
##########
@@ -0,0 +1,191 @@
+{
+  "allRuns": "Все Запуски",
+  "blockingDeps": {
+    "dependency": "Зависимость",
+    "reason": "Причина",
+    "title": "Зависимости, которые блокируют Запуск задачи"
+  },
+  "calendar": {
+    "daily": "Ежедневно",
+    "hourly": "Каждый час",
+    "legend": {
+      "less": "Меньше",
+      "mixed": "Смешанные",
+      "more": "Больше"
+    },
+    "navigation": {
+      "nextMonth": "Следующий месяц",
+      "nextYear": "Следующий год",
+      "previousMonth": "Предыдущий месяц",
+      "previousYear": "Предыдущий год"
+    },
+    "noData": "Нет доступных данных",
+    "noFailedRuns": "Нет неудачных запусков",
+    "noRuns": "Нет запусков",
+    "totalRuns": "Всего запусков",
+    "week": "Неделя {{weekNumber}}",
+    "weekdays": {
+      "friday": "Пт",
+      "monday": "Пн",
+      "saturday": "Сб",
+      "sunday": "Вс",
+      "thursday": "Чт",
+      "tuesday": "Вт",
+      "wednesday": "Ср"
+    }
+  },
+  "code": {
+    "bundleUrl": "URL пакета",
+    "noCode": "Код не найден",
+    "parseDuration": "Длительность разбора:",
+    "parsedAt": "Разобрано в:"
+  },
+  "extraLinks": "Дополнительные ссылки",
+  "grid": {
+    "buttons": {
+      "resetToLatest": "Сбросить до последнего",
+      "toggleGroup": "Переключить группу"
+    },
+    "runTypeLegend": "Легенда типа запуска"
+  },
+  "header": {
+    "buttons": {
+      "advanced": "Расширенные настройки",
+      "dagDocs": "Документация ДАГа"
+    }
+  },
+  "logs": {
+    "allLevels": "Все уровни логов",
+    "allSources": "Все источники",
+    "critical": "КРИТИЧЕСКИЙ",
+    "debug": "ОТЛАДКА",
+    "error": "ОШИБКА",
+    "fullscreen": {
+      "button": "На весь экран",
+      "tooltip": "Нажмите {{hotkey}} для полного экрана"
+    },
+    "info": "ИНФОРМАЦИЯ",
+    "noTryNumber": "Нет номера попытки",
+    "settings": "Настройки логов",
+    "viewInExternal": "Просмотреть логи в {{name}} (попытка {{attempt}})",
+    "warning": "ПРЕДУПРЕЖДЕНИЕ"
+  },
+  "navigation": {
+    "navigation": "Навигация: Shift+{{arrow}}",
+    "toggleGroup": "Переключить группу: Пробел"
+  },
+  "notFound": {
+    "back": "Назад",
+    "backToDags": "Назад к ДАГам",
+    "message": "ДАГ \"{{dagId}}\" не существует.",
+    "title": "ДАГ не найден"
+  },
+  "overview": {
+    "buttons": {
+      "failedRun_one": "Неудачный запуск",
+      "failedRun_other": "Неудачные запуски",
+      "failedTask_one": "Неудачная задача",
+      "failedTask_other": "Неудачные задачи",
+      "failedTaskInstance_one": "Неудачный экземпляр задачи",
+      "failedTaskInstance_other": "Неудачные экземпляры задач"
+    },
+    "charts": {
+      "assetEvent_one": "Созданное событие актива",
+      "assetEvent_other": "Созданные события актива"
+    },
+    "failedLogs": {
+      "hideLogs": "Скрыть логи",
+      "showLogs": "Показать логи",
+      "title": "Недавние логи неудачных задач",
+      "viewFullLogs": "Просмотреть полные логи"
+    }
+  },
+  "panel": {
+    "buttons": {
+      "options": "Опции",
+      "showGantt": "Показать Гантт",
+      "showGraphShortcut": "Показать граф (нажмите g)",
+      "showGridShortcut": "Показать сетку (нажмите g)"
+    },
+    "dagRuns": {
+      "label": "Количество запусков ДАГа"
+    },
+    "dependencies": {
+      "label": "Зависимости",
+      "options": {
+        "allDagDependencies": "Все зависимости ДАГа",
+        "externalConditions": "Внешние условия",
+        "onlyTasks": "Только задачи"
+      },
+      "placeholder": "Зависимости"
+    },
+    "graphDirection": {
+      "label": "Направление графа"
+    },
+    "showVersionIndicator": {
+      "label": "Показать индикатор версии",
+      "options": {
+        "hideAll": "Скрыть все",
+        "showAll": "Показать все",
+        "showBundleVersion": "Показать версию пакета",
+        "showDagVersion": "Показать версию ДАГа"
+      }
+    },
+    "taskStreamFilter": {
+      "activeFilter": "Активный фильтр",
+      "clearFilter": "Очистить фильтр",
+      "clickTask": "Нажмите на задачу, чтобы выбрать ее в качестве корня 
фильтра",
+      "depth": "Глубина",
+      "direction": "Направление",
+      "label": "Фильтр",
+      "mode": "Режим",
+      "modeTooltip": "Статический режим сохраняет текущее представление при 
навигации к другим задачам, в то время как режим Траверса автоматически 
обновляет активный фильтр до нажатой задачи для более легкой навигации по 
ДАГу.",
+      "modes": {
+        "static": "Статический",
+        "traverse": "Траверс"
+      },
+      "options": {
+        "both": "Как вверх, так и вниз по потоку",
+        "downstream": "Вниз по потоку",
+        "upstream": "Вверх по потоку"
+      },
+      "selectedTask": "Выбранная задача"
+    }
+  },
+  "paramsFailed": "Не удалось загрузить параметры",
+  "parse": {
+    "toaster": {
+      "error": {
+        "description": "Не удалось разобрать запрос ДАГа. Возможно, остаются 
незавершенные запросы на разбор.",

Review Comment:
   ```suggestion
           "description": "Запрос на парсинг DAG не выполнен. Возможно, есть 
ожидающие запросы на парсинг, которые еще предстоит обработать.",
   ```



##########
airflow-core/src/airflow/ui/public/i18n/locales/ru/admin.json:
##########
@@ -0,0 +1,189 @@
+{
+  "columns": {
+    "description": "Описание",
+    "key": "Ключ",
+    "name": "Имя",
+    "team": "Команда",
+    "value": "Значение"
+  },
+  "config": {
+    "columns": {
+      "section": "Раздел"
+    },
+    "title": "Конфигурация Airflow"
+  },
+  "connections": {
+    "add": "Добавить соединение",
+    "columns": {
+      "connectionId": "ID соединения",
+      "connectionType": "Тип соединения",
+      "host": "Хост",
+      "port": "Порт"
+    },
+    "connection_one": "Соединение",
+    "connection_other": "Соединений",
+    "delete": {
+      "deleteConnection_few": "Удалить {{count}} соединения",
+      "deleteConnection_one": "Удалить 1 соединение",
+      "deleteConnection_other": "Удалить {{count}} соединений",
+      "firstConfirmMessage_one": "Вы собираетесь удалить следующее 
соединение:",
+      "firstConfirmMessage_other": "Вы собираетесь удалить следующие 
соединения:",
+      "title": "Удалить соединение"
+    },
+    "edit": "Редактировать соединение",
+    "form": {
+      "connectionIdRequired": "ID соединения обязателен",
+      "connectionIdRequirement": "ID соединения не может состоять только из 
пробелов",
+      "connectionTypeRequired": "Тип соединения обязателен",
+      "extraFields": "Дополнительные поля",
+      "extraFieldsJson": "Дополнительные поля JSON",
+      "helperText": "Отсутствует тип соединения? Убедитесь, что вы установили 
соответствующий пакет Airflow Providers.",
+      "helperTextForRedactedFields": "Скрытые поля ('***') останутся 
неизменными, если не будут изменены.",
+      "selectConnectionType": "Выбрать тип соединения",
+      "standardFields": "Стандартные поля"
+    },
+    "nothingFound": {
+      "description": "Соединения, определенные через переменные окружения или 
менеджеры секретов, здесь не перечислены.",
+      "documentationLink": "Узнайте больше в документации Airflow.",
+      "learnMore": "Эти соединения обрабатываются во время выполнения и не 
видны в интерфейсе.",
+      "title": "Соединение не найдено!"
+    },
+    "searchPlaceholder": "Поиск соединений",
+    "test": "Тестировать соединение",
+    "testDisabled": "Функция тестирования соединения отключена. Пожалуйста, 
свяжитесь с администратором, чтобы включить ее.",
+    "testError": {
+      "title": "Ошибка тестирования соединения"
+    },
+    "testSuccess": {
+      "title": "Тестирование соединения успешно"
+    },
+    "typeMeta": {
+      "error": "Не удалось получить метаданные типа соединения",
+      "standardFields": {
+        "description": "Описание",
+        "host": "Хост",
+        "login": "Логин",
+        "password": "Пароль",
+        "port": "Порт",
+        "url_schema": "Схема"
+      }
+    }
+  },
+  "deleteActions": {
+    "button": "Удалить",
+    "modal": {
+      "confirmButton": "Да, удалить",
+      "secondConfirmMessage": "Это действие является постоянным и не может 
быть отменено.",
+      "thirdConfirmMessage": "Вы уверены, что хотите продолжить?"
+    },
+    "selected": "Выбрано",
+    "tooltip": "Удалить выбранные соединения"
+  },
+  "formActions": {
+    "save": "Сохранить"
+  },
+  "jobs": {
+    "columns": {
+      "executorClass": "Класс исполнителя",
+      "hostname": "Имя хоста",
+      "id": "ID",
+      "jobType": "Тип задания",
+      "latestHeartbeat": "Последний heartbeat",
+      "unixname": "Unix имя"
+    },
+    "filters": {
+      "allStates": "Все состояния",
+      "allTypes": "Все типы",
+      "dagProcessorJob": "DagProcessorJob",
+      "schedulerJob": "SchedulerJob",
+      "triggererJob": "TriggererJob"

Review Comment:
   ```suggestion
         "triggererJob": "Задание триггера"
   ```



##########
airflow-core/src/airflow/ui/public/i18n/locales/ru/dag.json:
##########
@@ -0,0 +1,191 @@
+{
+  "allRuns": "Все Запуски",
+  "blockingDeps": {
+    "dependency": "Зависимость",
+    "reason": "Причина",
+    "title": "Зависимости, которые блокируют Запуск задачи"
+  },
+  "calendar": {
+    "daily": "Ежедневно",
+    "hourly": "Каждый час",
+    "legend": {
+      "less": "Меньше",
+      "mixed": "Смешанные",
+      "more": "Больше"
+    },
+    "navigation": {
+      "nextMonth": "Следующий месяц",
+      "nextYear": "Следующий год",
+      "previousMonth": "Предыдущий месяц",
+      "previousYear": "Предыдущий год"
+    },
+    "noData": "Нет доступных данных",
+    "noFailedRuns": "Нет неудачных запусков",
+    "noRuns": "Нет запусков",
+    "totalRuns": "Всего запусков",
+    "week": "Неделя {{weekNumber}}",
+    "weekdays": {
+      "friday": "Пт",
+      "monday": "Пн",
+      "saturday": "Сб",
+      "sunday": "Вс",
+      "thursday": "Чт",
+      "tuesday": "Вт",
+      "wednesday": "Ср"
+    }
+  },
+  "code": {
+    "bundleUrl": "URL пакета",
+    "noCode": "Код не найден",
+    "parseDuration": "Длительность разбора:",
+    "parsedAt": "Разобрано в:"

Review Comment:
   ```suggestion
       "parsedAt": "Распарсен в:"
   ```



##########
airflow-core/src/airflow/ui/public/i18n/locales/ru/dag.json:
##########
@@ -0,0 +1,191 @@
+{
+  "allRuns": "Все Запуски",
+  "blockingDeps": {
+    "dependency": "Зависимость",
+    "reason": "Причина",
+    "title": "Зависимости, которые блокируют Запуск задачи"
+  },
+  "calendar": {
+    "daily": "Ежедневно",
+    "hourly": "Каждый час",
+    "legend": {
+      "less": "Меньше",
+      "mixed": "Смешанные",
+      "more": "Больше"
+    },
+    "navigation": {
+      "nextMonth": "Следующий месяц",
+      "nextYear": "Следующий год",
+      "previousMonth": "Предыдущий месяц",
+      "previousYear": "Предыдущий год"
+    },
+    "noData": "Нет доступных данных",
+    "noFailedRuns": "Нет неудачных запусков",
+    "noRuns": "Нет запусков",
+    "totalRuns": "Всего запусков",
+    "week": "Неделя {{weekNumber}}",
+    "weekdays": {
+      "friday": "Пт",
+      "monday": "Пн",
+      "saturday": "Сб",
+      "sunday": "Вс",
+      "thursday": "Чт",
+      "tuesday": "Вт",
+      "wednesday": "Ср"
+    }
+  },
+  "code": {
+    "bundleUrl": "URL пакета",
+    "noCode": "Код не найден",
+    "parseDuration": "Длительность разбора:",

Review Comment:
   ```suggestion
       "parseDuration": "Длительность парсинга:",
   ```



##########
airflow-core/src/airflow/ui/public/i18n/locales/ru/admin.json:
##########
@@ -0,0 +1,189 @@
+{
+  "columns": {
+    "description": "Описание",
+    "key": "Ключ",
+    "name": "Имя",
+    "team": "Команда",
+    "value": "Значение"
+  },
+  "config": {
+    "columns": {
+      "section": "Раздел"
+    },
+    "title": "Конфигурация Airflow"
+  },
+  "connections": {
+    "add": "Добавить соединение",
+    "columns": {
+      "connectionId": "ID соединения",
+      "connectionType": "Тип соединения",
+      "host": "Хост",
+      "port": "Порт"
+    },
+    "connection_one": "Соединение",
+    "connection_other": "Соединений",
+    "delete": {
+      "deleteConnection_few": "Удалить {{count}} соединения",
+      "deleteConnection_one": "Удалить 1 соединение",
+      "deleteConnection_other": "Удалить {{count}} соединений",
+      "firstConfirmMessage_one": "Вы собираетесь удалить следующее 
соединение:",
+      "firstConfirmMessage_other": "Вы собираетесь удалить следующие 
соединения:",
+      "title": "Удалить соединение"
+    },
+    "edit": "Редактировать соединение",
+    "form": {
+      "connectionIdRequired": "ID соединения обязателен",
+      "connectionIdRequirement": "ID соединения не может состоять только из 
пробелов",
+      "connectionTypeRequired": "Тип соединения обязателен",
+      "extraFields": "Дополнительные поля",
+      "extraFieldsJson": "Дополнительные поля JSON",
+      "helperText": "Отсутствует тип соединения? Убедитесь, что вы установили 
соответствующий пакет Airflow Providers.",
+      "helperTextForRedactedFields": "Скрытые поля ('***') останутся 
неизменными, если не будут изменены.",
+      "selectConnectionType": "Выбрать тип соединения",
+      "standardFields": "Стандартные поля"
+    },
+    "nothingFound": {
+      "description": "Соединения, определенные через переменные окружения или 
менеджеры секретов, здесь не перечислены.",
+      "documentationLink": "Узнайте больше в документации Airflow.",
+      "learnMore": "Эти соединения обрабатываются во время выполнения и не 
видны в интерфейсе.",
+      "title": "Соединение не найдено!"
+    },
+    "searchPlaceholder": "Поиск соединений",
+    "test": "Тестировать соединение",
+    "testDisabled": "Функция тестирования соединения отключена. Пожалуйста, 
свяжитесь с администратором, чтобы включить ее.",
+    "testError": {
+      "title": "Ошибка тестирования соединения"
+    },
+    "testSuccess": {
+      "title": "Тестирование соединения успешно"
+    },
+    "typeMeta": {
+      "error": "Не удалось получить метаданные типа соединения",
+      "standardFields": {
+        "description": "Описание",
+        "host": "Хост",
+        "login": "Логин",
+        "password": "Пароль",
+        "port": "Порт",
+        "url_schema": "Схема"
+      }
+    }
+  },
+  "deleteActions": {
+    "button": "Удалить",
+    "modal": {
+      "confirmButton": "Да, удалить",
+      "secondConfirmMessage": "Это действие является постоянным и не может 
быть отменено.",
+      "thirdConfirmMessage": "Вы уверены, что хотите продолжить?"
+    },
+    "selected": "Выбрано",
+    "tooltip": "Удалить выбранные соединения"
+  },
+  "formActions": {
+    "save": "Сохранить"
+  },
+  "jobs": {
+    "columns": {
+      "executorClass": "Класс исполнителя",
+      "hostname": "Имя хоста",
+      "id": "ID",
+      "jobType": "Тип задания",
+      "latestHeartbeat": "Последний heartbeat",
+      "unixname": "Unix имя"
+    },
+    "filters": {
+      "allStates": "Все состояния",
+      "allTypes": "Все типы",
+      "dagProcessorJob": "DagProcessorJob",
+      "schedulerJob": "SchedulerJob",
+      "triggererJob": "TriggererJob"
+    }
+  },
+  "plugins": {
+    "columns": {
+      "source": "Источник"
+    },
+    "importError_one": "Ошибка импорта плагина",
+    "importError_other": "Ошибки импорта плагинов",
+    "searchPlaceholder": "Поиск по файлу"
+  },
+  "pools": {
+    "add": "Добавить пул",
+    "deferredSlotsIncluded": "Включены отложенные слоты",
+    "delete": {
+      "title": "Удалить пул",
+      "warning": "Это удалит все метаданные, связанные с пулом, и может 
повлиять на задачи, использующие этот пул."
+    },
+    "edit": "Редактировать пул",
+    "form": {
+      "checkbox": "Убедитесь, что отложенные задачи включены в расчет открытых 
слотов пула",

Review Comment:
   ```suggestion
         "checkbox": "Учитывать отложенные задачи при подсчёте свободных слотов 
пула",
   ```



##########
airflow-core/src/airflow/ui/public/i18n/locales/ru/admin.json:
##########
@@ -0,0 +1,189 @@
+{
+  "columns": {
+    "description": "Описание",
+    "key": "Ключ",
+    "name": "Имя",
+    "team": "Команда",
+    "value": "Значение"
+  },
+  "config": {
+    "columns": {
+      "section": "Раздел"
+    },
+    "title": "Конфигурация Airflow"
+  },
+  "connections": {
+    "add": "Добавить соединение",
+    "columns": {
+      "connectionId": "ID соединения",
+      "connectionType": "Тип соединения",
+      "host": "Хост",
+      "port": "Порт"
+    },
+    "connection_one": "Соединение",
+    "connection_other": "Соединений",
+    "delete": {
+      "deleteConnection_few": "Удалить {{count}} соединения",
+      "deleteConnection_one": "Удалить 1 соединение",
+      "deleteConnection_other": "Удалить {{count}} соединений",
+      "firstConfirmMessage_one": "Вы собираетесь удалить следующее 
соединение:",
+      "firstConfirmMessage_other": "Вы собираетесь удалить следующие 
соединения:",
+      "title": "Удалить соединение"
+    },
+    "edit": "Редактировать соединение",
+    "form": {
+      "connectionIdRequired": "ID соединения обязателен",
+      "connectionIdRequirement": "ID соединения не может состоять только из 
пробелов",
+      "connectionTypeRequired": "Тип соединения обязателен",
+      "extraFields": "Дополнительные поля",
+      "extraFieldsJson": "Дополнительные поля JSON",
+      "helperText": "Отсутствует тип соединения? Убедитесь, что вы установили 
соответствующий пакет Airflow Providers.",
+      "helperTextForRedactedFields": "Скрытые поля ('***') останутся 
неизменными, если не будут изменены.",
+      "selectConnectionType": "Выбрать тип соединения",
+      "standardFields": "Стандартные поля"
+    },
+    "nothingFound": {
+      "description": "Соединения, определенные через переменные окружения или 
менеджеры секретов, здесь не перечислены.",
+      "documentationLink": "Узнайте больше в документации Airflow.",
+      "learnMore": "Эти соединения обрабатываются во время выполнения и не 
видны в интерфейсе.",
+      "title": "Соединение не найдено!"
+    },
+    "searchPlaceholder": "Поиск соединений",
+    "test": "Тестировать соединение",
+    "testDisabled": "Функция тестирования соединения отключена. Пожалуйста, 
свяжитесь с администратором, чтобы включить ее.",
+    "testError": {
+      "title": "Ошибка тестирования соединения"
+    },
+    "testSuccess": {
+      "title": "Тестирование соединения успешно"
+    },
+    "typeMeta": {
+      "error": "Не удалось получить метаданные типа соединения",
+      "standardFields": {
+        "description": "Описание",
+        "host": "Хост",
+        "login": "Логин",
+        "password": "Пароль",
+        "port": "Порт",
+        "url_schema": "Схема"
+      }
+    }
+  },
+  "deleteActions": {
+    "button": "Удалить",
+    "modal": {
+      "confirmButton": "Да, удалить",
+      "secondConfirmMessage": "Это действие является постоянным и не может 
быть отменено.",
+      "thirdConfirmMessage": "Вы уверены, что хотите продолжить?"
+    },
+    "selected": "Выбрано",
+    "tooltip": "Удалить выбранные соединения"
+  },
+  "formActions": {
+    "save": "Сохранить"
+  },
+  "jobs": {
+    "columns": {
+      "executorClass": "Класс исполнителя",
+      "hostname": "Имя хоста",
+      "id": "ID",
+      "jobType": "Тип задания",
+      "latestHeartbeat": "Последний heartbeat",
+      "unixname": "Unix имя"
+    },
+    "filters": {
+      "allStates": "Все состояния",
+      "allTypes": "Все типы",
+      "dagProcessorJob": "DagProcessorJob",
+      "schedulerJob": "SchedulerJob",
+      "triggererJob": "TriggererJob"
+    }
+  },
+  "plugins": {
+    "columns": {
+      "source": "Источник"
+    },
+    "importError_one": "Ошибка импорта плагина",
+    "importError_other": "Ошибки импорта плагинов",
+    "searchPlaceholder": "Поиск по файлу"
+  },
+  "pools": {
+    "add": "Добавить пул",
+    "deferredSlotsIncluded": "Включены отложенные слоты",
+    "delete": {
+      "title": "Удалить пул",
+      "warning": "Это удалит все метаданные, связанные с пулом, и может 
повлиять на задачи, использующие этот пул."
+    },
+    "edit": "Редактировать пул",
+    "form": {
+      "checkbox": "Убедитесь, что отложенные задачи включены в расчет открытых 
слотов пула",
+      "description": "Описание",
+      "includeDeferred": "Включить отложенные",
+      "nameMaxLength": "Имя может содержать максимум 256 символов",
+      "nameRequired": "Имя обязательно",
+      "slots": "Слоты"
+    },
+    "noPoolsFound": "Пулы не найдены",
+    "pool_one": "Пул",
+    "pool_other": "Пулы",
+    "searchPlaceholder": "Поиск пулов",
+    "sort": {
+      "asc": "Имя (A-Z)",
+      "desc": "Имя (Z-A)",
+      "placeholder": "Сортировать по"
+    }
+  },
+  "providers": {
+    "columns": {
+      "packageName": "Название пакета",
+      "version": "Версия"
+    }
+  },
+  "variables": {
+    "add": "Добавить переменную",
+    "columns": {
+      "isEncrypted": "Зашифрована ли"
+    },
+    "delete": {
+      "deleteVariable_one": "Удалить 1 переменную",
+      "deleteVariable_other": "Удалить {{count}} переменных",
+      "firstConfirmMessage_one": "Вы собираетесь удалить следующую 
переменную:",
+      "firstConfirmMessage_other": "Вы собираетесь удалить следующие 
переменные:",
+      "title": "Удалить переменную",
+      "tooltip": "Удалить выбранные переменные"
+    },
+    "edit": "Редактировать переменную",
+    "form": {
+      "invalidJson": "Некорректный JSON",
+      "keyMaxLength": "Ключ может содержать максимум 250 символов",
+      "keyRequired": "Ключ обязателен",
+      "valueRequired": "Значение обязательно"
+    },
+    "import": {
+      "button": "Импортировать",
+      "conflictResolution": "Выберите разрешение конфликта переменной",
+      "errorParsingJsonFile": "Ошибка разбора JSON файла: загрузите JSON файл, 
содержащий переменные (например, {\"key\": \"value\", ...}).",

Review Comment:
   ```suggestion
         "errorParsingJsonFile": "Ошибка парсинга JSON файла: загрузите JSON 
файл, содержащий переменные (например, {\"key\": \"value\", ...}).",
   ```



##########
airflow-core/src/airflow/ui/public/i18n/locales/ru/common.json:
##########
@@ -0,0 +1,362 @@
+{
+  "admin": {
+    "Config": "Конфигурация",
+    "Connections": "Соединения",
+    "Plugins": "Плагины",
+    "Pools": "Пулы",
+    "Providers": "Поставщики",
+    "Variables": "Переменные"
+  },
+  "allOperators": "Все операторы",
+  "appearance": {
+    "appearance": "Внешний вид",
+    "darkMode": "Темный режим",
+    "lightMode": "Светлый режим",
+    "systemMode": "Следовать системным настройкам"
+  },
+  "asset_one": "Актив",
+  "asset_other": "Активы",
+  "assetEvent_one": "Событие актива",
+  "assetEvent_other": "События активов",
+  "backfill_one": "Заполнение",
+  "backfill_other": "Заполнения",
+  "browse": {
+    "auditLog": "Журнал аудита",
+    "jobs": "Задания",
+    "requiredActions": "Необходимые действия",
+    "xcoms": "XComs"
+  },
+  "collapseAllExtra": "Свернуть все дополнительные JSON",
+  "collapseDetailsPanel": "Свернуть панель деталей",
+  "createdAssetEvent_one": "Создано событие актива",
+  "createdAssetEvent_other": "Созданы события активов",
+  "dag_one": "ДАГ",
+  "dag_other": "ДАГи",
+  "dagDetails": {
+    "catchup": "Сбор данных",
+    "dagRunTimeout": "Тайм-аут запуска ДАГа",
+    "defaultArgs": "Аргументы по умолчанию",
+    "description": "Описание",
+    "documentation": "Документация ДАГа",
+    "fileLocation": "Место хранения файла",
+    "hasTaskConcurrencyLimits": "Имеет ограничения на параллельные задачи",
+    "lastExpired": "Последний истекший",
+    "lastParseDuration": "Продолжительность последнего разбора",

Review Comment:
   ```suggestion
       "lastParseDuration": "Длительность последнего парсинга",
   ```



##########
airflow-core/src/airflow/ui/public/i18n/locales/ru/admin.json:
##########
@@ -0,0 +1,189 @@
+{
+  "columns": {
+    "description": "Описание",
+    "key": "Ключ",
+    "name": "Имя",
+    "team": "Команда",
+    "value": "Значение"
+  },
+  "config": {
+    "columns": {
+      "section": "Раздел"
+    },
+    "title": "Конфигурация Airflow"
+  },
+  "connections": {
+    "add": "Добавить соединение",
+    "columns": {
+      "connectionId": "ID соединения",
+      "connectionType": "Тип соединения",
+      "host": "Хост",
+      "port": "Порт"
+    },
+    "connection_one": "Соединение",
+    "connection_other": "Соединений",
+    "delete": {
+      "deleteConnection_few": "Удалить {{count}} соединения",
+      "deleteConnection_one": "Удалить 1 соединение",
+      "deleteConnection_other": "Удалить {{count}} соединений",
+      "firstConfirmMessage_one": "Вы собираетесь удалить следующее 
соединение:",
+      "firstConfirmMessage_other": "Вы собираетесь удалить следующие 
соединения:",
+      "title": "Удалить соединение"
+    },
+    "edit": "Редактировать соединение",
+    "form": {
+      "connectionIdRequired": "ID соединения обязателен",
+      "connectionIdRequirement": "ID соединения не может состоять только из 
пробелов",
+      "connectionTypeRequired": "Тип соединения обязателен",
+      "extraFields": "Дополнительные поля",
+      "extraFieldsJson": "Дополнительные поля JSON",
+      "helperText": "Отсутствует тип соединения? Убедитесь, что вы установили 
соответствующий пакет Airflow Providers.",
+      "helperTextForRedactedFields": "Скрытые поля ('***') останутся 
неизменными, если не будут изменены.",
+      "selectConnectionType": "Выбрать тип соединения",
+      "standardFields": "Стандартные поля"
+    },
+    "nothingFound": {
+      "description": "Соединения, определенные через переменные окружения или 
менеджеры секретов, здесь не перечислены.",
+      "documentationLink": "Узнайте больше в документации Airflow.",
+      "learnMore": "Эти соединения обрабатываются во время выполнения и не 
видны в интерфейсе.",
+      "title": "Соединение не найдено!"
+    },
+    "searchPlaceholder": "Поиск соединений",
+    "test": "Тестировать соединение",
+    "testDisabled": "Функция тестирования соединения отключена. Пожалуйста, 
свяжитесь с администратором, чтобы включить ее.",
+    "testError": {
+      "title": "Ошибка тестирования соединения"
+    },
+    "testSuccess": {
+      "title": "Тестирование соединения успешно"
+    },
+    "typeMeta": {
+      "error": "Не удалось получить метаданные типа соединения",
+      "standardFields": {
+        "description": "Описание",
+        "host": "Хост",
+        "login": "Логин",
+        "password": "Пароль",
+        "port": "Порт",
+        "url_schema": "Схема"
+      }
+    }
+  },
+  "deleteActions": {
+    "button": "Удалить",
+    "modal": {
+      "confirmButton": "Да, удалить",
+      "secondConfirmMessage": "Это действие является постоянным и не может 
быть отменено.",
+      "thirdConfirmMessage": "Вы уверены, что хотите продолжить?"
+    },
+    "selected": "Выбрано",
+    "tooltip": "Удалить выбранные соединения"
+  },
+  "formActions": {
+    "save": "Сохранить"
+  },
+  "jobs": {
+    "columns": {
+      "executorClass": "Класс исполнителя",
+      "hostname": "Имя хоста",
+      "id": "ID",
+      "jobType": "Тип задания",
+      "latestHeartbeat": "Последний heartbeat",
+      "unixname": "Unix имя"
+    },
+    "filters": {
+      "allStates": "Все состояния",
+      "allTypes": "Все типы",
+      "dagProcessorJob": "DagProcessorJob",
+      "schedulerJob": "SchedulerJob",

Review Comment:
   ```suggestion
         "schedulerJob": "Задание планировщика",
   ```



##########
airflow-core/src/airflow/ui/public/i18n/locales/ru/admin.json:
##########
@@ -0,0 +1,189 @@
+{
+  "columns": {
+    "description": "Описание",
+    "key": "Ключ",
+    "name": "Имя",
+    "team": "Команда",
+    "value": "Значение"
+  },
+  "config": {
+    "columns": {
+      "section": "Раздел"
+    },
+    "title": "Конфигурация Airflow"
+  },
+  "connections": {
+    "add": "Добавить соединение",
+    "columns": {
+      "connectionId": "ID соединения",
+      "connectionType": "Тип соединения",
+      "host": "Хост",
+      "port": "Порт"
+    },
+    "connection_one": "Соединение",
+    "connection_other": "Соединений",
+    "delete": {
+      "deleteConnection_few": "Удалить {{count}} соединения",
+      "deleteConnection_one": "Удалить 1 соединение",
+      "deleteConnection_other": "Удалить {{count}} соединений",
+      "firstConfirmMessage_one": "Вы собираетесь удалить следующее 
соединение:",
+      "firstConfirmMessage_other": "Вы собираетесь удалить следующие 
соединения:",
+      "title": "Удалить соединение"
+    },
+    "edit": "Редактировать соединение",
+    "form": {
+      "connectionIdRequired": "ID соединения обязателен",
+      "connectionIdRequirement": "ID соединения не может состоять только из 
пробелов",
+      "connectionTypeRequired": "Тип соединения обязателен",
+      "extraFields": "Дополнительные поля",
+      "extraFieldsJson": "Дополнительные поля JSON",
+      "helperText": "Отсутствует тип соединения? Убедитесь, что вы установили 
соответствующий пакет Airflow Providers.",
+      "helperTextForRedactedFields": "Скрытые поля ('***') останутся 
неизменными, если не будут изменены.",
+      "selectConnectionType": "Выбрать тип соединения",
+      "standardFields": "Стандартные поля"
+    },
+    "nothingFound": {
+      "description": "Соединения, определенные через переменные окружения или 
менеджеры секретов, здесь не перечислены.",
+      "documentationLink": "Узнайте больше в документации Airflow.",
+      "learnMore": "Эти соединения обрабатываются во время выполнения и не 
видны в интерфейсе.",
+      "title": "Соединение не найдено!"
+    },
+    "searchPlaceholder": "Поиск соединений",
+    "test": "Тестировать соединение",
+    "testDisabled": "Функция тестирования соединения отключена. Пожалуйста, 
свяжитесь с администратором, чтобы включить ее.",
+    "testError": {
+      "title": "Ошибка тестирования соединения"
+    },
+    "testSuccess": {
+      "title": "Тестирование соединения успешно"
+    },
+    "typeMeta": {
+      "error": "Не удалось получить метаданные типа соединения",
+      "standardFields": {
+        "description": "Описание",
+        "host": "Хост",
+        "login": "Логин",
+        "password": "Пароль",
+        "port": "Порт",
+        "url_schema": "Схема"
+      }
+    }
+  },
+  "deleteActions": {
+    "button": "Удалить",
+    "modal": {
+      "confirmButton": "Да, удалить",
+      "secondConfirmMessage": "Это действие является постоянным и не может 
быть отменено.",
+      "thirdConfirmMessage": "Вы уверены, что хотите продолжить?"
+    },
+    "selected": "Выбрано",
+    "tooltip": "Удалить выбранные соединения"
+  },
+  "formActions": {
+    "save": "Сохранить"
+  },
+  "jobs": {
+    "columns": {
+      "executorClass": "Класс исполнителя",
+      "hostname": "Имя хоста",
+      "id": "ID",
+      "jobType": "Тип задания",
+      "latestHeartbeat": "Последний heartbeat",
+      "unixname": "Unix имя"
+    },
+    "filters": {
+      "allStates": "Все состояния",
+      "allTypes": "Все типы",
+      "dagProcessorJob": "DagProcessorJob",
+      "schedulerJob": "SchedulerJob",
+      "triggererJob": "TriggererJob"
+    }
+  },
+  "plugins": {
+    "columns": {
+      "source": "Источник"
+    },
+    "importError_one": "Ошибка импорта плагина",
+    "importError_other": "Ошибки импорта плагинов",
+    "searchPlaceholder": "Поиск по файлу"
+  },
+  "pools": {
+    "add": "Добавить пул",
+    "deferredSlotsIncluded": "Включены отложенные слоты",
+    "delete": {
+      "title": "Удалить пул",
+      "warning": "Это удалит все метаданные, связанные с пулом, и может 
повлиять на задачи, использующие этот пул."
+    },
+    "edit": "Редактировать пул",
+    "form": {
+      "checkbox": "Убедитесь, что отложенные задачи включены в расчет открытых 
слотов пула",
+      "description": "Описание",
+      "includeDeferred": "Включить отложенные",
+      "nameMaxLength": "Имя может содержать максимум 256 символов",
+      "nameRequired": "Имя обязательно",
+      "slots": "Слоты"
+    },
+    "noPoolsFound": "Пулы не найдены",
+    "pool_one": "Пул",
+    "pool_other": "Пулы",
+    "searchPlaceholder": "Поиск пулов",
+    "sort": {
+      "asc": "Имя (A-Z)",
+      "desc": "Имя (Z-A)",
+      "placeholder": "Сортировать по"
+    }
+  },
+  "providers": {
+    "columns": {
+      "packageName": "Название пакета",
+      "version": "Версия"
+    }
+  },
+  "variables": {
+    "add": "Добавить переменную",
+    "columns": {
+      "isEncrypted": "Зашифрована ли"

Review Comment:
   ```suggestion
         "isEncrypted": "Зашифровано"
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to