This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch v3-3-test
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/v3-3-test by this push:
     new c1d5ad1f4bd [v3-3-test] Added missing Russian translations x2 (#70502) 
(#72755)
c1d5ad1f4bd is described below

commit c1d5ad1f4bdceed29f232af24b1535f4e19d240e
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Wed Sep 9 02:59:08 2026 +0200

    [v3-3-test] Added missing Russian translations x2 (#70502) (#72755)
    
    * [v3-3-test] Added missing Russian translations x2 (#70502)
    
    * fix: added missing russian translations
    
    * fix: check failing; moved modeTooltip
    
    * fix: indents
    
    ---------
    (cherry picked from commit 2e61fa116deee6d8dd3e5a380c1d6fa7d7cfae41)
    
    Co-authored-by: Puzzle Team <[email protected]>
    Co-authored-by: o.marchuk <[email protected]>
    
    * fixup! [v3-3-test] Added missing Russian translations x2 (#70502)
    
    Generated-by: Claude Code (Opus 5)
    Claude-Session: https://claude.ai/code/session_01Tnfjtt3E55VPxvJpNLgnp2
    
    ---------
    
    Co-authored-by: Puzzle Team <[email protected]>
    Co-authored-by: o.marchuk <[email protected]>
    Co-authored-by: Jarek Potiuk <[email protected]>
---
 .../airflow/ui/public/i18n/locales/ru/admin.json   |  27 ++-
 .../airflow/ui/public/i18n/locales/ru/assets.json  |  21 ++-
 .../airflow/ui/public/i18n/locales/ru/browse.json  |  20 ++
 .../airflow/ui/public/i18n/locales/ru/common.json  | 209 ++++++++++++++++-----
 .../ui/public/i18n/locales/ru/components.json      |  60 +++---
 .../src/airflow/ui/public/i18n/locales/ru/dag.json | 117 ++++++++++--
 .../airflow/ui/public/i18n/locales/ru/dags.json    |  31 +--
 .../ui/public/i18n/locales/ru/dashboard.json       |  29 ++-
 .../airflow/ui/public/i18n/locales/ru/hitl.json    |  21 ++-
 .../airflow/ui/public/i18n/locales/ru/tasks.json   |   8 +-
 .../src/airflow_breeze/commands/ui_commands.py     |   2 +-
 11 files changed, 432 insertions(+), 113 deletions(-)

diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/ru/admin.json 
b/airflow-core/src/airflow/ui/public/i18n/locales/ru/admin.json
index 734dc18623a..95b8adb6b10 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/ru/admin.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/ru/admin.json
@@ -20,12 +20,17 @@
       "host": "Хост",
       "port": "Порт"
     },
+    "connection_few": "Соединения",
+    "connection_many": "Соединений",
     "connection_one": "Соединение",
     "connection_other": "Соединений",
     "delete": {
       "deleteConnection_few": "Удалить {{count}} соединения",
+      "deleteConnection_many": "Удалить {{count}} соединений",
       "deleteConnection_one": "Удалить 1 соединение",
       "deleteConnection_other": "Удалить {{count}} соединений",
+      "firstConfirmMessage_few": "Вы собираетесь удалить следующие 
соединения:",
+      "firstConfirmMessage_many": "Вы собираетесь удалить следующие 
соединения:",
       "firstConfirmMessage_one": "Вы собираетесь удалить следующее 
соединение:",
       "firstConfirmMessage_other": "Вы собираетесь удалить следующие 
соединения:",
       "title": "Удалить соединение"
@@ -96,15 +101,17 @@
       "allTypes": "Все типы",
       "dagProcessorJob": "Задание обработки Dag-а",
       "schedulerJob": "Задание планировщика",
-      "triggererJob": "Задание триггера"
+      "triggererJob": "Задание триггерера"
     }
   },
   "plugins": {
     "columns": {
       "source": "Источник"
     },
+    "importError_few": "Ошибки импорта плагинов",
+    "importError_many": "Ошибок импорта плагинов",
     "importError_one": "Ошибка импорта плагина",
-    "importError_other": "Ошибки импорта плагинов",
+    "importError_other": "Ошибок импорта плагинов",
     "searchPlaceholder": "Поиск по файлу"
   },
   "pools": {
@@ -121,11 +128,14 @@
       "includeDeferred": "Включить отложенные",
       "nameMaxLength": "Имя может содержать максимум 256 символов",
       "nameRequired": "Имя обязательно",
-      "slots": "Слоты"
+      "slots": "Слоты",
+      "slotsHelperText": "Используйте -1 для неограниченного количества 
слотов."
     },
     "noPoolsFound": "Пулы не найдены",
+    "pool_few": "Пула",
+    "pool_many": "Пул",
     "pool_one": "Пул",
-    "pool_other": "Пулы",
+    "pool_other": "Пул",
     "searchPlaceholder": "Поиск пулов",
     "sort": {
       "asc": "Имя (A-Z)",
@@ -145,8 +155,12 @@
       "isEncrypted": "Зашифровано"
     },
     "delete": {
+      "deleteVariable_few": "Удалить {{count}} переменные",
+      "deleteVariable_many": "Удалить {{count}} переменных",
       "deleteVariable_one": "Удалить 1 переменную",
       "deleteVariable_other": "Удалить {{count}} переменных",
+      "firstConfirmMessage_few": "Вы собираетесь удалить следующие 
переменные:",
+      "firstConfirmMessage_many": "Вы собираетесь удалить следующие 
переменные:",
       "firstConfirmMessage_one": "Вы собираетесь удалить следующую 
переменную:",
       "firstConfirmMessage_other": "Вы собираетесь удалить следующие 
переменные:",
       "title": "Удалить переменную",
@@ -177,13 +191,16 @@
           "title": "Пропустить"
         }
       },
+      "parsingFile": "Парсинг файла...",
       "title": "Импорт переменных",
       "upload": "Загрузить JSON файл",
       "uploadPlaceholder": "Загрузите JSON файл, содержащий переменные 
(например, {\"key\": \"value\", ...})"
     },
     "noRowsMessage": "Переменные не найдены",
     "searchPlaceholder": "Поиск ключей",
+    "variable_few": "Переменные",
+    "variable_many": "Переменных",
     "variable_one": "Переменная",
-    "variable_other": "Переменные"
+    "variable_other": "Переменных"
   }
 }
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/ru/assets.json 
b/airflow-core/src/airflow/ui/public/i18n/locales/ru/assets.json
index 26c5614f135..88354cfb544 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/ru/assets.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/ru/assets.json
@@ -1,7 +1,25 @@
 {
   "additional_data": "Дополнительные данные",
-  "asset_many": "Активы",
+  "asset_few": "Актива",
+  "asset_many": "Активов",
   "asset_one": "Актив",
+  "asset_other": "Актива",
+  "assetStateStore": {
+    "add": "Добавить хранилище состояния актива",
+    "clearAll": {
+      "resource": "всё хранилище состояния актива",
+      "title": "Очистить всё хранилище состояния актива",
+      "warning": "Всё хранилище состояния актива будет очищено. Задачи, 
использующие это хранилище для координации работы, потеряют свою сохранённую 
память."
+    },
+    "delete": "Удалить хранилище состояния актива",
+    "deleteWarning": "Актив потеряет эту сохранённую запись хранилища 
состояния.",
+    "edit": "Редактировать хранилище состояния актива",
+    "emptyState": "Хранилище состояния актива хранит значения, привязанные к 
идентичности актива и общие для всех запусков Dag-а. Воркеры могут записывать в 
хранилище состояния актива через Task SDK.",
+    "lastUpdatedBy": "Кем последним обновлено",
+    "lastUpdatedByApi": "API",
+    "lastUpdatedByWatcher": "Наблюдатель",
+    "title": "Хранилище состояния актива"
+  },
   "consumingDags": "Потребляющие Dag-и",
   "consumingTasks": "Потребляющие задачи",
   "createEvent": {
@@ -25,6 +43,7 @@
     },
     "title": "Создать событие актива для {{name}}"
   },
+  "events": "События",
   "extra": "Дополнительно",
   "group": "Группа",
   "lastAssetEvent": "Последнее событие актива",
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/ru/browse.json 
b/airflow-core/src/airflow/ui/public/i18n/locales/ru/browse.json
index 4e18a73f06b..1128521a55f 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/ru/browse.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/ru/browse.json
@@ -11,6 +11,26 @@
     },
     "title": "Журнал аудита"
   },
