Add full russian translation

This localisation was performed by a native speaker well familiar with
server administration and passed internal reviews by other GAGAR>IN
administrators.

Signed-off-by: Pavel Zhukov <p.zhukov@gagar-in.com>
Signed-off-by: Andrei Tutolmin <a.tutolmin@gagar-in.com>
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Change-Id: Iea6a22351dcd999bd094e530229c7aee7e8e9629
diff --git a/src/locales/ru-RU.json b/src/locales/ru-RU.json
new file mode 100644
index 0000000..b33dbab
--- /dev/null
+++ b/src/locales/ru-RU.json
@@ -0,0 +1,813 @@
+{
+  "global": {
+    "action": {
+      "add": "Добавить",
+      "cancel": "Отменить",
+      "clearAll": "Очистить всё",
+      "confirm": "Подтвердить",
+      "copy": "Копировать",
+      "delete": "Удалить",
+      "disable": "Отключить",
+      "download": "Загрузить",
+      "edit": "Редактировать",
+      "enable": "Включить",
+      "export": "Экспортировать",
+      "filter": "Фильтровать",
+      "refresh": "Обновить",
+      "replace": "Переместить",
+      "reset": "Сбросить",
+      "save": "Сохранить",
+      "saveSettings": "Сохранить настройки",
+      "selected": "Выбрано"
+    },
+    "ariaLabel": {
+      "clearSearch": "Очистить поле поиска",
+      "hidePassword": "Скрыть пароль",
+      "scrollToTop": "Прокрутить наверх",
+      "showPassword": "Отобразить пароль. Примечание: это может раскрыть пароль третьим лицам",
+      "tooltip": "Подсказка",
+      "progressBar": "Индикатор загрузки страницы"
+    },
+    "calendar": {
+      "selectDate": "Выбрать дату",
+      "useCursorKeysToNavigateCalendarDates": "Используйте клавиши навигации для выбора даты"
+    },
+    "fileUpload": {
+      "browseText": "Выбрать файл",
+      "clearSelectedFile": "Очистить поле"
+    },
+    "form": {
+      "dateMustBeAfter": "Дата должна быть после %{date}",
+      "dateMustBeBefore": "Дата должна быть до %{date}",
+      "fieldRequired": "Обязательное поле",
+      "invalidFormat": "Некорректный формат",
+      "invalidValue": "Некорректное значение",
+      "lengthMustBeBetween": "Длина в символах должна быть от %{min} до %{max}",
+      "mustBeAtLeast": "Должно быть не менее %{value}",
+      "optional": "Не обязательно",
+      "passwordsDoNotMatch": "Пароли не совпадают",
+      "required": "Обязательно",
+      "search": "Поиск",
+      "selectAnOption": "Выберите опцию",
+      "valueMustBeBetween": "Значение должно быть между %{min} – %{max}"
+    },
+    "status": {
+      "copied": "Скопировано",
+      "disabled": "Выключено",
+      "enabled": "Включено",
+      "error": "Ошибка",
+      "notAvailable": "Недоступно",
+      "off": "Выкл.",
+      "on": "Вкл.",
+      "success": "Успешно",
+      "warning": "Предупреждение",
+      "informational": "Информация"
+    },
+    "table": {
+      "collapseTableRow": "Свернуть",
+      "emptyMessage": "Нет доступных объектов",
+      "emptySearchMessage": "Нет объектов, соответствующих поиску",
+      "expandTableRow": "Развернуть",
+      "fromDate": "Начиная с даты",
+      "items": "Всего объектов: %{count}",
+      "itemsPerPage": "Объектов на странице",
+      "selectAll": "Выбрать всё",
+      "selectItem": "Выбрать объект",
+      "selectedItems": "%{filterCount} из %{count} объектов",
+      "toDate": "Заканчивая датой",
+      "viewAll": "Смотреть всё"
+    },
+    "toast": {
+      "unAuthTitle": "Недоступно",
+      "unAuthDescription": "Действие недоступно из текущей учётной записи. Свяжитесь с Вашим системным администратором для проверки прав доступа."
+    }
+  },
+  "appHeader": {
+    "applicationHeader": "Заголовок веб-приложения",
+    "health": "Состояние",
+    "logOut": "Выход",
+    "power": "Питание",
+    "profileSettings": "@:appPageTitle.profileSettings",
+    "refresh": "Обновить",
+    "skipToContent": "Перейти к содержимому",
+    "titleHideNavigation": "Спрятать навигацию",
+    "titleShowNavigation": "Показать навигацию",
+    "titleProfile": "Показать меню профиля",
+    "titleRefresh": "Обновить данные веб-приложения"
+  },
+  "appNavigation": {
+    "accessControl": "Контроль доступа",
+    "clientSessions": "@:appPageTitle.clientSessions",
+    "configuration": "Конфигурация",
+    "control": "Управление",
+    "dateTimeSettings": "@:appPageTitle.dateTimeSettings",
+    "dumps": "@:appPageTitle.dumps",
+    "eventLogs": "@:appPageTitle.eventLogs",
+    "factoryReset": "@:appPageTitle.factoryReset",
+    "firmware": "@:appPageTitle.firmware",
+    "hardwareStatus": "@:appPageTitle.hardwareStatus",
+    "health": "Состояние",
+    "kvm": "@:appPageTitle.kvm",
+    "ldap": "@:appPageTitle.ldap",
+    "localUserManagement": "@:appPageTitle.localUserManagement",
+    "managePowerUsage": "@:appPageTitle.managePowerUsage",
+    "networkSettings": "@:appPageTitle.networkSettings",
+    "overview": "@:appPageTitle.overview",
+    "primaryNavigation": "Основная навигация",
+    "powerRestorePolicy": "@:appPageTitle.powerRestorePolicy",
+    "rebootBmc": "@:appPageTitle.rebootBmc",
+    "securitySettings": "@:appPageTitle.securitySettings",
+    "sensors": "@:appPageTitle.sensors",
+    "serialOverLan": "Консоль SOL",
+    "serverLed": "@:appPageTitle.serverLed",
+    "serverPowerOperations": "@:appPageTitle.serverPowerOperations",
+    "snmpSettings": "@:appPageTitle.snmpSettings",
+    "sslCertificates": "@:appPageTitle.sslCertificates",
+    "virtualMedia": "@:appPageTitle.virtualMedia"
+  },
+  "appPageTitle": {
+    "changePassword": "Изменить пароль",
+    "clientSessions": "Сессии клиентов",
+    "dateTimeSettings": "Настройка даты и времени",
+    "dumps": "Дампы",
+    "eventLogs": "Журнал событий",
+    "factoryReset": "Сброс до заводских настроек",
+    "firmware": "Встроенное ПО",
+    "hardwareStatus": "Статус оборудования",
+    "kvm": "KVM",
+    "ldap": "LDAP",
+    "localUserManagement": "Управление локальными пользователями",
+    "login": "Логин",
+    "managePowerUsage": "Управление энергопотреблением",
+    "networkSettings": "Настройки сети",
+    "overview": "Обзор",
+    "pageNotFound": "Страница не найдена",
+    "powerRestorePolicy": "Действие при восстановлении питания",
+    "profileSettings": "Настройки профиля",
+    "rebootBmc": "Перезапуск BMC",
+    "securitySettings": "Настройки безопасности",
+    "sensors": "Датчики",
+    "serialOverLan": "Консоль Serial over LAN (SOL)",
+    "serverLed": "Индикатор сервера",
+    "serverPowerOperations": "Управление питанием сервера",
+    "snmpSettings": "Настройки SNMP",
+    "sslCertificates": "SSL сертификаты",
+    "virtualMedia": "Виртуальные носители"
+  },
+  "pageChangePassword": {
+    "changePassword": "Изменить пароль",
+    "changePasswordAlertMessage": "Срок действия пароля истёк.",
+    "changePasswordError": "Произошла ошибка при изменении пароля.",
+    "confirmNewPassword": "Подтвердите новый пароль",
+    "goBack": "Назад",
+    "newPassword": "Новый пароль",
+    "username": "Имя пользователя"
+  },
+  "pageClientSessions": {
+    "action": {
+      "disconnect": "Отключить"
+    },
+    "modal": {
+      "disconnectTitle": "Отключить сессию| Отключить сессии",
+      "disconnectMessage": "Вы уверены что хотите отключить %{count} сессию? Действие не может быть отменено. | Вы уверены что хотите отключить все %{count} сессии? Действие не может быть отменено."
+    },
+    "table": {
+      "clientID": "Идентификатор клиента",
+      "username": "Имя пользователя",
+      "ipAddress": "IP адрес",
+      "searchSessions": "Поиск сессий"
+    },
+    "toast": {
+      "errorDelete": "Ошибка отключения %{count} сессии. | Ошибка отключения %{count} сессий.",
+      "successDelete": "Успешно отключена %{count} сессия. | Успешно отключены %{count} сессии."
+    }
+  },
+  "pageDateTimeSettings": {
+    "alert": {
+      "message": "Чтобы изменить формат отображения даты и времени (UTC или время браузера) на всех страницах, посетите ",
+      "link": "Настройки профиля"
+    },
+    "configureSettings": "Настройки",
+    "form": {
+      "date": "Дата",
+      "manual": "Ручное",
+      "time": {
+        "label": "24-х часовой формат",
+        "timezone": "@:pageDateTimeSettings.form.time.label (%{timezone})"
+      },
+      "ntpServers": {
+        "server1": "Сервер 1",
+        "server2": "Сервер 2",
+        "server3": "Сервер 3"
+      }
+    },
+    "toast": {
+      "errorSaveDateTimeSettings": "Ошибка сохранения настроек даты и времени.",
+      "successSaveDateTimeSettings": "Настройки даты и времени сохранены."
+    }
+  },
+  "pageDumps": {
+    "dumpsAvailableOnBmc": "Дампы доступные на BMC",
+    "initiateDump": "Создать дамп",
+    "form": {
+      "bmcDump": "Дамп BMC",
+      "initiateDump": "Создать дамп",
+      "selectDumpType": "Выбрать тип дампа",
+      "systemDump": "Системный дамп (прерывающий работу)",
+      "systemDumpInfo": "Системные дампы будут выгружены в операционную систему и не появятся в таблице ниже."
+    },
+    "modal": {
+      "deleteDump": "Удалить дамп | Удалить дампы",
+      "deleteDumpConfirmation": "Вы уверены, что хотите удалить %{count} дамп? Действие не может быть отменено. | Вы уверены, что хотите удалить все %{count} дампов? Это действие нельзя отменить.",
+      "initiateSystemDump": "Создать системный дамп",
+      "initiateSystemDumpMessage1": "Вы уверены?",
+      "initiateSystemDumpMessage2": "Вы не сможете создать любые другие дампы пока системный дамп в процессе создания.",
+      "initiateSystemDumpMessage3": "Запуск системного дампа аварийно прервёт работу всех активных системных разделов.",
+      "initiateSystemDumpMessage4": "Приступить к созданию дампа"
+    },
+    "table": {
+      "createdBy": "Создано пользователем",
+      "dateAndTime": "Дата и время",
+      "dumpType": "Тип дампа",
+      "id": "Идентификатор",
+      "searchDumps": "Поиск дампов",
+      "size": "Размер"
+    },
+    "toast": {
+      "errorDeleteDump": "Ошибка удаления %{count} дампа. | Ошибка удаления %{count} дампов.",
+      "errorStartBmcDump": "Ошибка старта нового BMC дампа.",
+      "errorStartSystemDump": "Ошибка старта нового системного дампа.",
+      "successDeleteDump": "Успешное удаление %{count} дампа. | Успешное удаление всех %{count} дампов.",
+      "successStartBmcDump": "Создание дампа займёт некоторое время. Обновите страницу, чтобы увидеть дамп в таблице",
+      "successStartBmcDumpTitle": "Начало создания дампа BMC",
+      "successStartSystemDump": "Создание дампа займёт некоторое время. Дамп будет выгружен в операционную систему.",
+      "successStartSystemDumpTitle": "Создание системного дампа запущено"
+    }
+  },
+  "pageEventLogs": {
+    "exportFilePrefix": "event_logs_",
+    "modal": {
+      "deleteTitle": "Удалить запись из журнала | Удалить записи из журнала",
+      "deleteMessage": "Вы уверены, что хотите удалить %{count} запись? Действие не может быть отменено. | Вы уверены, что хотите удалить %{count} записей? Действие не может быть отменено."
+    },
+    "table": {
+      "date": "Дата",
+      "description": "Описание",
+      "id": "Идентификатор",
+      "modifiedDate": "Дата последнего изменения",
+      "name": "Имя",
+      "searchLogs": "Поиск записей в журнале событий",
+      "severity": "Уровень",
+      "type": "Тип"
+    },
+    "toast": {
+      "errorDelete": "Ошибка удаления %{count} записи. | Ошибка уделения %{count} записей.",
+      "successDelete": "Успешное удаление %{count} записи. | Успешное удаление всех %{count} записей."
+    }
+  },
+  "pageFactoryReset": {
+    "description": "Эти функции не выполняют безопасное удаление любых конфиденциальных данных.",
+    "form": {
+      "resetOptionsLabel": "Сбросить настройки",
+      "resetBiosOptionLabel": "Сбросить настройки встроенного ПО сервера",
+      "resetBiosOptionHelperText": "Сброс настроек встроенного ПО сервера, в том числе: хранилища ключей, разделов NVRAM и конфигурации разделов.",
+      "resetToDefaultsOptionLabel": "Сброс настроек BMC и сервера",
+      "resetToDefaultsOptionHelperText": "В дополнение к настройкам сервера, эта опция сбрасывает настройки BMC, включая: все данные учётных записей BMC, все изменённые пароли, все политики, конфигурации LDAP, сетевые адреса и время суток."
+    },
+    "modal": {
+      "resetBiosTitle": "Сбросить настройки встроенного ПО сервера",
+      "resetBiosHeader": "Вы хотите сбросить настройки встроенного ПО сервера?",
+      "resetBiosSubmitText": "Сбросить настройки встроенного ПО сервера",
+      "resetBiosSettingsList": {
+        "item1": "Все ручные настройки будут удалены.",
+        "item2": "Конфигурация разделов и хранилище ключей могут быть восстановлены, если существует резервная копия."
+      },
+      "resetToDefaultsTitle": "Сбросить настройки BMC и сервера",
+      "resetToDefaultsHeader": "Вы хотите сбросить настройки BMC и сервера?",
+      "resetToDefaultsSubmitText": "Сбросить настройки BMC и сервера",
+      "resetToDefaultsSettingsList": {
+        "item1": "Все ручные настройки будут удалены.",
+        "item2": "Конфигурация разделов и хранилище ключей могут быть восстановлены если существует резервная копия.",
+        "item3": "Все записи журнала BMC будут удалены.",
+        "item4": "Все активные сессии на всех сетевых интерфейсах будут отключены.",
+        "item5": "Учётная запись BMC и настройки пароля будут восстановлены."
+      },
+      "resetWarningMessage": "Сброс настроек без выключения системы может привести к неустранимой ошибке.",
+      "resetWarningCheckLabel": "Продолжить без выключения системы"
+    },
+    "toast": {
+      "resetBiosSuccess": "Успешный сброс встроенного ПО сервера до заводских настроек.",
+      "resetBiosError": "Ошибка сброса встроенного ПО сервера до заводских настроек.",
+      "resetToDefaultsSuccess": "Успешный сброс BMC и встроенного ПО сервера до заводских настроек.",
+      "resetToDefaultsError": "Ошибка сброса BMC и встроенного ПО сервера до заводских настроек."
+    }
+  },
+  "pageFirmware": {
+    "cardActionSwitchToRunning": "Переключение между образами",
+    "cardBodyVersion": "Версия",
+    "cardTitleBackup": "Резервный образ",
+    "cardTitleRunning": "Рабочий образ",
+    "sectionTitleBmcCards": "BMC",
+    "sectionTitleBmcCardsCombined": "BMC и сервер",
+    "sectionTitleHostCards": "Хост",
+    "sectionTitleUpdateFirmware": "Обновить встроенное ПО",
+    "alert": {
+      "operationInProgress": "Выполняется операция управления питанием сервера.",
+      "serverMustBePoweredOffTo": "Сервер должен быть выключен, чтобы:",
+      "serverMustBePoweredOffToUpdateFirmware": "Сервер должен быть выключен, чтобы обновить встроенное ПО",
+      "switchRunningAndBackupImages": "Переключение между рабочим и резервным образом",
+      "updateFirmware": "Обновление встроенного ПО",
+      "viewServerPowerOperations": "Просмотр операций управления питанием сервера"
+    },
+    "form": {
+      "updateFirmware": {
+        "fileAddress": "Адрес файла",
+        "fileSource": "Источник файла",
+        "imageFile": "Файл образа",
+        "imageFileHelperText": "Принимаются только файлы формата .tar",
+        "startUpdate": "Начать обновление",
+        "tftpServer": "TFTP сервер",
+        "workstation": "Рабочая станция"
+      }
+    },
+    "modal": {
+      "switchImages": "Сменить образы",
+      "switchRunningImage": "Сменить рабочий образ",
+      "switchRunningImageInfo": "Для запуска резервного образа требуется перезагрузка BMC. Страница может не реагировать на запросы в течение этого времени.",
+      "switchRunningImageInfo2": "Вы уверены, что хотите переключиться на резервный образ (%{backup})?",
+      "updateFirmwareInfo": "BMC перезагрузится во время процесса обновления. Сервер не может быть включён, пока обновление не будет завершено.",
+      "updateFirmwareInfo2": "Будет создана резервная копия рабочего образа (%{running}). Текущий резервный образ будет удалён.",
+      "updateFirmwareInfo3": "Вы уверены что хотите приступить к обновлению?",
+      "updateFirmwareInfoDefault": "Новый образ будет загружен и активирован. После этого BMC или хост автоматически перезагрузится, чтобы запустить новый образ."
+    },
+    "toast": {
+      "errorSwitchImages": "Ошибка переключения между рабочим и резервным образом.",
+      "errorUpdateFirmware": "Ошибка при запуске обновления встроенного ПО.",
+      "rebootStarted": "Сервер перезагружается",
+      "rebootStartedMessage": "Сервер перезапускается с использованием резервного образа.",
+      "updateStarted": "Обновление выполняется",
+      "updateStartedMessage": "Дождитесь уведомления об обновлении встроенного ПО, прежде чем вносить какие-либо изменения.",
+      "verifySwitch": "Проверка переключения",
+      "verifySwitchMessage": "Обновите страницу для проверки переключения рабочего и резервного образа.",
+      "verifyUpdate": "Проверка обновления",
+      "verifyUpdateMessage": "Обновите страницу для проверки, что обновление встроенного ПО прошло успешно"
+    }
+  },
+  "pageHardwareStatus": {
+    "dimmSlot": "Слоты DIMM",
+    "fans": "Вентиляторы",
+    "powerSupplies": "Источники питания",
+    "bmcManager": "BMC",
+    "chassis": "Шасси",
+    "processors": "Процессоры",
+    "system": "Система",
+    "table": {
+      "assetTag": "Метка",
+      "chassisType": "Тип шасси",
+      "connectTypesSupported": "Поддерживаемые типы подключений",
+      "description": "Описание",
+      "efficiencyPercent": "Процент эффективности",
+      "firmwareVersion": "Версия встроенного ПО",
+      "graphicalConsole": "Графическая консоль",
+      "health": "Состояние",
+      "id": "Идентификатор",
+      "indicatorLed": "Индикатор",
+      "instructionSet": "Набор инструкций",
+      "manufacturer": "Производитель",
+      "maxConcurrentSessions": "Максимальное количество одновременных сессий",
+      "model": "Модель",
+      "name": "Имя",
+      "partNumber": "Шифр компонента",
+      "powerInputWatts": "Входная мощность, Ватт",
+      "powerState": "Состояние питания",
+      "processorArchitecture": "Архитектура",
+      "processorType": "Тип процессора",
+      "serialConsole": "Последовательная консоль",
+      "serialNumber": "Серийный номер",
+      "serviceEnabled": "Включённые сервисы",
+      "serviceEntryPointUuid": "UUID точки входа сервиса",
+      "statusHealthRollup": "Статус (Сводное состояние)",
+      "statusState": "Статус (Состояние)",
+      "systemType": "Тип системы",
+      "totalCores": "Количество ядер",
+      "uuid": "UUID"
+    }
+  },
+  "pageKvm": {
+    "openNewTab": "Открыть окно в новой вкладке",
+    "subTitle": "Доступ к KVM консоли",
+    "buttonCtrlAltDelete": "Послать Ctrl+Alt+Delete",
+    "status": "Статус",
+    "connected": "Подключено",
+    "connecting": "Подключение",
+    "disconnected": "Отключено"
+  },
+  "pageLdap": {
+    "pageDescription": "Настройка параметров LDAP и управление группами",
+    "roleGroups": "Группы",
+    "settings": "Настройки",
+    "addRoleGroup": "Добавить группу",
+    "ariaLabel": {
+      "ldapSettings": "Настройки LDAP"
+    },
+    "form": {
+      "baseDn": "Базовый DN",
+      "bindDn": "Привязать DN",
+      "bindPassword": "Привязать пароль",
+      "caCertificateValidUntil": "Сертификат СА действителен до",
+      "groupIdAttribute": "Атрибут Group ID",
+      "ldapAuthentication": "Аутентификация LDAP",
+      "ldapCertificateValidUntil": "Сертификат LDAP действителен до",
+      "manageSslCertificates": "Управление SSL сертификатами",
+      "secureLdapHelper": "Сертификат CA и сертификат LDAP необходимы для включения защищённого LDAP",
+      "secureLdapUsingSsl": "Использовать SSL для подключения к LDAP",
+      "serverUri": "URI сервера",
+      "serverUriTooltip": "Включение защищённого LDAP изменяет схему URI на ldaps",
+      "serviceType": "Тип сервиса",
+      "userIdAttribute": "Атрибут User ID"
+    },
+    "modal": {
+      "addNewRoleGroup": "Добавить новую группу",
+      "deleteRoleGroupBatchConfirmMessage": "Вы уверены, что хотите удалить %{count} группу? Это действие нельзя отменить. | Вы уверены, что хотите удалить %{count} группы? Это действие нельзя отменить.",
+      "deleteRoleGroupConfirmMessage": "Вы уверены, что хотите удалить '%{groupName}'? Это действие нельзя отменить.",
+      "deleteRoleGroup": "Удалить группу",
+      "editRoleGroup": "Редактировать группу",
+      "groupName": "Имя группы",
+      "groupPrivilege": "Привилегии группы"
+    },
+    "tableRoleGroups": {
+      "alertContent": "LDAP-аутентификация должна быть включена для изменения групп.",
+      "groupName": "Имя группы",
+      "groupPrivilege": "Привилегии группы"
+    },
+    "toast": {
+      "errorAddRoleGroup": "Ошибка добавления группы.",
+      "errorDeleteRoleGroup": "Ошибка удаления группы. | Ошибка удаления групп.",
+      "errorSaveActiveDirectorySettings": "Ошибка сохранения настроек Active Directory.",
+      "errorSaveLdapSettings": "Ошибка сохранения настроек Open LDAP.",
+      "errorSaveRoleGroup": "Ошибка сохранения группы.",
+      "successAddRoleGroup": "Успешное добавление группы '%{groupName}'.",
+      "successDeleteRoleGroup": "Успешное удаление группы. | Успешное удаление групп.",
+      "successSaveActiveDirectorySettings": "Успешное сохранение настроек Active Directory.",
+      "successSaveLdapSettings": "Успешное сохранение настроек Open LDAP.",
+      "successSaveRoleGroup": "Успешное сохранение группы '%{groupName}'."
+    }
+  },
+  "pageLocalUserManagement": {
+    "accountPolicySettings": "Настройки политики учётной записи",
+    "addUser": "Добавить пользователя",
+    "deleteUser": "Удалить пользователя | Удалить пользователей",
+    "editUser": "Редактировать пользователя",
+    "viewPrivilegeRoleDescriptions": "Просмотр описаний привилегий ролей",
+    "modal": {
+      "accountLocked": "Учётная запись заблокирована",
+      "accountStatus": "Статус учётной записи",
+      "automaticAfterTimeout": "Автоматически после истечения таймаута",
+      "batchDeleteConfirmMessage": "Вы уверены, что хотите удалить %{count} пользователя? Это действие нельзя отменить. | Вы уверены, что хотите удалить %{count} пользователей? Это действие нельзя отменить.",
+      "cannotStartWithANumber": "Не может начинаться с цифры",
+      "clickSaveToUnlockAccount": "Нажмите \"Сохранить\" для разблокировки учётной записи",
+      "confirmUserPassword": "Подтвердите пароль пользователя",
+      "deleteConfirmMessage": "Вы уверены, что хотите удалить пользователя '%{user}'? Это действие нельзя отменить.",
+      "manual": "Ручное",
+      "maxFailedLoginAttempts": "Максимальное количество попыток входа",
+      "noSpecialCharactersExceptUnderscore": "Никаких специальных символов, кроме знака подчёркивания",
+      "passwordMustBeBetween": "Пароль должен быть от %{min} до %{max} символов",
+      "passwordsDoNotMatch": "Пароли не совпадают",
+      "privilege": "Привилегии",
+      "timeoutDurationSeconds": "Продолжительность таймаута (в секундах)",
+      "unlock": "Разблокировать",
+      "username": "Имя пользователя",
+      "userPassword": "Пароль пользователя",
+      "userUnlockMethod": "Метод разблокировки пользователя"
+    },
+    "table": {
+      "privilege": "Привилегии",
+      "status": "Статус",
+      "username": "Имя пользователя"
+    },
+    "tableRoles": {
+      "configureComponentsManagedByThisService": "Настройка компонентов, управляемых этой службой",
+      "configureManagerResources": "Конфигурирование ресурсов менеджера",
+      "configureUsersAndTheirAccounts": "Конфигурирование пользователей и их учётных записей",
+      "logInToTheServiceAndReadResources": "Вход в сервис и доступ к ресурсам на чтение",
+      "updatePasswordForCurrentUserAccount": "Обновление пароля для текущей учётной записи пользователя"
+    },
+    "toast": {
+      "errorBatchDelete": "Ошибка удаления %{count} пользователя. | Ошибка удаления %{count} пользователей.",
+      "errorBatchDisable": "Ошибка отключения %{count} пользователя. | Ошибка отключения %{count} пользователей.",
+      "errorBatchEnable": "Ошибка включения %{count} пользователя. | Ошибка включения %{count} пользователей.",
+      "errorCreateUser": "Ошибка создания пользователя '%{username}'.",
+      "errorDeleteUser": "Ошибка удаления пользователя '%{username}'.",
+      "errorLoadAccountSettings": "Ошибка загрузки настроек учётной записи",
+      "errorLoadUsers": "Ошибка загрузки учётных записей пользователей.",
+      "errorSaveSettings": "Ошибка сохранения настроек учётной записи.",
+      "errorUpdateUser": "Ошибка обновления учётной записи пользователя '%{username}'.",
+      "successBatchDelete": "Успешное удаление %{count} пользователя. | Успешное удаление %{count} пользователей.",
+      "successBatchDisable": "Успешное отключение %{count} пользователя. | Успешное отключение %{count} пользователей.",
+      "successBatchEnable": "Успешное включение %{count} пользователя. | Успешное включение %{count} пользователей.",
+      "successCreateUser": "Пользователь создан '%{username}'.",
+      "successDeleteUser": "Пользователь удален '%{username}'.",
+      "successSaveSettings": "Успешное сохранение настроек учётной записи.",
+      "successUpdateUser": "Пользователь '%{username}' обновлён."
+    }
+  },
+  "pageLogin": {
+    "language": "Язык",
+    "logIn": "Войти",
+    "password": "Пароль",
+    "username": "Имя пользователя",
+    "alert": {
+      "message": "Неверное имя пользователя или пароль"
+    }
+  },
+  "pageOverview": {
+    "bmcInformation": "Информация о BMC",
+    "firmwareVersion": "Версия встроенного ПО",
+    "highPriorityEvents": "События высокого приоритета",
+    "manufacturer": "Производитель",
+    "model": "Модель",
+    "networkInformation": "Сетевые интерфейсы",
+    "powerCap": "Ограничение мощности",
+    "powerConsumption": "Потребление питания",
+    "serialNumber": "Серийный номер",
+    "serverInformation": "Информация о сервере",
+    "events": {
+      "date": "Дата",
+      "description": "Описание",
+      "id": "Идентификатор",
+      "noHighEventsMsg": "В настоящий момент отсутствуют события высокого приоритета.",
+      "severity": "Уровень",
+      "type": "Тип",
+      "viewAllButton": "Посмотреть все записи журнала событий"
+    },
+    "network": {
+      "hostname": "Имя хоста",
+      "ipAddress": "IP адрес",
+      "macAddress": "MAC адрес"
+    },
+    "quicklinks": {
+      "bmcTime": "Время BMC",
+      "editNetworkSettings": "Редактировать настройки сети",
+      "serverLed": "Индикатор сервера",
+      "solConsole": "@:appNavigation.serialOverLan"
+    }
+  },
+  "pageProfileSettings": {
+    "browserOffset": "Часовой пояс в браузере (%{timezone})",
+    "changePassword": "Изменить пароль",
+    "confirmPassword": "Подтвердите новый пароль",
+    "defaultUTC": "По умолчанию (UTC)",
+    "newPassword": "Новый пароль",
+    "newPassLabelTextInfo": "Пароль должен быть от %{min} до %{max} символов",
+    "passwordsDoNotMatch": "Пароли не совпадают",
+    "profileInfoTitle": "Информация о профиле",
+    "timezone": "Часовой пояс",
+    "timezoneDisplay": "Выбор часового пояса для отображения",
+    "timezoneDisplayDesc": "Выберите, как будет отображаться время на всех страницах",
+    "username": "Имя пользователя",
+    "toast": {
+      "successSaveSettings": "Успешное сохранение настроек учётной записи."
+    }
+  },
+  "pageManagePowerUsage": {
+    "description": "Задайте порог мощности, чтобы ограничить потребление питания не превышающее заданное значение в Ваттах",
+    "powerCapLabel": "Значение порога мощности (в ваттах)",
+    "powerCapLabelTextInfo": " Значение должно быть между %{min} и %{max}",
+    "powerCapSettingData": "Применить ограничение мощности",
+    "powerCapSettingLabel": "Настройки порога электропитания",
+    "powerConsumption": "Текущее энергопотребление",
+    "serverPowCapSetting": "Настройки ограничения электропитания сервера"
+  },
+  "pageNetworkSettings": {
+    "dhcp": "DHCP",
+    "ipv4": "IPv4",
+    "ipv4Configuration": "Настройка IPv4",
+    "ipv4Helper": "IP адрес должен быть свободен, чтобы включить DHCP или статическую конфигурацию",
+    "interface": "Интерфейс",
+    "pageDescription": "Конфигурация сетевых интерфейсов BMC",
+    "static": "Статический",
+    "staticDns": "Статический DNS",
+    "system": "Система",
+    "form": {
+      "defaultGateway": "Шлюз по умолчанию",
+      "hostname": "Имя хоста",
+      "macAddress": "MAC адрес",
+      "networkInterface": "Сетевой интерфейс"
+    },
+    "table": {
+      "addDns": "Добавить DNS сервер",
+      "addStaticIpv4Address": "Добавить статический IP",
+      "deleteDns": "Удалить",
+      "deleteDHCPIpv4": "Удалить",
+      "deleteStaticIpv4": "Удалить",
+      "dhcpIpv4AddressRow": "DHCP IPv4 адрес",
+      "dhcpIpv4SubnetRow": "DHCP IPv4 подсеть",
+      "ipAddress": "IP адрес",
+      "staticDnsRow": "Статический DNS адрес",
+      "staticIpv4AddressRow": "Статический IPv4 адрес",
+      "staticIpv4SubnetRow": "Статическая IPv4 подсеть",
+      "subnet": "Маска подсети"
+    },
+    "toast": {
+      "errorSaveDhcpSettings": "Ошибка сохранения настроек DHCP.",
+      "errorSaveNetworkSettings": "Ошибка сохранения сетевых настроек.",
+      "successSaveNetworkSettings": "Сетевые настройки успешно сохранены."
+    }
+  },
+  "pagePageNotFound": {
+    "description": "Запрашиваемый ресурс не найден."
+  },
+  "pagePowerRestorePolicy": {
+    "currentPolicy": "Текущая политика",
+    "description": "Настройте политику питания, чтобы установить как система запускается после восстановления питания.",
+    "powerPoliciesLabel": "Действие при восстановлении электропитания",
+    "policies": {
+      "AlwaysOn": "Всегда включено",
+      "AlwaysOff": "Всегда выключено",
+      "LastState": "Последнее состояние"
+    },
+    "toast": {
+      "errorSaveSettings": "Ошибка сохранения настроек.",
+      "successSaveSettings": "Политика восстановления питания успешно сохранена."
+    }
+  },
+  "pageRebootBmc": {
+    "lastReboot": "Последний перезапуск BMC",
+    "rebootBmc": "Перезапустить BMC",
+    "rebootInformation": "При перезапуске BMC веб браузер не сможет соединиться с BMC в течение нескольких минут. Когда BMC будет доступен, Вам понадобится снова войти в систему.",
+    "modal": {
+      "confirmMessage": "Вы уверены, что хотите перезапустить BMC?",
+      "confirmTitle": "Подтвердить перезапуск BMC"
+    },
+    "toast": {
+      "errorRebootStart": "Ошибка перезапуска BMC.",
+      "successRebootStart": "Перезапуск BMC."
+    }
+  },
+  "pageSecuritySettings": {
+    "ipmi": "Сетевой IPMI (out-of-band IPMI)",
+    "ipmiDescription": "Разрешить удаленное управление платформой через IPMI. Такие иструменты, как ipmitool требуют включения этой функции.",
+    "networkServices": "Сетевые службы",
+    "ssh": "Консоль BMC (через SSH)",
+    "sshDescription": "Разрешить доступ к консольной сессии через SSH, через порт 22 на BMC.",
+    "modal": {
+      "disableMessage": {
+        "ipmi": "Вы уверены, что хотите отключить @:pageSecuritySettings.ipmi?",
+        "ssh": "Вы уверены, что хотите отключить @:pageSecuritySettings.ssh?"
+      },
+      "enableMessage": {
+        "ipmi": "Вы уверены, что хотите включить @:pageSecuritySettings.ipmi?",
+        "ssh": "Вы уверены, что хотите включить @:pageSecuritySettings.ssh?"
+      }
+    },
+    "toast": {
+      "errorIpmiDisabled": "Ошибка отключения настроек безопасности IPMI.",
+      "errorIpmiEnabled": "Ошибка включения настроек безопасности IPMI.",
+      "errorSshDisabled": "Ошибка отключения настроек безопасности SSH.",
+      "errorSshEnabled": "Ошибка включения настроек безопасности SSH.",
+      "successIpmiDisabled": "Успешное отключение настроек безопасности IPMI.",
+      "successIpmiEnabled": "Успешное включение настроек безопасности IPMI.",
+      "successSshDisabled": "Успешное отключение настроек безопасности SSH.",
+      "successSshEnabled": "Успешное включение настроек безопасности SSH."
+    }
+  },
+  "pageSensors": {
+    "exportFilePrefix": "sensors_",
+    "searchForSensors": "Поиск датчиков",
+    "table": {
+      "currentValue": "Текущее значение",
+      "lowerWarning": "Мин. значение",
+      "lowerCritical": "Мин. крит. значение",
+      "name": "Имя",
+      "status": "Статус",
+      "upperWarning": "Макс. значение",
+      "upperCritical": "Макс. крит. значение"
+    }
+  },
+  "pageSerialOverLan": {
+    "connected": "Подключено",
+    "disconnected": "Отключено",
+    "openNewTab": "Открыть в новом окне",
+    "status": "Статус",
+    "subTitle": "SOL консоль перенаправляет вывод последовательного порта сервера в это окно."
+  },
+  "pageServerLed": {
+    "serverLedSubTitle": "Индикатор сервера",
+    "serverLedTitle": "Управление индикатором",
+    "toast": {
+      "errorServerLedOff": "Ошибка выключения индикатора.",
+      "errorServerLedOn": "Ошибка включения индикатора.",
+      "successServerLedOff": "Индикатор успешно выключен.",
+      "successServerLedOn": "Индикатор успешно включён."
+    }
+  },
+  "pageServerPowerOperations": {
+    "currentStatus": "Текущий статус",
+    "hostOsBootSettings": "Настройки загрузки ОС сервера",
+    "hostStatus": "Статус сервера",
+    "immediateReboot": "Немедленно – сервер перезапустится без выключения ОС; может вызвать повреждение данных",
+    "immediateShutdown": "Немедленно - сервер выключится без выключения ОС; может вызвать повреждение данных",
+    "lastPowerOperation": "Последняя операция управления питанием сервера",
+    "oneTimeBootWarning": "Единовременное изменение порядка загрузки сервера. Последующие запуски сервера будут производиться в соответствии с установленным порядком загрузки.",
+    "operationInProgress": "Выполняется операция управления электропитанием сервера. Изменение настроек будет возможно после её окончания.",
+    "operations": "Действия",
+    "orderlyReboot": "По порядку – ОС выключается, затем сервер перезапускается",
+    "orderlyShutdown": "По порядку - ОС выключается, затем сервер выключается",
+    "powerOn": "Включить",
+    "reboot": "Перезапустить",
+    "rebootServer": "Перезапустить сервер",
+    "shutDown": "Выключить",
+    "shutdownServer": "Выключить сервер",
+    "bootSettings": {
+      "bootSettingsOverride": "Переопределение параметров загрузки сервера",
+      "enableOneTimeBoot": "Однократное переопределение",
+      "tpmRequiredPolicy": "Наличие и исправность TPM",
+      "tpmRequiredPolicyHelper": "При включении этой опции сервер загрузится только при наличии и исправной работе TPM."
+    },
+    "modal": {
+      "confirmRebootMessage": "Вы уверены, что хотите перезагрузить сервер?",
+      "confirmRebootTitle": "Перезагрузка сервера приведёт к разрыву соединения",
+      "confirmShutdownMessage": "Вы уверены, что хотите выключить сервер?",
+      "confirmShutdownTitle": "Выключение сервера приведёт к разрыву соединения"
+    },
+    "toast": {
+      "errorSaveSettings": "Ошибка сохранения настроек.",
+      "successSaveSettings": "Успешное сохранение настроек."
+    }
+  },
+  "pageSslCertificates": {
+    "addNewCertificate": "Добавить новый сертификат",
+    "caCertificate": "Сертификат CA",
+    "deleteCertificate": "Удалить сертификат",
+    "generateCsr": "Сгенерировать CSR",
+    "httpsCertificate": "Сертификат HTTPS",
+    "ldapCertificate": "Сертификат LDAP",
+    "replaceCertificate": "Заменить сертификат",
+    "alert": {
+      "certificateExpiredMessage": "%{certificate} истёк. Рассмотрите вопрос о замене его новым сертификатом.",
+      "certificateExpiringMessage": "%{certificate} скоро истекает. Рассмотрите вопрос о замене его новым сертификатом.",
+      "certificatesExpiredMessage": "Некоторые сертификаты истекли. Рассмотрите вопрос о замене их новыми сертификатами.",
+      "certificatesExpiringMessage": "Некоторые сертификаты истекают. Рассмотрите вопрос о замене их новыми сертификатами."
+    },
+    "modal": {
+      "alternateName": "Альтернативное имя",
+      "alternateNameHelperText": "Добавьте несколько альтернативных имён, разделённых пробелом",
+      "certificateFile": "Файл сертификата",
+      "certificateSigningRequest": "Запрос на подписание сертификата (CSR)",
+      "certificateType": "Тип сертификата",
+      "challengePassword": "Пароль",
+      "city": "Город",
+      "commonName": "Общее имя",
+      "companyName": "Название компании",
+      "companyUnit": "Подразделение компании",
+      "contactPerson": "Контактное лицо",
+      "country": "Страна",
+      "deleteConfirmMessage": "Вы уверены, что хотите удалить '%{certificate}' изданный %{issuedBy}? Это действие нельзя отменить.",
+      "duplicateAlternateName": "Дублировать альтернативное имя",
+      "emailAddress": "Email адрес",
+      "generateACertificateSigningRequest": "Сгенерировать запрос на подписание сертификата (CSR)",
+      "keyBitLength": "Длина ключа в битах",
+      "keyCurveId": "Идентификатор кривой ключа",
+      "keyPairAlgorithm": "Алгоритм ключевой пары",
+      "privateKey": "Приватный ключ",
+      "state": "Состояние"
+    },
+    "table": {
+      "certificate": "Сертификат",
+      "issuedBy": "Выпущен",
+      "issuedTo": "Выдан",
+      "validFrom": "Действителен начиная с",
+      "validUntil": "Действителен до"
+    },
+    "toast": {
+      "errorAddCertificate": "Ошибка добавления сертификата.",
+      "errorDeleteCertificate": "Ошибка удаления сертификата.",
+      "errorReplaceCertificate": "Ошибка замены сертификата.",
+      "successAddCertificate": "Успешное добавление %{certificate}.",
+      "successDeleteCertificate": "Успешное удаление %{certificate}.",
+      "successReplaceCertificate": "Успешная замена %{certificate}."
+    }
+  },
+  "pageVirtualMedia": {
+    "configureConnection": "Сконфигурировать соединение",
+    "defaultDeviceName": "Виртуальный носитель",
+    "start": "Старт",
+    "stop": "Стоп",
+    "virtualMediaSubTitleFirst": "Подключить образ с помощью веб браузера",
+    "virtualMediaSubTitleSecond": "Загрузить образ с внешнего сервера",
+    "modal": {
+      "password": "Пароль",
+      "serverUri": "URI Внешнего сервера",
+      "title": "Конфигурация Legacy режима",
+      "username": "Имя пользователя"
+    },
+    "toast": {
+      "errorMounting": "Ошибка монтирования",
+      "errorReadingFile": "Ошибка чтения файла. Закрытие подключения.",
+      "errorUnmounting": "Ошибка отмонтирования.",
+      "serverRunning": "Соединение установлено",
+      "serverClosedSuccessfully": "Соединение закрыто",
+      "serverClosedWithErrors": "Соединение разорвано"
+    }
+  }
+}
diff --git a/src/views/Login/Login.vue b/src/views/Login/Login.vue
index 1936cd4..fc67936 100644
--- a/src/views/Login/Login.vue
+++ b/src/views/Login/Login.vue
@@ -91,6 +91,10 @@
           value: 'es',
           text: 'Español',
         },
+        {
+          value: 'ru-RU',
+          text: 'Русский',
+        },
       ],
     };
   },