DUNGEONS-34: implement Webka local streaming app
Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
177
frontend/i18n/locales/ru.json
Normal file
177
frontend/i18n/locales/ru.json
Normal file
@@ -0,0 +1,177 @@
|
||||
{
|
||||
"nav": {
|
||||
"main": "Основная навигация",
|
||||
"host": "Студия",
|
||||
"watch": "Просмотр",
|
||||
"accounts": "Аккаунты",
|
||||
"settings": "Настройки"
|
||||
},
|
||||
"common": {
|
||||
"close": "Закрыть",
|
||||
"logout": "Выйти",
|
||||
"skip": "К содержимому",
|
||||
"working": "Подождите…",
|
||||
"loading": "Загрузка…",
|
||||
"cancel": "Отмена",
|
||||
"save": "Сохранить",
|
||||
"refresh": "Обновить"
|
||||
},
|
||||
"login": {
|
||||
"local": "Ваша сеть. Ваше пространство.",
|
||||
"headline": "Немного ближе.",
|
||||
"headlineAccent": "Где бы вы ни были.",
|
||||
"description": "Превратите устройство в окно прямого эфира. Делитесь камерой или экраном в своей локальной сети.",
|
||||
"privacy": "Без облака. Только связь.",
|
||||
"title": "С возвращением",
|
||||
"subtitle": "Войдите на этот сервер для просмотра.",
|
||||
"setupTitle": "Добро пожаловать домой",
|
||||
"setupDescription": "Создайте аккаунт администратора этого сервера.",
|
||||
"usernamePlaceholder": "Имя пользователя",
|
||||
"passwordPlaceholder": "Пароль",
|
||||
"setupToken": "Код первоначальной настройки",
|
||||
"tokenHint": "Введите код из файла setup-token, созданного локальным сервером.",
|
||||
"create": "Создать аккаунт",
|
||||
"signin": "Войти",
|
||||
"hostAccounts": "Аккаунты доступны только на этом сервере",
|
||||
"localUtility": "Локальные трансляции"
|
||||
},
|
||||
"host": {
|
||||
"eyebrow": "Ваше локальное пространство",
|
||||
"title": "Студия трансляций",
|
||||
"subtitle": "Окно в ваш мир. Всё под вашим контролем.",
|
||||
"start": "Начать эфир",
|
||||
"stop": "Остановить",
|
||||
"previewTitle": "Здесь начинается ваш эфир",
|
||||
"previewHint": "Выберите источник и начните эфир, когда будете готовы.",
|
||||
"enableCamera": "Включить предпросмотр",
|
||||
"private": "Приватный эфир",
|
||||
"broadcasting": "Эфир в вашей сети",
|
||||
"previewOnly": "Предпросмотр виден только вам",
|
||||
"audioOff": "Только видео · Без звука",
|
||||
"videoSource": "Источник видео",
|
||||
"switchAnytime": "Меняйте в любой момент",
|
||||
"rearHint": "Включите камеру, чтобы найти доступные объективы.",
|
||||
"uptime": "Время эфира",
|
||||
"viewers": "Зрители",
|
||||
"quality": "Качество передачи",
|
||||
"connectDevice": "Подключить устройство",
|
||||
"scanHint": "Отсканируйте код на другом устройстве.",
|
||||
"qrAlt": "QR-код адреса просмотра",
|
||||
"localAddress": "Локальный адрес",
|
||||
"copy": "Копировать адрес",
|
||||
"copied": "Адрес скопирован",
|
||||
"sameNetwork": "Подключитесь к той же Wi-Fi сети",
|
||||
"connected": "Подключённые зрители",
|
||||
"noViewers": "Пока здесь тихо",
|
||||
"inviteHint": "Поделитесь ссылкой с первым зрителем.",
|
||||
"kick": "Отключить",
|
||||
"manageAccess": "Управление доступом",
|
||||
"footer": "Локально по замыслу. Эфир остаётся в вашей сети."
|
||||
},
|
||||
"sources": {
|
||||
"front": "Передняя камера",
|
||||
"back": "Задняя камера",
|
||||
"screen": "Экран"
|
||||
},
|
||||
"stream": {
|
||||
"offline": "Не в эфире",
|
||||
"connecting": "Подключение",
|
||||
"reconnecting": "Переподключение",
|
||||
"waiting": "Ожидание эфира",
|
||||
"live": "В эфире"
|
||||
},
|
||||
"quality": {
|
||||
"auto": "Автоматически",
|
||||
"high": "Высокое · 4 Мбит/с",
|
||||
"low": "Низкое · 600 Кбит/с"
|
||||
},
|
||||
"watch": {
|
||||
"fullscreen": "Полноэкранный режим",
|
||||
"disconnect": "Отключиться",
|
||||
"reconnect": "Подключиться снова",
|
||||
"waitingTitle": "Готовы к началу эфира",
|
||||
"waitingHint": "Эфир ещё не начался. Видео появится здесь автоматически.",
|
||||
"connectingTitle": "Устанавливаем связь",
|
||||
"connectingHint": "Подключаемся к серверу в вашей локальной сети."
|
||||
},
|
||||
"accounts": {
|
||||
"eyebrow": "Кому открыт доступ",
|
||||
"title": "Аккаунты и безопасность",
|
||||
"subtitle": "Личное пространство с доступом на ваших условиях.",
|
||||
"add": "Добавить зрителя",
|
||||
"protected": "Каждое подключение — с разрешения",
|
||||
"protectedHint": "Вход обязателен. Пароли хешируются. Доступ можно отозвать в любой момент.",
|
||||
"localAccounts": "Локальные аккаунты",
|
||||
"account": "Аккаунт",
|
||||
"role": "Роль",
|
||||
"lastLogin": "Последний вход",
|
||||
"sessions": "Сеансы",
|
||||
"actions": "Действия",
|
||||
"you": "Вы",
|
||||
"admin": "Владелец",
|
||||
"viewer": "Зритель",
|
||||
"username": "Имя пользователя",
|
||||
"password": "Пароль",
|
||||
"usernameHint": "3–40 символов: латинские буквы, цифры, точки, подчёркивания или дефисы.",
|
||||
"passwordHint": "Не менее 12 символов, включая букву и цифру.",
|
||||
"never": "Ещё не входил",
|
||||
"reset": "Сменить пароль",
|
||||
"delete": "Удалить аккаунт",
|
||||
"saved": "Настройки доступа обновлены.",
|
||||
"activeSessions": "Активные сеансы",
|
||||
"sessionHint": "Сеансы истекают через 30 минут бездействия или через 12 часов.",
|
||||
"current": "Этот сеанс",
|
||||
"lastActive": "Последняя активность",
|
||||
"revoke": "Отозвать",
|
||||
"resetHint": "Все сеансы пользователя {name} будут завершены.",
|
||||
"deleteHint": "Удалить {name}? Аккаунт будет удалён, все его сеансы завершатся."
|
||||
},
|
||||
"general": {
|
||||
"eyebrow": "На ваш вкус",
|
||||
"title": "Настройки",
|
||||
"subtitle": "Маленькие детали вашего пространства.",
|
||||
"appearance": "Внешний вид",
|
||||
"dark": "Тёмное стекло",
|
||||
"light": "Светлое стекло",
|
||||
"accent": "Цвет акцента",
|
||||
"accentHint": "Добавьте индивидуальности элементам управления.",
|
||||
"language": "Язык",
|
||||
"displayLanguage": "Язык интерфейса",
|
||||
"languageHint": "Используется во всём приложении в этом браузере.",
|
||||
"privacy": "Приватность и подключение",
|
||||
"loginRequired": "Обязательный вход",
|
||||
"loginHint": "Просмотр доступен только аккаунтам этого сервера.",
|
||||
"alwaysOn": "Всегда включено",
|
||||
"localOnly": "Только локальная сеть",
|
||||
"localHint": "Без облачных ретрансляторов, аналитики и внешних медиасервисов.",
|
||||
"savedLocally": "Предпочтения сохраняются в этом браузере."
|
||||
},
|
||||
"colors": {
|
||||
"lime": "Лайм",
|
||||
"blue": "Голубой",
|
||||
"violet": "Фиолетовый",
|
||||
"peach": "Персиковый"
|
||||
},
|
||||
"errors": {
|
||||
"server": "Не удалось выполнить запрос. Проверьте, что локальный сервер запущен.",
|
||||
"unauthorized": "Неверные данные для входа или сеанс истёк. Войдите снова.",
|
||||
"forbidden": "Для этого действия нужен аккаунт владельца.",
|
||||
"origin": "Адрес не совпадает с настройкой сервера. Откройте настроенный локальный URL.",
|
||||
"setupToken": "Неверный код первоначальной настройки.",
|
||||
"alreadySetup": "Администратор уже создан. Войдите в аккаунт.",
|
||||
"username": "Используйте 3–40 латинских букв, цифр, точек, подчёркиваний или дефисов.",
|
||||
"password": "Используйте не менее 12 символов, включая букву и цифру.",
|
||||
"rateLimited": "Слишком много попыток. Подождите минуту.",
|
||||
"duplicate": "Это имя пользователя уже занято.",
|
||||
"protectedAccount": "Аккаунт владельца нельзя удалить.",
|
||||
"notFound": "Этот аккаунт больше не существует.",
|
||||
"hostBusy": "Этот сеанс уже подключён или другой владелец ведёт эфир. Закройте другую вкладку.",
|
||||
"secureContext": "Для доступа к камере и экрану нужен HTTPS или localhost на устройстве сервера. Откройте защищённый адрес.",
|
||||
"NotAllowedError": "Доступ отменён или запрещён. Разрешите камеру или экран в браузере.",
|
||||
"NotFoundError": "На устройстве не найдена подходящая камера.",
|
||||
"NotReadableError": "Камера занята. Закройте другие использующие её приложения.",
|
||||
"OverconstrainedError": "Этот источник недоступен. Попробуйте переднюю камеру.",
|
||||
"clipboard": "Не удалось скопировать автоматически. Выделите и скопируйте адрес выше.",
|
||||
"fullscreen": "Полноэкранный режим недоступен в этом браузере."
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user