feat: add runtime locale overrides
This commit is contained in:
+78
-76
@@ -46,9 +46,7 @@
|
||||
"yookassa_autopay_pay_new_card_button": "➕ Pay with new card",
|
||||
"yookassa_autopay_choose_saved_card": "Choose a saved card to charge:",
|
||||
"yookassa_autopay_no_saved_cards": "No saved cards found. Pay with a new card or link one in Payment Methods.",
|
||||
"back_to_autopay_method_choice_button": "⬅️ Back",
|
||||
"yookassa_autopay_charge_initiated": "Charge request sent to the selected card. We'll notify you once the payment completes.",
|
||||
"back_to_payment_methods_button": "⬅️ Back",
|
||||
"connect_button": "🔗 Connect",
|
||||
"install_guide_share_button": "🔗 Share install guide",
|
||||
"install_guide_share_link_line": "\n\nInstall guide for sharing:\n<code>{install_share_link}</code>",
|
||||
@@ -156,22 +154,17 @@
|
||||
"admin_no_payments_to_export": "No payments to export.",
|
||||
"admin_payments_export_success": "📊 Payments export completed!\nTotal records: {count}",
|
||||
"admin_export_sent": "File sent!",
|
||||
"admin_csv_payment_id": "ID",
|
||||
"admin_csv_user_id": "User ID",
|
||||
"admin_csv_username": "Username",
|
||||
"admin_csv_first_name": "First Name",
|
||||
"admin_csv_amount": "Amount",
|
||||
"admin_csv_currency": "Currency",
|
||||
"admin_csv_provider": "Provider",
|
||||
"admin_csv_status": "Status",
|
||||
"admin_csv_description": "Description",
|
||||
"admin_csv_units": "Months/GB",
|
||||
"admin_csv_months": "Months",
|
||||
"admin_csv_created_at": "Created At",
|
||||
"admin_csv_provider_payment_id": "Provider Payment ID",
|
||||
"admin_stats_last_sync_header": "Last Panel Sync:",
|
||||
"admin_stats_sync_time": "Time",
|
||||
"admin_stats_sync_status": "Status",
|
||||
"admin_stats_sync_users_processed": "Users Processed",
|
||||
"admin_stats_sync_subs_synced": "Subscriptions Synced",
|
||||
"admin_stats_sync_details_label": "Details",
|
||||
@@ -182,7 +175,6 @@
|
||||
"broadcast_target_active_button": "✅ Active",
|
||||
"broadcast_target_inactive_button": "⌛ Inactive",
|
||||
"confirm_broadcast_send_button": "✅ Send",
|
||||
"cancel_broadcast_button": "❌ Cancel",
|
||||
"admin_broadcast_sending_started": "Starting broadcast...",
|
||||
"admin_broadcast_error_no_message": "Error: no message to broadcast.",
|
||||
"admin_broadcast_error_no_message_alert": "Broadcast message is empty!",
|
||||
@@ -220,13 +212,9 @@
|
||||
"admin_promo_csv_bonus_days": "Bonus Days",
|
||||
"admin_promo_csv_max_activations": "Max Activations",
|
||||
"admin_promo_csv_current_activations": "Current Activations",
|
||||
"admin_promo_csv_status": "Status",
|
||||
"admin_promo_csv_is_active": "Active",
|
||||
"admin_promo_csv_valid_until": "Valid Until",
|
||||
"admin_promo_csv_created_at": "Created",
|
||||
"admin_promo_csv_created_by_admin_id": "Created By (Admin ID)",
|
||||
"csv_yes": "Yes",
|
||||
"csv_no": "No",
|
||||
"admin_promo_edit_select_field": "Select a field to edit:",
|
||||
"admin_promo_prompt_bonus_days": "Enter the new number of bonus days:",
|
||||
"admin_promo_prompt_max_activations": "Enter the new maximum number of activations:",
|
||||
@@ -417,7 +405,6 @@
|
||||
"admin_promo_step3_max_activations": "🎟 <b>Create Promo Code</b>\n\n<b>Step 3 of 4:</b> Max Activations\n\nCode: <b>{code}</b>\nBonus days: <b>{bonus_days}</b>\n\nEnter the maximum number of activations (1-10000):",
|
||||
"admin_promo_step4_validity": "🎟 <b>Create Promo Code</b>\n\n<b>Step 4 of 4:</b> Validity Period\n\nCode: <b>{code}</b>\nBonus days: <b>{bonus_days}</b>\nMax activations: <b>{max_activations}</b>\n\nChoose the validity period for the promo code:",
|
||||
"admin_promo_code_already_exists": "❌ A promo code with this code already exists",
|
||||
"admin_promo_unlimited_validity": "♾️ Unlimited",
|
||||
"admin_promo_enter_validity_days": "⏰ Enter the number of validity days for the promo code (1-365):",
|
||||
"admin_user_id_label": "🆔 <b>ID:</b>",
|
||||
"admin_user_name_label": "👤 <b>Name:</b>",
|
||||
@@ -494,7 +481,6 @@
|
||||
"inline_referral_description": "Share referral link to get bonuses",
|
||||
"inline_financial_description": "Today: {today} RUB",
|
||||
"inline_system_description": "🟢 Online: {online}, 📊 Active: {active}",
|
||||
"admin_user_stats_total_label": "Total",
|
||||
"admin_user_stats_paid_subs_label": "With paid subscription",
|
||||
"admin_user_stats_trial_label": "On trial period",
|
||||
"admin_user_stats_inactive_label": "Inactive",
|
||||
@@ -819,7 +805,6 @@
|
||||
"wa_devices_platform_unknown": "Platform unknown",
|
||||
"wa_devices_connected_at": "Connected",
|
||||
"wa_devices_disconnect": "Disconnect device",
|
||||
"wa_devices_disconnect_title": "Disconnect device",
|
||||
"wa_devices_disconnect_desc": "{device} will be removed from your device list. It may connect again next time you use the subscription on that device.",
|
||||
"wa_devices_disconnect_confirm": "Disconnect",
|
||||
"wa_device_disconnected": "Device disconnected",
|
||||
@@ -845,7 +830,6 @@
|
||||
"wa_settings_link_email_action": "Link email",
|
||||
"wa_settings_email_linked_title": "Email linked",
|
||||
"wa_activate_promo_title": "Activate promo code",
|
||||
"wa_link_email_modal_title": "Link email",
|
||||
"wa_traffic_reset_none": "No reset",
|
||||
"wa_traffic_reset_monthly": "Monthly reset",
|
||||
"wa_traffic_reset_weekly": "Weekly reset",
|
||||
@@ -940,8 +924,6 @@
|
||||
"admin_users_col_registration": "Registered",
|
||||
"admin_page": "Page",
|
||||
"admin_page_short": "Page",
|
||||
"admin_back": "Back",
|
||||
"admin_next": "Next",
|
||||
"admin_user": "User",
|
||||
"admin_amount": "Amount",
|
||||
"admin_provider": "Provider",
|
||||
@@ -949,7 +931,6 @@
|
||||
"admin_status": "Status",
|
||||
"admin_date": "Date",
|
||||
"admin_payments_empty": "No payments",
|
||||
"admin_payments_col_user_id": "ID",
|
||||
"admin_payments_col_traffic_regular": "Main traffic",
|
||||
"admin_payments_col_traffic_premium": "Premium traffic",
|
||||
"admin_payments_col_actions": "",
|
||||
@@ -958,7 +939,6 @@
|
||||
"admin_payments_desc_traffic_package_premium": "Traffic package {gb} GB (premium)",
|
||||
"admin_payment_detail_open": "Open payment",
|
||||
"admin_payment_detail_title": "Payment #{id}",
|
||||
"admin_payment_detail_copied": "Copied",
|
||||
"admin_payment_load_failed": "Failed to load payment",
|
||||
"admin_payment_detail_updated_at": "Updated",
|
||||
"admin_payment_detail_provider_payment_id": "Provider ID",
|
||||
@@ -973,13 +953,9 @@
|
||||
"admin_payment_detail_purchased_gb": "Purchased GB",
|
||||
"admin_payment_detail_hwid_devices": "HWID devices",
|
||||
"admin_payment_detail_promo_code": "Promo code",
|
||||
"admin_payment_detail_provider": "Provider",
|
||||
"admin_payment_detail_user_section": "User",
|
||||
"admin_payment_detail_payment_section": "Payment",
|
||||
"admin_payment_detail_provider_section": "Provider",
|
||||
"admin_payment_detail_purchase_section": "Purchase",
|
||||
"admin_logs_user_filter_placeholder": "Filter by user ID",
|
||||
"admin_apply": "Apply",
|
||||
"admin_reset": "Reset",
|
||||
"admin_event": "Event",
|
||||
"admin_content": "Content",
|
||||
@@ -1009,14 +985,11 @@
|
||||
"admin_settings_provider_webhook_base_missing": "Set WEBHOOK_BASE_URL in .env to show the full URL for {path}.",
|
||||
"admin_settings_provider_admin_only_label": "Only for admins",
|
||||
"admin_settings_provider_admin_only_description": "Shows this provider only to admins. Webhooks and payment status handling remain active for test payments.",
|
||||
"admin_copy": "Copy",
|
||||
"admin_copied": "Copied",
|
||||
"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",
|
||||
"admin_link_copied": "Link copied",
|
||||
"admin_user_banned": "User banned",
|
||||
"admin_user_unbanned": "User unbanned",
|
||||
"admin_message_sent": "Message sent",
|
||||
@@ -1067,7 +1040,6 @@
|
||||
"admin_stats_revenue_period_365": "1 yr",
|
||||
"admin_stats_revenue_period_custom": "Custom",
|
||||
"admin_stats_revenue_custom_range_title": "Date range (UTC)",
|
||||
"admin_stats_revenue_custom_range_apply": "Apply",
|
||||
"admin_stats_revenue_granularity_aria": "Revenue chart step",
|
||||
"admin_stats_revenue_granularity_day": "By day",
|
||||
"admin_stats_revenue_granularity_week": "By week",
|
||||
@@ -1077,7 +1049,6 @@
|
||||
"admin_stats_revenue_chart_bucket_count": "Points: {count}",
|
||||
"admin_stats_revenue_chart_custom_span": "Range: {days} d.",
|
||||
"admin_stats_revenue_tooltip_day": "Day",
|
||||
"admin_stats_revenue_tooltip_amount": "Amount",
|
||||
"admin_stats_revenue_avg_check": "Average ticket today: {value}",
|
||||
"admin_stats_revenue_avg_none": "No successful payments today",
|
||||
"admin_stats_revenue_avg_ticket_label": "Avg. ticket (today)",
|
||||
@@ -1141,7 +1112,6 @@
|
||||
"admin_user_tg_profile_link_sent": "Link sent to Telegram",
|
||||
"admin_user_tg_profile_link_failed": "Failed to send link",
|
||||
"admin_user_profile_link_message": "User profile: <b>{name}</b>\nUser ID: <code>{user_id}</code>\nTelegram ID: <code>{telegram_id}</code>\n\nTap the button below to open the profile in Telegram.",
|
||||
"admin_close": "Close",
|
||||
"admin_loading": "Loading…",
|
||||
"admin_badge_banned": "Banned",
|
||||
"admin_badge_active": "Active",
|
||||
@@ -1166,7 +1136,6 @@
|
||||
"admin_user_label_active_until": "Active until",
|
||||
"admin_user_label_tariff": "Tariff",
|
||||
"admin_user_label_auto_renew": "Auto-renew",
|
||||
"admin_user_label_provider": "Provider",
|
||||
"admin_user_label_main_traffic": "Main Traffic",
|
||||
"admin_user_traffic_left": "Left: {left}",
|
||||
"admin_user_label_premium_squads": "Premium Squads",
|
||||
@@ -1175,7 +1144,6 @@
|
||||
"user_premium_override_card_hint": "Unlimited access and extra volume for premium squads on top of the tariff.",
|
||||
"user_regular_override_card_title": "Main traffic",
|
||||
"user_regular_override_card_hint": "Unlimited-style ceiling and a persistent bonus on the main traffic limit.",
|
||||
"user_regular_override_save": "Save",
|
||||
"user_regular_override_status_unlimited": "Current: unlimited",
|
||||
"regular_override_saved": "Main traffic override saved",
|
||||
"user_traffic_override_title": "Traffic overrides",
|
||||
@@ -1191,7 +1159,6 @@
|
||||
"user_premium_override_unlimited": "Unlimited premium",
|
||||
"user_premium_override_bonus": "Extra premium traffic, GB",
|
||||
"user_premium_override_save": "Save override",
|
||||
"user_premium_override_status_unlimited": "Current: unlimited",
|
||||
"user_premium_override_status_bonus": "Current: +{gb} GB",
|
||||
"user_premium_override_status_none": "No premium override",
|
||||
"user_premium_unlimited_value": "∞ (used {used})",
|
||||
@@ -1211,7 +1178,6 @@
|
||||
"admin_user_no_active_subscription": "No active subscription",
|
||||
"admin_user_history_title": "Subscription History · {count}",
|
||||
"admin_user_history_no_tariff": "No tariff",
|
||||
"admin_user_history_until": "until {date}",
|
||||
"admin_user_history_active": "Active",
|
||||
"admin_user_history_status_panel": "History",
|
||||
"admin_user_recent_payments_title": "Recent Payments · {count}",
|
||||
@@ -1232,7 +1198,6 @@
|
||||
"admin_user_btn_delete_account": "Delete account",
|
||||
"admin_user_msg_confirm_title": "Send message to user?",
|
||||
"admin_user_msg_confirm_recipient": "Recipient: {name}",
|
||||
"admin_user_btn_cancel": "Cancel",
|
||||
"admin_user_btn_confirm_send": "Confirm Send",
|
||||
"admin_user_ban_confirm_title": "Ban user?",
|
||||
"admin_user_ban_confirm_subtitle": "{name} will no longer be able to interact with the bot. This can be undone later.",
|
||||
@@ -1249,7 +1214,6 @@
|
||||
"admin_tariff_label_hwid_count_full": "How many devices does this package add",
|
||||
"admin_tariff_label_price_rub": "Price in Rubles",
|
||||
"admin_tariff_label_price_stars": "Price in Telegram Stars",
|
||||
"admin_status_active": "Active",
|
||||
"admin_aria_label_main_traffic": "Main traffic usage",
|
||||
"admin_aria_label_premium_traffic": "Premium traffic usage",
|
||||
"admin_btn_delete": "Delete",
|
||||
@@ -1259,24 +1223,18 @@
|
||||
"admin_btn_tariff": "Tariff",
|
||||
"admin_btn_sync": "Synchronize",
|
||||
"admin_btn_syncing": "Synchronizing...",
|
||||
"admin_btn_save": "Save",
|
||||
"admin_btn_saving": "Saving...",
|
||||
"admin_btn_enable": "On",
|
||||
"admin_btn_disable": "Off",
|
||||
"admin_btn_show_more": "Show more",
|
||||
"admin_settings_dirty_count": "Changes: {count}",
|
||||
"admin_promo_col_code": "Code",
|
||||
"admin_promo_col_bonus": "Bonus",
|
||||
"admin_promo_col_activations": "Activations",
|
||||
"admin_promo_col_valid_until": "Valid until",
|
||||
"admin_promo_col_status": "Status",
|
||||
"admin_promo_create_title": "Create promo code",
|
||||
"admin_promo_label_code": "Code",
|
||||
"admin_promo_label_bonus_days": "Bonus (days)",
|
||||
"admin_promo_label_max_activations": "Max activations",
|
||||
"admin_promo_label_valid_days": "Validity (days)",
|
||||
"admin_ad_create_title": "New campaign",
|
||||
"admin_ad_label_source": "Source",
|
||||
"admin_ad_label_param": "start parameter",
|
||||
"admin_ad_hint_param": "Unique identifier for the referral link",
|
||||
"admin_ad_label_cost": "Cost, RUB",
|
||||
@@ -1285,7 +1243,6 @@
|
||||
"admin_ads_col_cost": "Cost",
|
||||
"admin_ads_col_registrations": "Registrations",
|
||||
"admin_ads_col_conversions": "Conversions",
|
||||
"admin_ads_col_status": "Status",
|
||||
"admin_no_data": "No data",
|
||||
"admin_settings_hint": "Changes in the admin panel take precedence over .env. The 'Reset' button returns the value from environment variables.",
|
||||
"admin_settings_legacy_tariffs_warning_title": "remnawave-tg-shop legacy compatibility",
|
||||
@@ -1313,7 +1270,6 @@
|
||||
"admin_show": "Show",
|
||||
"admin_hide": "Hide",
|
||||
"admin_tariffs_stat_total": "Total tariffs",
|
||||
"admin_tariffs_stat_enabled": "Enabled",
|
||||
"admin_tariffs_stat_default": "Default",
|
||||
"admin_tariffs_stat_default_hint": "Used for new subscriptions",
|
||||
"admin_tariffs_stat_disabled": "Disabled",
|
||||
@@ -1340,7 +1296,6 @@
|
||||
"admin_tariffs_legacy_subtitle": "Old remnawave-tg-shop periods and traffic packages used only when the JSON tariff catalog is not configured.",
|
||||
"admin_tariffs_legacy_period": "Period",
|
||||
"admin_tariffs_legacy_enabled": "Enabled",
|
||||
"admin_tariffs_legacy_traffic_packages": "Traffic packages",
|
||||
"admin_tariffs_legacy_stars_traffic_packages": "Traffic packages, Stars",
|
||||
"admin_tariffs_legacy_traffic_hint": "Format: 10:199,50:799",
|
||||
"admin_tariff_tab_general": "General",
|
||||
@@ -1383,7 +1338,6 @@
|
||||
"admin_months_short": "mo.",
|
||||
"admin_at": "for",
|
||||
"admin_tariff_traffic_packages": "Traffic packages",
|
||||
"admin_btn_refresh": "Refresh",
|
||||
"admin_btn_create_tariff": "Create Tariff",
|
||||
"admin_enabled": "Enabled",
|
||||
"admin_disabled": "Disabled",
|
||||
@@ -1398,7 +1352,6 @@
|
||||
"admin_broadcast_stat_failed": "Failed",
|
||||
"admin_broadcast_started": "Broadcast started",
|
||||
"admin_broadcast_failed": "Broadcast failed",
|
||||
"admin_user_short": "User",
|
||||
"admin_target_short": "Target",
|
||||
"admin_settings_field_default_language_label": "Default Language",
|
||||
"admin_settings_field_default_language_description": "Controls the 'Default Language' setting in admin overrides.",
|
||||
@@ -1667,45 +1620,18 @@
|
||||
"admin_nav_support": "Support",
|
||||
"admin_section_support_title": "Support",
|
||||
"admin_section_support_subtitle": "Ticket inbox and user replies",
|
||||
"admin_support_search": "Search",
|
||||
"admin_support_empty": "No tickets yet",
|
||||
"admin_support_select_ticket": "Select a ticket",
|
||||
"admin_support_close_ticket": "Close",
|
||||
"admin_support_internal_note": "Internal note",
|
||||
"admin_support_reply_placeholder": "Reply",
|
||||
"admin_support_no_messages": "No messages yet",
|
||||
"admin_support_filter_all": "All",
|
||||
"admin_support_filter_active": "Active",
|
||||
"admin_support_filter_closed": "Closed",
|
||||
"admin_support_filter_all_priorities": "Any priority",
|
||||
"admin_support_filter_all_categories": "All categories",
|
||||
"admin_support_ticket_number": "Ticket #{id}",
|
||||
"admin_support_priority": "Priority",
|
||||
"admin_support_category": "Category",
|
||||
"admin_support_role_user": "User",
|
||||
"admin_support_role_admin": "Admin",
|
||||
"admin_support_role_system": "System",
|
||||
"admin_support_user_context": "User",
|
||||
"admin_support_open_user": "User card",
|
||||
"admin_support_tariff": "Tariff",
|
||||
"admin_support_status": "Status",
|
||||
"admin_support_remaining": "Remaining",
|
||||
"admin_support_unread": "Unread",
|
||||
"admin_support_summary": "Support summary",
|
||||
"admin_support_ticket_dialog": "Support conversation",
|
||||
"admin_support_status_open": "Open",
|
||||
"admin_support_status_awaiting_user": "Awaiting user",
|
||||
"admin_support_status_awaiting_admin": "Awaiting admin",
|
||||
"admin_support_status_resolved": "Resolved",
|
||||
"admin_support_status_closed": "Closed",
|
||||
"admin_support_priority_low": "Low",
|
||||
"admin_support_priority_normal": "Normal",
|
||||
"admin_support_priority_high": "High",
|
||||
"admin_support_priority_urgent": "Urgent",
|
||||
"admin_support_category_billing": "Billing",
|
||||
"admin_support_category_technical": "Technical",
|
||||
"admin_support_category_account": "Account",
|
||||
"admin_support_category_other": "Other",
|
||||
"admin_support_sort_importance_desc": "Most important",
|
||||
"admin_sort_updated_desc": "Newest activity",
|
||||
"admin_sort_updated_asc": "Oldest activity",
|
||||
@@ -1722,7 +1648,6 @@
|
||||
"wa_install_subscription_link_hint": "Scan the QR code or copy the link.",
|
||||
"wa_install_qr_alt": "Subscription QR code",
|
||||
"wa_install_copy_subscription_link": "Copy link",
|
||||
"wa_install_link_copied": "Link copied",
|
||||
"wa_install_share": "Share",
|
||||
"wa_install_share_copied": "Install guide link copied",
|
||||
"wa_app_launch_title": "Opening app",
|
||||
@@ -1750,5 +1675,82 @@
|
||||
"admin_settings_field_subscription_page_config_json_label": "Subscription Page config JSON",
|
||||
"admin_settings_field_subscription_page_config_json_description": "Optional admin JSON override. It is applied only when the JSON override switch is enabled.",
|
||||
"admin_settings_field_subscription_page_config_json_placeholder": "{\n \"version\": \"1\"\n}",
|
||||
"admin_settings_json_upload": "Load .json"
|
||||
"admin_settings_json_upload": "Load .json",
|
||||
"admin_nav_translations": "Translations",
|
||||
"admin_section_translations_title": "Translations",
|
||||
"admin_section_translations_subtitle": "Runtime localization string overrides from DB and data/locales-overrides.json",
|
||||
"admin_translations_saved": "Translations saved",
|
||||
"admin_translations_validation_errors": "Errors: {errors}",
|
||||
"admin_translations_save_error": "Could not save translations: {error}",
|
||||
"admin_translations_base_value": "Base text",
|
||||
"admin_translations_search_placeholder": "Search keys and text",
|
||||
"admin_translations_hint": "Overrides are stored in DB and mirrored to {path}.",
|
||||
"admin_translations_keys_count": "Keys: {count}",
|
||||
"admin_translations_no_matches": "No matching strings",
|
||||
"admin_translations_group_admin": "Admin panel",
|
||||
"admin_translations_group_admin_hint": "Navigation, tables, forms, dialogs, and admin-only labels.",
|
||||
"admin_translations_group_admin_navigation": "Admin navigation and shared UI",
|
||||
"admin_translations_group_admin_navigation_hint": "Sidebar, section headers, toolbar actions, filters, and shared controls.",
|
||||
"admin_translations_group_admin_dashboard": "Admin dashboard and stats",
|
||||
"admin_translations_group_admin_dashboard_hint": "Dashboard cards, revenue charts, panel sync status, and monitoring copy.",
|
||||
"admin_translations_group_admin_users": "Admin users",
|
||||
"admin_translations_group_admin_users_hint": "User lists, user cards, bans, grants, premium overrides, and direct messages.",
|
||||
"admin_translations_group_admin_payments": "Admin payments",
|
||||
"admin_translations_group_admin_payments_hint": "Payment tables, payment details, exports, provider labels, and payment stats.",
|
||||
"admin_translations_group_admin_promos_marketing": "Admin promos, ads, and broadcasts",
|
||||
"admin_translations_group_admin_promos_marketing_hint": "Promo management, ad campaigns, marketing tools, and broadcast workflows.",
|
||||
"admin_translations_group_admin_tariffs": "Admin tariffs",
|
||||
"admin_translations_group_admin_tariffs_hint": "Tariff catalog, tariff dialogs, legacy tariff rows, and trial tariff widgets.",
|
||||
"admin_translations_group_admin_support": "Admin support inbox",
|
||||
"admin_translations_group_admin_support_hint": "Support ticket inbox, ticket filters, admin replies, and support statuses.",
|
||||
"admin_translations_group_admin_appearance": "Admin appearance",
|
||||
"admin_translations_group_admin_appearance_hint": "Theme catalog, branding, logo, favicon, and public page links.",
|
||||
"admin_translations_group_admin_settings_payments": "Admin payment settings",
|
||||
"admin_translations_group_admin_settings_payments_hint": "Payment method toggles, prices, provider credentials, and webhook settings.",
|
||||
"admin_translations_group_admin_settings_subscriptions": "Admin subscription settings",
|
||||
"admin_translations_group_admin_settings_subscriptions_hint": "Panel connection, default squads, trials, referrals, device limits, and guides.",
|
||||
"admin_translations_group_admin_settings_notifications": "Admin notifications and logs",
|
||||
"admin_translations_group_admin_settings_notifications_hint": "Logging, required channel, subscription notifications, and support limits.",
|
||||
"admin_translations_group_admin_settings": "Admin settings",
|
||||
"admin_translations_group_admin_settings_hint": "Settings screen groups, subsections, helper text, and uncategorized settings.",
|
||||
"admin_translations_group_admin_translations": "Admin translations",
|
||||
"admin_translations_group_admin_translations_hint": "Translation override screen, language controls, and locale group labels.",
|
||||
"admin_translations_group_admin_logs": "Admin logs and exports",
|
||||
"admin_translations_group_admin_logs_hint": "Activity logs, log exports, CSV headers, and event detail labels.",
|
||||
"admin_translations_group_admin_misc": "Admin miscellaneous",
|
||||
"admin_translations_group_admin_misc_hint": "Older bot-admin labels and admin-only strings that do not fit another section.",
|
||||
"admin_translations_group_webapp": "Mini App",
|
||||
"admin_translations_group_webapp_hint": "User-facing Mini App screens, navigation, settings, and toasts.",
|
||||
"admin_translations_group_bot_menu": "Telegram bot",
|
||||
"admin_translations_group_bot_menu_hint": "Start menu, inline buttons, language selector, and bot-only flows.",
|
||||
"admin_translations_group_subscriptions": "Subscriptions and devices",
|
||||
"admin_translations_group_subscriptions_hint": "Subscription status, install guides, traffic packages, trials, and devices.",
|
||||
"admin_translations_group_payments": "Payments",
|
||||
"admin_translations_group_payments_hint": "Payment provider flows, invoices, payment methods, and checkout messages.",
|
||||
"admin_translations_group_support": "Support",
|
||||
"admin_translations_group_support_hint": "Support links, ticket inbox copy, ticket statuses, and notifications.",
|
||||
"admin_translations_group_referrals_promos": "Referrals and promos",
|
||||
"admin_translations_group_referrals_promos_hint": "Referral program, invite copy, promo codes, and bonuses.",
|
||||
"admin_translations_group_auth_security": "Auth and security",
|
||||
"admin_translations_group_auth_security_hint": "Login, email verification, account linking, and security messages.",
|
||||
"admin_translations_group_emails": "Emails",
|
||||
"admin_translations_group_emails_hint": "Transactional emails sent to users: login codes, payments, account merges, and reminders.",
|
||||
"admin_translations_group_notifications_sync": "Notifications and sync",
|
||||
"admin_translations_group_notifications_sync_hint": "Admin notifications, panel sync, logs, and background status messages.",
|
||||
"admin_translations_group_common": "Common",
|
||||
"admin_translations_group_common_hint": "Shared buttons, statuses, validation errors, and uncategorized strings.",
|
||||
"admin_translations_file_write_warning": "Translations saved in DB, but JSON file was not updated",
|
||||
"admin_add": "Add",
|
||||
"admin_translations_fallback_value": "Fallback",
|
||||
"admin_translations_languages_title": "Languages",
|
||||
"admin_translations_languages_hint": "Add override-only languages without adding base locale files.",
|
||||
"admin_translations_language_placeholder": "de, uk, pt-BR",
|
||||
"admin_translations_language_custom": "Custom",
|
||||
"admin_translations_language_invalid": "Invalid language code",
|
||||
"admin_translations_language_exists": "{code} already exists",
|
||||
"admin_translations_audience_all": "All",
|
||||
"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."
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user