feat: allow to edit remnawave panel settings in admin panel, ensure using i18n

This commit is contained in:
3252a8
2026-05-21 11:26:03 +03:00
parent b3f67a5398
commit 028f0680c6
6 changed files with 301 additions and 38 deletions
+69
View File
@@ -946,6 +946,18 @@
"admin_settings_section_notifications": "Notifications",
"admin_settings_section_devices": "Devices",
"admin_settings_section_support": "Support",
"admin_settings_subsection_common": "Common",
"admin_settings_subsection_remnawave": "Remnawave",
"admin_settings_subsection_telegram_stars": "Telegram Stars",
"admin_settings_subsection_yookassa": "YooKassa",
"admin_settings_subsection_freekassa": "FreeKassa",
"admin_settings_subsection_platega": "Platega",
"admin_settings_subsection_severpay": "SeverPay",
"admin_settings_subsection_cryptopay": "CryptoPay",
"admin_settings_subsection_wata": "Wata",
"admin_settings_subsection_heleket": "Heleket",
"admin_settings_validation_errors": "Errors: {errors}",
"admin_settings_save_error": "Error: {error}",
"admin_sync_started": "Synchronization started",
"admin_sync_error": "Synchronization error",
"admin_error": "Error",
@@ -1288,10 +1300,37 @@
"admin_settings_field_required_channel_id_description": "Controls the 'Required Channel ID' setting in admin overrides.",
"admin_settings_field_required_channel_link_label": "Required Channel Link",
"admin_settings_field_required_channel_link_description": "Controls the 'Required Channel Link' setting in admin overrides.",
"admin_settings_field_panel_api_url_label": "Remnawave API URL",
"admin_settings_field_panel_api_url_description": "For example, https://panel.example.com/api.",
"admin_settings_field_panel_api_key_label": "Remnawave API key",
"admin_settings_field_panel_api_key_description": "Secret API key for the panel.",
"admin_settings_field_panel_webhook_secret_label": "Remnawave webhook secret",
"admin_settings_field_panel_webhook_secret_description": "Used to verify incoming panel webhooks.",
"admin_settings_field_user_squad_uuids_label": "Default Internal Squads",
"admin_settings_field_user_squad_uuids_description": "Comma-separated UUIDs for the legacy mode without a JSON tariff catalog.",
"admin_settings_field_user_external_squad_uuid_label": "Default External Squad",
"admin_settings_field_user_external_squad_uuid_description": "Optional External Squad UUID for new users.",
"admin_settings_field_webapp_title_label": "WebApp Title",
"admin_settings_field_subscription_mini_app_url_label": "Public Mini App URL",
"admin_settings_field_subscription_mini_app_url_description": "For example, https://app.example.com/.",
"admin_settings_field_webapp_primary_color_label": "WebApp Primary Color",
"admin_settings_field_webapp_logo_use_emoji_label": "Use emoji logo",
"admin_settings_field_webapp_logo_url_label": "WebApp Logo URL",
"admin_settings_field_webapp_logo_emoji_label": "WebApp Logo Emoji",
"admin_settings_field_webapp_logo_emoji_font_label": "Emoji logo font",
"admin_settings_field_webapp_logo_emoji_font_description": "Choose the font used to render the emoji logo.",
"admin_settings_field_webapp_logo_emoji_font_choice_system": "System (default)",
"admin_settings_field_webapp_logo_emoji_font_choice_noto_color": "Noto Color Emoji",
"admin_settings_field_webapp_logo_emoji_font_choice_noto_color_animated": "Noto Color Emoji Animated",
"admin_settings_field_webapp_logo_emoji_font_choice_noto_emoji": "Noto Emoji",
"admin_settings_field_webapp_logo_emoji_font_choice_twemoji": "Twitter Emoji",
"admin_settings_field_webapp_logo_emoji_font_choice_openmoji": "OpenMoji",
"admin_settings_field_webapp_logo_emoji_font_choice_apple": "Apple Color Emoji (local)",
"admin_settings_field_webapp_logo_emoji_font_choice_segoe": "Segoe UI Emoji (local)",
"admin_settings_field_webapp_logo_emoji_font_choice_noto_local": "Noto Emoji (local)",
"admin_settings_field_webapp_favicon_use_custom_label": "Use separate favicon",
"admin_settings_field_webapp_favicon_url_label": "Separate favicon URL",
"admin_settings_field_webapp_logo_favicon_url_label": "Favicon from logo",
"admin_settings_field_webapp_enabled_label": "WebApp Enabled",
"admin_settings_field_month_1_enabled_label": "Month 1 Enabled",
"admin_settings_field_month_3_enabled_label": "Month 3 Enabled",
@@ -1363,6 +1402,35 @@
"admin_settings_field_cryptopay_currency_type_label": "CryptoPay Currency Type",
"admin_settings_field_cryptopay_currency_type_description": "Controls the 'CryptoPay Currency Type' setting in admin overrides.",
"admin_settings_field_cryptopay_asset_label": "CryptoPay Asset",
"admin_settings_field_wata_enabled_label": "Enabled",
"admin_settings_field_wata_api_token_label": "API token",
"admin_settings_field_wata_base_url_label": "Base URL",
"admin_settings_field_wata_return_url_label": "Return URL",
"admin_settings_field_wata_failed_url_label": "Failed URL",
"admin_settings_field_wata_payment_link_ttl_days_label": "Payment link lifetime (days)",
"admin_settings_field_wata_payment_link_ttl_days_description": "1..30; Wata defaults to 3 days and allows up to 30 days.",
"admin_settings_field_wata_webhook_verify_signature_label": "Verify webhook signature",
"admin_settings_field_wata_public_key_label": "Webhook public key",
"admin_settings_field_wata_public_key_description": "Optional. If empty, the backend fetches it from Wata.",
"admin_settings_field_wata_trusted_ips_label": "Trusted IPs",
"admin_settings_field_wata_trusted_ips_description": "Comma-separated IP addresses accepted for Wata webhooks.",
"admin_settings_field_heleket_enabled_label": "Enabled",
"admin_settings_field_heleket_merchant_id_label": "Merchant ID",
"admin_settings_field_heleket_api_key_label": "Payment API key",
"admin_settings_field_heleket_base_url_label": "Base URL",
"admin_settings_field_heleket_currency_label": "Invoice currency",
"admin_settings_field_heleket_currency_description": "Fiat or crypto code (RUB, USD, USDT).",
"admin_settings_field_heleket_to_currency_label": "Target crypto",
"admin_settings_field_heleket_to_currency_description": "Optional target cryptocurrency for conversion.",
"admin_settings_field_heleket_network_label": "Blockchain network",
"admin_settings_field_heleket_network_description": "Optional blockchain network code (tron, bsc, eth).",
"admin_settings_field_heleket_return_url_label": "Return URL",
"admin_settings_field_heleket_success_url_label": "Success URL",
"admin_settings_field_heleket_lifetime_seconds_label": "Invoice lifetime (seconds)",
"admin_settings_field_heleket_lifetime_seconds_description": "300..43200; Heleket defaults to 3600.",
"admin_settings_field_heleket_verify_webhook_signature_label": "Verify webhook signature",
"admin_settings_field_heleket_trusted_ips_label": "Trusted IPs",
"admin_settings_field_heleket_trusted_ips_description": "Comma-separated IP addresses accepted for Heleket webhooks.",
"admin_settings_field_trial_enabled_label": "Trial Enabled",
"admin_settings_field_trial_duration_days_label": "Trial Duration Days",
"admin_settings_field_trial_traffic_limit_gb_label": "Trial Traffic Limit Gb",
@@ -1387,6 +1455,7 @@
"admin_settings_field_log_promo_activations_label": "Log Promo Activations",
"admin_settings_field_log_trial_activations_label": "Log Trial Activations",
"admin_settings_field_log_suspicious_activity_label": "Log Suspicious Activity",
"admin_settings_field_log_support_label": "Log Support",
"admin_settings_field_log_level_label": "Log Level",
"admin_settings_field_log_level_description": "Controls the 'Log Level' setting in admin overrides.",
"admin_settings_field_log_chat_id_label": "Log Chat ID",
+70 -1
View File
@@ -946,6 +946,18 @@
"admin_settings_section_notifications": "Уведомления",
"admin_settings_section_devices": "Устройства",
"admin_settings_section_support": "Поддержка",
"admin_settings_subsection_common": "Общие",
"admin_settings_subsection_remnawave": "Remnawave",
"admin_settings_subsection_telegram_stars": "Telegram Stars",
"admin_settings_subsection_yookassa": "YooKassa",
"admin_settings_subsection_freekassa": "FreeKassa",
"admin_settings_subsection_platega": "Platega",
"admin_settings_subsection_severpay": "SeverPay",
"admin_settings_subsection_cryptopay": "CryptoPay",
"admin_settings_subsection_wata": "Wata",
"admin_settings_subsection_heleket": "Heleket",
"admin_settings_validation_errors": "Ошибки: {errors}",
"admin_settings_save_error": "Ошибка: {error}",
"admin_sync_started": "Синхронизация запущена",
"admin_sync_error": "Ошибка синхронизации",
"admin_error": "Ошибка",
@@ -1288,10 +1300,37 @@
"admin_settings_field_required_channel_id_description": "Telegram ID канала, в котором нужно состоять.",
"admin_settings_field_required_channel_link_label": "Ссылка на канал",
"admin_settings_field_required_channel_link_description": "Имя пользователя или invite-link.",
"admin_settings_field_panel_api_url_label": "URL API Remnawave",
"admin_settings_field_panel_api_url_description": "Например, https://panel.example.com/api.",
"admin_settings_field_panel_api_key_label": "API-ключ Remnawave",
"admin_settings_field_panel_api_key_description": "Секретный ключ API панели.",
"admin_settings_field_panel_webhook_secret_label": "Секрет вебхуков Remnawave",
"admin_settings_field_panel_webhook_secret_description": "Используется для проверки входящих вебхуков панели.",
"admin_settings_field_user_squad_uuids_label": "Internal Squads по умолчанию",
"admin_settings_field_user_squad_uuids_description": "UUID через запятую для legacy-режима без JSON-каталога тарифов.",
"admin_settings_field_user_external_squad_uuid_label": "External Squad по умолчанию",
"admin_settings_field_user_external_squad_uuid_description": "Необязательный UUID External Squad для новых пользователей.",
"admin_settings_field_webapp_title_label": "Название Web App",
"admin_settings_field_subscription_mini_app_url_label": "Публичный URL Mini App",
"admin_settings_field_subscription_mini_app_url_description": "Например, https://app.example.com/.",
"admin_settings_field_webapp_primary_color_label": "Основной цвет",
"admin_settings_field_webapp_logo_use_emoji_label": "Использовать эмоджи-логотип",
"admin_settings_field_webapp_logo_url_label": "URL логотипа",
"admin_settings_field_webapp_logo_emoji_label": "Эмоджи-логотип",
"admin_settings_field_webapp_logo_emoji_font_label": "Шрифт эмоджи-логотипа",
"admin_settings_field_webapp_logo_emoji_font_description": "Выберите шрифт для отображения эмодзи-логотипа.",
"admin_settings_field_webapp_logo_emoji_font_choice_system": "Системный (по умолчанию)",
"admin_settings_field_webapp_logo_emoji_font_choice_noto_color": "Noto Color Emoji",
"admin_settings_field_webapp_logo_emoji_font_choice_noto_color_animated": "Noto Color Emoji Animated",
"admin_settings_field_webapp_logo_emoji_font_choice_noto_emoji": "Noto Emoji",
"admin_settings_field_webapp_logo_emoji_font_choice_twemoji": "Twitter Emoji",
"admin_settings_field_webapp_logo_emoji_font_choice_openmoji": "OpenMoji",
"admin_settings_field_webapp_logo_emoji_font_choice_apple": "Apple Color Emoji (local)",
"admin_settings_field_webapp_logo_emoji_font_choice_segoe": "Segoe UI Emoji (local)",
"admin_settings_field_webapp_logo_emoji_font_choice_noto_local": "Noto Emoji (local)",
"admin_settings_field_webapp_favicon_use_custom_label": "Использовать отдельную favicon",
"admin_settings_field_webapp_favicon_url_label": "URL отдельной favicon",
"admin_settings_field_webapp_logo_favicon_url_label": "Favicon из логотипа",
"admin_settings_field_webapp_enabled_label": "Web App включён",
"admin_settings_field_month_1_enabled_label": "Тариф 1 месяц",
"admin_settings_field_month_3_enabled_label": "Тариф 3 месяца",
@@ -1309,7 +1348,7 @@
"admin_settings_field_traffic_packages_description": "Формат: 10:199,50:799 (ГБ:цена)",
"admin_settings_field_stars_traffic_packages_label": "Пакеты трафика (Stars)",
"admin_settings_field_payment_methods_order_label": "Порядок методов оплаты",
"admin_settings_field_payment_methods_order_description": "Через запятую, например: severpay,freekassa,yookassa",
"admin_settings_field_payment_methods_order_description": "Через запятую, например: severpay,freekassa,yookassa,heleket",
"admin_settings_field_subscription_purchase_description_enabled_label": "Показывать описание подписки",
"admin_settings_field_subscription_purchase_description_enabled_description": "Текст появится перед выбором срока покупки или продления.",
"admin_settings_field_subscription_purchase_description_ru_label": "Описание подписки (RU)",
@@ -1363,6 +1402,35 @@
"admin_settings_field_cryptopay_currency_type_label": "Currency type",
"admin_settings_field_cryptopay_currency_type_description": "fiat или crypto",
"admin_settings_field_cryptopay_asset_label": "Asset",
"admin_settings_field_wata_enabled_label": "Включена",
"admin_settings_field_wata_api_token_label": "API token",
"admin_settings_field_wata_base_url_label": "Base URL",
"admin_settings_field_wata_return_url_label": "Return URL",
"admin_settings_field_wata_failed_url_label": "Failed URL",
"admin_settings_field_wata_payment_link_ttl_days_label": "Срок жизни ссылки (дней)",
"admin_settings_field_wata_payment_link_ttl_days_description": "1..30; по умолчанию Wata использует 3 дня.",
"admin_settings_field_wata_webhook_verify_signature_label": "Проверять подпись вебхука",
"admin_settings_field_wata_public_key_label": "Публичный ключ вебхука",
"admin_settings_field_wata_public_key_description": "Необязательно. Если пусто, бэкенд получит ключ из Wata.",
"admin_settings_field_wata_trusted_ips_label": "Доверенные IP",
"admin_settings_field_wata_trusted_ips_description": "IP-адреса через запятую, с которых принимаются вебхуки Wata.",
"admin_settings_field_heleket_enabled_label": "Включена",
"admin_settings_field_heleket_merchant_id_label": "Merchant ID",
"admin_settings_field_heleket_api_key_label": "Payment API key",
"admin_settings_field_heleket_base_url_label": "Base URL",
"admin_settings_field_heleket_currency_label": "Валюта инвойса",
"admin_settings_field_heleket_currency_description": "Фиатный или криптовалютный код (RUB, USD, USDT).",
"admin_settings_field_heleket_to_currency_label": "Целевая криптовалюта",
"admin_settings_field_heleket_to_currency_description": "Необязательная криптовалюта для конвертации.",
"admin_settings_field_heleket_network_label": "Blockchain network",
"admin_settings_field_heleket_network_description": "Необязательный код сети (tron, bsc, eth).",
"admin_settings_field_heleket_return_url_label": "Return URL",
"admin_settings_field_heleket_success_url_label": "Success URL",
"admin_settings_field_heleket_lifetime_seconds_label": "Срок жизни инвойса (сек)",
"admin_settings_field_heleket_lifetime_seconds_description": "300..43200; по умолчанию Heleket использует 3600.",
"admin_settings_field_heleket_verify_webhook_signature_label": "Проверять подпись вебхука",
"admin_settings_field_heleket_trusted_ips_label": "Доверенные IP",
"admin_settings_field_heleket_trusted_ips_description": "IP-адреса через запятую, с которых принимаются вебхуки Heleket.",
"admin_settings_field_trial_enabled_label": "Триал включён",
"admin_settings_field_trial_duration_days_label": "Длительность триала (дней)",
"admin_settings_field_trial_traffic_limit_gb_label": "Лимит трафика триала (ГБ)",
@@ -1387,6 +1455,7 @@
"admin_settings_field_log_promo_activations_label": "Логировать активации промокодов",
"admin_settings_field_log_trial_activations_label": "Логировать активации триала",
"admin_settings_field_log_suspicious_activity_label": "Логировать подозрительные действия",
"admin_settings_field_log_support_label": "Логировать поддержку",
"admin_settings_field_log_level_label": "Глобальный уровень логов",
"admin_settings_field_log_level_description": "DEBUG / INFO / WARNING / ERROR",
"admin_settings_field_log_chat_id_label": "ID чата для логов",