diff --git a/dashboard/public/locales/ru.json b/dashboard/public/locales/ru.json new file mode 100644 index 0000000..ad75d20 --- /dev/null +++ b/dashboard/public/locales/ru.json @@ -0,0 +1,436 @@ +{ + "name": "Имя", + "info": "Информация", + "status": "Статус", + "address": "Адрес", + "users": "Пользователи", + "nodes": "Узлы", + "services": "Сервисы", + "hosts": "Хосты", + "username": "Имя пользователя", + "password": "Пароль", + "inbounds": "Входящие подключения", + "submit": "Отправить", + "login": "Войти", + "edit": "Редактировать", + "actions": "Действия", + "settings": "Настройки", + "logs": "Логи", + "note": "Примечание", + "config": "Конфигурация", + "tag": "Тег", + "protocol": "Протокол", + "online": "Онлайн", + "offline": "Оффлайн", + "not_connected": "Не подключено", + "apply": "Применить", + "open": "Открыть", + "delete": "Удалить", + "port": "Порт", + "create": "Создать", + "path": "Путь", + "host": "Хост", + "alpn": "ALPN", + "security": "Безопасность", + "user_info": "Информация о пользователе", + "admin_info": "Информация об администраторе", + "subscription": "Подписка", + "subscription_link": "Ссылка на подписку", + "fingerprint": "Отпечаток", + "mux": "Мультиплексирование", + "fragment": "Фрагмент", + "enable": "Включить", + "enabled": "Включено", + "activated": "Активировано", + "unlimited": "Неограниченно", + "left": "Осталось", + "reached": "Достигнуто", + "inactive": "Неактивно", + "active": "Активно", + "disable": "Отключить", + "close": "Закрыть", + "save": "Сохранить", + "days": "Дни", + "home": "Главная", + "cancel": "Отмена", + "dark": "Темная", + "light": "Светлая", + "system": "Система", + "disabled": "Отключено", + "advanced-options": "Расширенные опции", + "language": "Язык", + "theme": "Тема", + "pattern": "Шаблон", + "result": "Результат", + "deselect": "Отменить выбор", + "view": "Просмотр", + "certificate": "Сертификат", + "valid": "Действителен", + "finished": "Завершено", + "expired": "Истек", + "change": "Изменить", + "admins": "Администраторы", + "normal": "Обычный", + "sudo": "Sudo", + "owner": "Владелец", + "running": "Работает", + "down": "Выключен", + "weight": "Вес", + "support-us": { + "title": "Поддержите нас", + "desc": "Marzneshin — это бесплатное программное обеспечение с открытым исходным кодом (FOSS). Присоединяйтесь к нам и поддержите нас, сделав пожертвование.", + "donate": "Пожертвовать" + }, + "page": { + "home": { + "users-stats": { + "desc": "Обзор статусов пользователей" + }, + "total-traffics": { + "title": "Общий трафик системы", + "desc": "Общий трафик со всех узлов" + } + }, + "settings": { + "subscription-settings": { + "template-on-acceptance": "Шаблон при принятии", + "placeholder-remark": "Заполнитель примечания", + "placeholder-if-disabled": "Заполнитель, если отключено", + "shuffle-configs": "Перемешать конфигурации", + "url-prefix": "Префикс URL", + "profile-title": "Название профиля", + "support-link": "Ссылка на поддержку", + "update-interval": "Интервал обновления", + "add-rule": "Добавить правило", + "reset-local-changes": "Сбросить изменения", + "title": "Подписка", + "description": "Управление и настройка параметров подписки с помощью настраиваемых правил и опций обновления.", + "subscription-title": "Правила подписки", + "subscription-desc": "Добавьте правила подписки в порядке приоритета.", + "alert": { + "title": "Нет правил", + "desc": "Для подписки не определены правила" + } + }, + "certificate": { + "copy": "Копировать сертификат", + "error": "Сертификат недоступен", + "copied": "Сертификат скопирован" + } + }, + "login": { + "username": { + "error": { + "is-required": "Имя пользователя обязательно" + } + }, + "password": { + "error": { + "is-required": "Пароль обязателен" + } + } + }, + "nodes": { + "nodes-usage-widget": { + "title": "Использование трафика узла", + "desc": "Общее использование трафика на этом узле" + }, + "settings": { + "no-backend-alert": { + "title": "Для этого узла не настроен бэкэнд", + "desc": "Пожалуйста, предпримите необходимые меры и настройте бэкэнд для этого узла." + }, + "title": "Настройки узлов", + "detail": "Детали", + "log-container": { + "title": "Логи Xray" + } + }, + "dialogs": { + "creation": { + "title": "Добавить узел" + }, + "deletion": { + "title": "Удалить узел" + }, + "edition": { + "title": "Редактировать узел" + } + }, + "usage_coefficient": "Коэффициент использования", + "connection_backend": "Бэкэнд подключения", + "connection_backend_desc": "Используется для удаленного подключения", + "certificate-alert": { + "title": "Настройка сертификата узлов", + "desc": "Если вы хотите настроить сертификат узлов, проверьте страницу настроек.", + "click": "Нажмите здесь" + } + }, + "services": { + "settings": { + "title": "Настройки сервиса", + "detail": "Детали" + }, + "dialogs": { + "creation": { + "title": "Создать сервис" + }, + "deletion": { + "title": "Удалить сервис" + }, + "edition": { + "title": "Редактировать сервис" + } + } + }, + "users": { + "created_at": "Дата создания", + "no_use": "Не используется", + "data_limit_reached": "Лимит данных достигнут", + "sub_updated_at": "Последнее обновление подписки", + "sub_last_user_agent": "Последний User Agent", + "traffic_reset_at": "Последний сброс трафика", + "lifetime_used_traffic": "Общий использованный трафик за всё время", + "note-placeholder": "Дополнительная информация о пользователе", + "data_limit": "Лимит данных", + "traffic": "Трафик", + "used_traffic": "Использованный трафик", + "data_limit_reset_strategy": "Период сброса данных", + "online_at": "Последнее использование", + "expire_date": "Дата истечения", + "unlimited": "Неограниченно", + "never": "Никогда", + "limited": "Ограничено", + "data_limit_method": "Лимит данных", + "fixed_date": "Фиксированная дата", + "expire_method": "Истечение срока", + "on_first_use": "При первом использовании", + "reset_usage": "Сбросить использование", + "revoke_subscription": "Отозвать подписку", + "usage_duration": "Продолжительность использования", + "activation_deadline": "Срок активации", + "nodes-usage": "Использование узлов", + "settings": { + "nodes-usage": { + "last-days": "Последние {{count}} дней", + "last-months": "Последние {{count}} месяцев", + "last-hours": "Последние {{count}} часов", + "title": "Использование узлов пользователями", + "desc": "Количество использования узлов пользователями за определенный период времени." + }, + "subscription_link": { + "copied": "Ссылка на подписку скопирована", + "copy": "Скопировать ссылку на подписку", + "error": "Не удалось скопировать ссылку на подписку" + } + }, + "services-alert": { + "title": "Сервисы не найдены", + "desc": "Убедитесь, что вы создали сервисы для подключения пользователей через входящие подключения.", + "click": "Нажмите здесь" + }, + "dialogs": { + "edition": { + "title": "Редактировать пользователя" + }, + "creation": { + "title": "Создать пользователя" + }, + "deletion": { + "title": "Удалить пользователя" + }, + "mutation": { + "note": { + "desc": "Оставьте заметку о вашем пользователе" + } + } + } + }, + "admins": { + "disable_users": "Отключить пользователей", + "enable_users": "Включить пользователей", + "permission": "Разрешение", + "dialogs": { + "creation": { + "title": "Создать администратора" + }, + "edition": { + "title": "Редактировать администратора" + }, + "deletion": { + "title": "Удалить администратора" + } + }, + "modify-users-access": "Изменить доступ пользователей", + "subscription-url-prefix": "Префикс URL подписки", + "sudo-privilage": "Привилегии sudo", + "all-services-access": "Доступ ко всем сервисам", + "users-data-usage": "Использование данных пользователями" + }, + "hosts": { + "xmux-settings": "Настройки Xmux", + "split-http-settings": "Настройки разделения HTTP", + "no-grpc-header": "Нет заголовка GRPC", + "early-data": "Ранние данные", + "http_headers": "HTTP заголовки", + "no-http-headers": "Нет HTTP заголовков", + "mux-settings": "Настройки мультиплексирования", + "dns-servers": "DNS серверы", + "obfuscation-password": "Пароль для обфускации", + "server-public-key": "Публичный ключ сервера", + "tls-config": "Конфигурация TLS", + "network-settings": "Настройки сети", + "security-settings": "Настройки безопасности", + "allowed-ips": "Разрешенные IP", + "allowed-ips-placeholder": "127.0.0.1,...", + "camouflage-settings": "Настройки маскировки", + "fragment": { + "interval": "Интервал", + "length": "Длина", + "packets": "Пакеты", + "length-error": "Длина не может превышать 32 символа и должна быть числом-числом", + "interval-error": "Интервал не может превышать 32 символа и должен быть числом-числом", + "packets-error": "Пакеты не могут превышать 32 символа и должны быть числом-числом или tlshello" + }, + "noise": { + "interval": "Интервал", + "length": "Длина", + "packets": "Пакеты", + "length-error": "Длина не может превышать 32 символа и должна быть числом-числом", + "interval-error": "Интервал не может превышать 32 символа и должен быть числом-числом", + "packets-error": "Пакеты не могут превышать 32 символа и должны быть числом-числом или tlshello" + }, + "popover-guide": { + "title": "Используя эту настройку, вы можете назначить конкретный адрес для каждого входящего подключения.", + "desc": "Используйте эти переменные, чтобы сделать его динамическим", + "username": "Имя пользователя", + "dataUsage": "Текущее использование пользователем", + "remainingData": "Оставшиеся данные пользователя", + "dataLimit": "Лимит данных пользователя", + "remainingDays": "Оставшиеся дни пользователя", + "expireDate": "Дата истечения срока действия пользователя", + "jalaliExpireDate": "Дата истечения срока действия пользователя по персидскому календарю", + "remainingTime": "Оставшееся время пользователя", + "statusEmoji": "Статус пользователя как эмодзи (✅,⌛,🪫,❌,🔌)", + "proxyProtocol": "Прокси-протокол (например, VMess)", + "proxyMethod": "Метод транспорта прокси (например, ws)", + "currentServer": "IP-адрес сервера Marzneshin", + "security": "Уровень безопасности", + "host": "Хост запроса", + "port": "Порт", + "path": "Путь", + "sni": "SNI", + "advancedOptions": "Расширенные опции", + "addHost": "Добавить хост", + "savedSuccess": "Хост успешно сохранен", + "loading": "загрузка...", + "apply": "Применить", + "port.info": "По умолчанию порт входящего подключения рекламируется пользователю. Вы можете установить пользовательский порт, если этот хост перенаправляет трафик с другого порта на ваш входящий сервер. Например, сервер может перенаправлять трафик с порта 8443 на стандартный порт вашего входящего сервера.", + "path.info": "Установите путь для пользователей хоста, полезно за обратным прокси.", + "sni.info": "По умолчанию хост использует SNI из входящего подключения. Вы можете установить пользовательский SNI, если этот хост является сервером с другим SNI. Например, сервер может получать трафик с другим SSL-сертификатом, выполнять SSL-терминацию и перенаправлять его на ваш входящий сервер.", + "host.info": "По умолчанию, если в конфигурации Xray установлен хост запроса, используется этот хост. Однако вы можете установить здесь пользовательский хост запроса, если это необходимо.", + "security.info": "Если промежуточный сервер этого хоста использует другой уровень безопасности, чем по умолчанию для входящих подключений, вы можете установить здесь пользовательский уровень безопасности.", + "alpn": "ALPN", + "fingerprint": "Отпечаток", + "host.multiHost": "Чтобы установить несколько адресов, разделите их запятой. Каждый раз выбирается случайный адрес.", + "host.wildcard": "Используйте * для генерации случайной строки (работает для доменных имен с подстановочными знаками)" + }, + "mux": { + "title": "Мультиплексирование соединений", + "desc": "В настоящее время поддерживается v2rayng при использовании пользовательской конфигурации" + }, + "no-inbound-selection-alert": { + "title": "Не выбрано входящее подключение", + "desc": "Вы должны выбрать входящее подключение, чтобы добавить хост." + }, + "settings": { + "title": "Настройки хоста" + }, + "allowinsecure": "Разрешить небезопасное", + "dialogs": { + "edition": { + "title": "Редактировать хост" + }, + "creation": { + "title": "Добавить хост" + }, + "deletion": { + "title": "Удалить хост" + }, + "mutation": { + "allowinsecure": { + "alert": "Из соображений безопасности не рекомендуется включать 'Разрешить небезопасное'" + } + } + } + } + }, + "events": { + "delete": { + "error": "Не удалось удалить {{name}}", + "success": { + "title": "{{name}} успешно удален", + "desc": "" + } + }, + "create": { + "error": "Не удалось создать {{name}}", + "success": { + "title": "{{name}} успешно создан", + "desc": "" + } + }, + "update": { + "error": "Не удалось обновить {{name}}", + "success": { + "title": "{{name}} успешно обновлен", + "desc": "" + } + }, + "user_revoke": { + "error": "Не удалось отозвать подписку {{name}}", + "success": { + "title": "{{name}} успешно создан", + "desc": "" + } + }, + "user_reset": { + "error": "Не удалось сбросить использование данных {{name}}", + "success": { + "title": "Использование данных {{name}} успешно сброшено", + "desc": "" + } + }, + "user_status": { + "error": "Не удалось изменить статус включения {{name}}", + "success": { + "title": "Статус включения {{name}} успешно обновлен", + "desc": "" + } + } + }, + "delete-confirmation": { + "title": "Вы уверены?", + "desc": "Это действие нельзя отменить." + }, + "table": { + "no-result-found": "Результатов не найдено.", + "row-per-page": "Строк на страницу", + "no-result": "Нет результата", + "selected": "Выбрано", + "toggle-column": "Переключить столбцы", + "filter-placeholder": "Фильтр {{name}}" + }, + "statuses": { + "active": "Активен", + "connected": "Подключен", + "healthy": "Здоровый", + "disabled": "Отключен", + "expired": "Истекший", + "on_hold": "На паузе", + "connecting": "Подключение", + "unhealthy": "Нездоровый", + "limited": "Ограничен", + "error": "Ошибка" + } +}