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';