feat: add runtime locale overrides

This commit is contained in:
3252a8
2026-05-25 17:47:45 +03:00
parent 23784d00fe
commit 59fa301344
51 changed files with 4026 additions and 214 deletions
+78 -76
View File
@@ -46,9 +46,7 @@
"yookassa_autopay_pay_new_card_button": "➕ Оплата новой картой",
"yookassa_autopay_choose_saved_card": "Выберите привязанную карту для списания:",
"yookassa_autopay_no_saved_cards": "Сохранённых карт нет. Оплатите новой картой или привяжите карту в разделе «Способы оплаты».",
"back_to_autopay_method_choice_button": "⬅️ Назад",
"yookassa_autopay_charge_initiated": "Запрос на списание с выбранной карты отправлен. Сообщим, как только платёж завершится.",
"back_to_payment_methods_button": "⬅️ Назад",
"connect_button": "🔗 Подключиться",
"install_guide_share_button": "🔗 Поделиться инструкцией",
"install_guide_share_link_line": "\n\nИнструкция для передачи:\n<code>{install_share_link}</code>",
@@ -156,22 +154,17 @@
"admin_no_payments_to_export": "Нет платежей для экспорта.",
"admin_payments_export_success": "📊 Экспорт платежей завершен!\nВсего записей: {count}",
"admin_export_sent": "Файл отправлен!",
"admin_csv_payment_id": "ID",
"admin_csv_user_id": "User ID",
"admin_csv_username": "Логин",
"admin_csv_first_name": "Имя",
"admin_csv_amount": "Сумма",
"admin_csv_currency": "Валюта",
"admin_csv_provider": "Платежная система",
"admin_csv_status": "Статус",
"admin_csv_description": "Описание",
"admin_csv_units": "Месяцы/ГБ",
"admin_csv_months": "Месяцев",
"admin_csv_created_at": "Дата создания",
"admin_csv_provider_payment_id": "ID платежа в системе",
"admin_stats_last_sync_header": "Последняя синхронизация с панелью:",
"admin_stats_sync_time": "Время",
"admin_stats_sync_status": "Статус",
"admin_stats_sync_users_processed": "Обработано юзеров с панели",
"admin_stats_sync_subs_synced": "Синхронизировано подписок",
"admin_stats_sync_details_label": "Детали",
@@ -182,7 +175,6 @@
"broadcast_target_active_button": "✅ Активные",
"broadcast_target_inactive_button": "⌛ Неактивные",
"confirm_broadcast_send_button": "✅ Отправить",
"cancel_broadcast_button": "❌ Отмена",
"admin_broadcast_sending_started": "Начинаю рассылку...",
"admin_broadcast_error_no_message": "Ошибка: сообщение для рассылки не найдено.",
"admin_broadcast_error_no_message_alert": "Сообщение для рассылки пустое!",
@@ -229,13 +221,9 @@
"admin_promo_csv_bonus_days": "Бонусные дни",
"admin_promo_csv_max_activations": "Максимальные активации",
"admin_promo_csv_current_activations": "Текущие активации",
"admin_promo_csv_status": "Статус",
"admin_promo_csv_is_active": "Активен",
"admin_promo_csv_valid_until": "Действителен до",
"admin_promo_csv_created_at": "Создан",
"admin_promo_csv_created_by_admin_id": "Создал (Admin ID)",
"csv_yes": "Да",
"csv_no": "Нет",
"admin_promo_edit_select_field": "Выберите поле для редактирования:",
"admin_promo_prompt_bonus_days": "Введите новое количество бонусных дней:",
"admin_promo_prompt_max_activations": "Введите новое максимальное количество активаций:",
@@ -417,7 +405,6 @@
"admin_promo_step3_max_activations": "🎟 <b>Создание промокода</b>\n\n<b>Шаг 3 из 4:</b> Максимальные активации\n\nКод: <b>{code}</b>\nБонусные дни: <b>{bonus_days}</b>\n\nВведите максимальное количество активаций (1-10000):",
"admin_promo_step4_validity": "🎟 <b>Создание промокода</b>\n\n<b>Шаг 4 из 4:</b> Срок действия\n\nКод: <b>{code}</b>\nБонусные дни: <b>{bonus_days}</b>\nМакс. активации: <b>{max_activations}</b>\n\nВыберите срок действия промокода:",
"admin_promo_code_already_exists": "❌ Промокод с таким кодом уже существует",
"admin_promo_unlimited_validity": "♾️ Неограниченно",
"admin_promo_enter_validity_days": "⏰ Введите количество дней действия промокода (1-365):",
"admin_user_id_label": "🆔 <b>ID:</b>",
"admin_user_name_label": "👤 <b>Имя:</b>",
@@ -494,7 +481,6 @@
"inline_referral_description": "Поделиться реферальной ссылкой для получения бонусов",
"inline_financial_description": "Сегодня: {today} RUB",
"inline_system_description": "🟢 Онлайн: {online}, 📊 Активных: {active}",
"admin_user_stats_total_label": "Всего",
"admin_user_stats_paid_subs_label": "С платной подпиской",
"admin_user_stats_trial_label": "На пробном периоде",
"admin_user_stats_inactive_label": "Неактивных",
@@ -819,7 +805,6 @@
"wa_devices_platform_unknown": "Платформа неизвестна",
"wa_devices_connected_at": "Подключено",
"wa_devices_disconnect": "Отключить устройство",
"wa_devices_disconnect_title": "Отключить устройство",
"wa_devices_disconnect_desc": "{device} будет удалено из списка устройств. Оно может подключиться снова при следующем использовании подписки на этом устройстве.",
"wa_devices_disconnect_confirm": "Отключить",
"wa_device_disconnected": "Устройство отключено",
@@ -845,7 +830,6 @@
"wa_settings_link_email_action": "Привязать почту",
"wa_settings_email_linked_title": "Почта привязана",
"wa_activate_promo_title": "Активировать промокод",
"wa_link_email_modal_title": "Привязать почту",
"wa_traffic_reset_none": "Без сброса",
"wa_traffic_reset_monthly": "Сброс ежемесячно",
"wa_traffic_reset_weekly": "Сброс еженедельно",
@@ -940,8 +924,6 @@
"admin_users_col_registration": "Регистрация",
"admin_page": "Страница",
"admin_page_short": "Стр.",
"admin_back": "Назад",
"admin_next": "Далее",
"admin_user": "Пользователь",
"admin_amount": "Сумма",
"admin_provider": "Провайдер",
@@ -949,7 +931,6 @@
"admin_status": "Статус",
"admin_date": "Дата",
"admin_payments_empty": "Нет платежей",
"admin_payments_col_user_id": "ID",
"admin_payments_col_traffic_regular": "Основной трафик",
"admin_payments_col_traffic_premium": "Премиум трафик",
"admin_payments_col_actions": "",
@@ -958,7 +939,6 @@
"admin_payments_desc_traffic_package_premium": "Пакет трафика {gb} ГБ (премиум)",
"admin_payment_detail_open": "Открыть платёж",
"admin_payment_detail_title": "Платёж #{id}",
"admin_payment_detail_copied": "Скопировано",
"admin_payment_load_failed": "Не удалось загрузить платёж",
"admin_payment_detail_updated_at": "Обновлён",
"admin_payment_detail_provider_payment_id": "ID у провайдера",
@@ -973,13 +953,9 @@
"admin_payment_detail_purchased_gb": "Куплено GB",
"admin_payment_detail_hwid_devices": "HWID-устройства",
"admin_payment_detail_promo_code": "Промокод",
"admin_payment_detail_provider": "Провайдер",
"admin_payment_detail_user_section": "Пользователь",
"admin_payment_detail_payment_section": "Платёж",
"admin_payment_detail_provider_section": "Провайдер",
"admin_payment_detail_purchase_section": "Покупка",
"admin_logs_user_filter_placeholder": "Фильтр по ID пользователя",
"admin_apply": "Применить",
"admin_reset": "Сбросить",
"admin_event": "Событие",
"admin_content": "Контент",
@@ -1009,14 +985,11 @@
"admin_settings_provider_webhook_base_missing": "Укажите WEBHOOK_BASE_URL в .env, чтобы увидеть полный адрес для {path}.",
"admin_settings_provider_admin_only_label": "Только для админов",
"admin_settings_provider_admin_only_description": "Показывает провайдер только администраторам. Вебхуки и обработка статусов остаются активными для тестовых платежей.",
"admin_copy": "Копировать",
"admin_copied": "Скопировано",
"admin_settings_validation_errors": "Ошибки: {errors}",
"admin_settings_save_error": "Ошибка: {error}",
"admin_sync_started": "Синхронизация запущена",
"admin_sync_error": "Ошибка синхронизации",
"admin_error": "Ошибка",
"admin_link_copied": "Ссылка скопирована",
"admin_user_banned": "Пользователь забанен",
"admin_user_unbanned": "Пользователь разбанен",
"admin_message_sent": "Сообщение отправлено",
@@ -1067,7 +1040,6 @@
"admin_stats_revenue_period_365": "1 г.",
"admin_stats_revenue_period_custom": "Свой период",
"admin_stats_revenue_custom_range_title": "Диапазон дат (UTC)",
"admin_stats_revenue_custom_range_apply": "Применить",
"admin_stats_revenue_granularity_aria": "Шаг графика выручки",
"admin_stats_revenue_granularity_day": "По дням",
"admin_stats_revenue_granularity_week": "По неделям",
@@ -1077,7 +1049,6 @@
"admin_stats_revenue_chart_bucket_count": "Точек: {count}",
"admin_stats_revenue_chart_custom_span": "Диапазон: {days} дн.",
"admin_stats_revenue_tooltip_day": "День",
"admin_stats_revenue_tooltip_amount": "Сумма",
"admin_stats_revenue_avg_check": "Средний чек сегодня: {value}",
"admin_stats_revenue_avg_none": "Сегодня без успешных платежей",
"admin_stats_revenue_avg_ticket_label": "Средний чек (сегодня)",
@@ -1141,7 +1112,6 @@
"admin_user_tg_profile_link_sent": "Ссылка отправлена в Telegram",
"admin_user_tg_profile_link_failed": "Не удалось отправить ссылку",
"admin_user_profile_link_message": "Профиль пользователя: <b>{name}</b>\nUser ID: <code>{user_id}</code>\nTelegram ID: <code>{telegram_id}</code>\n\nНажмите кнопку ниже, чтобы открыть профиль в Telegram.",
"admin_close": "Закрыть",
"admin_loading": "Загрузка…",
"admin_badge_banned": "Бан",
"admin_badge_active": "Активен",
@@ -1166,7 +1136,6 @@
"admin_user_label_active_until": "Активна до",
"admin_user_label_tariff": "Тариф",
"admin_user_label_auto_renew": "Авто-продление",
"admin_user_label_provider": "Провайдер",
"admin_user_label_main_traffic": "Основной трафик",
"admin_user_traffic_left": "Осталось: {left}",
"admin_user_label_premium_squads": "Premium-сквады",
@@ -1175,7 +1144,6 @@
"user_premium_override_card_hint": "Безлимит и дополнительный объём для премиум-сквадов поверх тарифа.",
"user_regular_override_card_title": "Основной трафик",
"user_regular_override_card_hint": "Режим безлимита и постоянный бонус к лимиту основного трафика.",
"user_regular_override_save": "Сохранить",
"user_regular_override_status_unlimited": "Сейчас: безлимит",
"regular_override_saved": "Оверрайд основного трафика сохранён",
"user_traffic_override_title": "Оверрайд трафика",
@@ -1191,7 +1159,6 @@
"user_premium_override_unlimited": "Безлимит на премиум",
"user_premium_override_bonus": "Доп. премиум-трафик, GB",
"user_premium_override_save": "Сохранить оверрайд",
"user_premium_override_status_unlimited": "Сейчас: безлимит",
"user_premium_override_status_bonus": "Сейчас: +{gb} GB",
"user_premium_override_status_none": "Премиум-оверрайд не задан",
"user_premium_unlimited_value": "∞ (использовано {used})",
@@ -1211,7 +1178,6 @@
"admin_user_no_active_subscription": "Активной подписки нет",
"admin_user_history_title": "История подписок · {count}",
"admin_user_history_no_tariff": "Без тарифа",
"admin_user_history_until": "до {date}",
"admin_user_history_active": "Активна",
"admin_user_history_status_panel": "История",
"admin_user_recent_payments_title": "Последние платежи · {count}",
@@ -1232,7 +1198,6 @@
"admin_user_btn_delete_account": "Удалить аккаунт",
"admin_user_msg_confirm_title": "Отправить сообщение пользователю?",
"admin_user_msg_confirm_recipient": "Получатель: {name}",
"admin_user_btn_cancel": "Отмена",
"admin_user_btn_confirm_send": "Подтвердить отправку",
"admin_user_ban_confirm_title": "Заблокировать пользователя?",
"admin_user_ban_confirm_subtitle": "{name} больше не сможет взаимодействовать с ботом. Действие можно отменить позже.",
@@ -1249,7 +1214,6 @@
"admin_tariff_label_hwid_count_full": "Сколько устройств добавляет пакет",
"admin_tariff_label_price_rub": "Цена в рублях",
"admin_tariff_label_price_stars": "Цена в Telegram Stars",
"admin_status_active": "Активен",
"admin_aria_label_main_traffic": "Использование основного трафика",
"admin_aria_label_premium_traffic": "Использование premium-трафика",
"admin_btn_delete": "Удалить",
@@ -1259,24 +1223,18 @@
"admin_btn_tariff": "Тариф",
"admin_btn_sync": "Синхронизировать",
"admin_btn_syncing": "Синхронизация...",
"admin_btn_save": "Сохранить",
"admin_btn_saving": "Сохранение...",
"admin_btn_enable": "Вкл",
"admin_btn_disable": "Выкл",
"admin_btn_show_more": "Показать еще",
"admin_settings_dirty_count": "Изменений: {count}",
"admin_promo_col_code": "Код",
"admin_promo_col_bonus": "Бонус",
"admin_promo_col_activations": "Активаций",
"admin_promo_col_valid_until": "Действует до",
"admin_promo_col_status": "Статус",
"admin_promo_create_title": "Создать промокод",
"admin_promo_label_code": "Код",
"admin_promo_label_bonus_days": "Бонус (дней)",
"admin_promo_label_max_activations": "Макс. активаций",
"admin_promo_label_valid_days": "Срок действия (дней)",
"admin_ad_create_title": "Новая кампания",
"admin_ad_label_source": "Источник",
"admin_ad_label_param": "start-параметр",
"admin_ad_hint_param": "Unique identifier for the referral link",
"admin_ad_label_cost": "Стоимость, RUB",
@@ -1285,7 +1243,6 @@
"admin_ads_col_cost": "Стоимость",
"admin_ads_col_registrations": "Регистрации",
"admin_ads_col_conversions": "Конверсии",
"admin_ads_col_status": "Статус",
"admin_no_data": "Нет данных",
"admin_settings_hint": "Изменения в админке имеют приоритет над .env. Кнопка «Сбросить» возвращает значение из переменных окружения.",
"admin_settings_legacy_tariffs_warning_title": "Совместимость с remnawave-tg-shop legacy",
@@ -1313,7 +1270,6 @@
"admin_show": "Показать",
"admin_hide": "Скрыть",
"admin_tariffs_stat_total": "Всего тарифов",
"admin_tariffs_stat_enabled": "Включено",
"admin_tariffs_stat_default": "По умолчанию",
"admin_tariffs_stat_default_hint": "Используется для новых подписок",
"admin_tariffs_stat_disabled": "Отключено",
@@ -1340,7 +1296,6 @@
"admin_tariffs_legacy_subtitle": "Старые периоды и пакеты трафика remnawave-tg-shop, которые используются только без JSON-каталога.",
"admin_tariffs_legacy_period": "Период",
"admin_tariffs_legacy_enabled": "Включён",
"admin_tariffs_legacy_traffic_packages": "Пакеты трафика",
"admin_tariffs_legacy_stars_traffic_packages": "Пакеты трафика, Stars",
"admin_tariffs_legacy_traffic_hint": "Формат: 10:199,50:799",
"admin_tariff_tab_general": "Основное",
@@ -1383,7 +1338,6 @@
"admin_months_short": "мес.",
"admin_at": "за",
"admin_tariff_traffic_packages": "Пакеты трафика",
"admin_btn_refresh": "Обновить",
"admin_btn_create_tariff": "Создать тариф",
"admin_enabled": "Включено",
"admin_disabled": "Выключено",
@@ -1398,7 +1352,6 @@
"admin_broadcast_stat_failed": "Неудач",
"admin_broadcast_started": "Рассылка запущена",
"admin_broadcast_failed": "Ошибка рассылки",
"admin_user_short": "Пользователь",
"admin_target_short": "Цель",
"admin_settings_field_default_language_label": "Язык по умолчанию",
"admin_settings_field_default_language_description": "Используется для приветственных сообщений и публичных страниц.",
@@ -1667,45 +1620,18 @@
"admin_nav_support": "Поддержка",
"admin_section_support_title": "Поддержка",
"admin_section_support_subtitle": "Инбокс тикетов и ответы пользователям",
"admin_support_search": "Поиск",
"admin_support_empty": "Тикетов пока нет",
"admin_support_select_ticket": "Выберите тикет",
"admin_support_close_ticket": "Закрыть",
"admin_support_internal_note": "Внутренняя заметка",
"admin_support_reply_placeholder": "Ответ",
"admin_support_no_messages": "Сообщений пока нет",
"admin_support_filter_all": "Все",
"admin_support_filter_active": "Активные",
"admin_support_filter_closed": "Закрытые",
"admin_support_filter_all_priorities": "Любой приоритет",
"admin_support_filter_all_categories": "Все категории",
"admin_support_ticket_number": "Тикет #{id}",
"admin_support_priority": "Приоритет",
"admin_support_category": "Категория",
"admin_support_role_user": "Пользователь",
"admin_support_role_admin": "Админ",
"admin_support_role_system": "Система",
"admin_support_user_context": "Пользователь",
"admin_support_open_user": "Карточка",
"admin_support_tariff": "Тариф",
"admin_support_status": "Статус",
"admin_support_remaining": "Осталось",
"admin_support_unread": "Непрочитано",
"admin_support_summary": "Сводка поддержки",
"admin_support_ticket_dialog": "Диалог поддержки",
"admin_support_status_open": "Открыт",
"admin_support_status_awaiting_user": "Ждёт пользователя",
"admin_support_status_awaiting_admin": "Ждёт админа",
"admin_support_status_resolved": "Решён",
"admin_support_status_closed": "Закрыт",
"admin_support_priority_low": "Низкий",
"admin_support_priority_normal": "Обычный",
"admin_support_priority_high": "Высокий",
"admin_support_priority_urgent": "Срочный",
"admin_support_category_billing": "Оплата",
"admin_support_category_technical": "Техническое",
"admin_support_category_account": "Аккаунт",
"admin_support_category_other": "Другое",
"admin_support_sort_importance_desc": "Важные сверху",
"admin_sort_updated_desc": "Сначала новые",
"admin_sort_updated_asc": "Сначала старые",
@@ -1722,7 +1648,6 @@
"wa_install_subscription_link_hint": "Отсканируйте QR-код или скопируйте ссылку.",
"wa_install_qr_alt": "QR-код подписки",
"wa_install_copy_subscription_link": "Скопировать ссылку",
"wa_install_link_copied": "Ссылка скопирована",
"wa_install_share": "Поделиться",
"wa_install_share_copied": "Ссылка на инструкцию скопирована",
"wa_app_launch_title": "Открываем приложение",
@@ -1750,5 +1675,82 @@
"admin_settings_field_subscription_page_config_json_label": "JSON-конфиг Subscription Page",
"admin_settings_field_subscription_page_config_json_description": "Необязательный JSON-override из админки. Применяется только когда включен соответствующий тумблер.",
"admin_settings_field_subscription_page_config_json_placeholder": "{\n \"version\": \"1\"\n}",
"admin_settings_json_upload": "Загрузить .json"
"admin_settings_json_upload": "Загрузить .json",
"admin_nav_translations": "Переводы",
"admin_section_translations_title": "Переводы",
"admin_section_translations_subtitle": "Оверрайды строк локализации из базы данных и data/locales-overrides.json",
"admin_translations_saved": "Переводы сохранены",
"admin_translations_validation_errors": "Ошибки: {errors}",
"admin_translations_save_error": "Не удалось сохранить переводы: {error}",
"admin_translations_base_value": "Базовый текст",
"admin_translations_search_placeholder": "Поиск по ключам и тексту",
"admin_translations_hint": "Оверрайды хранятся в базе данных и зеркалируются в {path}.",
"admin_translations_keys_count": "Ключей: {count}",
"admin_translations_no_matches": "Подходящих строк нет",
"admin_translations_group_admin": "Админ-панель",
"admin_translations_group_admin_hint": "Навигация, таблицы, формы, диалоги и подписи только для админов.",
"admin_translations_group_admin_navigation": "Навигация и общий UI админки",
"admin_translations_group_admin_navigation_hint": "Сайдбар, заголовки разделов, действия тулбаров, фильтры и общие контролы.",
"admin_translations_group_admin_dashboard": "Дашборд и статистика",
"admin_translations_group_admin_dashboard_hint": "Карточки дашборда, графики выручки, статус синхронизации панели и мониторинг.",
"admin_translations_group_admin_users": "Пользователи в админке",
"admin_translations_group_admin_users_hint": "Списки и карточки пользователей, баны, начисления, premium-override и личные сообщения.",
"admin_translations_group_admin_payments": "Платежи в админке",
"admin_translations_group_admin_payments_hint": "Таблицы платежей, детали оплат, экспорт, названия провайдеров и платёжная статистика.",
"admin_translations_group_admin_promos_marketing": "Промо, реклама и рассылки",
"admin_translations_group_admin_promos_marketing_hint": "Управление промокодами, рекламные кампании, маркетинговые инструменты и сценарии рассылок.",
"admin_translations_group_admin_tariffs": "Тарифы в админке",
"admin_translations_group_admin_tariffs_hint": "Каталог тарифов, диалоги тарифов, legacy-строки и блоки триала.",
"admin_translations_group_admin_support": "Инбокс поддержки",
"admin_translations_group_admin_support_hint": "Инбокс тикетов, фильтры, ответы админа и статусы поддержки.",
"admin_translations_group_admin_appearance": "Внешний вид админки",
"admin_translations_group_admin_appearance_hint": "Каталог тем, брендинг, логотип, favicon и публичные ссылки.",
"admin_translations_group_admin_settings_payments": "Платёжные настройки",
"admin_translations_group_admin_settings_payments_hint": "Тумблеры способов оплаты, цены, реквизиты провайдеров и настройки вебхуков.",
"admin_translations_group_admin_settings_subscriptions": "Настройки подписок",
"admin_translations_group_admin_settings_subscriptions_hint": "Подключение панели, squad по умолчанию, триал, рефералы, лимиты устройств и инструкции.",
"admin_translations_group_admin_settings_notifications": "Уведомления и логи",
"admin_translations_group_admin_settings_notifications_hint": "Логирование, обязательный канал, уведомления о подписке и лимиты поддержки.",
"admin_translations_group_admin_settings": "Настройки админки",
"admin_translations_group_admin_settings_hint": "Группы настроек, подразделы, подсказки и настройки без отдельной категории.",
"admin_translations_group_admin_translations": "Переводы в админке",
"admin_translations_group_admin_translations_hint": "Экран оверрайдов переводов, управление языками и названия групп локалей.",
"admin_translations_group_admin_logs": "Логи и экспорт",
"admin_translations_group_admin_logs_hint": "Логи активности, экспорт логов, CSV-заголовки и подписи деталей событий.",
"admin_translations_group_admin_misc": "Прочее в админке",
"admin_translations_group_admin_misc_hint": "Старые подписи bot-admin и внутренние строки, которые не попали в другие разделы.",
"admin_translations_group_webapp": "Mini App",
"admin_translations_group_webapp_hint": "Пользовательские экраны Mini App, навигация, настройки и уведомления.",
"admin_translations_group_bot_menu": "Telegram-бот",
"admin_translations_group_bot_menu_hint": "Стартовое меню, inline-кнопки, выбор языка и сценарии внутри бота.",
"admin_translations_group_subscriptions": "Подписки и устройства",
"admin_translations_group_subscriptions_hint": "Статус подписки, инструкции подключения, пакеты трафика, триал и устройства.",
"admin_translations_group_payments": "Платежи",
"admin_translations_group_payments_hint": "Платежные сценарии, инвойсы, способы оплаты и сообщения checkout.",
"admin_translations_group_support": "Поддержка",
"admin_translations_group_support_hint": "Ссылки поддержки, тикеты, статусы тикетов и уведомления.",
"admin_translations_group_referrals_promos": "Рефералы и промокоды",
"admin_translations_group_referrals_promos_hint": "Реферальная программа, приглашения, промокоды и бонусы.",
"admin_translations_group_auth_security": "Вход и безопасность",
"admin_translations_group_auth_security_hint": "Логин, подтверждение email, привязка аккаунтов и сообщения безопасности.",
"admin_translations_group_emails": "Email-письма",
"admin_translations_group_emails_hint": "Транзакционные письма пользователям: коды входа, платежи, объединение аккаунтов и напоминания.",
"admin_translations_group_notifications_sync": "Уведомления и синхронизация",
"admin_translations_group_notifications_sync_hint": "Админские уведомления, синхронизация панели, логи и фоновые статусы.",
"admin_translations_group_common": "Общие строки",
"admin_translations_group_common_hint": "Общие кнопки, статусы, ошибки валидации и строки без отдельной группы.",
"admin_translations_file_write_warning": "Переводы сохранены в БД, но JSON-файл не обновился",
"admin_add": "Добавить",
"admin_translations_fallback_value": "Фолбэк",
"admin_translations_languages_title": "Языки",
"admin_translations_languages_hint": "Можно добавлять языки только для оверрайдов, без базовых locale-файлов.",
"admin_translations_language_placeholder": "de, uk, pt-BR",
"admin_translations_language_custom": "Доп.",
"admin_translations_language_invalid": "Неверный код языка",
"admin_translations_language_exists": "Язык {code} уже есть",
"admin_translations_audience_all": "Все",
"admin_translations_audience_user": "Видно пользователю",
"admin_translations_audience_internal": "Админка/внутреннее",
"admin_translations_audience_user_hint": "Строки Mini App, бота, платежей, подписок, поддержки и входа.",
"admin_translations_audience_internal_hint": "Админка, логи, статусы синхронизации и сервисные уведомления."
}