Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Russian language #125

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions ui/public/locales/en/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
},
"dashboard": {
"title": "Dashboard",
"heading": "Overview of your video surveilance",
"heading": "Overview of your video surveillance",
"number_of_days": "Number of days",
"total_recordings": "Total recordings",
"connected": "Connected",
Expand Down Expand Up @@ -151,7 +151,7 @@
"stun_turn_description_webrtc": "Forward h264 stream through MQTT",
"stun_turn_transcode": "Transcode stream",
"stun_turn_description_transcode": "Convert stream to a lower resolution",
"stun_turn_downscale": "Downscale resolution (in % or original resolution)",
"stun_turn_downscale": "Downscale resolution (in % of original resolution)",
"mqtt": "MQTT",
"description_mqtt": "A MQTT broker is used to communicate from",
"description2_mqtt": "to the Kerberos Agent, to achieve for example livestreaming or ONVIF (PTZ) capabilities.",
Expand Down
224 changes: 224 additions & 0 deletions ui/public/locales/ru/translation.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,224 @@
{
"breadcrumb": {
"watch_recordings": "Смотреть записи",
"configure": "Настроить"
},
"buttons": {
"save": "Сохранить",
"verify_connection": "Проверить подключение"
},
"navigation": {
"profile": "Профиль",
"admin": "admin",
"management": "Управление",
"dashboard": "Панель",
"recordings": "Записи",
"settings": "Настройки",
"help_support": "Помощь & Поддержка",
"swagger": "Swagger API",
"documentation": "Документация",
"ui_library": "UI Библиотека",
"layout": "Язык & Макет ",
"choose_language": "Выбрать язык"
},
"dashboard": {
"title": "Панель",
"heading": "Обзор системы видеонаблюдения",
"number_of_days": "Количество дней",
"total_recordings": "Всего записей",
"connected": "Подключён",
"not_connected": "Не подключён",
"offline_mode": "Оффлайн режим",
"latest_events": "Последние события",
"configure_connection": "Настроить подключение",
"no_events": "Нет событий",
"no_events_description": "Записи не найдены, убедитесь, что ваш Kerberos Agent правильно настроен.",
"motion_detected": "Обнаружено движение",
"live_view": "Прямая трансляция",
"loading_live_view": "Загрузка трансляции",
"loading_live_view_description": "Подождите, мы загружаем сюда изображение в реальном времени. Если вы не настроили подключение камеры, обновите его на страницах настроек.",
"time": "Время",
"description": "Описание",
"name": "Название"
},
"recordings": {
"title": "Записи",
"heading": "Все ваши записи в одном месте",
"search_media": "Поиск записи"
},
"settings": {
"title": "Настройки",
"heading": "Обзор настроек камеры и агента",
"submenu": {
"all": "Все",
"overview": "Обзор",
"camera": "Камера",
"recording": "Запись",
"streaming": "Потоковое вещание",
"conditions": "Условия",
"persistence": "Хранилище"
},
"info": {
"kerberos_hub_demo": "Посмотрите на демо, чтобы увидеть Kerberos Hub в действии!",
"configuration_updated_success": "Настройки успешно обновлены.",
"configuration_updated_error": "При сохранении что-то пошло не так.",
"verify_hub": "Проверка настроек Kerberos Hub.",
"verify_hub_success": "Настройки Kerberos Hub успешно проверены.",
"verify_hub_error": "Что-то пошло не так при проверке концентратора Kerberos Hub",
"verify_persistence": "Проверка настроек хранилища.",
"verify_persistence_success": "Настройки хранилища успешно проверены.",
"verify_persistence_error": "Что-то пошло не так при проверке хранилища",
"verify_camera": "Проверка настроек камеры.",
"verify_camera_success": "Настройки камеры успешно проверены.",
"verify_camera_error": "Что-то пошло не так при проверке настроек камеры",
"verify_onvif": "Проверка настроек ONVIF.",
"verify_onvif_success": "Настройки ONVIF успешно проверены.",
"verify_onvif_error": "Что-то пошло не так при проверке настроек ONVIF"
},
"overview": {
"general": "Главная",
"description_general": "Общие настройки Kerberos Agent",
"key": "Ключ",
"camera_name": "Название камеры",
"timezone": "Часовой пояс",
"select_timezone": "Выберите часовой пояс",
"advanced_configuration": "Расширенные настройки",
"description_advanced_configuration": "Расширенные настройки для включения или отключения определенных частей Kerberos Agent",
"offline_mode": "Автономный режим",
"description_offline_mode": "Отключить весь исходящий трафик",
"encryption": "Шифрование",
"description_encryption": "Включите шифрование для всего исходящего трафика. MQTT-сообщения и/или записи будут зашифрованы с использованием AES-256. Для подписи используется закрытый ключ.",
"encryption_enabled": "Включить шифрование MQTT",
"description_encryption_enabled": "Включает шифрование для всех сообщений MQTT.",
"encryption_recordings_enabled": "Включить шифрование записей",
"description_encryption_recordings_enabled": "Включает шифрование для всех записей.",
"encryption_fingerprint": "Отпечаток",
"encryption_privatekey": "Закрытый ключ",
"encryption_symmetrickey": "Симметричный ключ"
},
"camera": {
"camera": "Камера",
"description_camera": "Настройки камеры необходимы для установки соединения с выбранной камерой.",
"only_h264": "В настоящее время поддерживаются только потоки H264 RTSP.",
"rtsp_url": "Адрес основного потока RTSP",
"rtsp_h264": "Подключение к камере по протоколу H264 RTSP.",
"sub_rtsp_url": "Адрес дополнительного потока RTSP (используется для прямой трансляции)",
"sub_rtsp_h264": "Дополнительное RTSP-соединение с низким разрешением камеры.",
"onvif": "ONVIF",
"description_onvif": "Учетные данные для связи по протоколу ONVIF. Они используются для PTZ или других возможностей, предоставляемых камерой.",
"onvif_xaddr": "ONVIF xaddr",
"onvif_username": "ONVIF пользователь",
"onvif_password": "ONVIF пароль",
"verify_connection": "Проверка основного соединения",
"verify_sub_connection": "Проверка дополнительного подключения"
},
"recording": {
"recording": "Запись",
"description_recording": "Укажите, как вы хотите вести запись. Непрерывная круглосуточная запись или запись по движению.",
"continuous_recording": "Непрерывная запись",
"description_continuous_recording": "Осуществлять 24/7 запись или запись по движению.",
"max_duration": "максимальная продолжительность видео (секунд)",
"description_max_duration": "Максимальная продолжительность записи.",
"pre_recording": "Предзапись (секунд)",
"description_pre_recording": "Секунд до наступления события.",
"post_recording": "Записывать после (секунд)",
"description_post_recording": "Секунд после наступления события.",
"threshold": "Уровень срабатывания записи (пикселей)",
"description_threshold": "Количество пикселей, измененных для записи",
"autoclean": "Автоочистка",
"description_autoclean": "Укажите, может ли Kerberos Agent очищать записи при достижении определенного объема памяти (МБ). При этом по достижении указанной емкости будут удаляться самые старые записи.",
"autoclean_enable": "Включить автоматическую очистку",
"autoclean_description_enable": "При достижении емкости удаляется самая старая запись.",
"autoclean_max_directory_size": "Максимальный размер каталога (МБ)",
"autoclean_description_max_directory_size": "Максимальное количество хранимых мегабайт записей.",
"fragmentedrecordings": "Фрагментированные записи",
"description_fragmentedrecordings": "Когда записи фрагментированы, они подходят для HLS-потока. При включении контейнер MP4 будет выглядеть несколько иначе.",
"fragmentedrecordings_enable": "Включить фрагментацию",
"fragmentedrecordings_description_enable": "Фрагментированные записи необходимы для HLS.",
"fragmentedrecordings_duration": "продолжительность фрагмента",
"fragmentedrecordings_description_duration": "Продолжительность одного фрагмента."
},
"streaming": {
"stun_turn": "STUN/TURN для WebRTC",
"description_stun_turn": "Для организации трансляций в полном разрешении мы используем технологию WebRTC. Одной из ключевых возможностей является функция ICE-candidate, которая позволяет обходить NAT, используя концепции STUN/TURN.",
"stun_server": "STUN сервер",
"turn_server": "TURN сервер",
"turn_username": "Имя пользователя",
"turn_password": "Пароль",
"stun_turn_forward": "Переадресация и транскодирование",
"stun_turn_description_forward": "Оптимизация и усовершенствование связи TURN/STUN.",
"stun_turn_webrtc": "Переадресация на WebRTC-брокера",
"stun_turn_description_webrtc": "Передача потока h264 через MQTT",
"stun_turn_transcode": "Транскодирование потока",
"stun_turn_description_transcode": "Преобразование потока в меньшее разрешение",
"stun_turn_downscale": "Уменьшение разрешения (в % от исходного разрешения)",
"mqtt": "MQTT",
"description_mqtt": "Брокер MQTT используется для обмена данными с",
"description2_mqtt": "к Kerberos Agent, чтобы, например, получить возможность трансляции видео или ONVIF (PTZ).",
"mqtt_brokeruri": "Адрес брокера",
"mqtt_username": "Имя пользователя",
"mqtt_password": "Пароль"
},
"conditions": {
"timeofinterest": "Время интереса",
"description_timeofinterest": "Производить запись только в определенные временные интервалы (в зависимости от часового пояса).",
"timeofinterest_enabled": "Включено",
"timeofinterest_description_enabled": "Если эта функция включена, то можно указать временные окна",
"sunday": "Воскресенье",
"monday": "Понедельник",
"tuesday": "Вторник",
"wednesday": "Среда",
"thursday": "Четверг",
"friday": "Пятница",
"saturday": "Суббота",
"externalcondition": "Внешнее условия",
"description_externalcondition": "В зависимости от внешнего веб-сервиса запись может быть включена или отключена.",
"regionofinterest": "Область интереса",
"description_regionofinterest": "Если задать одну или несколько областей, то движение будет отслеживаться только в заданных областях."
},
"persistence": {
"kerberoshub": "Kerberos Hub",
"description_kerberoshub": "Kerberos Agent'ы могут отправлять heartbeat сообщения в центральный",
"description2_kerberoshub": "узел. Heartbeat и другая необходимая информация синхронизируются с Kerberos Hub для отображения информации о видеоландшафте в реальном времени.",
"persistence": "Хранилище",
"saasoffering": "Kerberos Hub (SAAS предложение)",
"description_persistence": "Возможность хранения записей - это начало всего. Вы можете выбрать один из наших вариантов",
"description2_persistence": ", или стороннего провайдера",
"select_persistence": "Выберите хранилище",
"kerberoshub_proxyurl": "Kerberos Hub Proxy URL",
"kerberoshub_description_proxyurl": "Конечная точка Proxy для загрузки записей.",
"kerberoshub_apiurl": "Kerberos Hub API URL",
"kerberoshub_description_apiurl": "Конечная точка API для загрузки записей.",
"kerberoshub_publickey": "Открытый ключ",
"kerberoshub_description_publickey": "Открытый ключ, присвоенный вашей учетной записи Kerberos Hub.",
"kerberoshub_privatekey": "Закрытый ключ",
"kerberoshub_description_privatekey": "Закрытый ключ, присвоенный вашей учетной записи Kerberos Hub.",
"kerberoshub_site": "Сайт",
"kerberoshub_description_site": "Идентификатор сайта, к которому принадлежат агенты Kerberos (Agent) в Kerberos Hub.",
"kerberoshub_region": "Регион",
"kerberoshub_description_region": "Регион, в котором хранятся наши записи.",
"kerberoshub_bucket": "Bucket",
"kerberoshub_description_bucket": "Bucket, в котором мы храним наши записи.",
"kerberoshub_username": "Имя пользователя/каталог (должно соответствовать имени пользователя в Kerberos Hub)",
"kerberoshub_description_username": "Имя пользователя вашей учетной записи Kerberos Hub.",
"kerberosvault_apiurl": "Kerberos Vault API URL",
"kerberosvault_description_apiurl": "The Kerberos Vault API",
"kerberosvault_provider": "Провайдер",
"kerberosvault_description_provider": "Провайдер, которому будут отправляться ваши записи.",
"kerberosvault_directory": "Каталог (должен совпадать с именем пользователя в Kerberos Hub)",
"kerberosvault_description_directory": "Подкаталог, в котором будут храниться записи у вашего провайдера.",
"kerberosvault_accesskey": "Ключ доступа",
"kerberosvault_description_accesskey": "Ключ доступа вашей учетной записи Kerberos Vault.",
"kerberosvault_secretkey": "Секретный ключ",
"kerberosvault_description_secretkey": "Секретный ключ учетной записи Kerberos Vault.",
"dropbox_directory": "Каталог",
"dropbox_description_directory": "Подкаталог, в котором будут храниться записи в вашем аккаунте Dropbox.",
"dropbox_accesstoken": "Токен доступа",
"dropbox_description_accesstoken": "Токен доступа вашего аккаунта/приложения Dropbox.",
"verify_connection": "Проверка соединения",
"remove_after_upload": "Как только записи будут загружены на какой-либо сервер, вы, возможно, захотите удалить их из локального агента Kerberos.",
"remove_after_upload_description": "Удаление записей после их успешной загрузки.",
"remove_after_upload_enabled": "Включено удаление при выгрузке"
}
}
}
1 change: 1 addition & 0 deletions ui/src/components/LanguageSelect/LanguageSelect.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ const LanguageSelect = () => {
es: { label: 'Español', dir: 'ltr', active: false },
ja: { label: '日本', dir: 'rlt', active: false },
hi: { label: 'हिंदी', dir: 'ltr', active: false },
ru: { label: 'Русский', dir: 'ltr', active: false },
};

if (!languageMap[selected]) {
Expand Down
2 changes: 1 addition & 1 deletion ui/src/i18n.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ i18n
escapeValue: false,
},
load: 'languageOnly',
whitelist: ['de', 'en', 'nl', 'fr', 'pl', 'es', 'pt', 'ja'],
whitelist: ['de', 'en', 'nl', 'fr', 'pl', 'es', 'pt', 'ja', 'ru'],
});

export default i18n;
Loading