feat: improve authentication and user management
- Fix token missing issue after email code registration/login - Add last login time update for code-based login - Support email login in addition to username login - Fix password login for code-registered users (allow setting password) - Fix referral code parameter passing from URL hash - Add email column to user management table - Improve profile page layout (align card heights, reorganize layout) - Add i18n support for Register Bonus, Referral Bonus, Code Lock Minutes, Code Max Attempts - Fix billing service add_credits to support reference_id parameter - Update password handling documentation
This commit is contained in:
@@ -8,6 +8,17 @@ const components = {
|
||||
}
|
||||
|
||||
const locale = {
|
||||
// 通用
|
||||
'common.confirm': '確定',
|
||||
'common.cancel': '取消',
|
||||
'common.save': '保存',
|
||||
'common.delete': '刪除',
|
||||
'common.edit': '編輯',
|
||||
'common.add': '添加',
|
||||
'common.close': '關閉',
|
||||
'common.ok': '確定',
|
||||
'common.actions': '操作',
|
||||
'common.refresh': '刷新',
|
||||
'submit': '提交',
|
||||
'save': '保存',
|
||||
'submit.ok': '提交成功',
|
||||
@@ -19,7 +30,8 @@ const locale = {
|
||||
'menu.dashboard.community': '指標社區',
|
||||
'menu.dashboard.analysis': 'AI 分析',
|
||||
'menu.dashboard.tradingAssistant': '交易助手',
|
||||
'menu.settings': '系统设置',
|
||||
'menu.dashboard.portfolio': '資產監測',
|
||||
'menu.settings': '系統設置',
|
||||
'menu.dashboard.aiTradingAssistant': 'AI交易助手',
|
||||
'menu.dashboard.signalRobot': '信號機器人',
|
||||
'menu.dashboard.monitor': '監控頁',
|
||||
@@ -97,6 +109,36 @@ const locale = {
|
||||
'app.setting.themecolor.geekblue': '極客藍',
|
||||
'app.setting.themecolor.purple': '醬紫',
|
||||
'app.setting.tooltip': '頁面設置',
|
||||
|
||||
// 通知中心
|
||||
'notice.title': '通知中心',
|
||||
'notice.empty': '暫無通知',
|
||||
'notice.markAllRead': '全部已讀',
|
||||
'notice.clear': '清空通知',
|
||||
'notice.close': '關閉',
|
||||
'notice.justNow': '剛剛',
|
||||
'notice.minutesAgo': '分鐘前',
|
||||
'notice.hoursAgo': '小時前',
|
||||
'notice.daysAgo': '天前',
|
||||
'notice.detailInfo': '詳細信息',
|
||||
'notice.aiDecision': 'AI決策',
|
||||
'notice.confidence': '置信度',
|
||||
'notice.reasoning': '分析理由',
|
||||
'notice.symbol': '標的代碼',
|
||||
'notice.currentPrice': '當前價格',
|
||||
'notice.triggerPrice': '觸發價格',
|
||||
'notice.action': '操作',
|
||||
'notice.quantity': '數量',
|
||||
'notice.viewPortfolio': '查看持倉',
|
||||
'notice.type.aiMonitor': 'AI監控',
|
||||
'notice.type.priceAlert': '價格提醒',
|
||||
'notice.type.signal': '交易信號',
|
||||
'notice.type.buy': '買入信號',
|
||||
'notice.type.sell': '賣出信號',
|
||||
'notice.type.hold': '持有建議',
|
||||
'notice.type.trade': '交易執行',
|
||||
'notice.type.notification': '系統通知',
|
||||
|
||||
'user.login.userName': '用戶名',
|
||||
'user.login.password': '密碼',
|
||||
'user.login.username.placeholder': '賬戶: admin',
|
||||
@@ -1674,6 +1716,9 @@ const locale = {
|
||||
'settings.link.supportedExchanges': '支持的交易所',
|
||||
'settings.link.applyApi': '申請API',
|
||||
'settings.link.createSearchEngine': '創建搜索引擎',
|
||||
'settings.link.getTurnstileKey': '獲取Turnstile密鑰',
|
||||
'settings.link.getGoogleCredentials': '獲取Google憑據',
|
||||
'settings.link.getGithubCredentials': '獲取GitHub憑據',
|
||||
'settings.restartRequired': '配置已保存,部分配置需要重啟Python服務才能生效',
|
||||
'settings.copyRestartCmd': '複製重啟命令',
|
||||
'settings.copySuccess': '複製成功',
|
||||
@@ -1692,11 +1737,35 @@ const locale = {
|
||||
'settings.group.agent': 'AI Agent',
|
||||
'settings.group.network': '網絡代理',
|
||||
'settings.group.search': '搜索配置',
|
||||
'settings.group.security': '註冊與安全',
|
||||
'settings.group.app': '應用配置',
|
||||
// Settings fields - Auth
|
||||
'settings.field.SECRET_KEY': 'Secret Key',
|
||||
'settings.field.ADMIN_USER': '管理員用戶名',
|
||||
'settings.field.ADMIN_PASSWORD': '管理員密碼',
|
||||
'settings.field.ADMIN_EMAIL': '管理員郵箱',
|
||||
// Settings fields - Security
|
||||
'settings.field.ENABLE_REGISTRATION': '允許註冊',
|
||||
'settings.field.TURNSTILE_SITE_KEY': 'Turnstile Site Key',
|
||||
'settings.field.TURNSTILE_SECRET_KEY': 'Turnstile Secret Key',
|
||||
'settings.field.FRONTEND_URL': '前端URL',
|
||||
'settings.field.GOOGLE_CLIENT_ID': 'Google Client ID',
|
||||
'settings.field.GOOGLE_CLIENT_SECRET': 'Google Client Secret',
|
||||
'settings.field.GOOGLE_REDIRECT_URI': 'Google回調URL',
|
||||
'settings.field.GITHUB_CLIENT_ID': 'GitHub Client ID',
|
||||
'settings.field.GITHUB_CLIENT_SECRET': 'GitHub Client Secret',
|
||||
'settings.field.GITHUB_REDIRECT_URI': 'GitHub回調URL',
|
||||
'settings.field.SECURITY_IP_MAX_ATTEMPTS': 'IP最大失敗次數',
|
||||
'settings.field.SECURITY_IP_WINDOW_MINUTES': 'IP統計窗口(分鐘)',
|
||||
'settings.field.SECURITY_IP_BLOCK_MINUTES': 'IP封禁時長(分鐘)',
|
||||
'settings.field.SECURITY_ACCOUNT_MAX_ATTEMPTS': '帳戶最大失敗次數',
|
||||
'settings.field.SECURITY_ACCOUNT_WINDOW_MINUTES': '帳戶統計窗口(分鐘)',
|
||||
'settings.field.SECURITY_ACCOUNT_BLOCK_MINUTES': '帳戶鎖定時長(分鐘)',
|
||||
'settings.field.VERIFICATION_CODE_EXPIRE_MINUTES': '驗證碼有效期(分鐘)',
|
||||
'settings.field.VERIFICATION_CODE_RATE_LIMIT': '驗證碼發送間隔(秒)',
|
||||
'settings.field.VERIFICATION_CODE_IP_HOURLY_LIMIT': 'IP每小時驗證碼上限',
|
||||
'settings.field.VERIFICATION_CODE_MAX_ATTEMPTS': '驗證碼最大嘗試次數',
|
||||
'settings.field.VERIFICATION_CODE_LOCK_MINUTES': '驗證碼鎖定時長(分鐘)',
|
||||
// Settings fields - Server
|
||||
'settings.field.PYTHON_API_HOST': '監聽地址',
|
||||
'settings.field.PYTHON_API_PORT': '端口',
|
||||
@@ -1864,7 +1933,283 @@ const locale = {
|
||||
'settings.desc.RATE_LIMIT': '每IP每分鐘的API請求限制',
|
||||
'settings.desc.ENABLE_CACHE': '啟用響應緩存以提高性能',
|
||||
'settings.desc.ENABLE_REQUEST_LOG': '記錄所有API請求日誌,用於調試',
|
||||
'settings.desc.ENABLE_AI_ANALYSIS': '啟用AI驅動的市場分析功能'
|
||||
'settings.desc.ENABLE_AI_ANALYSIS': '啟用AI驅動的市場分析功能',
|
||||
|
||||
// Portfolio - 資產監測
|
||||
'portfolio.summary.totalValue': '總市值',
|
||||
'portfolio.summary.totalCost': '總成本',
|
||||
'portfolio.summary.totalPnl': '總盈虧',
|
||||
'portfolio.summary.positionCount': '持倉數量',
|
||||
'portfolio.summary.profitLossRatio': '盈利/虧損',
|
||||
'portfolio.summary.today': '今日',
|
||||
'portfolio.summary.todayPnl': '今日盈虧',
|
||||
'portfolio.summary.bestPerformer': '最佳表現',
|
||||
'portfolio.summary.worstPerformer': '最差表現',
|
||||
'portfolio.summary.priceSync': '價格同步',
|
||||
'portfolio.summary.syncInterval': '刷新間隔',
|
||||
'portfolio.summary.justNow': '剛剛',
|
||||
'portfolio.summary.ago': '前',
|
||||
'portfolio.positions.title': '我的持倉',
|
||||
'portfolio.positions.add': '添加持倉',
|
||||
'portfolio.positions.addFirst': '添加第一筆持倉',
|
||||
'portfolio.positions.empty': '暫無持倉記錄',
|
||||
'portfolio.positions.deleteConfirm': '確定刪除這筆持倉嗎?',
|
||||
'portfolio.positions.currentPrice': '現價',
|
||||
'portfolio.positions.entryPrice': '買入價',
|
||||
'portfolio.positions.quantity': '數量',
|
||||
'portfolio.positions.side': '方向',
|
||||
'portfolio.positions.long': '做多',
|
||||
'portfolio.positions.short': '做空',
|
||||
'portfolio.positions.marketValue': '市值',
|
||||
'portfolio.positions.pnl': '盈虧',
|
||||
'portfolio.positions.items': '個持倉',
|
||||
'portfolio.monitors.title': 'AI 監控',
|
||||
'portfolio.monitors.add': '添加監控',
|
||||
'portfolio.monitors.addFirst': '添加 AI 監控',
|
||||
'portfolio.monitors.empty': '暫無監控任務',
|
||||
'portfolio.monitors.deleteConfirm': '確定刪除這個監控任務嗎?',
|
||||
'portfolio.monitors.interval': '執行間隔',
|
||||
'portfolio.monitors.lastRun': '上次執行',
|
||||
'portfolio.monitors.nextRun': '下次執行',
|
||||
'portfolio.monitors.channels': '通知渠道',
|
||||
'portfolio.monitors.runNow': '立即執行',
|
||||
'portfolio.monitors.analysisResult': 'AI 分析結果',
|
||||
'portfolio.monitors.runningTitle': 'AI 分析已啟動',
|
||||
'portfolio.monitors.runningDesc': '分析正在後臺運行,完成後會通過通知推送結果。分析多個持倉可能需要幾分鐘時間。',
|
||||
'portfolio.monitors.timeoutTitle': '請求超時',
|
||||
'portfolio.monitors.timeoutDesc': '分析可能正在後臺運行中,請稍後查看通知獲取結果。如果長時間沒有收到通知,請重試。',
|
||||
'portfolio.modal.addPosition': '添加持倉',
|
||||
'portfolio.modal.editPosition': '編輯持倉',
|
||||
'portfolio.modal.addMonitor': '添加監控',
|
||||
'portfolio.modal.editMonitor': '編輯監控',
|
||||
'portfolio.form.market': '市場',
|
||||
'portfolio.form.marketRequired': '請選擇市場',
|
||||
'portfolio.form.selectMarket': '選擇市場',
|
||||
'portfolio.form.symbol': '標的代碼',
|
||||
'portfolio.form.symbolRequired': '請輸入標的代碼',
|
||||
'portfolio.form.searchSymbol': '搜索或輸入標的代碼',
|
||||
'portfolio.form.useAsSymbol': '使用',
|
||||
'portfolio.form.asSymbolCode': '作為標的代碼',
|
||||
'portfolio.form.symbolHint': '可搜索標的庫,或直接輸入任意代碼',
|
||||
'portfolio.form.side': '方向',
|
||||
'portfolio.form.quantity': '數量',
|
||||
'portfolio.form.quantityRequired': '請輸入數量',
|
||||
'portfolio.form.enterQuantity': '輸入持倉數量',
|
||||
'portfolio.form.entryPrice': '買入價',
|
||||
'portfolio.form.entryPriceRequired': '請輸入買入價',
|
||||
'portfolio.form.enterEntryPrice': '輸入買入價格',
|
||||
'portfolio.form.notes': '備注',
|
||||
'portfolio.form.enterNotes': '可選:添加備注',
|
||||
'portfolio.form.monitorName': '監控名稱',
|
||||
'portfolio.form.monitorNameRequired': '請輸入監控名稱',
|
||||
'portfolio.form.enterMonitorName': '例如:每日組合分析',
|
||||
'portfolio.form.interval': '執行間隔',
|
||||
'portfolio.form.minutes': '分鐘',
|
||||
'portfolio.form.hour': '小時',
|
||||
'portfolio.form.hours': '小時',
|
||||
'portfolio.form.notifyChannels': '通知渠道',
|
||||
'portfolio.form.browser': '瀏覽器通知',
|
||||
'portfolio.form.email': '郵件',
|
||||
'portfolio.form.telegramChatId': 'Telegram Chat ID',
|
||||
'portfolio.form.enterTelegramChatId': '輸入 Telegram Chat ID',
|
||||
'portfolio.form.telegramRequired': '請輸入 Telegram Chat ID',
|
||||
'portfolio.form.emailAddress': '郵箱地址',
|
||||
'portfolio.form.enterEmail': '輸入郵箱地址',
|
||||
'portfolio.form.emailRequired': '請輸入郵箱地址',
|
||||
'portfolio.form.emailInvalid': '請輸入有效的郵箱地址',
|
||||
'portfolio.form.customPrompt': '自定義提示',
|
||||
'portfolio.form.customPromptPlaceholder': '可選:添加特別關注點,例如"重點關注科技股風險"',
|
||||
'portfolio.form.monitorScope': '監控範圍',
|
||||
'portfolio.form.allPositions': '全部持倉',
|
||||
'portfolio.form.selectedPositions': '指定持倉',
|
||||
'portfolio.form.selectPositions': '選擇持倉',
|
||||
'portfolio.form.selectAll': '全選',
|
||||
'portfolio.form.deselectAll': '全不選',
|
||||
'portfolio.form.selectedCount': '已選 {count}/{total}',
|
||||
'portfolio.form.pleaseSelectPositions': '請至少選擇一個持倉進行監控',
|
||||
'portfolio.message.loadFailed': '加載數據失敗',
|
||||
'portfolio.message.saveSuccess': '保存成功',
|
||||
'portfolio.message.saveFailed': '保存失敗',
|
||||
'portfolio.message.deleteSuccess': '刪除成功',
|
||||
'portfolio.message.deleteFailed': '刪除失敗',
|
||||
'portfolio.message.updateFailed': '更新失敗',
|
||||
'portfolio.message.monitorEnabled': '監控已啟用',
|
||||
'portfolio.message.monitorDisabled': '監控已暫停',
|
||||
'portfolio.message.monitorRunSuccess': '分析完成',
|
||||
'portfolio.message.monitorRunFailed': '分析失敗',
|
||||
'portfolio.message.monitorRunning': 'AI 分析已啟動,請等待通知',
|
||||
// Portfolio - 分組
|
||||
'portfolio.groups.all': '全部持倉',
|
||||
'portfolio.groups.ungrouped': '未分組',
|
||||
'portfolio.form.group': '分組',
|
||||
'portfolio.form.enterGroup': '輸入或選擇分組',
|
||||
// Portfolio - 預警
|
||||
'portfolio.alerts.title': '價格/盈虧預警',
|
||||
'portfolio.alerts.addAlert': '添加預警',
|
||||
'portfolio.alerts.editAlert': '編輯預警',
|
||||
'portfolio.alerts.alertType': '預警類型',
|
||||
'portfolio.alerts.priceAbove': '價格高於',
|
||||
'portfolio.alerts.priceBelow': '價格低於',
|
||||
'portfolio.alerts.pnlAbove': '盈利高於 (%)',
|
||||
'portfolio.alerts.pnlBelow': '虧損低於 (%)',
|
||||
'portfolio.alerts.threshold': '閾值',
|
||||
'portfolio.alerts.thresholdRequired': '請輸入閾值',
|
||||
'portfolio.alerts.enterPrice': '輸入價格',
|
||||
'portfolio.alerts.enterPercent': '輸入百分比',
|
||||
'portfolio.alerts.currentPrice': '當前價格',
|
||||
'portfolio.alerts.currentPriceHint': '當前價格',
|
||||
'portfolio.alerts.repeatInterval': '重複提醒',
|
||||
'portfolio.alerts.noRepeat': '不重複 (觸發一次)',
|
||||
'portfolio.alerts.every5min': '每 5 分鐘',
|
||||
'portfolio.alerts.every15min': '每 15 分鐘',
|
||||
'portfolio.alerts.every30min': '每 30 分鐘',
|
||||
'portfolio.alerts.every1hour': '每 1 小時',
|
||||
'portfolio.alerts.every4hours': '每 4 小時',
|
||||
'portfolio.alerts.onceDaily': '每天一次',
|
||||
'portfolio.alerts.enabled': '啟用預警',
|
||||
'portfolio.alerts.enabledDesc': '開啟後將自動監測並觸發通知',
|
||||
'portfolio.alerts.delete': '刪除',
|
||||
'portfolio.alerts.deleteConfirm': '確定要刪除此預警嗎?',
|
||||
'portfolio.modal.addAlert': '添加預警',
|
||||
'portfolio.modal.editAlert': '編輯預警',
|
||||
|
||||
// User Management
|
||||
'menu.userManage': '用戶管理',
|
||||
'menu.myProfile': '個人中心',
|
||||
'userManage.title': '用戶管理',
|
||||
'userManage.searchPlaceholder': '搜索用戶名/郵箱/暱稱',
|
||||
'userManage.description': '管理系統用戶、角色和權限',
|
||||
'userManage.createUser': '創建用戶',
|
||||
'userManage.editUser': '編輯用戶',
|
||||
'userManage.username': '用戶名',
|
||||
'userManage.password': '密碼',
|
||||
'userManage.nickname': '暱稱',
|
||||
'userManage.email': '郵箱',
|
||||
'userManage.role': '角色',
|
||||
'userManage.status': '狀態',
|
||||
'userManage.lastLogin': '最後登錄',
|
||||
'userManage.active': '啟用',
|
||||
'userManage.disabled': '禁用',
|
||||
'userManage.neverLogin': '從未登錄',
|
||||
'userManage.usernameRequired': '請輸入用戶名',
|
||||
'userManage.usernamePlaceholder': '輸入用戶名',
|
||||
'userManage.passwordRequired': '請輸入密碼',
|
||||
'userManage.passwordPlaceholder': '輸入密碼(至少6位)',
|
||||
'userManage.passwordMin': '密碼至少6個字符',
|
||||
'userManage.nicknamePlaceholder': '輸入暱稱',
|
||||
'userManage.emailPlaceholder': '輸入郵箱',
|
||||
'userManage.emailInvalid': '郵箱格式不正確',
|
||||
'userManage.rolePlaceholder': '選擇角色',
|
||||
'userManage.statusPlaceholder': '選擇狀態',
|
||||
'userManage.resetPassword': '重置密碼',
|
||||
'userManage.resetPasswordWarning': '此操作將重置用戶密碼',
|
||||
'userManage.newPassword': '新密碼',
|
||||
'userManage.newPasswordPlaceholder': '輸入新密碼',
|
||||
'userManage.confirmDelete': '確定要刪除此用戶嗎?',
|
||||
'userManage.roleAdmin': '管理員',
|
||||
'userManage.roleManager': '經理',
|
||||
'userManage.roleUser': '普通用戶',
|
||||
'userManage.roleViewer': '訪客',
|
||||
'userManage.credits': '積分',
|
||||
'userManage.adjustCredits': '調整積分',
|
||||
'userManage.setVip': '設置VIP',
|
||||
'userManage.currentCredits': '當前積分',
|
||||
'userManage.newCredits': '新積分',
|
||||
'userManage.enterCredits': '輸入新的積分數量',
|
||||
'userManage.creditsNonNegative': '積分不能為負數',
|
||||
'userManage.currentVip': '當前VIP狀態',
|
||||
'userManage.vipActive': '有效',
|
||||
'userManage.vipExpired': '已過期',
|
||||
'userManage.vipDays': 'VIP天數',
|
||||
'userManage.vipExpiresAt': 'VIP過期時間',
|
||||
'userManage.cancelVip': '取消VIP',
|
||||
'userManage.days': '天',
|
||||
'userManage.customDate': '自定義日期',
|
||||
'userManage.selectDate': '請選擇日期',
|
||||
'userManage.remark': '備注',
|
||||
'userManage.remarkPlaceholder': '可選備注',
|
||||
|
||||
// Profile
|
||||
'profile.title': '個人中心',
|
||||
'profile.description': '管理您的賬戶設置和偏好',
|
||||
'profile.basicInfo': '基本信息',
|
||||
'profile.changePassword': '修改密碼',
|
||||
'profile.username': '用戶名',
|
||||
'profile.nickname': '暱稱',
|
||||
'profile.email': '郵箱',
|
||||
'profile.lastLogin': '最後登錄',
|
||||
'profile.nicknamePlaceholder': '輸入您的暱稱',
|
||||
'profile.emailPlaceholder': '輸入您的郵箱',
|
||||
'profile.emailInvalid': '郵箱格式不正確',
|
||||
'profile.emailCannotChange': '註冊後郵箱不可修改',
|
||||
'profile.passwordHint': '密碼至少需要6個字符',
|
||||
'profile.oldPassword': '當前密碼',
|
||||
'profile.newPassword': '新密碼',
|
||||
'profile.confirmPassword': '確認密碼',
|
||||
'profile.oldPasswordRequired': '請輸入當前密碼',
|
||||
'profile.oldPasswordPlaceholder': '輸入當前密碼',
|
||||
'profile.newPasswordRequired': '請輸入新密碼',
|
||||
'profile.newPasswordPlaceholder': '輸入新密碼',
|
||||
'profile.confirmPasswordRequired': '請確認新密碼',
|
||||
'profile.confirmPasswordPlaceholder': '再次輸入新密碼',
|
||||
'profile.passwordMin': '密碼至少6個字符',
|
||||
'profile.passwordMismatch': '兩次輸入的密碼不一致',
|
||||
'profile.credits.title': '我的積分',
|
||||
'profile.credits.unit': '積分',
|
||||
'profile.credits.recharge': '開通/充值',
|
||||
'profile.credits.vipExpires': 'VIP有效期至',
|
||||
'profile.credits.vipExpired': 'VIP已過期',
|
||||
'profile.credits.noVip': '非VIP用戶',
|
||||
'profile.credits.hint': '使用AI分析等功能會消耗積分,VIP用戶免費',
|
||||
'profile.creditsLog': '消費記錄',
|
||||
'profile.creditsLog.time': '時間',
|
||||
'profile.creditsLog.action': '類型',
|
||||
'profile.creditsLog.amount': '變動',
|
||||
'profile.creditsLog.balance': '餘額',
|
||||
'profile.creditsLog.remark': '備注',
|
||||
'profile.creditsLog.actionConsume': '消費',
|
||||
'profile.creditsLog.actionRecharge': '充值',
|
||||
'profile.creditsLog.actionAdjust': '調整',
|
||||
'profile.creditsLog.actionRefund': '退款',
|
||||
'profile.creditsLog.actionVipGrant': 'VIP授予',
|
||||
'profile.creditsLog.actionVipRevoke': 'VIP取消',
|
||||
'profile.creditsLog.actionRegisterBonus': '註冊獎勵',
|
||||
'profile.creditsLog.actionReferralBonus': '邀請獎勵',
|
||||
'profile.referral.title': '邀請好友',
|
||||
'profile.referral.listTab': '邀請列表',
|
||||
'profile.referral.totalInvited': '已邀請',
|
||||
'profile.referral.bonusPerInvite': '每邀請獲得',
|
||||
'profile.referral.yourLink': '您的邀請鏈接',
|
||||
'profile.referral.copyLink': '複製鏈接',
|
||||
'profile.referral.linkCopied': '邀請鏈接已複製',
|
||||
'profile.referral.newUserBonus': '新用戶註冊獲得',
|
||||
'profile.referral.user': '用戶',
|
||||
'profile.referral.registerTime': '註冊時間',
|
||||
'profile.referral.noReferrals': '暫無邀請記錄',
|
||||
'profile.referral.shareNow': '立即分享邀請',
|
||||
|
||||
// Settings - Billing
|
||||
'settings.group.billing': '計費配置',
|
||||
'settings.field.BILLING_ENABLED': '啟用計費',
|
||||
'settings.field.BILLING_VIP_BYPASS': 'VIP免費',
|
||||
'settings.field.BILLING_COST_AI_ANALYSIS': 'AI分析消耗',
|
||||
'settings.field.BILLING_COST_STRATEGY_RUN': '策略運行消耗',
|
||||
'settings.field.BILLING_COST_BACKTEST': '回測消耗',
|
||||
'settings.field.BILLING_COST_PORTFOLIO_MONITOR': 'Portfolio監控消耗',
|
||||
'settings.field.CREDITS_REGISTER_BONUS': '註冊獎勵',
|
||||
'settings.field.CREDITS_REFERRAL_BONUS': '邀請獎勵',
|
||||
'settings.field.RECHARGE_TELEGRAM_URL': '充值Telegram鏈接',
|
||||
'settings.desc.BILLING_ENABLED': '啟用計費系統。啟用後,用戶使用某些功能需要消耗積分',
|
||||
'settings.desc.BILLING_VIP_BYPASS': 'VIP用戶在有效期內可免費使用所有付費功能',
|
||||
'settings.desc.BILLING_COST_AI_ANALYSIS': '每次AI分析消耗的積分數',
|
||||
'settings.desc.BILLING_COST_STRATEGY_RUN': '啟動策略時消耗的積分數',
|
||||
'settings.desc.BILLING_COST_BACKTEST': '每次回測消耗的積分數',
|
||||
'settings.desc.BILLING_COST_PORTFOLIO_MONITOR': '每次Portfolio AI監控消耗的積分數',
|
||||
'settings.desc.CREDITS_REGISTER_BONUS': '新用戶註冊時獲得的積分獎勵',
|
||||
'settings.desc.CREDITS_REFERRAL_BONUS': '用戶通過邀請鏈接成功邀請新用戶時,邀請人獲得的積分獎勵',
|
||||
'settings.desc.VERIFICATION_CODE_MAX_ATTEMPTS': '驗證碼驗證失敗的最大嘗試次數,超過後將鎖定',
|
||||
'settings.desc.VERIFICATION_CODE_LOCK_MINUTES': '驗證碼驗證失敗次數超過限制後的鎖定時長(分鐘)',
|
||||
'settings.desc.RECHARGE_TELEGRAM_URL': '用戶點擊充值時跳轉的Telegram客服鏈接'
|
||||
}
|
||||
|
||||
export default {
|
||||
|
||||
Reference in New Issue
Block a user