+  "deadlines": {
+    "columns": {
+      "alertName": "Название оповещения",
+      "deadlineTime": "Время крайнего срока",
+      "status": "Статус"
+    },
+    "deadline_few": "Крайних срока",
+    "deadline_many": "Крайних сроков",
+    "deadline_one": "Крайний срок",
+    "deadline_other": "Крайних сроков",
+    "filters": {
+      "status": "Статус",
+      "statusOptions": {
+        "all": "Все",
+        "missed": "Пропущенные",
+        "pending": "Ожидающие"
+      }
+    },
+    "title": "Крайние сроки"
+  },
   "xcom": {
     "add": {
       "error": "Не удалось добавить XCom",
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/ru/common.json 
b/airflow-core/src/airflow/ui/public/i18n/locales/ru/common.json
index 56c15278e26..7eb3850ed90 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/ru/common.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/ru/common.json
@@ -14,26 +14,41 @@
     "lightMode": "Светлая тема",
     "systemMode": "Следовать системным настройкам"
   },
+  "asset_few": "Актива",
+  "asset_many": "Активов",
   "asset_one": "Актив",
-  "asset_other": "Активы",
+  "asset_other": "Активов",
+  "assetEvent_few": "События актива",
+  "assetEvent_many": "Событий актива",
   "assetEvent_one": "Событие актива",
-  "assetEvent_other": "События активов",
-  "backfill_one": "Заполнение",
-  "backfill_other": "Заполнения",
+  "assetEvent_other": "Событий актива",
+  "assetInactive": {
+    "tooltip": "Вышестоящий актив был деактивирован; планировщик 
приостанавливает оценку разделов до его повторной активации."
+  },
+  "backfill_few": "Backfill-а",
+  "backfill_many": "Backfill-ов",
+  "backfill_one": "Backfill",
+  "backfill_other": "Backfill-ов",
   "browse": {
     "auditLog": "Журнал аудита",
+    "deadlines": "Крайние сроки",
     "jobs": "Задания",
     "requiredActions": "Необходимые действия",
     "xcoms": "XCom-ы"
   },
   "collapseAllExtra": "Свернуть все дополнительные JSON",
   "collapseDetailsPanel": "Свернуть панель деталей",
-  "createdAssetEvent_one": "Создано событие актива",
-  "createdAssetEvent_other": "Созданы события активов",
+  "consumingAsset": "Потребляющий актив",
+  "createdAssetEvent_few": "Созданных события актива",
+  "createdAssetEvent_many": "Созданных событий актива",
+  "createdAssetEvent_one": "Созданное событие актива",
+  "createdAssetEvent_other": "Созданных событий актива",
+  "dag_few": "Dag-а",
+  "dag_many": "Dag-ов",
   "dag_one": "Dag",
-  "dag_other": "Dag-и",
+  "dag_other": "Dag-ов",
   "dagDetails": {
-    "catchup": "Сбор данных",
+    "catchup": "Наверстывание",
     "dagRunTimeout": "Тайм-аут запуска Dag-а",
     "defaultArgs": "Аргументы по умолчанию",
     "description": "Описание",
@@ -64,24 +79,25 @@
       "mean": "Среднее",
       "mode": "Мода"
     },
-    "expectedDuration": "Ожидаемая Длительность",
+    "expectedDuration": "Ожидаемая длительность",
     "lastSchedulingDecision": "Последнее решение о расписании",
-    "mappedPartitionKey": "Ключ распределенной части",
-    "partitionKey": "Ключ части",
+    "mappedPartitionKey": "Маппированный ключ раздела",
+    "partitionDate": "Дата раздела",
+    "partitionKey": "Ключ раздела",
     "queuedAt": "В очереди в",
-    "runAfter": "Запустить после",
+    "runAfter": "Запуск после",
     "runType": "Тип запуска",
     "sourceAssetEvent": "Источник события актива",
     "triggeredBy": "Инициировано",
     "triggeringUser": "Инициатор запуска"
   },
-  "dagRun_few": "Запуск Dag-ов",
-  "dagRun_many": "Запуск Dag-ов",
+  "dagRun_few": "Запуска Dag-а",
+  "dagRun_many": "Запусков Dag-а",
   "dagRun_one": "Запуск Dag-а",
-  "dagRun_other": "Запусков Dag-ов",
+  "dagRun_other": "Запуски Dag-а",
   "dagRunId": "ID запуска Dag-а",
   "dagWarnings": "Предупреждения/ошибки Dag-а",
-  "defaultToGraphView": "По умолчанию отображать график",
+  "defaultToGraphView": "По умолчанию открывать граф",
   "defaultToGridView": "По умолчанию отображать в сетке",
   "delete": "Удалить",
   "diff": "Разница",
@@ -97,7 +113,7 @@
   "download": {
     "download": "Скачать",
     "hotkey": "D",
-    "tooltip": "Нажмите {{hotkey}}, чтобы скачать журналы"
+    "tooltip": "Нажмите {{hotkey}}, чтобы скачать логи"
   },
   "duration": "Длительность",
   "edit": "Редактировать",
