From 5db5343e4bdc7696f249820661d61c938b93fbaa Mon Sep 17 00:00:00 2001 From: "web@ppanel" Date: Thu, 13 Feb 2025 21:37:05 +0700 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(locales):=20Add=20kick=20offli?= =?UTF-8?q?ne=20confirmation=20and=20success=20messages=20in=20multiple=20?= =?UTF-8?q?languages?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user-subscription/subscription-detail.tsx | 30 +++++------ apps/admin/locales/cs-CZ/user.json | 2 + apps/admin/locales/de-DE/user.json | 2 + apps/admin/locales/en-US/user.json | 2 + apps/admin/locales/es-ES/user.json | 2 + apps/admin/locales/es-MX/user.json | 2 + apps/admin/locales/fa-IR/user.json | 2 + apps/admin/locales/fi-FI/user.json | 2 + apps/admin/locales/fr-FR/user.json | 2 + apps/admin/locales/hi-IN/user.json | 2 + apps/admin/locales/hu-HU/user.json | 2 + apps/admin/locales/ja-JP/user.json | 2 + apps/admin/locales/ko-KR/user.json | 2 + apps/admin/locales/no-NO/user.json | 2 + apps/admin/locales/pl-PL/user.json | 2 + apps/admin/locales/pt-BR/user.json | 2 + apps/admin/locales/ro-RO/user.json | 2 + apps/admin/locales/ru-RU/user.json | 2 + apps/admin/locales/th-TH/user.json | 2 + apps/admin/locales/tr-TR/user.json | 2 + apps/admin/locales/uk-UA/user.json | 2 + apps/admin/locales/vi-VN/user.json | 2 + apps/admin/locales/zh-CN/user.json | 52 ++++++++++--------- apps/admin/locales/zh-HK/user.json | 2 + apps/admin/services/admin/index.ts | 2 +- apps/admin/services/common/index.ts | 2 +- apps/user/services/common/index.ts | 2 +- 27 files changed, 89 insertions(+), 43 deletions(-) diff --git a/apps/admin/app/dashboard/user/[id]/user-subscription/subscription-detail.tsx b/apps/admin/app/dashboard/user/[id]/user-subscription/subscription-detail.tsx index 9a57186..8ab1136 100644 --- a/apps/admin/app/dashboard/user/[id]/user-subscription/subscription-detail.tsx +++ b/apps/admin/app/dashboard/user/[id]/user-subscription/subscription-detail.tsx @@ -66,15 +66,15 @@ export function SubscriptionDetail({ }, { accessorKey: 'user_agent', - header: 'User Agent', + header: t('userAgent'), }, { accessorKey: 'token', - header: 'Token', + header: t('token'), }, { accessorKey: 'created_at', - header: 'Time', + header: t('time'), cell: ({ row }) => formatDate(row.getValue('created_at')), }, ]} @@ -96,17 +96,17 @@ export function SubscriptionDetail({ columns={[ { accessorKey: 'download', - header: 'Download', + header: t('download'), cell: ({ row }) => , }, { accessorKey: 'upload', - header: 'Upload', + header: t('upload'), cell: ({ row }) => , }, { accessorKey: 'timestamp', - header: 'Time', + header: t('time'), cell: ({ row }) => formatDate(row.getValue('timestamp')), }, ]} @@ -128,7 +128,7 @@ export function SubscriptionDetail({ columns={[ { accessorKey: 'enabled', - header: 'Enabled', + header: t('enable'), cell: ({ row }) => ( ( - {row.getValue('online') ? 'Online' : 'Offline'} + {row.getValue('online') ? t('online') : t('offline')} ), }, { accessorKey: 'updated_at', - header: 'Last Seen', + header: t('lastSeen'), cell: ({ row }) => formatDate(row.getValue('updated_at')), }, ]} @@ -188,13 +188,13 @@ export function SubscriptionDetail({ key='offline' trigger={} title={t('confirmOffline')} - description={`Are you sure to offline IP ${row.ip}?`} + description={t('kickOfflineConfirm', { ip: row.ip })} onConfirm={async () => { await kickOfflineByUserDevice({ id: row.id }); - toast.success('已通知下线'); + toast.success(t('kickOfflineSuccess')); }} - cancelText='Cancel' - confirmText='Confirm' + cancelText={t('cancel')} + confirmText={t('confirm')} />, ]; }, diff --git a/apps/admin/locales/cs-CZ/user.json b/apps/admin/locales/cs-CZ/user.json index f523e6f..30edd3d 100644 --- a/apps/admin/locales/cs-CZ/user.json +++ b/apps/admin/locales/cs-CZ/user.json @@ -49,6 +49,8 @@ "invalidEmailFormat": "Neplatný formát e-mailu", "inviteCode": "Pozvánkový kód", "inviteCodePlaceholder": "Zadejte kód pozvánky (ponechte prázdné pro vygenerování)", + "kickOfflineConfirm": "Opravdu chcete odpojit IP {ip}?", + "kickOfflineSuccess": "Úspěšně oznámeno odpojení", "loading": "Načítání...", "loginIp": "Přihlašovací IP", "loginNotifications": "Oznámení o přihlášení", diff --git a/apps/admin/locales/de-DE/user.json b/apps/admin/locales/de-DE/user.json index 0c7bc6f..32637d3 100644 --- a/apps/admin/locales/de-DE/user.json +++ b/apps/admin/locales/de-DE/user.json @@ -49,6 +49,8 @@ "invalidEmailFormat": "Ungültiges E-Mail-Format", "inviteCode": "Einladungscode", "inviteCodePlaceholder": "Einladungscode eingeben (leer lassen, um zu generieren)", + "kickOfflineConfirm": "Sind Sie sicher, dass Sie die IP {ip} abmelden möchten?", + "kickOfflineSuccess": "Erfolgreich offline benachrichtigt", "loading": "Laden...", "loginIp": "Login-IP", "loginNotifications": "Anmeldebenachrichtigungen", diff --git a/apps/admin/locales/en-US/user.json b/apps/admin/locales/en-US/user.json index 3a4a9e8..ed36925 100644 --- a/apps/admin/locales/en-US/user.json +++ b/apps/admin/locales/en-US/user.json @@ -49,6 +49,8 @@ "invalidEmailFormat": "Invalid email format", "inviteCode": "Invite Code", "inviteCodePlaceholder": "Enter invite code (leave blank to generate)", + "kickOfflineConfirm": "Are you sure to kick offline IP {ip}?", + "kickOfflineSuccess": "Successfully notified offline", "loading": "Loading...", "loginIp": "Login IP", "loginNotifications": "Login Notifications", diff --git a/apps/admin/locales/es-ES/user.json b/apps/admin/locales/es-ES/user.json index d11721c..0d93cd4 100644 --- a/apps/admin/locales/es-ES/user.json +++ b/apps/admin/locales/es-ES/user.json @@ -49,6 +49,8 @@ "invalidEmailFormat": "Formato de correo electrónico no válido", "inviteCode": "Código de invitación", "inviteCodePlaceholder": "Introduce el código de invitación (déjalo en blanco para generar uno)", + "kickOfflineConfirm": "¿Estás seguro de que deseas desconectar la IP {ip}?", + "kickOfflineSuccess": "Notificación de desconexión exitosa", "loading": "Cargando...", "loginIp": "IP de inicio de sesión", "loginNotifications": "Notificaciones de inicio de sesión", diff --git a/apps/admin/locales/es-MX/user.json b/apps/admin/locales/es-MX/user.json index 28b0c16..4ed6dc4 100644 --- a/apps/admin/locales/es-MX/user.json +++ b/apps/admin/locales/es-MX/user.json @@ -49,6 +49,8 @@ "invalidEmailFormat": "Formato de correo electrónico no válido", "inviteCode": "Código de Invitación", "inviteCodePlaceholder": "Ingresa el código de invitación (déjalo en blanco para generar uno)", + "kickOfflineConfirm": "¿Estás seguro de desconectar la IP {ip}?", + "kickOfflineSuccess": "Notificación de desconexión exitosa", "loading": "Cargando...", "loginIp": "IP de inicio de sesión", "loginNotifications": "Notificaciones de inicio de sesión", diff --git a/apps/admin/locales/fa-IR/user.json b/apps/admin/locales/fa-IR/user.json index 351250c..67a7080 100644 --- a/apps/admin/locales/fa-IR/user.json +++ b/apps/admin/locales/fa-IR/user.json @@ -49,6 +49,8 @@ "invalidEmailFormat": "فرمت ایمیل نامعتبر است", "inviteCode": "کد دعوت", "inviteCodePlaceholder": "کد دعوت را وارد کنید (برای تولید خالی بگذارید)", + "kickOfflineConfirm": "آیا مطمئن هستید که می‌خواهید IP {ip} را از سیستم خارج کنید؟", + "kickOfflineSuccess": "با موفقیت اطلاع‌رسانی به حالت آفلاین انجام شد", "loading": "در حال بارگذاری...", "loginIp": "آی‌پی ورود", "loginNotifications": "اعلان‌های ورود", diff --git a/apps/admin/locales/fi-FI/user.json b/apps/admin/locales/fi-FI/user.json index 7d940cf..822fa41 100644 --- a/apps/admin/locales/fi-FI/user.json +++ b/apps/admin/locales/fi-FI/user.json @@ -49,6 +49,8 @@ "invalidEmailFormat": "Virheellinen sähköpostimuoto", "inviteCode": "Kutsukoodi", "inviteCodePlaceholder": "Syötä kutsukoodi (jätä tyhjäksi luodaksesi uuden)", + "kickOfflineConfirm": "Oletko varma, että haluat poistaa IP-osoitteen {ip} käytöstä?", + "kickOfflineSuccess": "Poistaminen käytöstä onnistui", "loading": "Ladataan...", "loginIp": "Kirjautumis-IP", "loginNotifications": "Kirjautumisilmoitukset", diff --git a/apps/admin/locales/fr-FR/user.json b/apps/admin/locales/fr-FR/user.json index 1f4c862..6e3ec80 100644 --- a/apps/admin/locales/fr-FR/user.json +++ b/apps/admin/locales/fr-FR/user.json @@ -49,6 +49,8 @@ "invalidEmailFormat": "Format d'email invalide", "inviteCode": "Code d'invitation", "inviteCodePlaceholder": "Entrez le code d'invitation (laissez vide pour générer)", + "kickOfflineConfirm": "Êtes-vous sûr de vouloir déconnecter l'IP {ip} ?", + "kickOfflineSuccess": "Notification de déconnexion réussie", "loading": "Chargement...", "loginIp": "IP de connexion", "loginNotifications": "Notifications de connexion", diff --git a/apps/admin/locales/hi-IN/user.json b/apps/admin/locales/hi-IN/user.json index adbad3c..35f99e3 100644 --- a/apps/admin/locales/hi-IN/user.json +++ b/apps/admin/locales/hi-IN/user.json @@ -49,6 +49,8 @@ "invalidEmailFormat": "अमान्य ईमेल प्रारूप", "inviteCode": "आमंत्रण कोड", "inviteCodePlaceholder": "आमंत्रण कोड दर्ज करें (उत्पन्न करने के लिए खाली छोड़ें)", + "kickOfflineConfirm": "क्या आप सुनिश्चित हैं कि IP {ip} को ऑफलाइन करें?", + "kickOfflineSuccess": "सफलता से ऑफलाइन करने की सूचना दी गई", "loading": "लोड हो रहा है...", "loginIp": "लॉगिन आईपी", "loginNotifications": "लॉगिन सूचनाएं", diff --git a/apps/admin/locales/hu-HU/user.json b/apps/admin/locales/hu-HU/user.json index 0ce5369..7b9f912 100644 --- a/apps/admin/locales/hu-HU/user.json +++ b/apps/admin/locales/hu-HU/user.json @@ -49,6 +49,8 @@ "invalidEmailFormat": "Érvénytelen e-mail formátum", "inviteCode": "Meghívókód", "inviteCodePlaceholder": "Adja meg a meghívó kódot (hagyja üresen a generáláshoz)", + "kickOfflineConfirm": "Biztosan ki szeretnéd léptetni a {ip} IP címet?", + "kickOfflineSuccess": "Sikeresen értesítettük a kikapcsolásról", "loading": "Betöltés...", "loginIp": "Bejelentkezési IP", "loginNotifications": "Bejelentkezési értesítések", diff --git a/apps/admin/locales/ja-JP/user.json b/apps/admin/locales/ja-JP/user.json index 7cf82c8..3e6ea4d 100644 --- a/apps/admin/locales/ja-JP/user.json +++ b/apps/admin/locales/ja-JP/user.json @@ -49,6 +49,8 @@ "invalidEmailFormat": "無効なメール形式です", "inviteCode": "招待コード", "inviteCodePlaceholder": "招待コードを入力してください(生成するには空白のままにしてください)", + "kickOfflineConfirm": "IP {ip} をオフラインにすることを本当に確認しますか?", + "kickOfflineSuccess": "オフライン通知が成功しました", "loading": "読み込み中...", "loginIp": "ログインIP", "loginNotifications": "ログイン通知", diff --git a/apps/admin/locales/ko-KR/user.json b/apps/admin/locales/ko-KR/user.json index 8e35176..b4a4ac0 100644 --- a/apps/admin/locales/ko-KR/user.json +++ b/apps/admin/locales/ko-KR/user.json @@ -49,6 +49,8 @@ "invalidEmailFormat": "잘못된 이메일 형식입니다", "inviteCode": "초대 코드", "inviteCodePlaceholder": "초대 코드를 입력하세요 (생성을 원하시면 비워두세요)", + "kickOfflineConfirm": "정말로 오프라인 IP {ip}를 강제로 종료하시겠습니까?", + "kickOfflineSuccess": "오프라인 알림이 성공적으로 전송되었습니다.", "loading": "로딩 중...", "loginIp": "로그인 IP", "loginNotifications": "로그인 알림", diff --git a/apps/admin/locales/no-NO/user.json b/apps/admin/locales/no-NO/user.json index 0325b99..f647a97 100644 --- a/apps/admin/locales/no-NO/user.json +++ b/apps/admin/locales/no-NO/user.json @@ -49,6 +49,8 @@ "invalidEmailFormat": "Ugyldig e-postformat", "inviteCode": "Invitasjonskode", "inviteCodePlaceholder": "Skriv inn invitasjonskode (la stå tom for å generere)", + "kickOfflineConfirm": "Er du sikker på at du vil fjerne IP {ip} fra nettverket?", + "kickOfflineSuccess": "Varsel om fjerning ble sendt med suksess", "loading": "Laster inn...", "loginIp": "Innloggings-IP", "loginNotifications": "Påloggingsvarsler", diff --git a/apps/admin/locales/pl-PL/user.json b/apps/admin/locales/pl-PL/user.json index 5b8c6d9..b4d0b4c 100644 --- a/apps/admin/locales/pl-PL/user.json +++ b/apps/admin/locales/pl-PL/user.json @@ -49,6 +49,8 @@ "invalidEmailFormat": "Nieprawidłowy format adresu e-mail", "inviteCode": "Kod zaproszenia", "inviteCodePlaceholder": "Wprowadź kod zaproszenia (pozostaw puste, aby wygenerować)", + "kickOfflineConfirm": "Czy na pewno chcesz wylogować IP {ip}?", + "kickOfflineSuccess": "Pomyślnie powiadomiono o wylogowaniu", "loading": "Ładowanie...", "loginIp": "IP logowania", "loginNotifications": "Powiadomienia o logowaniu", diff --git a/apps/admin/locales/pt-BR/user.json b/apps/admin/locales/pt-BR/user.json index 923cb88..fa13160 100644 --- a/apps/admin/locales/pt-BR/user.json +++ b/apps/admin/locales/pt-BR/user.json @@ -49,6 +49,8 @@ "invalidEmailFormat": "Formato de e-mail inválido", "inviteCode": "Código de Convite", "inviteCodePlaceholder": "Digite o código de convite (deixe em branco para gerar)", + "kickOfflineConfirm": "Você tem certeza de que deseja desconectar o IP {ip}?", + "kickOfflineSuccess": "Notificação de desconexão enviada com sucesso", "loading": "Carregando...", "loginIp": "IP de Login", "loginNotifications": "Notificações de Login", diff --git a/apps/admin/locales/ro-RO/user.json b/apps/admin/locales/ro-RO/user.json index 3bab5f0..a967a8d 100644 --- a/apps/admin/locales/ro-RO/user.json +++ b/apps/admin/locales/ro-RO/user.json @@ -49,6 +49,8 @@ "invalidEmailFormat": "Format de email invalid", "inviteCode": "Cod de invitație", "inviteCodePlaceholder": "Introduceți codul de invitație (lăsați necompletat pentru a genera)", + "kickOfflineConfirm": "Ești sigur că vrei să deconectezi IP-ul {ip}?", + "kickOfflineSuccess": "Notificare de deconectare reușită", "loading": "Se încarcă...", "loginIp": "IP de autentificare", "loginNotifications": "Notificări de autentificare", diff --git a/apps/admin/locales/ru-RU/user.json b/apps/admin/locales/ru-RU/user.json index 520a631..adc56bd 100644 --- a/apps/admin/locales/ru-RU/user.json +++ b/apps/admin/locales/ru-RU/user.json @@ -49,6 +49,8 @@ "invalidEmailFormat": "Неверный формат электронной почты", "inviteCode": "Код приглашения", "inviteCodePlaceholder": "Введите код приглашения (оставьте пустым для генерации)", + "kickOfflineConfirm": "Вы уверены, что хотите отключить IP {ip}?", + "kickOfflineSuccess": "Успешно уведомлено об отключении", "loading": "Загрузка...", "loginIp": "IP-адрес входа", "loginNotifications": "Уведомления о входе", diff --git a/apps/admin/locales/th-TH/user.json b/apps/admin/locales/th-TH/user.json index 1c45d01..55a50e2 100644 --- a/apps/admin/locales/th-TH/user.json +++ b/apps/admin/locales/th-TH/user.json @@ -49,6 +49,8 @@ "invalidEmailFormat": "รูปแบบอีเมลไม่ถูกต้อง", "inviteCode": "รหัสเชิญ", "inviteCodePlaceholder": "กรอกรหัสเชิญ (เว้นว่างไว้เพื่อสร้างใหม่)", + "kickOfflineConfirm": "คุณแน่ใจหรือว่าต้องการเตะ IP {ip} ออกจากระบบ?", + "kickOfflineSuccess": "แจ้งเตือนการเตะออกสำเร็จ", "loading": "กำลังโหลด...", "loginIp": "ไอพีที่เข้าสู่ระบบ", "loginNotifications": "การแจ้งเตือนการเข้าสู่ระบบ", diff --git a/apps/admin/locales/tr-TR/user.json b/apps/admin/locales/tr-TR/user.json index b8cafb4..d7d51a0 100644 --- a/apps/admin/locales/tr-TR/user.json +++ b/apps/admin/locales/tr-TR/user.json @@ -49,6 +49,8 @@ "invalidEmailFormat": "Geçersiz e-posta formatı", "inviteCode": "Davet Kodu", "inviteCodePlaceholder": "Davet kodunu girin (oluşturmak için boş bırakın)", + "kickOfflineConfirm": "IP {ip}'yi çevrimdışı olarak atmak istediğinize emin misiniz?", + "kickOfflineSuccess": "Başarıyla çevrimdışı bildirildi", "loading": "Yükleniyor...", "loginIp": "Giriş IP'si", "loginNotifications": "Giriş Bildirimleri", diff --git a/apps/admin/locales/uk-UA/user.json b/apps/admin/locales/uk-UA/user.json index 871bb62..69cee8e 100644 --- a/apps/admin/locales/uk-UA/user.json +++ b/apps/admin/locales/uk-UA/user.json @@ -49,6 +49,8 @@ "invalidEmailFormat": "Неправильний формат електронної пошти", "inviteCode": "Код запрошення", "inviteCodePlaceholder": "Введіть код запрошення (залиште порожнім для генерації)", + "kickOfflineConfirm": "Ви впевнені, що хочете відключити IP {ip}?", + "kickOfflineSuccess": "Успішно надіслано повідомлення про відключення", "loading": "Завантаження...", "loginIp": "IP-адреса входу", "loginNotifications": "Сповіщення про вхід", diff --git a/apps/admin/locales/vi-VN/user.json b/apps/admin/locales/vi-VN/user.json index b25562f..c2dfb9c 100644 --- a/apps/admin/locales/vi-VN/user.json +++ b/apps/admin/locales/vi-VN/user.json @@ -49,6 +49,8 @@ "invalidEmailFormat": "Định dạng email không hợp lệ", "inviteCode": "Mã Mời", "inviteCodePlaceholder": "Nhập mã mời (để trống để tạo mới)", + "kickOfflineConfirm": "Bạn có chắc chắn muốn ngắt kết nối IP {ip} không?", + "kickOfflineSuccess": "Thông báo ngắt kết nối thành công", "loading": "Đang tải...", "loginIp": "Địa chỉ IP đăng nhập", "loginNotifications": "Thông báo Đăng nhập", diff --git a/apps/admin/locales/zh-CN/user.json b/apps/admin/locales/zh-CN/user.json index 7cc434f..8623350 100644 --- a/apps/admin/locales/zh-CN/user.json +++ b/apps/admin/locales/zh-CN/user.json @@ -1,16 +1,16 @@ { - "accountEnable": "账户启用", + "accountEnable": "账号启用", "actions": "操作", "add": "添加", "administrator": "管理员", "areaCode": "区号", - "areaCodePlaceholder": "区号", + "areaCodePlaceholder": "输入区号", "auth": "认证", - "authIdentifier": "认证标识符", - "authIdentifierPlaceholder": "输入认证标识符", - "authMethodsTitle": "身份验证设置", + "authIdentifier": "认证标识", + "authIdentifierPlaceholder": "输入认证标识", + "authMethodsTitle": "认证设置", "authType": "认证类型", - "authUser": "授权用户", + "authUser": "认证用户", "avatar": "头像", "balance": "余额", "balanceNotifications": "余额变动通知", @@ -20,16 +20,16 @@ "commission": "佣金", "commissionPlaceholder": "输入佣金", "confirm": "确认", - "confirmDelete": "您确定要删除吗?", - "confirmOffline": "确认离线", + "confirmDelete": "确认删除", + "confirmOffline": "确认下线", "create": "创建", "createSubscription": "创建订阅", "createSuccess": "创建成功", "createUser": "创建用户", - "createdAt": "注册时间", + "createdAt": "创建时间", "delete": "删除", - "deleteDescription": "删除后无法恢复数据,请谨慎操作。", - "deleteSubscriptionDescription": "您确定要删除此订阅吗?", + "deleteDescription": "删除后数据无法恢复,请谨慎操作", + "deleteSubscriptionDescription": "确定要删除此订阅吗?", "deleteSuccess": "删除成功", "detail": "详情", "deviceLimit": "设备限制", @@ -39,16 +39,18 @@ "editSubscription": "编辑订阅", "editUser": "编辑用户", "email": "邮箱", - "emailNotifications": "电子邮件通知", + "emailNotifications": "邮件通知", "enable": "启用", - "expireTime": "过期时间", + "expireTime": "到期时间", "expiredAt": "过期时间", "failed": "失败", - "giftAmount": "礼物金额", - "giftAmountPlaceholder": "输入礼品金额", - "invalidEmailFormat": "电子邮件格式无效", + "giftAmount": "赠送金额", + "giftAmountPlaceholder": "输入赠送金额", + "invalidEmailFormat": "邮箱格式不正确", "inviteCode": "邀请码", - "inviteCodePlaceholder": "输入邀请码(留空以生成)", + "inviteCodePlaceholder": "输入邀请码(留空自动生成)", + "kickOfflineConfirm": "确定要下线 IP {ip} 吗?", + "kickOfflineSuccess": "已通知下线", "loading": "加载中...", "loginIp": "登录IP", "loginNotifications": "登录通知", @@ -58,9 +60,9 @@ "notifySettingsTitle": "通知设置", "onlineDevices": "在线设备", "password": "密码", - "passwordPlaceholder": "输入新密码(可选)", + "passwordPlaceholder": "输入新密码(选填)", "permanent": "永久", - "pleaseEnterEmail": "请输入电子邮件", + "pleaseEnterEmail": "请输入邮箱", "referer": "推荐人", "refererId": "推荐人ID", "refererIdPlaceholder": "输入推荐人ID", @@ -71,7 +73,7 @@ "save": "保存", "searchIp": "搜索IP地址", "selectAuthType": "选择认证类型", - "speedLimit": "限速", + "speedLimit": "速度限制", "subscription": "订阅", "subscriptionDetails": "订阅详情", "subscriptionList": "订阅列表", @@ -79,14 +81,14 @@ "subscriptionName": "订阅名称", "subscriptionNotifications": "订阅通知", "success": "成功", - "telegramNotifications": "Telegram 通知", - "telephone": "电话号码", - "telephonePlaceholder": "输入电话号码", + "telegramNotifications": "Telegram通知", + "telephone": "手机号", + "telephonePlaceholder": "输入手机号", "totalTraffic": "总流量", "tradeNotifications": "交易通知", "trafficLimit": "流量限制", "trafficLogs": "流量日志", - "unlimited": "无限", + "unlimited": "无限制", "unverified": "未验证", "update": "更新", "updateSuccess": "更新成功", @@ -97,7 +99,7 @@ "userEmailPlaceholder": "输入用户邮箱", "userList": "用户列表", "userLogs": "登录历史", - "userName": "用户标识符", + "userName": "用户标识", "userOrders": "订单", "userProfile": "个人资料", "userSubscriptions": "订阅", diff --git a/apps/admin/locales/zh-HK/user.json b/apps/admin/locales/zh-HK/user.json index 05ca212..5be6ee8 100644 --- a/apps/admin/locales/zh-HK/user.json +++ b/apps/admin/locales/zh-HK/user.json @@ -49,6 +49,8 @@ "invalidEmailFormat": "電郵格式無效", "inviteCode": "邀請碼", "inviteCodePlaceholder": "輸入邀請碼(留空以生成)", + "kickOfflineConfirm": "您確定要踢掉 IP {ip} 嗎?", + "kickOfflineSuccess": "成功通知已下線", "loading": "載入中...", "loginIp": "登入 IP", "loginNotifications": "登入通知", diff --git a/apps/admin/services/admin/index.ts b/apps/admin/services/admin/index.ts index 5cf2608..1ca3f9e 100644 --- a/apps/admin/services/admin/index.ts +++ b/apps/admin/services/admin/index.ts @@ -1,5 +1,5 @@ // @ts-ignore - + // API 更新时间: // API 唯一标识: import * as announcement from './announcement'; diff --git a/apps/admin/services/common/index.ts b/apps/admin/services/common/index.ts index 61ba129..73b3bda 100644 --- a/apps/admin/services/common/index.ts +++ b/apps/admin/services/common/index.ts @@ -1,5 +1,5 @@ // @ts-ignore - + // API 更新时间: // API 唯一标识: import * as auth from './auth'; diff --git a/apps/user/services/common/index.ts b/apps/user/services/common/index.ts index 61ba129..73b3bda 100644 --- a/apps/user/services/common/index.ts +++ b/apps/user/services/common/index.ts @@ -1,5 +1,5 @@ // @ts-ignore - + // API 更新时间: // API 唯一标识: import * as auth from './auth';