|
7 | 7 | "add": "Добавить", |
8 | 8 | "create": "Создать", |
9 | 9 | "back": "Назад", |
10 | | - "backToList": "← Назад к списку", |
| 10 | + "backToList": "Назад к списку", |
11 | 11 | "loading": "Загрузка...", |
12 | 12 | "error": "Ошибка", |
13 | 13 | "success": "Успешно", |
|
282 | 282 | "txRx": "TX / RX", |
283 | 283 | "groupsCount": "групп", |
284 | 284 | "subscription": "Подписка", |
285 | | - "details": "→ Подробнее", |
| 285 | + "details": "Подробнее", |
286 | 286 | "turnedOn": "✓ Включён", |
287 | 287 | "turnedOff": "○ Отключён" |
288 | 288 | }, |
|
323 | 323 | "port": "Порт", |
324 | 324 | "mongodb": "MongoDB", |
325 | 325 | "systemSettings": "⚙️ Настройки системы", |
326 | | - "loadBalancing": "⚖️ Балансировка нагрузки", |
| 326 | + "loadBalancing": "Балансировка нагрузки", |
327 | 327 | "loadBalancingEnabled": "Сортировать по загрузке", |
328 | 328 | "loadBalancingHint": "Менее загруженные ноды будут первыми в подписке", |
329 | 329 | "hideOverloaded": "Скрывать перегруженные", |
330 | 330 | "hideOverloadedHint": "Ноды с онлайн ≥ лимиту не будут включены в подписку", |
331 | | - "deviceLimit": "📱 Лимит устройств", |
| 331 | + "deviceLimit": "Лимит устройств", |
332 | 332 | "gracePeriod": "Grace Period (мин)", |
333 | 333 | "gracePeriodHint": "Как долго помнить IP после отключения. Защищает от ложных срабатываний при смене WiFi↔LTE", |
334 | 334 | "howItWorks": "ℹ️ Как работает:", |
335 | 335 | "howItWorksDesc": "Устройства считаются по уникальным IP-адресам. Если пользователь подключается с нового IP, а старый был активен менее {minutes} минут назад — оба IP учитываются в лимите.", |
336 | | - "caching": "🚀 Кэширование (Redis)", |
| 336 | + "caching": "Кэширование (Redis)", |
337 | 337 | "subscriptionsTTL": "Подписки (сек)", |
338 | 338 | "subscriptionsTTLHint": "Готовые конфиги. Сбрасывается при изменении нод", |
339 | 339 | "usersTTL": "Пользователи (сек)", |
|
342 | 342 | "onlineSessionsTTLHint": "Для лимита устройств. Меньше = точнее", |
343 | 343 | "activeNodesTTL": "Активные ноды (сек)", |
344 | 344 | "activeNodesTTLHint": "Быстрее реакция на изменения нод", |
345 | | - "rateLimiting": "🛡️ Rate Limiting", |
| 345 | + "rateLimiting": "Rate Limiting", |
346 | 346 | "subscriptionsPerMinute": "Подписки/мин на IP", |
347 | 347 | "subscriptionsPerMinuteHint": "Защита от перебора токенов. Норма: 60-100", |
348 | | - "sshPool": "🔗 Пул SSH соединений", |
| 348 | + "sshPool": "Пул SSH соединений", |
349 | 349 | "sshPoolEnabled": "Включить пул SSH соединений", |
350 | 350 | "sshPoolHint": "Переиспользует SSH соединения для ускорения операций. Экономит ~200-500мс на операцию.", |
351 | 351 | "sshPoolIdleTime": "Таймаут простоя (сек)", |
|
359 | 359 | "nodeAuth": "Node Auth API", |
360 | 360 | "nodeAuthInsecure": "Разрешить self-signed сертификаты", |
361 | 361 | "nodeAuthInsecureHint": "Включите, если панель использует HTTP или self-signed SSL. Ноды будут принимать любой сертификат при подключении к auth API. Отключите для production с валидным SSL.", |
362 | | - "saveAllSettings": "💾 Сохранить все настройки", |
363 | | - "security": "🔐 Безопасность", |
| 362 | + "saveAllSettings": "Сохранить все настройки", |
| 363 | + "security": "Безопасность", |
364 | 364 | "administrator": "Администратор", |
365 | 365 | "lastLogin": "Последний вход", |
366 | 366 | "never": "Никогда", |
|
377 | 377 | "httpModeHint": "Для включения HTTPS задайте переменные:", |
378 | 378 | "letsEncryptAuto": "Let's Encrypt автообновление", |
379 | 379 | "systemStatus": "Статус системы", |
380 | | - "dangerZone": "⚠️ Опасная зона", |
| 380 | + "dangerZone": "Опасная зона", |
381 | 381 | "resetStats": "Сброс статистики", |
382 | 382 | "resetStatsDesc": "Удалить все исторические данные статистики (графики онлайна, трафика, нод). Действие необратимо!", |
383 | | - "resetStatsBtn": "🗑️ Очистить статистику", |
| 383 | + "resetStatsBtn": "Очистить статистику", |
384 | 384 | "resetStatsConfirm": "⚠️ Удалить всю историю статистики?\n\nЭто очистит все графики и таблицы на странице Статистика.\n\nПродолжить?", |
385 | 385 | "statsReset": "✓ Статистика очищена ({count} записей)", |
386 | 386 | "resetTrafficCounter": "Сброс счетчика трафика", |
387 | 387 | "resetTrafficDesc": "Обнуляет счетчик использованного трафика (tx/rx) для всех пользователей. Действие необратимо!", |
388 | | - "resetAllTraffic": "🗑️ Сбросить весь трафик", |
| 388 | + "resetAllTraffic": "Сбросить весь трафик", |
389 | 389 | "resetConfirm": "⚠️ ВНИМАНИЕ!\n\nВы уверены что хотите сбросить счетчик трафика для ВСЕХ пользователей?\n\nЭто действие необратимо!", |
390 | 390 | "resetConfirmFinal": "Последнее подтверждение.\n\nСчетчики tx/rx будут обнулены у всех пользователей.\n\nПродолжить?", |
391 | 391 | "resetting": "⏳ Сброс...", |
392 | 392 | "trafficReset": "✓ Трафик сброшен у {count} пользователей", |
393 | | - "backup": "💾 Резервное копирование", |
| 393 | + "backup": "Резервное копирование", |
394 | 394 | "autoBackup": "Автоматический бэкап", |
395 | 395 | "autoBackupHint": "Автоматически создавать бэкапы базы данных по расписанию", |
396 | 396 | "backupInterval": "Интервал (часы)", |
|
399 | 399 | "keepLastHint": "Сколько локальных бэкапов хранить (старые удаляются автоматически)", |
400 | 400 | "lastBackup": "Последний бэкап", |
401 | 401 | "never": "Никогда", |
402 | | - "s3Settings": "☁️ Загрузка в S3 (опционально)", |
| 402 | + "s3Settings": "Загрузка в S3 (опционально)", |
403 | 403 | "s3Enabled": "Загружать в S3", |
404 | 404 | "s3EnabledHint": "Дополнительно отправлять бэкапы в S3-совместимое хранилище", |
405 | 405 | "s3Endpoint": "Endpoint (для MinIO)", |
|
412 | 412 | "s3SecretKey": "Secret Access Key", |
413 | 413 | "s3KeepLast": "Хранить в S3", |
414 | 414 | "s3KeepLastHint": "Сколько бэкапов хранить в S3", |
415 | | - "testS3": "🔗 Проверить подключение", |
| 415 | + "testS3": "Проверить подключение", |
416 | 416 | "testingS3": "Проверка...", |
417 | 417 | "s3TestSuccess": "✓ Подключение к S3 успешно", |
418 | 418 | "s3TestError": "✗ Ошибка подключения: {error}", |
419 | | - "createBackupNow": "📦 Создать бэкап сейчас", |
| 419 | + "createBackupNow": "Создать бэкап сейчас", |
420 | 420 | "creatingBackup": "Создание...", |
421 | 421 | "backupCreated": "✓ Бэкап создан: {filename} ({size} МБ)", |
422 | 422 | "backupError": "Ошибка создания бэкапа", |
|
432 | 432 | "saved": "Настройки сохранены", |
433 | 433 | "hintLoadBalancing": "Сортировать ноды по текущей загрузке в подписках", |
434 | 434 | "hintHideOverloaded": "Не показывать ноды, достигшие лимита онлайн", |
435 | | - "cacheManagement": "🗄️ Управление кэшем", |
| 435 | + "cacheManagement": "Управление кэшем", |
436 | 436 | "flushCache": "Очистить кэш", |
437 | 437 | "flushCacheDesc": "Очищает все кэшированные данные в Redis (подписки, пользователи, сессии). Может временно увеличить нагрузку на сервер.", |
438 | | - "flushCacheBtn": "🧹 Очистить кэш", |
| 438 | + "flushCacheBtn": "Очистить кэш", |
439 | 439 | "flushCacheConfirm": "Очистить все кэшированные данные?\n\nЭто временно увеличит нагрузку на сервер пока кэш восстановится.", |
440 | 440 | "flushing": "⏳ Очистка...", |
441 | 441 | "cacheFlushed": "✓ Кэш успешно очищен" |
|
535 | 535 | "applyError": "Ошибка применения", |
536 | 536 | "replaceRules": "Заменить текущие правила?", |
537 | 537 | "noRulesDefault": "(правил нет — используется конфиг по умолчанию)", |
538 | | - "backToNode": "← Назад к ноде" |
| 538 | + "backToNode": "Назад к ноде" |
539 | 539 | }, |
540 | 540 | "stats": { |
541 | 541 | "title": "Статистика", |
|
0 commit comments