@@ -110,6 +126,12 @@
     "notFound": "Страница не найдена",
     "title": "Ошибка"
   },
+  "errors": {
+    "forbidden": {
+      "description": "У вас нет разрешения на выполнение этого действия.",
+      "title": "Доступ запрещён"
+    }
+  },
   "expand": {
     "collapse": "Свернуть",
     "expand": "Развернуть",
@@ -118,28 +140,33 @@
   },
   "expandAllExtra": "Развернуть все дополнительные JSON",
   "expression": {
-    "all": "ВСЕ",
+    "all": "Все",
     "and": "И",
-    "any": "ЛЮБОЙ",
+    "any": "Любой",
     "or": "ИЛИ"
   },
   "filter": "Фильтр",
   "filters": {
-    "durationFrom": "Продолжительность с",
-    "durationTo": "Продолжительность до",
+    "durationFrom": "Длительность от",
+    "durationTo": "Длительность до",
     "endTime": "Время окончания",
     "logicalDateFrom": "Логическая дата с",
     "logicalDateTo": "Логическая дата до",
-    "runAfterFrom": "Запустить после с",
-    "runAfterTo": "Запустить после до",
+    "runAfterFrom": "Запуск после, с",
+    "runAfterTo": "Запуск после, до",
+    "searchAsset": "Поиск актива",
     "selectDateRange": "Выбрать диапазон дат",
     "startTime": "Время начала"
   },
+  "fullscreen": {
+    "tooltip": "Нажмите {{hotkey}} для полноэкранного режима"
+  },
   "generateToken": "Сгенерировать токен",
+  "key": "Ключ",
   "logicalDate": "Логическая дата",
   "logout": "Выйти",
   "logoutConfirmation": "Вы собираетесь выйти из приложения.",
-  "mapIndex": "Индекс отображения",
+  "mapIndex": "Индекс маппинга",
   "modal": {
     "add": "Добавить",
     "cancel": "Отменить",
@@ -155,7 +182,7 @@
     "assets": "Активы",
     "browse": "Просмотр",
     "dags": "Dag-и",
-    "docs": "Документы",
+    "docs": "Документация",
     "home": "Главная",
     "legacyFabViews": "Устаревшие виды",
     "plugins": "Плагины",
@@ -165,23 +192,31 @@
   "note": {
     "add": "Добавить заметку",
     "dagRun": "Заметка запуска Dag-а",
+    "edit": "Редактировать заметку",
     "label": "Заметка",
     "placeholder": "Добавьте заметку...",
-    "taskInstance": "Заметка для экземпляра задачи"
+    "preview": "Предпросмотр",
+    "taskInstance": "Заметка для экземпляра задачи",
+    "write": "Написать"
   },
+  "overallStatus": "Общий статус",
+  "partitionedDagRun_few": "Разделенных запуска Dag-а",
+  "partitionedDagRun_many": "Разделенных запусков Dag-а",
   "partitionedDagRun_one": "Разделенный запуск Dag-а",
-  "partitionedDagRun_other": "Разделенных запусков Dag-а",
+  "partitionedDagRun_other": "Разделенных запуска Dag-а",
   "partitionedDagRunDetail": {
     "receivedAssetEvents": "Полученные события актива"
   },
   "pendingDagRun_few": "{{count}} Dag-а ожидают запуска",
+  "pendingDagRun_many": "{{count}} Dag-ов ожидают запуска",
   "pendingDagRun_one": "{{count}} Dag ожидает запуска",
   "pendingDagRun_other": "{{count}} Dag-ов ожидают запуска",
   "reset": "Сбросить",
   "runId": "ID запуска",
   "runTypes": {
+    "asset_materialization": "Материализация актива",
     "asset_triggered": "Запущено активом",
-    "backfill": "Заполнение",
+    "backfill": "Backfill",
     "manual": "Вручную",
     "scheduled": "Запланировано"
   },
@@ -192,6 +227,12 @@
     },
     "tooltip": "Нажмите {{hotkey}}, чтобы прокрутить {{direction}}"
   },
+  "search": {
+    "advanced": {
+      "description": "Совпадение в любом месте значения (поиск по подстроке). 
Медленнее на крупных развёртываниях, так как не может использовать стандартный 
индекс B-tree. Подробности см. в разделе документации о пользовательских 
индексах метаданных.",
+      "title": "Совпадение в любом месте"
+    }
+  },
   "security": {
     "actions": "Действия",
     "permissions": "Разрешения",
@@ -200,6 +241,48 @@
     "users": "Пользователи"
   },
   "selectLanguage": "Выбор языка",
+  "selected": "Выбрано",
+  "shortcuts": {
+    "categories": {
+      "code": "Код",
+      "dagView": "Просмотр Dag-а",
+      "filters": "Фильтры",
+      "global": "Глобальные",
+      "logs": "Логи",
+      "navigation": "Навигация",
+      "runActions": "Действия с запусками и задачами",
+      "search": "Поиск"
+    },
+    "descriptions": {
+      "clearRun": "Очистить запуск Dag-а",
+      "clearTaskInstance": "Очистить экземпляр задачи",
+      "downloadLogs": "Скачать логи",
+      "focusFilterSearch": "Перейти к поиску фильтров",
+      "focusLogSearch": "Поиск по логам",
+      "focusSearch": "Перейти к поиску",
+      "markRunFailed": "Отметить запуск Dag-а как неудачный",
+      "markRunSuccess": "Отметить запуск Dag-а как успешный",
+      "markTaskFailed": "Отметить задачу как неудачную",
+      "markTaskGroupFailed": "Отметить группу задач как неудачную",
+      "markTaskGroupSuccess": "Отметить группу задач как успешную",
+      "markTaskSuccess": "Отметить задачу как успешную",
+      "navigateTasks": "Навигация по задачам",
+      "openGraphFilters": "Открыть фильтры графа",
+      "scrollBottom": "Прокрутить вниз",
+      "scrollTop": "Прокрутить вверх",
+      "searchDags": "Поиск Dag-ов",
+      "showHelp": "Показать горячие клавиши",
+      "toggleExpand": "Развернуть или свернуть все группы",
+      "toggleFullscreen": "Переключить полноэкранный режим",
+      "toggleGraphGrid": "Переключить вид граф / сетка",
+      "toggleSource": "Переключить источник",
+      "toggleTaskGroup": "Развернуть или свернуть группу задач",
+      "toggleTimestamp": "Переключить временные метки",
+      "toggleWrap": "Переключить перенос"
+    },
+    "empty": "На этой странице нет доступных горячих клавиш.",
+    "title": "Горячие клавиши"
+  },
   "showDetailsPanel": "Показать панель деталей",
   "signedInAs": "Вошли как",
   "source": {
@@ -207,11 +290,14 @@
     "hotkey": "S",
     "show": "Показать источник"
   },
