Merge PR #523: починка плейсхолдеров и переводов в zh/fa/en локалях

This commit is contained in:
Egor
2026-07-29 04:30:33 +03:00
committed by GitHub
3 changed files with 94 additions and 94 deletions

View File

@@ -1930,7 +1930,7 @@
},
"broadcasts": {
"title": "Broadcasts",
"subtitle": "History and management",
"subtitle": "Mass sending of messages to users",
"create": "Create Broadcast",
"empty": "No broadcasts",
"selectFilter": "Select audience",

View File

@@ -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": "وی‌پی‌ان ما را رایگان امتحان کنید: بدون هیچ تعهدی",
"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": "ارتقای اشتراک"
}
},
@@ -1008,7 +1008,7 @@
"noSubscription": "برای چرخاندن گردونه نیاز به اشتراک فعال دارید. ابتدا اشتراک خود را فعال کنید.",
"selectSubscription": "ابتدا یک اشتراک انتخاب کنید"
},
"payWithStars": "پرداخت {stars} Stars",
"payWithStars": "پرداخت Stars",
"processingPayment": "در حال پردازش...",
"starsPaymentSuccess": "پرداخت موفق! نتیجه به تلگرام ارسال شد.",
"starsPaymentFailed": "پرداخت ناموفق. دوباره تلاش کنید.",
@@ -1564,7 +1564,7 @@
},
"broadcasts": {
"title": "نشریات",
"subtitle": "تاریخچه و مدیریت",
"subtitle": "ارسال گروهی پیام به کاربران",
"create": "ایجاد پیام",
"empty": "هیچ نشریه‌ای نیست",
"selectFilter": "انتخاب مخاطبین",
@@ -1652,46 +1652,46 @@
"telegramSection": "ارسال انبوه تلگرام"
},
"pinnedMessages": {
"title": "Pinned Messages",
"subtitle": "Manage pinned messages for users",
"create": "Create",
"empty": "No pinned messages",
"content": "Message text",
"contentPlaceholder": "Enter pinned message text...",
"noContent": "No text",
"media": "Media file",
"addMedia": "Add media",
"uploading": "Uploading...",
"settings": "Settings",
"sendBeforeMenu": "Send before menu",
"sendOnEveryStart": "Send on every start",
"broadcast": "Broadcast",
"broadcastOnCreate": "Broadcast on create",
"broadcastConfirm": "Broadcast pinned message to all active users?",
"broadcastToAll": "Broadcast to all",
"activate": "Activate",
"deactivate": "Deactivate",
"unpin": "Unpin",
"unpinAll": "Unpin for everyone",
"unpinConfirm": "Unpin message for all users?",
"delete": "Delete",
"deleteConfirm": "Delete this pinned message?",
"active": "Active",
"inactive": "Inactive",
"prev": "Previous",
"next": "Next",
"createSuccess": "Pinned message created",
"updateSuccess": "Message updated",
"deleteSuccess": "Message deleted",
"activateSuccess": "Message activated",
"deactivateSuccess": "Message deactivated",
"broadcastSuccess": "Broadcast completed",
"unpinSuccess": "Messages unpinned",
"sentCount": "Sent",
"failedCount": "Failed",
"unpinnedCount": "Unpinned",
"editMessage": "Edit",
"cantDeleteActive": "Cannot delete active message"
"title": "پیام‌های سنجاق‌شده",
"subtitle": "مدیریت پیام‌های سنجاق‌شده برای کاربران",
"create": "ایجاد",
"empty": "هیچ پیام سنجاق‌شده‌ای وجود ندارد",
"content": "متن پیام",
"contentPlaceholder": "متن پیام سنجاق‌شده را وارد کنید...",
"noContent": "بدون متن",
"media": "فایل رسانه",
"addMedia": "افزودن رسانه",
"uploading": "در حال بارگذاری...",
"settings": "تنظیمات",
"sendBeforeMenu": "ارسال قبل از منو",
"sendOnEveryStart": "ارسال در هر بار شروع",
"broadcast": "ارسال همگانی",
"broadcastOnCreate": "ارسال همگانی هنگام ایجاد",
"broadcastConfirm": "پیام سنجاق‌شده برای همه کاربران فعال ارسال شود؟",
"broadcastToAll": "ارسال به همه",
"activate": "فعال‌سازی",
"deactivate": "غیرفعال‌سازی",
"unpin": "برداشتن سنجاق",
"unpinAll": "برداشتن سنجاق برای همه",
"unpinConfirm": "سنجاق پیام برای همه کاربران برداشته شود؟",
"delete": "حذف",
"deleteConfirm": "این پیام سنجاق‌شده حذف شود؟",
"active": "فعال",
"inactive": "غیرفعال",
"prev": "قبلی",
"next": "بعدی",
"createSuccess": "پیام سنجاق‌شده ایجاد شد",
"updateSuccess": "پیام به‌روزرسانی شد",
"deleteSuccess": "پیام حذف شد",
"activateSuccess": "پیام فعال شد",
"deactivateSuccess": "پیام غیرفعال شد",
"broadcastSuccess": "ارسال همگانی تکمیل شد",
"unpinSuccess": "سنجاق پیام‌ها برداشته شد",
"sentCount": "ارسال‌شده",
"failedCount": "ناموفق",
"unpinnedCount": "سنجاق‌برداشته",
"editMessage": "ویرایش",
"cantDeleteActive": "نمی‌توان پیام فعال را حذف کرد"
},
"channelSubscriptions": {
"title": "کانال‌های اجباری",
@@ -2005,7 +2005,7 @@
"builtinButtons": "بخش‌های داخلی",
"resetConfirm": "منو به تنظیمات پیش‌فرض بازنشانی شود؟ تمام تغییرات از بین می‌رود.",
"buttonTextPlaceholder": "متن دکمه",
"customLabelsHint": "متن دکمه برای هر زبان ربات",
"customLabelsHint": "خالی = عنوان پیش‌فرض",
"moveUp": "انتقال به بالا",
"moveDown": "انتقال به پایین",
"openIn": "باز کردن در",
@@ -2625,10 +2625,10 @@
"programEnabled": "برنامه معرفی فعال است",
"programEnabledDesc": "تمام عملکرد ارجاع را فعال می‌کند",
"requisitesText": "متن اطلاعات حساب",
"requisitesTextDesc": "در فرم درخواست همکاری به کاربر نمایش داده می‌شود",
"requisitesTextDesc": "متن سفارشی برای توضیح به کاربران که هنگام برداشت چه اطلاعات پرداختی را وارد کنند",
"requisitesTextPlaceholder": "اطلاعات حساب خود را وارد کنید...",
"withdrawalEnabled": "برداشت مجاز است",
"withdrawalEnabledDesc": "به کاربران اجازه می‌دهد درخواست برداشت بدهند"
"withdrawalEnabledDesc": "اجازه دادن به همکاران برای درخواست برداشت موجودی معرفی"
},
"settingsLoadError": "بارگذاری تنظیمات همکاری ناموفق بود",
"settingsSection": {
@@ -3398,7 +3398,7 @@
"usersOnlineCount": "{{count}} آنلاین"
},
"overview": {
"bandwidth": "پهنای باند لحظه‌ای",
"bandwidth": "ترافیک ورودی‌ها",
"connections": "اتصالات",
"cpu": "هسته‌های CPU",
"download": "دانلود",
@@ -4940,33 +4940,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": "گیگابایت",
"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": "قابل فعال‌سازی",

View File

@@ -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": "可激活",