fix: complete english localization refresh

This commit is contained in:
3252a8
2026-05-28 00:55:22 +03:00
parent 62e950f5c4
commit f153ca5bf4
3 changed files with 313 additions and 3 deletions
@@ -361,7 +361,7 @@ export function createAccountStore({
if (typeof updateLocalData === "function") {
updateLocalData(normalize(response.language || language));
}
await loadData();
await loadData({ fresh: true });
} catch {
showToast(t("wa_settings_language_update_failed"));
} finally {
+156 -1
View File
@@ -1802,5 +1802,160 @@
"admin_translations_audience_user": "User-visible",
"admin_translations_audience_internal": "Admin/internal",
"admin_translations_audience_user_hint": "Mini App, bot, payment, subscription, support, and auth copy.",
"admin_translations_audience_internal_hint": "Admin panel, logs, sync statuses, and service notifications."
"admin_translations_audience_internal_hint": "Admin panel, logs, sync statuses, and service notifications.",
"admin_actions": "Actions",
"admin_ad_created": "Campaign created",
"admin_ad_deleted": "Campaign deleted",
"admin_appearance_brand_sub": "File, URL, or confirmed emoji logo",
"admin_appearance_brand_title": "Logo",
"admin_appearance_emoji_font": "Emoji font",
"admin_appearance_favicon_upload_failed": "Failed to upload favicon",
"admin_appearance_favicon_upload_file": "Upload favicon",
"admin_appearance_favicon_upload_url": "From URL",
"admin_appearance_favicon_uploaded_pending": "Favicon uploaded and applied.",
"admin_appearance_logo_upload_failed": "Failed to upload logo",
"admin_appearance_logo_upload_file": "Upload file",
"admin_appearance_logo_upload_url": "From URL",
"admin_appearance_logo_uploaded_pending": "Logo uploaded and applied.",
"admin_appearance_preview_theme": "Preview",
"admin_appearance_theme_accent_empty": "Not set",
"admin_appearance_theme_accent_placeholder": "Not set",
"admin_appearance_theme_home_logo_scale": "Home and login logo",
"admin_appearance_themes_sub": "Global theme, accent color, and preview",
"admin_appearance_themes_title": "Themes",
"admin_appearance_use_custom_favicon": "Use a separate favicon",
"admin_appearance_use_emoji_logo": "Use emoji logo",
"admin_backups_create": "Create backup",
"admin_backups_create_done": "Backup created",
"admin_backups_create_failed": "Failed to create backup",
"admin_backups_creating": "Creating...",
"admin_backups_pagination_meta": "{from}-{to} / {total}",
"admin_btn_add_squad": "Add squad",
"admin_btn_ban": "Block user",
"admin_btn_cancel": "Cancel",
"admin_btn_confirm_delete": "Confirm deletion",
"admin_btn_confirm_send": "Confirm send",
"admin_btn_delete_account": "Delete account",
"admin_btn_preview_tg": "Preview in Telegram",
"admin_btn_save_tariff": "Save tariff",
"admin_btn_send_msg": "Send message",
"admin_btn_unban": "Unblock user",
"admin_days_short": "d",
"admin_load_failed": "Failed to load data",
"admin_loading_squads": "Loading list from panel...",
"admin_message_preview_failed": "Failed to send preview",
"admin_message_preview_sent": "Preview sent to Telegram",
"admin_nav_appearance": "Appearance",
"admin_nav_title": "Admin panel",
"admin_no": "No",
"admin_pagination_next": "Next",
"admin_pagination_prev": "Back",
"admin_premium_override_invalid_bonus": "Invalid GB value",
"admin_regular_override_invalid_bonus": "Invalid main traffic GB value",
"admin_regular_override_saved": "Main traffic override saved",
"admin_section_appearance_subtitle": "Logo, themes, and Mini App accent colors",
"admin_section_appearance_title": "Appearance",
"admin_select": "Select",
"admin_send": "Send",
"admin_settings_saved": "Settings saved",
"admin_status_banned": "Banned",
"admin_status_subscription": "Subscription",
"admin_support_send_failed": "Send failed",
"admin_tariff_btn_package_rub": "Package ₽",
"admin_tariff_btn_package_stars": "Package ⭐",
"admin_tariff_btn_period": "Period",
"admin_tariff_create_subtitle": "The catalog will be saved to JSON after confirmation",
"admin_tariff_create_title": "New tariff",
"admin_tariff_default_updated": "Default tariff updated",
"admin_tariff_delete_subtitle": "Tariff {key} will disappear from the sales catalog.",
"admin_tariff_delete_title": "Delete tariff?",
"admin_tariff_deleted": "Tariff deleted",
"admin_tariff_edit_title": "Tariff settings",
"admin_tariff_enabled_hint": "A disabled tariff is hidden from the bot/Mini App, but active subscriptions on it keep working",
"admin_tariff_error_delete_last_enabled": "Cannot delete the last enabled tariff",
"admin_tariff_error_key_exists": "A tariff with this key already exists",
"admin_tariff_error_key_required": "Enter a tariff key",
"admin_tariff_error_min_enabled": "At least one tariff must be enabled",
"admin_tariff_hidden": "Tariff is hidden from users",
"admin_tariff_hint_conversion": "This rate converts the remaining subscription period to gigabytes when a user switches from Period to Traffic",
"admin_tariff_hint_hwid": "How many devices can use the subscription at the same time. Empty means use the .env value; 0 means unlimited",
"admin_tariff_hint_key": "Latin characters, no spaces. Used in payments and subscriptions; changing it after publication is not recommended",
"admin_tariff_hint_premium_name_en": "Optional for the English interface.",
"admin_tariff_hint_premium_name_ru": "This text replaces \"Premium servers\" in the account, top-ups, and limit cards.",
"admin_tariff_hint_premium_squads": "Remnawave squads available only to owners of this tariff. Traffic is counted by their accessible nodes",
"admin_tariff_hint_premium_traffic_limit": "How many GB through premium squads are included each month. 0 or empty means there is no separate premium limit",
"admin_tariff_hint_squads": "Remnawave squads this tariff connects the user to. Select one or more",
"admin_tariff_hint_traffic_limit": "How many GB are included every month. 0 means unlimited traffic. Extra packages can be sold on the Top-ups tab",
"admin_tariff_hwid_packages_subtitle": "Extends the limit from the General tab. Each row is a \"+N devices for N currency units\" package",
"admin_tariff_hwid_packages_title": "Extra device packages (HWID)",
"admin_tariff_label_conversion": "Conversion rate, ₽ per 1 GB",
"admin_tariff_label_desc_en": "Description - EN",
"admin_tariff_label_desc_ru": "Description - RU",
"admin_tariff_label_hwid": "Device limit (HWID)",
"admin_tariff_label_key": "Tariff key",
"admin_tariff_label_model": "Billing model",
"admin_tariff_label_name_en": "Name - EN",
"admin_tariff_label_name_ru": "Name - RU",
"admin_tariff_label_premium_name_en": "Premium section name, EN",
"admin_tariff_label_premium_name_ru": "Premium section name, RU",
"admin_tariff_label_premium_traffic_limit": "Monthly premium traffic limit, GB",
"admin_tariff_label_squads": "Base Internal Squads",
"admin_tariff_label_traffic_limit": "Monthly traffic limit, GB",
"admin_tariff_model_period_desc": "the user buys a fixed period (1/3/12 months, etc.)",
"admin_tariff_model_period_label": "Period",
"admin_tariff_model_traffic_desc": "the user buys gigabyte packages at a fixed price per GB",
"admin_tariff_model_traffic_label": "Traffic",
"admin_tariff_placeholder_desc_ru": "Base server pool",
"admin_tariff_placeholder_name_ru": "Standard",
"admin_tariff_placeholder_premium_name_ru": "Premium servers",
"admin_tariff_premium_head": "Premium access and a separate traffic counter",
"admin_tariff_premium_subhead": "Premium squads give the user access to faster/premium nodes; their traffic is counted separately from main traffic so it can be limited or sold separately",
"admin_tariff_premium_topup_subtitle": "Packages that extend the monthly premium limit when the user runs out",
"admin_tariff_premium_topup_title": "Premium traffic top-up",
"admin_tariff_pricing_empty": "Add at least one period so the tariff appears in the storefront.",
"admin_tariff_pricing_period_subtitle": "Each row is a separate storefront option: how many months the user pays for and how much it costs",
"admin_tariff_pricing_period_title": "Subscription periods and prices",
"admin_tariff_pricing_traffic_subtitle": "Base storefront for the traffic model. Each row is an \"N gigabytes for N currency units\" package",
"admin_tariff_pricing_traffic_title": "Traffic packages",
"admin_tariff_saved": "Tariff saved",
"admin_tariff_status_updated": "Tariff status updated",
"admin_tariff_topup_subtitle": "When a user runs out of the monthly limit, they can buy an extra package without changing the subscription term",
"admin_tariff_topup_title": "Traffic top-up over the monthly limit",
"admin_tariff_topup_traffic_hint": "For the traffic model, separate top-ups are not needed: packages configured on the Prices tab are the top-ups users can buy again as they run out.",
"admin_tariff_visible": "Tariff is visible in the storefront",
"admin_tariffs_save_failed": "Failed to save tariffs",
"admin_tariffs_saved": "Tariffs saved",
"admin_tariffs_title": "Tariff catalog",
"admin_user_label_ref_bot": "Referral link (bot)",
"admin_user_label_ref_web": "Referral link (web)",
"admin_user_override_unlimited_short": "Unlimited",
"admin_user_premium_override_bonus": "Extra premium traffic, GB",
"admin_user_premium_override_bonus_hint": "",
"admin_user_premium_override_card_hint": "Unlimited access and extra volume for premium squads on top of the tariff.",
"admin_user_premium_override_card_title": "Premium traffic",
"admin_user_premium_override_save": "Save",
"admin_user_premium_override_status_bonus": "Premium now: +{gb} GB",
"admin_user_premium_override_status_none": "Premium override is not set",
"admin_user_premium_override_status_unlimited": "Current: unlimited",
"admin_user_premium_unlimited_hint": "Unlimited (admin override)",
"admin_user_premium_unlimited_value": "∞ (used {used})",
"admin_user_regular_override_bonus": "Extra main traffic, GB",
"admin_user_regular_override_bonus_hint": "",
"admin_user_regular_override_card_hint": "Unlimited access and a permanent bonus to the main traffic limit.",
"admin_user_regular_override_card_title": "Main traffic",
"admin_user_regular_override_save": "Save",
"admin_user_regular_override_status_bonus": "Main now: +{gb} GB",
"admin_user_regular_override_status_none": "Main traffic bonus is not set",
"admin_user_regular_override_status_unlimited": "Current: unlimited",
"admin_user_traffic_grant_gb": "GB to grant",
"admin_user_traffic_grant_hint": "Adds GB to the user balance like a top-up, but without payment. The limit and squads update in the panel immediately.",
"admin_user_traffic_grant_kind": "Traffic type",
"admin_user_traffic_grant_kind_premium": "Premium",
"admin_user_traffic_grant_kind_regular": "Regular",
"admin_user_traffic_grant_submit": "Grant",
"admin_user_traffic_grant_title": "Grant traffic",
"admin_yes": "Yes",
"wa_payment_success": "Payment successful",
"wa_settings_admin_panel": "Admin panel",
"wa_settings_admin_panel_hint": "Manage the app"
}
+156 -1
View File
@@ -1802,5 +1802,160 @@
"admin_translations_audience_user": "Видно пользователю",
"admin_translations_audience_internal": "Админка/внутреннее",
"admin_translations_audience_user_hint": "Строки Mini App, бота, платежей, подписок, поддержки и входа.",
"admin_translations_audience_internal_hint": "Админка, логи, статусы синхронизации и сервисные уведомления."
"admin_translations_audience_internal_hint": "Админка, логи, статусы синхронизации и сервисные уведомления.",
"admin_actions": "Действия",
"admin_ad_created": "Кампания создана",
"admin_ad_deleted": "Кампания удалена",
"admin_appearance_brand_sub": "Файл, ссылка или подтвержденный emoji-логотип",
"admin_appearance_brand_title": "Логотип",
"admin_appearance_emoji_font": "Шрифт emoji",
"admin_appearance_favicon_upload_failed": "Не удалось загрузить favicon",
"admin_appearance_favicon_upload_file": "Загрузить favicon",
"admin_appearance_favicon_upload_url": "По ссылке",
"admin_appearance_favicon_uploaded_pending": "Favicon загружена и применена.",
"admin_appearance_logo_upload_failed": "Не удалось загрузить логотип",
"admin_appearance_logo_upload_file": "Загрузить файл",
"admin_appearance_logo_upload_url": "По ссылке",
"admin_appearance_logo_uploaded_pending": "Логотип загружен и применен.",
"admin_appearance_preview_theme": "Предпросмотр",
"admin_appearance_theme_accent_empty": "Не задан",
"admin_appearance_theme_accent_placeholder": "Не задан",
"admin_appearance_theme_home_logo_scale": "Логотип на главной и входе",
"admin_appearance_themes_sub": "Глобальная тема, accent color и предпросмотр",
"admin_appearance_themes_title": "Темы",
"admin_appearance_use_custom_favicon": "Использовать отдельную favicon",
"admin_appearance_use_emoji_logo": "Использовать emoji-логотип",
"admin_backups_create": "Создать бэкап",
"admin_backups_create_done": "Бэкап создан",
"admin_backups_create_failed": "Не удалось создать бэкап",
"admin_backups_creating": "Создание...",
"admin_backups_pagination_meta": "{from}-{to} / {total}",
"admin_btn_add_squad": "Добавить сквад",
"admin_btn_ban": "Заблокировать",
"admin_btn_cancel": "Отмена",
"admin_btn_confirm_delete": "Подтвердить удаление",
"admin_btn_confirm_send": "Подтвердить отправку",
"admin_btn_delete_account": "Удалить аккаунт",
"admin_btn_preview_tg": "Превью в Telegram",
"admin_btn_save_tariff": "Сохранить тариф",
"admin_btn_send_msg": "Отправить сообщение",
"admin_btn_unban": "Разбанить пользователя",
"admin_days_short": "дн.",
"admin_load_failed": "Не удалось загрузить данные",
"admin_loading_squads": "Загружаю список из панели…",
"admin_message_preview_failed": "Ошибка отправки превью",
"admin_message_preview_sent": "Превью отправлено в Telegram",
"admin_nav_appearance": "Внешний вид",
"admin_nav_title": "Админ-панель",
"admin_no": "Нет",
"admin_pagination_next": "Далее",
"admin_pagination_prev": "Назад",
"admin_premium_override_invalid_bonus": "Некорректное значение GB",
"admin_regular_override_invalid_bonus": "Некорректное значение GB для основного трафика",
"admin_regular_override_saved": "Оверрайд основного трафика сохранён",
"admin_section_appearance_subtitle": "Логотип, темы и акцентные цвета Mini App",
"admin_section_appearance_title": "Внешний вид",
"admin_select": "Выбрать",
"admin_send": "Отправить",
"admin_settings_saved": "Настройки сохранены",
"admin_status_banned": "Бан",
"admin_status_subscription": "Подписка",
"admin_support_send_failed": "Ошибка отправки",
"admin_tariff_btn_package_rub": "Пакет ₽",
"admin_tariff_btn_package_stars": "Пакет ⭐",
"admin_tariff_btn_period": "Период",
"admin_tariff_create_subtitle": "Каталог будет сохранён в JSON после подтверждения",
"admin_tariff_create_title": "Новый тариф",
"admin_tariff_default_updated": "Тариф по умолчанию обновлён",
"admin_tariff_delete_subtitle": "Тариф {key} исчезнет из каталога продаж.",
"admin_tariff_delete_title": "Удалить тариф?",
"admin_tariff_deleted": "Тариф удалён",
"admin_tariff_edit_title": "Настройка тарифа",
"admin_tariff_enabled_hint": "Выключенный тариф не показывается в боте/мини-аппе, но активные подписки на нём продолжают работать",
"admin_tariff_error_delete_last_enabled": "Нельзя удалить последний включённый тариф",
"admin_tariff_error_key_exists": "Тариф с таким ключом уже есть",
"admin_tariff_error_key_required": "Укажите ключ тарифа",
"admin_tariff_error_min_enabled": "Должен быть хотя бы один включённый тариф",
"admin_tariff_hidden": "Тариф скрыт от пользователей",
"admin_tariff_hint_conversion": "По этому курсу остаток подписки пересчитывается в гигабайты при переходе пользователя с тарифа «Период» на «Трафик»",
"admin_tariff_hint_hwid": "Сколько устройств может одновременно использовать подписку. Пусто — взять значение из .env, 0 — без ограничений",
"admin_tariff_hint_key": "Латиницей, без пробелов. Используется в платежах и подписках, менять после публикации не рекомендуется",
"admin_tariff_hint_premium_name_en": "Опционально для английского интерфейса.",
"admin_tariff_hint_premium_name_ru": "Эта строка заменит «Premium-серверы» в кабинете, докупках и карточках лимитов.",
"admin_tariff_hint_premium_squads": "Сквады из Remnawave, доступные только владельцам этого тарифа. Трафик считается по их accessible nodes",
"admin_tariff_hint_premium_traffic_limit": "Сколько GB через premium-сквады включено в тариф каждый месяц. 0 или пусто — отдельного premium-лимита нет (premium-нодами можно пользоваться без ограничения)",
"admin_tariff_hint_squads": "Сквады Remnawave, к которым подключается пользователь по этому тарифу. Выберите один или несколько",
"admin_tariff_hint_traffic_limit": "Сколько GB включено в тариф на каждый месяц. 0 — безлимитный трафика. Сверху можно докупать пакеты на вкладке «Докупки»",
"admin_tariff_hwid_packages_subtitle": "Расширяет лимит, указанный во вкладке «Основное». Каждая строка — пакет «+N устройств за N единиц валюты»",
"admin_tariff_hwid_packages_title": "Пакеты дополнительных устройств (HWID)",
"admin_tariff_label_conversion": "Курс конвертации, ₽ за 1 GB",
"admin_tariff_label_desc_en": "Описание · EN",
"admin_tariff_label_desc_ru": "Описание · RU",
"admin_tariff_label_hwid": "Лимит устройств (HWID)",
"admin_tariff_label_key": "Ключ тарифа",
"admin_tariff_label_model": "Модель тарификации",
"admin_tariff_label_name_en": "Название · EN",
"admin_tariff_label_name_ru": "Название · RU",
"admin_tariff_label_premium_name_en": "Название premium-раздела, EN",
"admin_tariff_label_premium_name_ru": "Название premium-раздела, RU",
"admin_tariff_label_premium_traffic_limit": "Месячный лимит premium-трафика, GB",
"admin_tariff_label_squads": "Базовые Internal Squads",
"admin_tariff_label_traffic_limit": "Месячный лимит трафика, GB",
"admin_tariff_model_period_desc": "пользователь покупает фиксированный срок (1/3/12 мес. и т.д.)",
"admin_tariff_model_period_label": "Период",
"admin_tariff_model_traffic_desc": "пользователь покупает пакеты гигабайт по фиксированной цене за GB",
"admin_tariff_model_traffic_label": "Трафик",
"admin_tariff_placeholder_desc_ru": "Базовый набор серверов",
"admin_tariff_placeholder_name_ru": "Стандарт",
"admin_tariff_placeholder_premium_name_ru": "Premium-серверы",
"admin_tariff_premium_head": "Premium-доступ и отдельный счётчик трафика",
"admin_tariff_premium_subhead": "Premium-сквады дают пользователю доступ к более быстрым/премиальным нодам; их трафик считается отдельно от основного, чтобы можно было ограничить или продавать дополнительно",
"admin_tariff_premium_topup_subtitle": "Пакеты для расширения месячного premium-лимита, когда пользователь его исчерпал",
"admin_tariff_premium_topup_title": "Докупка premium-трафика",
"admin_tariff_pricing_empty": "Добавьте хотя бы один период — без него тариф не появится на витрине.",
"admin_tariff_pricing_period_subtitle": "Каждая строка — отдельный вариант на витрине: за сколько месяцев пользователь платит и сколько это стоит",
"admin_tariff_pricing_period_title": "Периоды подписки и цены",
"admin_tariff_pricing_traffic_subtitle": "Базовая витрина для трафиковой модели. Каждая строка — пакет «N гигабайт за N единиц валюты»",
"admin_tariff_pricing_traffic_title": "Пакеты трафика",
"admin_tariff_saved": "Тариф сохранён",
"admin_tariff_status_updated": "Статус тарифа обновлён",
"admin_tariff_topup_subtitle": "Когда у пользователя кончился месячный лимит, ему предложат купить дополнительный пакет, не меняя срок подписки",
"admin_tariff_topup_title": "Докупка трафика поверх месячного лимита",
"admin_tariff_topup_traffic_hint": "Для трафиковой модели отдельные «докупки» не нужны — пакеты, которые вы настроили на вкладке «Цены», и являются докупками: пользователь покупает их повторно по мере исчерпания.",
"admin_tariff_visible": "Тариф виден на витрине",
"admin_tariffs_save_failed": "Ошибка сохранения тарифов",
"admin_tariffs_saved": "Тарифы сохранены",
"admin_tariffs_title": "Каталог тарифов",
"admin_user_label_ref_bot": "Реф. ссылка (бот)",
"admin_user_label_ref_web": "Реф. ссылка (веб)",
"admin_user_override_unlimited_short": "Безлимит",
"admin_user_premium_override_bonus": "Доп. премиум-трафик, GB",
"admin_user_premium_override_bonus_hint": "",
"admin_user_premium_override_card_hint": "Безлимит и дополнительный объём для премиум-сквадов поверх тарифа.",
"admin_user_premium_override_card_title": "Премиум-трафик",
"admin_user_premium_override_save": "Сохранить",
"admin_user_premium_override_status_bonus": "Премиум сейчас: +{gb} GB",
"admin_user_premium_override_status_none": "Премиум-оверрайд не задан",
"admin_user_premium_override_status_unlimited": "Сейчас: безлимит",
"admin_user_premium_unlimited_hint": "Безлимит (админ-оверрайд)",
"admin_user_premium_unlimited_value": "∞ (использовано {used})",
"admin_user_regular_override_bonus": "Доп. основной трафик, GB",
"admin_user_regular_override_bonus_hint": "",
"admin_user_regular_override_card_hint": "Безлимит и постоянный бонус к лимиту основного трафика.",
"admin_user_regular_override_card_title": "Основной трафик",
"admin_user_regular_override_save": "Сохранить",
"admin_user_regular_override_status_bonus": "Основной сейчас: +{gb} GB",
"admin_user_regular_override_status_none": "Бонус основного трафика не задан",
"admin_user_regular_override_status_unlimited": "Сейчас: безлимит",
"admin_user_traffic_grant_gb": "ГБ к выдаче",
"admin_user_traffic_grant_hint": "Зачисление ГБ на баланс пользователя — как при докупке, но без оплаты. Лимит и сквады в панели обновятся сразу.",
"admin_user_traffic_grant_kind": "Тип трафика",
"admin_user_traffic_grant_kind_premium": "Премиум",
"admin_user_traffic_grant_kind_regular": "Обычный",
"admin_user_traffic_grant_submit": "Выдать",
"admin_user_traffic_grant_title": "Выдать трафик",
"admin_yes": "Да",
"wa_payment_success": "Платёж успешно выполнен",
"wa_settings_admin_panel": "Админ-панель",
"wa_settings_admin_panel_hint": "Управление приложением"
}