+  "sourceAssetEvent_few": "События источника актива",
+  "sourceAssetEvent_many": "Событий источника актива",
   "sourceAssetEvent_one": "Событие источника актива",
   "sourceAssetEvent_other": "Событий источника актива",
   "startDate": "Дата начала",
   "state": "Состояние",
   "states": {
+    "awaiting_input": "Ожидает ввода",
     "deferred": "Отложен",
     "failed": "Ошибка",
     "no_status": "Нет статуса",
@@ -227,15 +313,17 @@
     "success": "Успех",
     "up_for_reschedule": "Готов к переназначению",
     "up_for_retry": "Готов к повтору",
-    "upstream_failed": "Ошибка в upstream"
+    "upstream_failed": "Ошибка вышестоящей задачи"
   },
   "table": {
     "completedAt": "Завершен в",
     "createdAt": "Создан в",
     "filterByTag": "Фильтровать Dag-и по тегу",
     "filterColumns": "Фильтровать столбцы таблицы",
+    "filterReset_few": "Сбросить фильтра",
+    "filterReset_many": "Сбросить фильтров",
     "filterReset_one": "Сбросить фильтр",
-    "filterReset_other": "Сбросить фильтры",
+    "filterReset_other": "Сбросить фильтров",
     "from": "От",
     "maxActiveRuns": "Максимум активных запусков",
     "noTagsFound": "Теги не найдены",
@@ -244,22 +332,37 @@
       "any": "Любой"
     },
     "tagPlaceholder": "Фильтр по тегу",
-    "to": "До"
+    "to": "До",
+    "updatedAt": "Обновлено в"
   },
   "task": {
+    "dependsOnPast": "Зависит от прошлого",
     "documentation": "Документация задачи",
     "lastInstance": "Последний экземпляр",
     "operator": "Оператор",
-    "triggerRule": "Правило запуска"
+    "retries": "Повторные попытки",
+    "triggerRule": "Правило запуска",
+    "waitForDownstream": "Ожидать нижестоящие"
   },
+  "task_few": "Задачи",
+  "task_many": "Задач",
   "task_one": "Задача",
   "task_other": "Задач",
+  "taskGroup": {
+    "documentation": "Документация группы задач"
+  },
+  "taskGroup_few": "Группы задач",
+  "taskGroup_many": "Групп задач",
+  "taskGroup_one": "Группа задач",
+  "taskGroup_other": "Групп задач",
   "taskId": "ID задачи",
   "taskInstance": {
+    "additionalAttributes": "Дополнительные атрибуты экземпляра задачи",
     "dagVersion": "Версия Dag-а",
     "executor": "Исполнитель",
     "executorConfig": "Конфигурация исполнителя",
     "hostname": "Имя хоста",
+    "id": "ID",
     "maxTries": "Максимум попыток",
     "pid": "PID",
     "pool": "Пул",
@@ -267,21 +370,24 @@
     "priorityWeight": "Приоритетный вес",
     "queue": "Очередь",
     "queuedWhen": "В очереди в",
+    "renderedMapIndex": "Отрендеренный индекс маппинга",
     "scheduledWhen": "Запланировано в",
+    "trigger": "Триггер",
     "triggerer": {
-      "assigned": "Назначенный триггер",
+      "assigned": "Назначенный триггерер",
       "class": "Класс триггера",
       "createdAt": "Время создания триггера",
       "id": "ID триггера",
-      "latestHeartbeat": "Последний heartbeat-сигнал триггера",
-      "title": "Информация о триггере"
+      "job": "Задание триггерера",
+      "latestHeartbeat": "Последний heartbeat-сигнал триггерера",
+      "title": "Информация о триггерере"
     },
     "unixname": "Имя Unix"
   },
-  "taskInstance_few": "Экземпляра задачи",
+  "taskInstance_few": "Экземпляры задач",
   "taskInstance_many": "Экземпляров задачи",
   "taskInstance_one": "Экземпляр задачи",
