mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-30 10:27:49 +00:00
fix(i18n): починка плейсхолдеров и переводов в zh/fa/en локалях кабинета
Аудит локалей кабинета с русским в качестве эталона.
Битые {{плейсхолдеры}} в zh/fa (рендерились как литеральные скобки,
теряли значение или дублировали то, что и так выводится в JSX):
- gift.sentTo / gift.activatedBy: неверное имя переменной
({{name}} → {{recipient}} / {{username}})
- dashboard.devicesConnectedUnlimited: {{count}} → {{used}} (+ «без лимита»)
- dashboard.maxUsage, gift.deviceCount, gift.activateSuccessDesc: потерянные
значения возвращены
- dashboard.expired.activeUntil, subscription.trialInfo.remaining: убран
{{date}}/{{count}} — значение выводится отдельным элементом
- trialInfo.description, trialOffer.freeDesc/paidDesc, gift.shareText:
переписаны без {{days}}/{{price}}/{{code}}, которые код не передаёт
- wheel.payWithStars: одинарные {stars} (i18next их не подставляет) убраны
Мисперводы zh/fa (разошлись по смыслу с ru/en):
- subscription.cta.*Hint, expiredBanner.selectTariff, trialUpgrade.description,
reduceDevicesDescription, menuEditor.customLabelsHint, myGiftsEmptyDesc,
partners.settingsFields.*, remnawave.overview.bandwidth, shareModalActivateVia
fa admin.pinnedMessages: 40 строк были на английском → переведены на фарси.
zh common.all: 'All' → '全部'.
en admin.broadcasts.subtitle: устаревшее «History and management» →
соответствует ru «Массовая отправка сообщений пользователям».
Плейсхолдеры и синхронность en/ru проверены (locales.test.ts).
This commit is contained in:
@@ -20,7 +20,7 @@
|
||||
"delete": "删除",
|
||||
"currency": "¥",
|
||||
"copy": "复制",
|
||||
"all": "All",
|
||||
"all": "全部",
|
||||
"add": "添加",
|
||||
"refresh": "刷新",
|
||||
"retry": "重试",
|
||||
@@ -276,7 +276,7 @@
|
||||
"traffic": "流量",
|
||||
"devices": "设备",
|
||||
"expiredDate": "过期时间",
|
||||
"activeUntil": "已过期 — 至 {{date}}"
|
||||
"activeUntil": "有效期至"
|
||||
},
|
||||
"deviceLimitReached": "断开设备以添加新设备",
|
||||
"suspended": {
|
||||
@@ -287,9 +287,9 @@
|
||||
"showAll": "全部显示",
|
||||
"subscriptions": "订阅",
|
||||
"connectDevice": "连接设备",
|
||||
"devicesConnectedUnlimited": "已连接 {{count}} 台设备",
|
||||
"devicesConnectedUnlimited": "已连接 {{used}} 台设备 · 无限制",
|
||||
"devicesOfMax": "{{used}} / {{max}}",
|
||||
"maxUsage": "最大",
|
||||
"maxUsage": "最大 {{amount}}",
|
||||
"remaining": "剩余",
|
||||
"stats": {
|
||||
"balance": "余额",
|
||||
@@ -298,9 +298,9 @@
|
||||
"tariff": "套餐",
|
||||
"trafficUsageTitle": "流量使用",
|
||||
"trialOffer": {
|
||||
"freeDesc": "免费试用 {{days}} 天 — 无需付款",
|
||||
"freeDesc": "免费试用我们的 VPN:无需任何承诺",
|
||||
"freeTitle": "免费试用",
|
||||
"paidDesc": "{{days}} 天试用,仅需 {{price}}",
|
||||
"paidDesc": "从试用订阅开始吧",
|
||||
"paidTitle": "付费试用"
|
||||
},
|
||||
"unlimited": "无限",
|
||||
@@ -458,7 +458,7 @@
|
||||
"newDeviceLimit": "新设备限制",
|
||||
"reduce": "减少",
|
||||
"reduceDevices": "减少设备数量",
|
||||
"reduceDevicesDescription": "调整您的设备限制。如有需要,请先断开多余设备的连接",
|
||||
"reduceDevicesDescription": "您可以将设备数量减少至套餐的最低限制",
|
||||
"reduceDevicesTitle": "减少设备数量",
|
||||
"reduceUnavailable": "当前无法减少设备数量",
|
||||
"reducing": "正在减少…"
|
||||
@@ -604,9 +604,9 @@
|
||||
"confirmDelete": "删除订阅?",
|
||||
"cta": {
|
||||
"renewHint": "订阅已过期 — 续订以继续使用",
|
||||
"activeHint": "订阅有效 — 您可以连接设备并使用 VPN",
|
||||
"expiredHint": "订阅已过期 — 续订以继续使用",
|
||||
"trialHint": "您正在试用中 — 升级到付费套餐以解锁所有功能"
|
||||
"activeHint": "续费和更换套餐",
|
||||
"expiredHint": "选择套餐并付款",
|
||||
"trialHint": "更多流量和设备"
|
||||
},
|
||||
"dailyAutoCharge": "每日自动扣费",
|
||||
"defaultName": "订阅",
|
||||
@@ -626,16 +626,16 @@
|
||||
"statusTrial": "试用",
|
||||
"daysShort": "天",
|
||||
"expiredBanner": {
|
||||
"selectTariff": "选择套餐",
|
||||
"selectTariff": "您的订阅已到期。请在下方选择套餐,以恢复 VPN 访问。",
|
||||
"title": "订阅已过期"
|
||||
},
|
||||
"trialInfo": {
|
||||
"description": "免费试用我们的服务 {{days}} 天",
|
||||
"remaining": "剩余 {{count}} 天",
|
||||
"description": "您正在使用服务的试用版。请在下方选择套餐以获得完整访问权限。",
|
||||
"remaining": "剩余",
|
||||
"title": "试用期"
|
||||
},
|
||||
"trialUpgrade": {
|
||||
"description": "升级到付费订阅以解锁所有功能并继续使用",
|
||||
"description": "您的试用期即将结束。请选择合适的套餐,以继续无限制使用 VPN。",
|
||||
"title": "升级订阅"
|
||||
}
|
||||
},
|
||||
@@ -1012,7 +1012,7 @@
|
||||
"noSubscription": "需要有效订阅才能转动轮盘。请先激活订阅。",
|
||||
"selectSubscription": "请先选择订阅"
|
||||
},
|
||||
"payWithStars": "支付 {stars} Stars",
|
||||
"payWithStars": "支付 Stars",
|
||||
"processingPayment": "处理中...",
|
||||
"starsPaymentSuccess": "支付成功!抽奖结果已发送到Telegram。",
|
||||
"starsPaymentFailed": "支付失败。请重试。",
|
||||
@@ -1667,7 +1667,7 @@
|
||||
},
|
||||
"broadcasts": {
|
||||
"title": "广播",
|
||||
"subtitle": "历史和管理",
|
||||
"subtitle": "向用户群发消息",
|
||||
"create": "创建群发",
|
||||
"empty": "没有广播",
|
||||
"selectFilter": "选择受众",
|
||||
@@ -2072,7 +2072,7 @@
|
||||
"builtinButtons": "内置栏目",
|
||||
"resetConfirm": "将菜单重置为默认设置?所有更改将丢失。",
|
||||
"buttonTextPlaceholder": "按钮文本",
|
||||
"customLabelsHint": "每种语言的按钮文本",
|
||||
"customLabelsHint": "留空 = 默认名称",
|
||||
"moveUp": "上移",
|
||||
"moveDown": "下移",
|
||||
"openIn": "打开方式",
|
||||
@@ -2624,10 +2624,10 @@
|
||||
"programEnabled": "推荐计划已启用",
|
||||
"programEnabledDesc": "启用整个推荐人功能",
|
||||
"requisitesText": "收款信息文本",
|
||||
"requisitesTextDesc": "将在合作申请表单中向用户显示",
|
||||
"requisitesTextDesc": "自定义提示,告知用户提现时需填写的收款信息",
|
||||
"requisitesTextPlaceholder": "请输入您的收款信息...",
|
||||
"withdrawalEnabled": "允许提款",
|
||||
"withdrawalEnabledDesc": "允许用户请求提款"
|
||||
"withdrawalEnabledDesc": "允许合作伙伴申请提现推荐余额"
|
||||
},
|
||||
"settingsLoadError": "加载推荐设置失败",
|
||||
"settingsSection": {
|
||||
@@ -3406,7 +3406,7 @@
|
||||
"usersOnlineCount": "{{count}} 在线"
|
||||
},
|
||||
"overview": {
|
||||
"bandwidth": "实时带宽",
|
||||
"bandwidth": "各 inbound 流量",
|
||||
"connections": "连接数",
|
||||
"cpu": "CPU核心",
|
||||
"download": "下载",
|
||||
@@ -4939,33 +4939,33 @@
|
||||
},
|
||||
"activateButton": "激活",
|
||||
"activateCodePlaceholder": "输入礼物代码",
|
||||
"activatedBy": "由 {{name}} 激活",
|
||||
"activatedBy": "由 {{username}} 激活",
|
||||
"activateDescription": "输入您收到的礼物代码以激活订阅",
|
||||
"activatedGiftsTitle": "已激活的礼物",
|
||||
"activateError": "激活礼物失败",
|
||||
"activateSelfError": "您不能激活自己的礼物",
|
||||
"activateSuccess": "礼物已激活!",
|
||||
"activateSuccessDesc": "订阅已添加到您的账户",
|
||||
"activateSuccessDesc": "{{tariff}}:已为您的订阅添加 {{days}} 天",
|
||||
"activateTitle": "激活礼物",
|
||||
"activeGiftsTitle": "活跃的礼物",
|
||||
"codeLabel": "礼物代码",
|
||||
"codeReadyTitle": "您的礼物代码已就绪",
|
||||
"copyMessage": "复制消息",
|
||||
"daysShort": "天",
|
||||
"deviceCount": "设备数",
|
||||
"deviceCount": "{{count}} 台设备",
|
||||
"devicesShort": "台",
|
||||
"gbShort": "GB",
|
||||
"myGiftsEmpty": "暂无礼物",
|
||||
"myGiftsEmptyDesc": "您发送或收到的礼物将显示在这里",
|
||||
"myGiftsEmptyDesc": "为好友购买礼物,或激活已收到的兑换码",
|
||||
"pageTitle": "礼物",
|
||||
"receivedGiftsTitle": "已收到的礼物",
|
||||
"selectPeriod": "选择时长",
|
||||
"selectTariff": "选择套餐",
|
||||
"sentTo": "已发送给 {{name}}",
|
||||
"sentTo": "已发送给 {{recipient}}",
|
||||
"shareGift": "分享礼物",
|
||||
"shareModalActivateVia": "通过以下方式激活",
|
||||
"shareModalActivateVia": "通过机器人激活:",
|
||||
"shareModalActivateViaCabinet": "通过个人中心",
|
||||
"shareText": "我为您准备了一份 Bedolaga VPN 礼物:{{code}}",
|
||||
"shareText": "我给你准备了一份 Bedolaga VPN 礼物,在这里激活它:",
|
||||
"shareToastCopied": "链接已复制",
|
||||
"statusActivated": "已激活",
|
||||
"statusAvailable": "可激活",
|
||||
|
||||
Reference in New Issue
Block a user