-  "taskInstance_other": "Экземпляров задачи",
+  "taskInstance_other": "Экземпляры задачи",
   "timeRange": {
     "last12Hours": "Последние 12 часов",
     "last24Hours": "Последние 24 часа",
@@ -301,6 +407,13 @@
     "utc": "UTC (Всемирное координированное время)"
   },
   "toaster": {
+    "bulkClear": {
+      "error": "Ошибка запроса на массовую очистку {{resourceName}}",
+      "success": {
+        "description": "{{count}} {{resourceName}} успешно очищены. Ключи: 
{{keys}}",
+        "title": "Запрос на массовую очистку {{resourceName}} отправлен"
+      }
+    },
     "bulkDelete": {
       "error": "Ошибка массового удаления {{resourceName}}",
       "success": {
@@ -308,6 +421,13 @@
         "title": "Запрос на массовое удаление {{resourceName}} отправлен"
       }
     },
+    "bulkUpdate": {
+      "error": "Ошибка запроса на массовое обновление {{resourceName}}",
+      "success": {
+        "description": "{{count}} {{resourceName}} успешно обновлены. Ключи: 
{{keys}}",
+        "title": "Запрос на массовое обновление {{resourceName}} отправлен"
+      }
+    },
     "create": {
       "error": "Ошибка создания {{resourceName}}",
       "success": {
@@ -322,10 +442,6 @@
         "title": "Запрос на удаление {{resourceName}} отправлен"
       }
     },
-    "forbidden": {
-      "description": "У вас нет разрешения на выполнение этого действия.",
-      "title": "Доступ запрещён"
-    },
     "import": {
       "error": "Ошибка импорта {{resourceName}}",
       "success": {
@@ -357,10 +473,15 @@
   "triggered": "Запущено",
   "tryNumber": "Номер попытки",
   "user": "Пользователь",
+  "validation": {
+    "mustBeAtLeast": "Должно быть не менее {{min}}.",
+    "mustBeValidNumber": "Должно быть корректным числом."
+  },
+  "value": "Значение",
   "wrap": {
     "hotkey": "W",
-    "tooltip": "Нажмите {{hotkey}}, чтобы свернуть/развернуть",
-    "unwrap": "Развернуть",
-    "wrap": "Свернуть"
+    "tooltip": "Нажмите {{hotkey}}, чтобы переключить перенос строк",
+    "unwrap": "Отключить перенос строк",
+    "wrap": "Включить перенос строк"
   }
 }
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/ru/components.json 
b/airflow-core/src/airflow/ui/public/i18n/locales/ru/components.json
index 8178275fb2c..5eb31aa1890 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/ru/components.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/ru/components.json
@@ -1,26 +1,30 @@
 {
   "backfill": {
-    "affected_few": "Будет запущено {{count}} процесса.",
-    "affected_one": "Будет запущен 1 процесс.",
-    "affected_other": "Будет запущено {{count}} процессов.",
-    "affectedNone": "Нет процессов, соответствующих выбранным критериям.",
-    "allRuns": "Все процессы",
-    "backwards": "Запуск назад",
+    "affected_few": "Будет запущено {{count}} запуска.",
+    "affected_many": "Будет запущено {{count}} запусков.",
+    "affected_one": "Будет запущен 1 запуск.",
+    "affected_other": "Будет запущено {{count}} запусков.",
+    "affectedNone": "Нет запусков, соответствующих выбранным критериям.",
+    "allRuns": "Все запуски",
+    "backwards": "Запустить в обратном порядке",
     "dateRange": "Диапазон дат",
     "errorStartDateBeforeEndDate": "Дата начала должна быть раньше даты 
окончания",
     "maxRuns": "Максимум активных запусков",
     "missingAndErroredRuns": "Отсутствующие и ошибочные запуски",
     "missingRuns": "Отсутствующие запуски",
-    "permissionDenied": "Не удалось выполнить пробный запуск, так как у 
пользователя нет разрешения на создание Заполнения.",
+    "overrideExistingParams": "Переопределить параметры существующих запусков",
+    "permissionDenied": "Не удалось выполнить пробный запуск, так как у 
пользователя нет разрешения на создание Backfill.",
     "reprocessBehavior": "Поведение повторной обработки",
-    "run": "Запуск Заполнения",
-    "selectDescription": "Запуск этого Dag-а для диапазона дат",
-    "selectLabel": "Заполнение",
-    "title": "Запуск Заполнения",
+    "run": "Запустить Backfill",
+    "scheduleNotBackfillable": "Расписание этого Dag-а не поддерживает 
Backfill",
+    "schedulerPriorityHint": "Запуски Backfill обрабатываются после обычных 
запусков в каждом цикле планировщика. Запуски Backfill могут дольше оставаться 
в очереди при наличии других обычных запусков.",
+    "selectDescription": "Запустить этот Dag для диапазона дат",
+    "selectLabel": "Backfill",
+    "title": "Запуск Backfill",
     "toaster": {
       "success": {
-        "description": "Запуск выполнения Заполнения успешно инициирован.",
-        "title": "Заполнение сгенерировано"
+        "description": "Запуск Backfill успешно инициирован.",
+        "title": "Backfill создан"
       }
     },
     "unpause": "Возобновить {{dag_display_name}} при запуске",
@@ -30,10 +34,10 @@
     }
   },
   "banner": {
-    "backfillInProgress": "Заполнение в процессе",
-    "cancel": "Отменить Заполнение",
-    "pause": "Приостановить Заполнение",
-    "unpause": "Возобновить Заполнения"
+    "backfillInProgress": "Backfill выполняется",
+    "cancel": "Отменить Backfill",
+    "pause": "Приостановить Backfill",
+    "unpause": "Возобновить Backfill"
   },
   "clipboard": {
     "copy": "Копировать"
@@ -48,6 +52,7 @@
     "error_one": "1 ошибка",
     "errorAndWarning": "1 ошибка и {{warningText}}",
     "warning_few": "{{count}} предупреждения",
+    "warning_many": "{{count}} предупреждений",
     "warning_one": "1 предупреждение",
     "warning_other": "{{count}} предупреждений"
   },
@@ -59,23 +64,27 @@
     }
   },
   "durationChart": {
-    "duration": "Продолжительность (секунды)",
+    "duration": "Длительность (секунды)",
     "lastDagRun_few": "Последние {{count}} запуска Dag-а",
+    "lastDagRun_many": "Последние {{count}} запусков Dag-а",
     "lastDagRun_one": "Последний запуск Dag-а",
     "lastDagRun_other": "Последние {{count}} запусков Dag-а",
     "lastTaskInstance_few": "Последние {{count}} экземпляра задачи",
+    "lastTaskInstance_many": "Последние {{count}} экземпляров задачи",
     "lastTaskInstance_one": "Последний экземпляр задачи",
     "lastTaskInstance_other": "Последние {{count}} экземпляров задачи",
     "queuedDuration": "Длительность в очереди",
-    "runAfter": "Запустить после",
+    "runAfter": "Запуск после",
     "runDuration": "Длительность запуска"
   },
   "fileUpload": {
     "files_few": "{{count}} файла",
+    "files_many": "{{count}} файлов",
     "files_one": "{{count}} файл",
     "files_other": "{{count}} файлов"
   },
   "flexibleForm": {
+    "durationPlaceholder": "Введите длительность в формате ISO 8601",
     "placeholder": "Выбрать значение",
     "placeholderArray": "Введите каждую строку с новой строки",
     "placeholderExamples": "Начните вводить текст, чтобы увидеть варианты",
@@ -83,6 +92,7 @@
     "validationErrorArrayNotArray": "Значение должно быть массивом.",
     "validationErrorArrayNotNumbers": "Все элементы в массиве должны быть 
числами.",
     "validationErrorArrayNotObject": "Все элементы в массиве должны быть 
объектами.",
+    "validationErrorDuration": "Некорректный формат длительности ISO 8601",
     "validationErrorRequired": "Это поле обязательно для заполнения"
   },
   "graph": {
@@ -95,19 +105,23 @@
     "downloadImageErrorTitle": "Ошибка загрузки",
     "otherDagRuns": "+Другие запуски Dag-а",
     "taskCount_few": "{{count}} задачи",
+    "taskCount_many": "{{count}} задач",
     "taskCount_one": "{{count}} задача",
     "taskCount_other": "{{count}} задач",
-    "taskGroup": "Группа задач"
+    "taskGroup": "Группа задач",
+    "zoomToTask": "Приблизить к выбранной задаче"
   },
   "limitedList": "Ещё +{{count}}",
   "limitedList.allItems": "Все {{count}} элемента(ов):",
   "limitedList.allTags_few": "Все теги ({{count}})",
+  "limitedList.allTags_many": "Все теги ({{count}})",
   "limitedList.allTags_one": "Все теги (1)",
   "limitedList.allTags_other": "Все теги ({{count}})",
   "limitedList.clickToInteract": "Нажмите на тег, чтобы фильтровать Dag-и",
   "limitedList.clickToOpenFull": "Нажмите \"Ещё +{{count}}\", чтобы открыть 
полный вид",
   "limitedList.copyPasteText": "Вы можете скопировать и вставить текст выше",
   "limitedList.showingItems_few": "Показано {{count}} элемента",
+  "limitedList.showingItems_many": "Показано {{count}} элементов",
   "limitedList.showingItems_one": "Показан 1 элемент",
   "limitedList.showingItems_other": "Показано {{count}} элементов",
   "logs": {
@@ -127,8 +141,8 @@
       "placeHolder": "Выберите команду"
     }
   },
-  "toggleCardView": "Карточный вид",
-  "toggleTableView": "Табличный вид",
+  "toggleCardView": "Показать карточный вид",
+  "toggleTableView": "Показать табличный вид",
   "triggerDag": {
     "button": "Запустить",
     "dataInterval": "Временной интервал",
@@ -140,7 +154,7 @@
     "loadingFailed": "Не удалось загрузить информацию о Dag-е. Пожалуйста, 
попробуйте снова.",
     "manualRunDenied": "Ручные запуски не разрешены для этого Dag-а",
     "runIdHelp": "Необязательно - будет сгенерирован, если не предоставлен",
-    "selectDescription": "Запустить один процесс этого Dag-а",
+    "selectDescription": "Запустить этот Dag один раз",
     "selectLabel": "Единичный запуск",
     "title": "Запуск Dag-а",
     "toaster": {
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/ru/dag.json 
b/airflow-core/src/airflow/ui/public/i18n/locales/ru/dag.json
index c878d7ec6fd..7b4f44df992 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/ru/dag.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/ru/dag.json
@@ -1,9 +1,9 @@
 {
-  "allRuns": "Все Запуски",
+  "allRuns": "Все запуски",
   "blockingDeps": {
     "dependency": "Зависимость",
     "reason": "Причина",
-    "title": "Зависимости, которые блокируют Запуск задачи"
+    "title": "Зависимости, блокирующие планирование задачи"
   },
   "calendar": {
     "daily": "Ежедневно",
@@ -40,9 +40,43 @@
     "parseDuration": "Длительность парсинга:",
     "parsedAt": "Распарсен в:"
   },
+  "deadlineAlerts": {
+    "completionRule": "Должен завершиться в течение {{interval}} от 
{{reference}}",
+    "count_few": "{{count}} крайних срока",
+    "count_many": "{{count}} крайних сроков",
+    "count_one": "{{count}} крайний срок",
+    "count_other": "{{count}} крайних сроков",
+    "referenceType": {
+      "AverageRuntimeDeadline": "среднее время выполнения",
+      "DagRunLogicalDateDeadline": "логическая дата",
+      "DagRunQueuedAtDeadline": "время постановки в очередь"
+    }
+  },
+  "deadlineStatus": {
+    "actual": "Фактическое",
+    "expected": "Ожидаемое",
+    "finishedEarly": "Завершено за {{duration}} до крайнего срока",
+    "finishedLate": "Завершено через {{duration}} после крайнего срока",
+    "label": "Крайний срок",
+    "met": "Соблюдён",
+    "missed": "Пропущен",
+    "missedCount_few": "{{count}} пропущенных крайних срока",
+    "missedCount_many": "{{count}} пропущенных крайних сроков",
+    "missedCount_one": "{{count}} пропущенный крайний срок",
+    "missedCount_other": "{{count}} пропущенных крайних сроков",
+    "mixedCount": "{{missedCount}} пропущено, {{upcomingCount}} предстоит",
+    "stillRunning": "Ещё выполняется",
+    "upcoming": "Предстоящий",
+    "upcomingCount_few": "{{count}} предстоящих крайних срока",
+    "upcomingCount_many": "{{count}} предстоящих крайних сроков",
+    "upcomingCount_one": "{{count}} предстоящий крайний срок",
+    "upcomingCount_other": "{{count}} предстоящих крайних сроков"
+  },
   "extraLinks": "Дополнительные ссылки",
   "grid": {
     "buttons": {
+      "newerRuns": "Более новые запуски",
+      "olderRuns": "Более старые запуски",
       "resetToLatest": "Сбросить до последнего",
       "toggleGroup": "Переключить группу"
     },
@@ -52,6 +86,9 @@
     "buttons": {
       "advanced": "Расширенные настройки",
       "dagDocs": "Документация Dag-а"
+    },
+    "status": {
+      "deactivated": "Деактивирован"
     }
   },
   "logs": {
@@ -60,20 +97,17 @@
     "critical": "КРИТИЧЕСКИЙ",
     "debug": "ОТЛАДКА",
     "error": "ОШИБКА",
-    "fullscreen": {
-      "button": "На весь экран",
-      "tooltip": "Нажмите {{hotkey}} для полного экрана"
-    },
     "info": "ИНФОРМАЦИЯ",
     "noTryNumber": "Нет номера попытки",
+    "search": {
+      "matchCount": "{{current}} из {{total}}",
+      "noMatches": "Совпадений нет",
+      "placeholder": "Поиск по логам..."
+    },
     "settings": "Настройки логов",
     "viewInExternal": "Просмотреть логи в {{name}} (попытка {{attempt}})",
     "warning": "ПРЕДУПРЕЖДЕНИЕ"
   },
-  "navigation": {
-    "navigation": "Навигация: Shift+{{arrow}}",
-    "toggleGroup": "Переключить группу: Пробел"
-  },
   "notFound": {
     "back": "Назад",
     "backToDags": "Назад к Dag-ам",
@@ -82,16 +116,28 @@
   },
   "overview": {
     "buttons": {
+      "failedRun_few": "Неудачных запуска",
+      "failedRun_many": "Неудачных запусков",
       "failedRun_one": "Неудачный запуск",
-      "failedRun_other": "Неудачные запуски",
+      "failedRun_other": "Неудачных запусков",
+      "failedTask_few": "Неудачных задачи",
+      "failedTask_many": "Неудачных задач",
       "failedTask_one": "Неудачная задача",
-      "failedTask_other": "Неудачные задачи",
+      "failedTask_other": "Неудачных задач",
+      "failedTaskInstance_few": "Неудачных экземпляра задачи",
+      "failedTaskInstance_many": "Неудачных экземпляров задач",
       "failedTaskInstance_one": "Неудачный экземпляр задачи",
-      "failedTaskInstance_other": "Неудачные экземпляры задач"
+      "failedTaskInstance_other": "Неудачных экземпляров задач"
     },
     "charts": {
-      "assetEvent_one": "Созданное событие актива",
-      "assetEvent_other": "Созданные события актива"
+      "assetEvent_few": "События актива",
+      "assetEvent_many": "Событий актива",
+      "assetEvent_one": "Событие актива",
+      "assetEvent_other": "Событий актива"
+    },
+    "deadlines": {
+      "showAll": "Показать все",
+      "title": "Крайние сроки"
     },
     "failedLogs": {
       "hideLogs": "Скрыть логи",
@@ -122,6 +168,16 @@
     "graphDirection": {
       "label": "Направление графа"
     },
+    "graphFilters": {
+      "clearFilters": "Очистить фильтры",
+      "durationGte": "Мин. длительность (с)",
+      "durationGteHint": "Для задач с маппингом измеряет суммарный интервал по 
всем экземплярам",
+      "mapIndex": "Мин. индекс маппинга",
+      "mapIndexHint": "Показывает задачи с маппингом, развёрнутые как минимум 
до этого индекса",
+      "selectStatus": "Выбрать статус",
+      "selectTaskGroup": "Выбрать группу задач",
+      "title": "Фильтры задач"
+    },
     "showVersionIndicator": {
       "label": "Показать индикатор версии",
       "options": {
@@ -167,25 +223,48 @@
   },
   "tabs": {
     "assetEvents": "События активов",
-    "auditLog": "Аудиторский журнал",
-    "backfills": "Заполнение",
+    "auditLog": "Журнал аудита",
+    "backfills": "Backfills",
     "calendar": "Календарь",
     "code": "Код",
     "details": "Детали",
     "logs": "Логи",
-    "mappedTaskInstances_few": "Экземпляры задач [{{count}}]",
+    "mappedTaskInstances_few": "Экземпляра задачи [{{count}}]",
+    "mappedTaskInstances_many": "Экземпляров задач [{{count}}]",
     "mappedTaskInstances_one": "Экземпляр задачи [{{count}}]",
-    "mappedTaskInstances_other": "Экземпляры задач [{{count}}]",
+    "mappedTaskInstances_other": "Экземпляров задач [{{count}}]",
     "overview": "Обзор",
     "renderedTemplates": "Отрендеренные шаблоны",
     "requiredActions": "Необходимые действия",
     "runs": "Запуски",
+    "storage": "Хранилище",
     "taskInstances": "Экземпляры задач",
+    "taskStateStore": "Хранилище состояния задач",
     "tasks": "Задачи",
     "xcom": "XCom"
   },
   "taskGroups": {
     "collapseAll": "Свернуть все группы задач",
     "expandAll": "Развернуть все группы задач"
+  },
+  "taskStateStore": {
+    "add": "Добавить хранилище состояния задач",
+    "clearAll": {
+      "resource": "всё хранилище состояния задач",
+      "title": "Очистить всё хранилище состояния задач",
+      "warning": "Всё хранилище состояния задач будет очищено. Задачи, 
использующие это хранилище для отслеживания внешней работы, не смогут 
возобновиться без повторного запуска с нуля."
+    },
+    "delete": "Удалить хранилище состояния задач",
+    "deleteWarning": "Задача потеряет эту сохранённую память. Если задача 
использует этот ключ для отслеживания внешней работы (например, ID внешнего 
задания), она не сможет её возобновить.",
+    "edit": "Редактировать хранилище состояния задач",
+    "emptyStore": "Хранилище состояния задач хранит значения, сохраняющиеся 
между повторными попытками. Воркеры могут записывать в хранилище состояния 
задач через Task SDK.",
+    "expiresAt": {
+      "column": "Истекает",
+      "custom": "Пользовательский",
+      "default": "По умолчанию ({{interval}})",
+      "label": "Срок действия",
+      "never": "Никогда"
+    },
+    "title": "Хранилище состояния задач"
   }
 }
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/ru/dags.json 
b/airflow-core/src/airflow/ui/public/i18n/locales/ru/dags.json
index 3f5757f7822..cb97a13e294 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/ru/dags.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/ru/dags.json
@@ -3,22 +3,24 @@
   "dagActions": {
     "delete": {
       "button": "Удалить Dag",
-      "warning": "Это удалит все метаданные, связанные с Dag-ом, включая 
Запуски и Задачи."
+      "warning": "Это удалит все метаданные, связанные с Dag-ом, включая 
запуски и задачи."
     }
   },
-  "favoriteDag": "Избранный Dag",
+  "favoriteDag": "Добавить Dag в избранное",
   "filters": {
     "allRunTypes": "Все типы запусков",
     "allStates": "Все состояния",
+    "anyRunState": "Любой запуск",
     "favorite": {
       "all": "Все",
-      "favorite": "Избранное",
-      "unfavorite": "Удалить из избранного"
+      "favorite": "Избранные",
+      "unfavorite": "Не избранные"
     },
+    "lastRunState": "Последний запуск",
     "paused": {
-      "active": "Активный",
+      "active": "Активные",
       "all": "Все",
-      "paused": "Приостановлен"
+      "paused": "Приостановленные"
     },
     "runIdPatternFilter": "Поиск запусков Dag-ов"
   },
@@ -34,6 +36,11 @@
       "error": "Не удалось очистить {{type}}",
       "title": "Очистить {{type}}"
     },
+    "clearAllMapped": {
+      "button": "Очистить все задачи с маппингом",
+      "buttonTooltip": "Нажмите SHIFT + C, чтобы очистить все экземпляры задач 
с маппингом",
+      "title": "Очистить все экземпляры задач с маппингом"
+    },
     "confirmationDialog": {
       "description": "Задача в настоящее время находится в состоянии 
{{state}}, запущенном пользователем {{user}} в {{time}}. \nПользователь не 
может очистить эту задачу, пока она не завершится, или пока другой пользователь 
не снимет отметку с опции \"Предотвратить повторный запуск, если задача 
выполняется\" в диалоге очистки задачи.",
       "title": "Невозможно очистить экземпляр задачи"
@@ -74,22 +81,22 @@
   "search": {
     "advanced": "Расширенный поиск",
     "clear": "Очистить поиск",
-    "dags": "Поиск Dagов",
+    "dags": "Поиск Dag-ов",
     "hotkey": "+ K",
     "tasks": "Поиск задач"
   },
   "sort": {
     "displayName": {
-      "asc": "Сортировать по имени (А-Z)",
-      "desc": "Сортировать по имени (Z-А)"
+      "asc": "Сортировать по имени (A-Z)",
+      "desc": "Сортировать по имени (Z-A)"
     },
     "lastRunStartDate": {
       "asc": "Сортировать по дате начала последнего запуска (по возрастанию 
даты)",
       "desc": "Сортировать по дате начала последнего запуска (по убыванию 
даты)"
     },
     "lastRunState": {
-      "asc": "Сортировать по состоянию последнего запуска (А-Z)",
-      "desc": "Сортировать по состоянию последнего запуска (Z-А)"
+      "asc": "Сортировать по состоянию последнего запуска (A-Z)",
+      "desc": "Сортировать по состоянию последнего запуска (Z-A)"
     },
     "nextDagRun": {
       "asc": "Сортировать по следующему запуску Dag (по возрастанию даты)",
@@ -97,5 +104,5 @@
     },
     "placeholder": "Сортировать по"
   },
-  "unfavoriteDag": "Удалить из избранного Dag"
+  "unfavoriteDag": "Удалить Dag из избранного"
 }
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/ru/dashboard.json 
b/airflow-core/src/airflow/ui/public/i18n/locales/ru/dashboard.json
index d2ef60c293c..bde2f729a97 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/ru/dashboard.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/ru/dashboard.json
@@ -1,6 +1,29 @@
 {
+  "alerts": {
+    "seeLessContext": "Свернуть",
+    "seeMoreContext": "Подробнее",
+    "showMoreAlerts_few": "+ ещё {{count}} оповещения",
+    "showMoreAlerts_many": "+ ещё {{count}} оповещений",
+    "showMoreAlerts_one": "+ ещё {{count}} оповещение",
+    "showMoreAlerts_other": "+ ещё {{count}} оповещений"
+  },
+  "deadlines": {
+    "pending": {
+      "empty": "Нет предстоящих крайних сроков",
+      "title": "Предстоящие"
+    },
+    "recentlyMissed": {
+      "empty": "Нет пропущенных крайних сроков",
+      "title": "Пропущенные крайние сроки"
+    },
+    "showMore": "Показать больше",
+    "title": "Крайние сроки"
+  },
+  "deferredSlotsNotCounted": "Отложенные не учтены в слотах: {{count}}",
+  "deferredSlotsNotCountedTooltip": "Отложенные задачи, показанные на полосе, 
учитываются в слотах пула. Отложенные задачи под полосой относятся к пулам, 
которые не учитывают отложенные задачи в слотах.",
   "favorite": {
     "favoriteDags_few": "Первые {{count}} избранных Dag-а",
+    "favoriteDags_many": "Первые {{count}} избранных Dag-ов",
     "favoriteDags_one": "Первый {{count}} избранный Dag",
     "favoriteDags_other": "Первые {{count}} избранных Dag-ов",
     "noDagRuns": "Для этого Dag-а еще нет запусков.",
@@ -11,15 +34,17 @@
     "dagProcessor": "Процессор Dag-а",
     "health": "Состояние",
     "healthy": "Исправный",
-    "lastHeartbeat": "Последний hearbeat-сигнал",
+    "lastHeartbeat": "Последний heartbeat-сигнал",
     "metaDatabase": "Метабаза данных",
     "scheduler": "Планировщик",
     "status": "Статус",
-    "triggerer": "Триггер",
+    "triggerer": "Триггерер",
     "unhealthy": "Неисправный"
   },
   "history": "История",
   "importErrors": {
+    "dagImportError_few": "Ошибки импорта Dag-ов",
+    "dagImportError_many": "Ошибки импорта Dag-ов",
     "dagImportError_one": "Ошибка импорта Dag-ов",
     "dagImportError_other": "Ошибки импорта Dag-ов",
     "searchByFile": "Поиск по файлу",
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/ru/hitl.json 
b/airflow-core/src/airflow/ui/public/i18n/locales/ru/hitl.json
index 82c769dd267..41b11f3818d 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/ru/hitl.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/ru/hitl.json
@@ -8,11 +8,14 @@
       "received": "Просмотрено"
     }
   },
+  "requiredAction_few": "Необходимых действия",
+  "requiredAction_many": "Необходимых действий",
   "requiredAction_one": "Необходимое действие",
   "requiredAction_other": "Необходимые действия",
-  "requiredActionCount_few": "Необходимые действия ({{count}})",
+  "requiredActionCount_few": "Необходимых действия ({{count}})",
+  "requiredActionCount_many": "Необходимых действий ({{count}})",
   "requiredActionCount_one": "Необходимое действие ({{count}})",
-  "requiredActionCount_other": "Необходимые действия ({{count}})",
+  "requiredActionCount_other": "Необходимых действий ({{count}})",
   "requiredActionState": "Состояние необходимого действия",
   "response": {
     "created": "Ответ создан ",
@@ -25,6 +28,20 @@
     "success": "Ответ {{taskId}} успешен",
     "title": "Экземпляр задачи для человека - {{taskId}}"
   },
+  "review": {
+    "detail": {
+      "selectRequiredAction": "Выберите необходимое действие, чтобы увидеть 
детали"
+    },
+    "list": {
+      "completedRequiredActions": "Выполненные необходимые действия 
({{count}})",
+      "loadError": "Не удалось загрузить необходимые действия",
+      "loadingActions": "Загрузка необходимых действий...",
+      "pendingRequiredActions": "Ожидающие необходимые действия ({{count}})"
+    },
+    "openReviewDrawer": "Открыть панель проверки",
+    "pageLimitHint": "Здесь показаны только первые несколько действий. 
Используйте «$t(review.viewAll)», чтобы увидеть все.",
+    "viewAll": "Просмотреть все необходимые действия"
+  },
   "state": {
     "approvalReceived": "Одобрение получено",
     "approvalRequired": "Необходимо одобрение",
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/ru/tasks.json 
b/airflow-core/src/airflow/ui/public/i18n/locales/ru/tasks.json
index 8fcc714bcff..b430a02d11e 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/ru/tasks.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/ru/tasks.json
@@ -1,10 +1,10 @@
 {
-  "mapped": "Отображено",
-  "notMapped": "Не отображено",
+  "mapped": "С маппингом",
+  "notMapped": "Без маппинга",
   "retries": "Повторные попытки",
   "searchTasks": "Поиск задач",
-  "selectMapped": "Выбрать отображенные",
+  "selectMapped": "Выбрать по маппингу",
   "selectOperator": "Выбрать операторы",
-  "selectRetryValues": "Выбрать значения повторов",
+  "selectRetryValues": "Выбрать число повторных попыток",
   "selectTriggerRules": "Выбрать правила триггера"
 }
diff --git a/dev/breeze/src/airflow_breeze/commands/ui_commands.py 
b/dev/breeze/src/airflow_breeze/commands/ui_commands.py
index 1f17b4f7d00..2fd18b17aa8 100644
--- a/dev/breeze/src/airflow_breeze/commands/ui_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/ui_commands.py
@@ -89,7 +89,7 @@ PLURAL_SUFFIXES = {
     "nl": MOST_COMMON_PLURAL_SUFFIXES,
     "pl": ["_one", "_few", "_many", "_other"],
     "pt": ["_zero", "_one", "_many", "_other"],
-    "ru": ["_one", "_few", "_other"],
+    "ru": ["_one", "_few", "_many", "_other"],
     "th": ["_other"],
     "tr": MOST_COMMON_PLURAL_SUFFIXES,
     "zh-CN": ["_other"],

Reply via email to