diff --git a/apps/src/adapter/form.ts b/apps/src/adapter/form.ts index 983a7f5..52cfe8f 100644 --- a/apps/src/adapter/form.ts +++ b/apps/src/adapter/form.ts @@ -23,14 +23,14 @@ async function initSetupVbenForm() { }, }, defineRules: { - // 输入项目必填国际化适配 + // 输入项目必填提示 required: (value, _params, ctx) => { if (value === undefined || value === null || value.length === 0) { return $t('ui.formRules.required', [ctx.label]); } return true; }, - // 选择项目必填国际化适配 + // 选择项目必填提示 selectRequired: (value, _params, ctx) => { if (value === undefined || value === null) { return $t('ui.formRules.selectRequired', [ctx.label]); diff --git a/apps/src/api/legacy/approval.ts b/apps/src/api/legacy/approval.ts index ffffbd7..d123d21 100644 --- a/apps/src/api/legacy/approval.ts +++ b/apps/src/api/legacy/approval.ts @@ -145,12 +145,6 @@ export async function approveReportedNotPass(data: Record[]) { return requestClient.post('/approval/reported/not/pass', data); } -export async function getDynamicReportPage(params: Record) { - return requestClient.get('/dynamic/report/page', { - params, - }); -} - export async function pageUserIntegralOriginStream( params: Record, ) { @@ -162,26 +156,6 @@ export async function pageUserIntegralOriginStream( ); } -export async function processDynamicReport(data: Record) { - return requestClient.post('/dynamic/report', data); -} - -export async function getDynamicContentPage(params: Record) { - return requestClient.get('/approval/dynamic/content/page', { - params, - }); -} - -export async function approveDynamicContentPass(data: Array) { - return requestClient.post('/approval/dynamic/content/pass', data); -} - -export async function approveDynamicContentNotPass( - data: Array, -) { - return requestClient.post('/approval/dynamic/content/not/pass', data); -} - export async function getViolationHistoryPage(params: Record) { return requestClient.get('/approval/history/page', { params, diff --git a/apps/src/api/legacy/dynamic.ts b/apps/src/api/legacy/dynamic.ts deleted file mode 100644 index c92b7de..0000000 --- a/apps/src/api/legacy/dynamic.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { requestClient } from '#/api/request'; - -export interface LegacyPageResult> { - records: T[]; - total: number; -} - -export async function dynamicBlacklistPage(params: Record) { - return requestClient.get>>( - '/dynamic/blacklist/page', - { - params, - }, - ); -} - -export async function addDynamicBlacklist(data: Record) { - return requestClient.post('/dynamic/blacklist/add', data); -} - -export async function deleteDynamicBlacklist(userId: number | string) { - return requestClient.get(`/dynamic/blacklist/delete/${userId}`); -} - -export async function dynamicTagTable(params: Record) { - return requestClient.get>>( - '/dynamic/tag/page', - { - params, - }, - ); -} - -export async function saveDynamicTag(data: Record) { - return requestClient.post('/dynamic/tag/add-or-update', data); -} - -export async function getDynamicPopularConfig() { - return requestClient.get>('/dynamic/popular/config'); -} - -export async function saveDynamicPopularConfig(data: Record) { - return requestClient.post('/dynamic/popular/config', data); -} - -export async function userDynamicTable(params: Record) { - return requestClient.get>>( - '/user/dynamic/page', - { - params, - }, - ); -} - -export async function deleteUserDynamic(data: Array) { - return requestClient.post('/user/dynamic/delete', data); -} - -export async function setUserDynamicTop(data: Record) { - return requestClient.post('/user/dynamic/setUpTop', data); -} - -export async function closeUserDynamicTop(dynamicId: number | string) { - return requestClient.get(`/user/dynamic/closeTop/${dynamicId}`); -} diff --git a/apps/src/api/request.ts b/apps/src/api/request.ts index 5b1b17e..cdcde2c 100644 --- a/apps/src/api/request.ts +++ b/apps/src/api/request.ts @@ -60,7 +60,7 @@ function createRequestClient(baseURL: string, options?: RequestClientOptions) { } else { delete config.headers.Authorization; } - config.headers['Accept-Language'] = preferences.app.locale; + config.headers['Accept-Language'] = 'zh-CN'; config.headers['Req-Client'] = 'Ops'; config.headers['Req-Version'] = 'v2'; return config; diff --git a/apps/src/bootstrap.ts b/apps/src/bootstrap.ts index 8704b55..6cd145b 100644 --- a/apps/src/bootstrap.ts +++ b/apps/src/bootstrap.ts @@ -9,14 +9,14 @@ import '@vben/styles/antdv-next'; import { useTitle } from '@vueuse/core'; -import { $t, setupI18n } from '#/locales'; import SysOriginSelect from '#/components/sys-origin-select.vue'; +import { $t, setupLocale } from '#/locales'; import { initComponentAdapter } from './adapter/component'; import { initSetupVbenForm } from './adapter/form'; import App from './app.vue'; -import { setupRuntimeLocaleSync } from './locales/runtime'; import { router } from './router'; + import './styles/table-filters.css'; async function bootstrap(namespace: string) { @@ -44,8 +44,8 @@ async function bootstrap(namespace: string) { spinning: 'spinning', }); - // 国际化 i18n 配置 - await setupI18n(app); + // 固定中文基础文案 + await setupLocale(app); // 配置 pinia-tore await initStores(app, { namespace }); @@ -75,7 +75,6 @@ async function bootstrap(namespace: string) { }); app.mount('#app'); - setupRuntimeLocaleSync(); } export { bootstrap }; diff --git a/apps/src/locales/README.md b/apps/src/locales/README.md index 7b45103..d06ebd9 100644 --- a/apps/src/locales/README.md +++ b/apps/src/locales/README.md @@ -1,3 +1,3 @@ # locale -每个app使用的国际化可能不同,这里用于扩展国际化的功能,例如扩展 dayjs、antd组件库的多语言切换,以及app本身的国际化文件。 +后台固定使用中文,这里只保留 dayjs、antd 组件库和应用基础文案的中文配置。 diff --git a/apps/src/locales/index.ts b/apps/src/locales/index.ts index 209545d..d967c00 100644 --- a/apps/src/locales/index.ts +++ b/apps/src/locales/index.ts @@ -2,117 +2,71 @@ import type { Locale } from 'antdv-next/dist/locale/index'; import type { App } from 'vue'; -import type { LocaleSetupOptions, SupportedLanguagesType } from '@vben/locales'; - import { ref } from 'vue'; import { $t, - setupI18n as coreSetup, - loadLocalesMapFromDir, + setupLocale as coreSetup, + mergeLocaleMessages, } from '@vben/locales'; -import { preferences } from '@vben/preferences'; -import antdEnLocale from 'antdv-next/dist/locale/en_US'; import antdDefaultLocale from 'antdv-next/dist/locale/zh_CN'; import dayjs from 'dayjs'; const antdLocale = ref(antdDefaultLocale); -const modules = import.meta.glob('./langs/**/*.json'); -const runtimeModules = import.meta.glob('./langs/*/runtime.json'); +const modules = import.meta.glob('./langs/zh-CN/*.json', { eager: true }); -const localesMap = loadLocalesMapFromDir( - /\.\/langs\/([^/]+)\/(.*)\.json$/, - modules, -); -/** - * 加载应用特有的语言包 - * 这里也可以改造为从服务端获取翻译数据 - * @param lang - */ -async function loadMessages(lang: SupportedLanguagesType) { - const [appLocaleMessages, runtimeMessages] = await Promise.all([ - localesMap[lang]?.(), - loadRuntimeMessages(lang), - loadThirdPartyMessage(lang), - ]); - const appMessages = appLocaleMessages?.default ?? {}; - const { runtime: _runtime, ...rest } = appMessages; - - return { - ...(runtimeMessages ?? {}), - ...rest, - }; +function normalizeModule(module: unknown) { + return module && typeof module === 'object' && 'default' in module + ? (module as { default: Record }).default + : module; } -async function loadRuntimeMessages(lang: SupportedLanguagesType) { - const runtimeLoader = runtimeModules[`./langs/${lang}/runtime.json`]; - const runtimeMessages = runtimeLoader - ? ((await runtimeLoader()) as { default?: Record }) - : undefined; - return runtimeMessages?.default; +function loadAppMessages() { + const messages: Record = {}; + for (const [path, module] of Object.entries(modules)) { + const fileName = path.match(/\.\/langs\/zh-CN\/(.*)\.json$/)?.[1]; + if (!fileName) { + continue; + } + const value = normalizeModule(module); + if (fileName === 'runtime') { + Object.assign(messages, value); + } else { + messages[fileName] = value; + } + } + return messages; } +mergeLocaleMessages(loadAppMessages()); + /** * 加载第三方组件库的语言包 - * @param lang */ -async function loadThirdPartyMessage(lang: SupportedLanguagesType) { - await Promise.all([loadAntdLocale(lang), loadDayjsLocale(lang)]); +async function loadThirdPartyMessage() { + await Promise.all([loadAntdLocale(), loadDayjsLocale()]); } /** * 加载dayjs的语言包 - * @param lang */ -async function loadDayjsLocale(lang: SupportedLanguagesType) { - let locale; - switch (lang) { - case 'en-US': { - locale = await import('dayjs/locale/en'); - break; - } - case 'zh-CN': { - locale = await import('dayjs/locale/zh-cn'); - break; - } - // 默认使用英语 - default: { - locale = await import('dayjs/locale/en'); - } - } - if (locale) { - dayjs.locale(locale); - } else { - console.error(`Failed to load dayjs locale for ${lang}`); - } +async function loadDayjsLocale() { + await import('dayjs/locale/zh-cn'); + dayjs.locale('zh-cn'); } /** * 加载antd的语言包 - * @param lang */ -async function loadAntdLocale(lang: SupportedLanguagesType) { - switch (lang) { - case 'en-US': { - antdLocale.value = antdEnLocale; - break; - } - case 'zh-CN': { - antdLocale.value = antdDefaultLocale; - break; - } - } +async function loadAntdLocale() { + antdLocale.value = antdDefaultLocale; } -async function setupI18n(app: App, options: LocaleSetupOptions = {}) { - await coreSetup(app, { - defaultLocale: preferences.app.locale, - loadMessages, - missingWarn: !import.meta.env.PROD, - ...options, - }); +async function setupLocale(app: App) { + await coreSetup(app); + await loadThirdPartyMessage(); } -export { $t, antdLocale, setupI18n }; +export { $t, antdLocale, setupLocale }; diff --git a/apps/src/locales/langs/en-US/page.json b/apps/src/locales/langs/en-US/page.json deleted file mode 100644 index f5e3ccd..0000000 --- a/apps/src/locales/langs/en-US/page.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "auth": { - "login": "Login", - "register": "Register", - "codeLogin": "Code Login", - "qrcodeLogin": "Qr Code Login", - "forgetPassword": "Forget Password", - "profile": "Profile" - }, - "dashboard": { - "title": "Data Platform", - "workspace": "Data Platform" - } -} diff --git a/apps/src/locales/langs/en-US/runtime.json b/apps/src/locales/langs/en-US/runtime.json deleted file mode 100644 index fe58337..0000000 --- a/apps/src/locales/langs/en-US/runtime.json +++ /dev/null @@ -1,2917 +0,0 @@ -{ - "0表示永久": "0 means permanent", - "0 表示永久": "0 means permanent", - "10分钟以上": "more than 10 minutes", - "127.0.0.1 或 127.0.0": "127.0.0.1 or 127.0.0", - "15天": "15 days", - "0代表永久": "0 represents permanent", - "100 定投会忽略语言过滤条件": "100 fixed bets will ignore the language filter", - "10分钟内生效是否继续": "Will it continue if it takes effect within 10 minutes?", - "0代表永久,其他范围1~3650": "0 represents permanent, other ranges are 1~3650", - "15天麦位价格": "Wheat price for 15 days", - "1天前": "1 day ago", - "30天": "30 days", - "1天": "1 day", - "3小时前": "3 hours ago", - "7天": "7 days", - "阿拉伯语": "Arabic", - "30天后记录将会清理": "Records will be cleared after 30 days", - "30天后记录将会永久清理": "Records will be permanently cleared after 30 days", - "99999999 的整数": "Integer of 99999999", - "99999999最多2位小数": "99999999 up to 2 decimal places", - "1钻石": "1 diamond", - "99999小数最多八位": "99999 up to eight decimal places", - "99999小数最多两位": "99999 up to two decimal places", - "按钮": "button", - "安卓": "Android", - "安装包大小": "Installation package size", - "白银": "silver", - "白银1": "Silver 1", - "按钮1": "Button 1", - "按钮1 TOP20": "Button 1 TOP20", - "按钮数": "Number of buttons", - "按钮2": "Button 2", - "按钮2 TOP20": "Button 2 TOP20", - "白银2": "Silver 2", - "白银3": "Silver 3", - "白银4": "Silver 4", - "版本号": "version number", - "版本": "Version", - "版本管理": "Version management", - "包名": "package name", - "保存成功": "Saved successfully", - "保存": "save", - "保存并发布": "Save and publish", - "白银5": "Silver 5", - "版本描述": "Version description", - "保存配置": "Save configuration", - "帮助他人喂养": "Help others feed", - "保存排序": "Save sort", - "保存抽取率": "save decimation rate", - "绑定BD": "Bind BD", - "绑定子级BD": "Bind child BD", - "备注": "Remark", - "抱歉您无权查看": "Sorry you don't have permission to view", - "爆水晶奖励": "Explosive crystal reward", - "爆水晶宝箱奖励": "Explosive crystal treasure chest reward", - "爆水晶游戏": "Crystal blast game", - "爆水晶": "Explosive crystal", - "爆水晶突破奖励": "Explosive crystal breakthrough reward", - "背景": "background", - "背包": "Backpack", - "备注信息": "Remarks", - "背景图": "Background image", - "备注: 本次账单备注, 对外显示": "Remarks: Remarks for this bill will be displayed externally.", - "倍数": "multiple", - "抱歉您无权查看,请联系管理员开通查看权限": "Sorry, you don't have permission to view it. Please contact the administrator to enable viewing permission.", - "备注必须在100字符以内": "Comments must be within 100 characters", - "备注信息,最多200个字": "Remarks, up to 200 words", - "背景数": "Background number", - "被拉黑用户": "Blacklisted users", - "被举报人ID": "Reported person ID", - "被举报账号处理": "Handling of reported accounts", - "被举报人": "Reported person", - "倍数和概率不能为空": "Multiples and probabilities cannot be empty", - "被拉黑用户ID": "Blacklisted user ID", - "被邀请用户": "Invited users", - "本次账单备注": "Notes on this bill", - "本月充值明细": "Recharge details this month", - "本月明细": "Details of this month", - "本期账单已结束": "This bill has ended", - "比例": "Proportion", - "编辑": "Edit", - "本期账单工作数据将会同步移除": "The current billing work data will be removed simultaneously.", - "本期账单已结束, 等待结算": "The bill for this period has ended and is waiting for settlement", - "编号": "serial number", - "编辑参数": "Edit parameters", - "比例值": "Proportional value", - "币商兑换金币比例": "Coin dealer exchange gold coin ratio", - "必须等于总签数": "Must be equal to the total number of signatures", - "编辑规则": "Edit rules", - "避免账号被冻结或者封禁": "Avoid account freezes or bans", - "编辑徽章规则": "Edit badge rules", - "编辑备注": "Editor's Notes", - "编辑房间资料": "Edit room information", - "编辑道具": "Edit props", - "编辑徽章资源": "Edit badge resources", - "编辑表情分组": "Edit emoticon grouping", - "编辑活动": "Editing activity", - "编辑货运代理": "Edit freight forwarder", - "编辑时间": "Edit time", - "编辑用户": "Edit user", - "编辑模版名称": "Edit template name", - "编辑应用": "Edit application", - "编辑任务": "Edit task", - "编辑任务配置": "Edit task configuration", - "编辑模版": "Edit template", - "编辑礼物": "edit gift", - "编辑名称": "Edit name", - "编辑资料": "Edit profile", - "编码": "coding", - "编辑置顶动态": "Edit pinned news", - "编辑资源": "Edit resources", - "编辑游戏": "Edit game", - "编码添加后不可修改": "The code cannot be modified after it is added.", - "标签": "Label", - "便利店": "convenience store", - "标题": "title", - "标识": "logo", - "编译版本": "compiled version", - "编译版本号": "Compile version number", - "表情包": "Emoticons", - "表情": "expression", - "表情管理": "Expression management", - "变更代理团队区域将清空该代理名下所有主播目标,请谨慎操作": "Changing the agent team area will clear all anchor targets under the agent's name, please operate with caution", - "变更代理团队区域将清空该代理名下所有主播目标,你确定继续吗": "Changing the agent team area will clear all anchor targets under the agent's name. Are you sure you want to continue?", - "变更代理团队区域将清空该代理名下所有主播目标": "Changing the agent team area will clear all anchor targets under the agent's name", - "标签列表": "tag list", - "伯爵": "count", - "铂金": "Platinum", - "驳回": "turn down", - "别名": "Alias", - "并支付成功的": "and pay successfully", - "播放音乐": "play music", - "铂金1": "Platinum 1", - "表情类型": "Expression type", - "补充信息": "Supplementary information", - "补丁": "patch", - "铂金3": "Platinum 3", - "铂金2": "Platinum 2", - "补给": "supply", - "铂金4": "Platinum 4", - "铂金5": "Platinum 5", - "补偿订单": "compensation order", - "补偿糖果": "Compensation candy", - "不可修改": "Cannot be modified", - "不可编辑": "Not editable", - "不可操作": "Inoperable", - "不可恢复": "Not recoverable", - "不通过": "Rejected", - "不活跃天数": "days of inactivity", - "不改动后台字段定义": "Do not change the background field definition", - "不可售卖": "Not for sale", - "不可以取消发布": "Cannot unpublish", - "不区分国家": "No distinction between countries", - "不要随意删除配置记录": "Do not delete configuration records at will", - "不填或填0都为免费": "If you leave it blank or fill in 0, it’s free.", - "财富": "wealth", - "不影响其他BD身份": "Does not affect other BD identities", - "不适当的内容": "inappropriate content", - "不同区域": "different areas", - "不在预计状态内": "Not within the expected state", - "不允许跨年查询": "Cross-year queries are not allowed", - "财富等级": "wealth level", - "菜单": "menu", - "菜单管理": "Menu management", - "菜单类型": "Menu type", - "菜单名称": "Menu name", - "不要随意删除配置记录;已有用户的碎片数据会同步受影响": "Do not delete configuration records at will; fragmented data of existing users will be synchronized and affected.", - "财富、魅力等级多少级才能发布动态": "What is the level of wealth and charm required to post updates?", - "菜单路径": "menu path", - "菜单编辑": "Menu editing", - "菜单路由": "menu routing", - "菜单图标": "menu icon", - "参数": "parameter", - "参数配置": "Parameter configuration", - "参与人数": "Number of participants", - "菜单授权": "Menu authorization", - "菜单状态": "Menu status", - "操作成功": "Operation successful", - "操作错误": "Operation failed", - "菜单树": "menu tree", - "操作": "operate", - "仓库数据": "warehouse data", - "操作人": "operator", - "参数配置管理": "Parameter configuration management", - "操作日志": "Operation log", - "参加人数": "Number of participants", - "操作时间": "Operating time", - "查看": "View", - "仓库端点": "Warehouse endpoint", - "操作不可逆": "Operation is irreversible", - "操作系统": "operating system", - "操作用户": "operating user", - "查看备注": "View notes", - "操作用户ID": "Operation user ID", - "插入仓库数据": "Insert warehouse data", - "操作状态": "operating status", - "查看活动": "View activity", - "查询": "Search", - "查看日志": "View log", - "查看明细": "View details", - "查看详情": "check the details", - "产品编号": "Product number", - "产品单价": "Product unit price", - "查看命令": "View command", - "查看文件": "View files", - "查询打卡信息": "Query check-in information", - "查看一次得到金币": "View once and get gold coins", - "查看用户详情": "View user details", - "产品CODE": "Product CODE", - "产生收益": "generate revenue", - "产品配置列表": "Product configuration list", - "厂商名称": "Manufacturer name", - "超出": "beyond", - "常规麦位": "Regular wheat position", - "常用入口": "Common entrance", - "厂商code": "Manufacturer code", - "常规参数": "General parameters", - "厂商渠道CODE": "Manufacturer channel CODE", - "超级管理员": "super administrator", - "超过邀请时间配置天数,则不发佣金": "If the invitation time exceeds the configured number of days, no commission will be issued.", - "超过邀请时间配置天数": "The configured number of days exceeds the invitation time", - "成功": "Success", - "朝拜": "worship", - "超商条码": "Supermarket barcode", - "车辆": "vehicle", - "成就": "Achievement", - "超限制发动态支付金币": "Dynamic payment of gold coins issued beyond the limit", - "成功删除": "successfully deleted", - "超级货运": "super freight", - "成功人数": "number of successful", - "朝拜描述": "Description of Qibla", - "成功移除": "successfully removed", - "超级经销商": "super dealer", - "成年": "adult", - "成员": "member", - "成员列表": "Member list", - "成员/代理": "Member/Agent", - "成员加入": "members join", - "成员工资钻石": "Member Salary Diamond", - "成员工作": "member work", - "成员人数": "Number of members", - "成员剩余": "remaining members", - "成员审核日志": "Member audit log", - "成员数量": "Number of members", - "成员工资": "member salary", - "成员信息": "Member information", - "成员ID": "Member ID", - "充值": "top up", - "充值明细": "Recharge details", - "充值-H5": "Recharge-H5", - "成员数": "Number of members", - "成员主动退出": "Members voluntarily quit", - "充值-站内": "Recharge-on site", - "充值-H5(站外": "Recharge-H5 (outside the site", - "宠物管理": "pet management", - "充值活动抽奖": "Recharge event lottery", - "宠物奖励": "pet rewards", - "宠物名称": "pet name", - "充值类型": "Recharge type", - "宠物池": "pet pool", - "宠物信息编辑": "Pet information editor", - "宠物喂养记录": "Pet feeding records", - "宠物转盘抽奖": "Pet carousel lottery", - "宠物信息": "pet information", - "宠物资料": "pet information", - "宠物Code": "Pet Code", - "抽成": "Take a commission", - "宠物ID": "Pet ID", - "抽次数": "Number of draws", - "抽奖人": "Lottery person", - "抽奖情况": "Lottery situation", - "抽奖概率配置": "Lottery probability configuration", - "抽奖次数": "Number of draws", - "抽奖类型": "Lottery type", - "抽成没有可退": "Commission is non-refundable", - "抽奖品配置": "Raffle prize configuration", - "出货": "Ship", - "抽奖数": "Number of draws", - "出生日期": "date of birth", - "抽奖要求充值金额": "Recharge amount required for lottery draw", - "出奖金币数": "Number of bonus coins given out", - "出奖倍数": "Prize multiplier", - "出货总": "Total shipments", - "抽取率": "Extraction rate", - "处理": "deal with", - "创建": "Create", - "处理状态": "Processing status", - "处理结果": "Processing results", - "处理记录": "processing records", - "出奖糖果数": "Number of candies awarded", - "处理成功": "Processed successfully", - "初始密码": "Initial password", - "抽奖要求充值金额(例如: 9.9": "The amount of recharge required for the lottery (for example: 9.9", - "创建代理": "Create proxy", - "创建角色": "Create a role", - "创建人": "Creator", - "创建日期": "Creation date", - "创建/修改人": "Created/modified by", - "创建连接": "Create connection", - "创建费用": "creation fee", - "创建付款": "Create payment", - "创建家族支付糖果": "Create a family to pay for candy", - "创建模版": "Create template", - "创建应用": "Create app", - "创建时间": "creation time", - "创建账户": "create Account", - "创建时间降序": "Creation time descending order", - "创建新的应用": "Create new application", - "创建商品": "Create product", - "创建银行账户": "Create bank account", - "创建用户": "Create user", - "创建源": "Create source", - "此操作将删除该卖家": "This action will delete the seller", - "存在错误记录": "There is an error record", - "此操作将永久删除": "This action will permanently delete", - "存在争议的": "controversial", - "凑满10000": "Make up 10,000", - "打卡签到": "Check in", - "代理": "acting", - "大转盘": "big turntable", - "存在争议的/银行卡信息不正确等待核实": "Disputed/incorrect bank card information awaiting verification", - "打卡信息": "Check-in information", - "此操作将删除该卖家, 是否继续": "This operation will delete the seller, do you want to continue?", - "此操作将永久删除,是否继续": "This operation will be permanently deleted. Do you want to continue?", - "代办提醒": "Agent reminder", - "代理活动奖励-周": "Agent activity reward-week", - "代理工资钻石": "Agency Salary Diamond", - "代理活动奖励-月": "Agency activity reward-month", - "代理工资": "agency salary", - "代理活动": "Agency activities", - "代理接收主播工资": "Agent receives anchor salary", - "代理钱包": "proxy wallet", - "代理团队名下": "Under the name of the agency team", - "代理主动删除成员": "Agent proactively deletes members", - "待审核": "Pending review", - "代理钻石工资": "Agent Diamond Salary", - "代理名下主播累计月积分奖励": "Accumulated monthly points rewards for anchors under the agency’s name", - "代理角色能使用钱包": "Agent roles can use wallets", - "代理的主播数量满足奖励": "The number of agent anchors meets the reward", - "待处理": "Pending", - "单价": "unit price", - "单位": "unit", - "单据已复制": "Document copied", - "代理ID": "Agent ID", - "当前保持同一份": "Keep the same copy currently", - "代收": "Collect on behalf of", - "单据": "Document", - "当前保持同一份 JSON 结构读写,不改动后台字段定义": "Currently, the same JSON structure is maintained for reading and writing, and the background field definitions are not changed.", - "当前进行中的": "Currently in progress", - "当前保持同一份 JSON 结构读写": "Currently maintaining the same JSON structure for reading and writing", - "当前保持同一份 `body` JSON 读写,不改动后台字段定义": "Currently, the same `body` JSON is maintained for reading and writing, and the background field definition is not changed.", - "当前配置": "Current configuration", - "当前查询到订单总数为: 、订单总金额为": "The total number of orders currently queried is: and the total order amount is", - "当前身份": "current status", - "当前查询到订单总数为": "The total number of orders currently queried is", - "档": "files", - "导出": "Export", - "当前账号": "Current account", - "当前事件": "current events", - "导入": "Import", - "导出成功": "Export successful", - "导入成功": "Import successful", - "当前账号暂无可展示的业务入口": "There is no business entrance to display for the current account.", - "当天满60分钟计有效": "Valid for 60 minutes on the same day", - "当前选中节点": "Currently selected node", - "导出条件": "Export conditions", - "当前状态": "Current status", - "导入数据": "Import data", - "到期时间": "Expiration time", - "道具": "Props", - "当前重置目标将计算到最新未结算账单": "The current reset target will be calculated to the latest unsettled bill", - "道具奖励": "Prop rewards", - "道具管理": "Prop management", - "道具商店": "Prop shop", - "道具名称 / ID": "Prop name/ID", - "道具名称": "Prop name", - "道具明细": "Props details", - "道具券": "prop coupon", - "道具类型": "Prop type", - "得分": "Score", - "德语": "German", - "地区": "area", - "道具资源组配置": "Prop resource group configuration", - "道具赠送": "Props given away", - "道具资源": "Prop resources", - "登录": "Log in", - "登录方式": "Login method", - "登录时间": "Login time", - "登录密码": "Login password", - "登录账号": "Login account", - "道具ID": "Prop ID", - "登陆日志": "Login log", - "等待": "wait", - "等待审核": "Pending review", - "登录奖励": "Login bonus", - "等级": "grade", - "等待开始": "Waiting to begin", - "等待确认": "Waiting for confirmation", - "等待确定": "Waiting for confirmation", - "等待领取": "Waiting to collect", - "等待人工复审的": "Awaiting manual review", - "等待结算": "Waiting for settlement", - "底价": "Reserve price", - "第": "No.", - "等字段": "etc fields", - "等级限制": "Level restrictions", - "等级经验值": "Level experience value", - "等级类型": "Level type", - "点对点": "peer to peer", - "等级Key": "Level Key", - "第 档": "file", - "点击查看": "Click to view", - "点击加载更多": "Click to load more", - "点击上传": "Click to upload", - "第三方订单ID": "Third-party order ID", - "点击翻译": "Click to translate", - "点击查看/设置": "Click to view/setup", - "点击复制": "Click to copy", - "第三方渠道CODE": "Third-party channel CODE", - "电话": "Telephone", - "电脑": "computer", - "订单编号": "order number", - "电子钱包": "electronic wallet", - "点赞增加分数": "Likes increase points", - "点卡支付": "Pay with card", - "订单类型": "Order type", - "订单详情": "Order details", - "订单信息": "Order information", - "订单状态": "Order status", - "订单ID": "Order ID", - "订单总金额为": "The total order amount is", - "电话小额付": "Small payment by phone", - "订单id": "order id", - "订单补偿": "Order compensation", - "动画": "animation", - "订阅地址": "Subscription address", - "订阅前缀": "Subscription prefix", - "订阅主题": "Subscribe to topic", - "订阅广播消息": "Subscribe to broadcast messages", - "订阅ID": "Subscription ID", - "动画资源图": "Animation resource map", - "定制礼物": "customized gifts", - "动画资源": "animation resources", - "定投UID": "Fixed investment UID", - "动态内容": "dynamic content", - "动态图片": "dynamic pictures", - "动态管理": "dynamic management", - "动态举报审批": "Dynamic report approval", - "动效": "animation", - "冻结": "freeze", - "动态-禁止用户发动态": "Updates-Prohibit users from posting updates", - "豆子": "beans", - "动态内容审批": "Dynamic content approval", - "动态数量": "Dynamic quantity", - "短视频": "short video", - "断开连接": "Disconnect", - "豆子流水": "Beans flowing", - "豆子账户": "bean account", - "短视频广告结算": "Short video advertising settlement", - "豆子余额操作": "Bean balance operation", - "短账号": "short account", - "短id": "short id", - "兑换": "exchange", - "兑换数量": "Exchange quantity", - "对应资源": "Corresponding resources", - "对外显示": "Display externally", - "对内备注": "Internal remarks", - "兑换比率": "exchange rate", - "对外备注": "External remarks", - "多发": "Frequent", - "短ID": "Short ID", - "俄语": "Russian", - "发布成功": "Posted successfully", - "多个短账号用英文逗号分隔": "Multiple short accounts separated by English commas", - "兑换金币": "Exchange gold coins", - "发-接": "send-receive", - "发布时间": "Release time", - "发布状态": "Release status", - "发布后不可以取消": "Cannot be canceled after publishing", - "二级类型": "Secondary type", - "发布过: Yes": "Posted by: Yes", - "发布过": "Published", - "发布政策": "Publishing policy", - "发货": "Shipping", - "发起方房间ID": "Initiator room ID", - "发起人": "sponsor", - "发送": "send", - "发送成功": "Sent successfully", - "发起方积分": "Sponsor Points", - "发送红包": "Send red envelope", - "发送房间": "send room", - "发起人ID": "Sponsor ID", - "发起房间": "Start a room", - "发送垃圾邮件": "Send spam", - "发送接口": "Send interface", - "发送家族群聊红包": "Send family group chat red envelopes", - "发送喇叭": "send speaker", - "发送人": "sender", - "发送时间": "Send time", - "发送消息": "Send message", - "发送通知": "Send notification", - "发送数量": "Send quantity", - "发送者": "sender", - "发送团队通知": "Send team notification", - "发送人账号": "Sender account", - "发现页": "discovery page", - "发送用户": "Send user", - "法语": "French", - "繁体": "Traditional Chinese", - "反馈内容": "Feedback content", - "发送用户ID": "Send user ID", - "发送用户个人红包": "Send user personal red envelope", - "返回": "return", - "范围": "scope", - "反馈处理": "Feedback processing", - "反馈用户": "Feedback users", - "范围0~99999": "Range 0~99999", - "反馈用户ID": "Feedback user ID", - "范围0": "Range 0", - "方便自己人看": "Convenient for others to see", - "返回APP": "Return to APP", - "返回数据平台": "Return to data platform", - "范围0~99999小数最多八位": "Range 0~99999 decimal place up to eight digits", - "范围0~99999, 最多5位小数": "Range 0~99999, up to 5 decimal places", - "房间": "Room", - "房间-徽章": "room-badge", - "房间成员数": "Number of room members", - "房间成员详情": "Room member details", - "房间背景主题": "room background theme", - "房间操作日志": "Room operation log", - "房间1 VS 1": "Room 1 VS 1", - "房间 PK": "Room PK", - "房间公告": "room announcement", - "房间访客记录": "Room visitor record", - "房间封面": "room cover", - "房间扶持奖励": "Room Support Bonus", - "房间封面审批": "Room cover approval", - "房间扶持奖励 - 房主奖励": "Room Support Bonus – Homeowner Bonus", - "房间粉丝人气票": "Room fan popularity ticket", - "房间贡献活动奖励": "Room contribution activity rewards", - "房间公告审批": "Room announcement approval", - "房间贡献余额": "Room contribution balance", - "房间黑名单": "Room blacklist", - "房间奖励": "room bonus", - "房间徽章": "room badge", - "房间奖励贡献里程碑": "Room Rewards Contribution Milestones", - "房间贡献活动奖励比例": "Room contribution activity reward ratio", - "房间名称": "Room name", - "房间角色": "room role", - "房间名称审批": "Room name approval", - "房间内": "In the room", - "房间奖励提取": "Room reward withdrawal", - "房间昵称审批": "Room nickname approval", - "房间内权限变更": "Change of permissions in the room", - "房间昵称": "room nickname", - "房间密码": "Room password", - "房间设置变更": "Room settings changes", - "房间搜索": "Room search", - "房间通知审批": "Room notification approval", - "房间头像审批": "Room avatar approval", - "房间头像": "Room avatar", - "房间信息": "room information", - "房间账号": "Room account", - "房间支持活动": "Room support activities", - "房间主题审批": "Room theme approval", - "房间通知公告": "Room notification announcement", - "房间ID": "Room ID", - "房间详情": "Room details", - "房间状态": "room status", - "房间资料变更": "Room information changes", - "房主": "Homeowner", - "房间资料信息": "Room profile information", - "房间资料详情": "Room information details", - "房间资料管理": "Room information management", - "房间ID/账号": "Room ID/Account", - "房间PK": "Room PK", - "分组名称": "Group name", - "分组": "Group", - "粉丝": "fan", - "封禁": "ban", - "非法信息": "Illegal information", - "房间PK奖励": "Room PK rewards", - "分组Code": "Group Code", - "访客记录": "Visitor records", - "否": "No", - "分割两侧数值范围0": "Split the numerical range 0 on both sides", - "封禁+设备": "ban+device", - "封禁设备": "Block device", - "封面图": "cover image", - "否则进入 small": "Otherwise enter small", - "封面 / 房间信息": "Cover/Room Information", - "封面": "cover", - "封禁1天": "Banned for 1 day", - "否则将结算到主播自己的钱包": "Otherwise, it will be settled to the anchor’s own wallet.", - "付款": "Payment", - "服务器将拦截小于当前buildVersion请求": "The server will intercept requests that are smaller than the current buildVersion", - "付费": "Pay", - "复制": "copy", - "付款人": "Payer", - "付费类型": "Payment type", - "付费 / 抽次数": "Payment/number of draws", - "服务强更": "Service enhancement", - "负数表示减去天数": "A negative number means subtracting the number of days", - "服务器将拦截小于当前buildVersion请求,10分钟内生效是否继续": "The server will intercept requests that are smaller than the current buildVersion and will take effect within 10 minutes. Do you want to continue?", - "复制单据ID": "Copy document ID", - "负数为回收": "Negative numbers are recycled", - "复制活动": "Copy activity", - "复制活动ID": "Copy event ID", - "复制活动链接": "Copy event link", - "复制活动内容": "Copy event content", - "复制成功": "Copied successfully", - "复制键": "copy key", - "复制失败": "Copy failed", - "复制链接": "Copy link", - "复制支付链接": "Copy payment link", - "复制ID": "Copy ID", - "复制模版": "Copy template", - "复制模版ID": "Copy template ID", - "该银行卡可能已被用户删除或没有通审核": "The bank card may have been deleted by the user or has not been approved.", - "该银行卡可能已被用户删除或没有通审核,请核实": "The bank card may have been deleted by the user or has not been approved, please verify", - "概率": "Probability", - "该区域的团队用户将可重新发起": "Team users in this area will be able to re-launch", - "该银行卡已被用户删除": "The bank card has been deleted by the user", - "盖房子消费": "Building a house consumption", - "概率还差": "The probability is still poor", - "概率还差 凑满10000": "The probability is still low. Collect 10,000", - "概率填充": "probability filling", - "概率明细": "Probability details", - "概率配置": "Probabilistic allocation", - "该主播没有结算前更换代理团队": "The anchor did not change the agency team before settlement", - "该主播相关目标工作都将删除": "All target jobs related to the anchor will be deleted", - "概率大于等于平均概率进入 large": "The probability is greater than or equal to the average probability of entering large", - "高": "high", - "刚刚": "just", - "概率已拼凑完整": "The probability has been pieced together completely", - "概率已超过": "The probability has exceeded", - "高度": "high", - "个": "indivual", - "概率总和必须等于10000": "The sum of probabilities must equal 10000", - "概率已超过 ,请调整": "The probability has exceeded , please adjust", - "高产用户列表": "Highly productive user list", - "感谢您的反馈意见": "Thank you for your feedback", - "概率填充: 概率大于等于平均概率进入 large,否则进入 small": "Probability filling: If the probability is greater than or equal to the average probability, enter large, otherwise enter small", - "个人中心": "Personal center", - "根节点": "root node", - "个人资料签名": "profile signature", - "更新成功": "Update successful", - "个业务模块": "business modules", - "更换团长": "Change group leader", - "更新朝拜描述": "Update Qibla description", - "更换团队": "Change team", - "跟踪ID": "Tracking ID", - "更新时间": "Update time", - "更细的操作将在后期完善": "More detailed operations will be completed later", - "工资": "salary", - "更新描述": "Update description", - "工资兑换金币": "Salary exchange for gold coins", - "工资-进货": "Salary-Purchase", - "工具管理": "Tool management", - "工资兑换": "salary exchange", - "工资接收方": "Payroll recipient", - "更新描述最大 500 字符": "Update description maximum 500 characters", - "工资模式": "Salary model", - "工资钻石余额": "Salary Diamond Balance", - "工资凭据ID": "Salary Credential ID", - "公告": "announcement", - "功能": "Function", - "公爵": "Duke", - "贡献值": "Contribution value", - "工作人数": "Number of workers", - "工作数据": "working data", - "工资钻石": "salary diamond", - "工资钻石政策": "Salary Diamond Policy", - "勾选后用户可以发起钱包提现": "After checking, users can initiate wallet withdrawals", - "购买车辆-金币": "Purchase vehicle - gold coins", - "购买表情包": "Buy emoticons", - "购买车辆-钻石": "Purchase a Vehicle - Diamond", - "购买贵族vip": "buy noble vip", - "购买房间锁": "buy room lock", - "购买贵族vip-金币": "Buy noble vip-gold coins", - "购买红包封面": "Buy red envelope cover", - "勾选后用户可以看到银行卡菜单": "After checking, the user can see the bank card menu", - "勾选后用户可以看到 KYC 菜单": "After checking, users can see the KYC menu", - "购买或朋友赠送": "Purchase or give as a gift to a friend", - "购买金币": "buy gold coins", - "购买靓号-金币": "Buy a good account-gold coins", - "购买礼包": "Buy gift pack", - "购买时间": "Purchase time", - "购买麦位类型流水": "Purchase wheat position type flow", - "购买人": "buyer", - "购买人ID": "Purchaser ID", - "购买聊天气泡-钻石": "Buy Chat Bubble - Diamond", - "购买聊天气泡-金币": "Buy Chat Bubble-Coins", - "购买头像框-金币": "Buy avatar frame-gold coins", - "购买头像框-钻石": "Buy Avatar Frame-Diamond", - "购买隐身浏览道具": "Purchase incognito browsing tools", - "购买主题-赠送": "Purchase theme-gift", - "购买主题-金币": "Purchase Topic-Gold Coins", - "购买主题-免费": "Buy Theme - Free", - "购买用户": "Buy users", - "挂起": "hang", - "关闭": "Closed", - "谷歌": "Google", - "关": "close", - "购买主题-钻石": "Purchase Topic-Diamond", - "关联数据": "Linked data", - "购买赠送贵族vip-钻石": "Purchase and receive free VIP-Diamonds", - "购买装扮-金币": "Purchase Outfits - Gold Coins", - "购买装扮-钻石": "Buy Outfit-Diamonds", - "关联类型": "Association type", - "关联模版": "associated template", - "购买资料卡-钻石": "Purchase Information Card-Diamond", - "管理员": "administrator", - "关联渠道": "Related channels", - "官方-赠送": "Official-gift", - "官方赠送": "Official gift", - "关联资源组": "Associated resource groups", - "关联资源": "Related resources", - "管理员人数": "Number of administrators", - "官方通知": "Official notification", - "归属": "Belong", - "管理员数量": "Number of administrators", - "广告控制": "Advertising controls", - "管理员上限": "Administrator limit", - "管理员数": "Number of administrators", - "广告开关": "advertising switch", - "规则": "rule", - "管理员锁麦克风": "Administrator locks microphone", - "贵族": "noble", - "归属人账号": "Owner account", - "归属系统": "belonging system", - "归属人": "Belonger", - "归属人ID": "Owner ID", - "国家/地区": "Country/Region", - "国家": "nation", - "规则描述": "Rule description", - "管理员主动删除成员": "Administrator proactively deletes members", - "贵族礼物": "noble gift", - "贵族来源": "Noble origin", - "国家货币": "national currency", - "贵族能力": "Noble ability", - "国家编号": "Country code", - "国旗": "flag", - "国家管理": "state management", - "国家名称": "country name", - "国家选择": "Country selection", - "国家信息": "Country information", - "国王": "king", - "果汁": "juice", - "过期": "Expired", - "过期时间": "Expiration time", - "国家货币: / 美元汇率": "National currency: /USD exchange rate", - "国家与语言 Code 文档": "Country and Language Code Documentation", - "含": "Contains", - "韩语": "Korean", - "合计": "total", - "国旗礼物": "flag gift", - "黑名单": "blacklist", - "过期时间间隔必须": "The expiration interval must be", - "国王王后king": "king queen king", - "过期类型": "Expiration type", - "黑铁": "black iron", - "侯爵": "marquis", - "红包退款": "Red envelope refund", - "合计工资钻石": "Total salary diamond", - "红包发送列表": "Red envelope sending list", - "合计工资": "total salary", - "后台": "Backstage", - "红队积分": "Red team points", - "红包用户个人退款": "Personal refund for red envelope users", - "好友关系卡榜单活动": "Friend relationship card list activity", - "后台成员": "Backstage members", - "后台管理发送-APP": "Backend management sending-APP", - "后台解散": "Backstage disbanded", - "后台导入": "Background import", - "后台发送金币": "Send gold coins in the background", - "后台奖励钻石": "Backstage reward diamonds", - "忽略": "neglect", - "环境": "environment", - "后台扣除金币": "Deduct gold coins in the background", - "欢迎进入数据平台": "Welcome to the data platform", - "后台扣除钻石": "Diamond deduction in the background", - "黄金": "gold", - "皇帝": "emperor", - "后台解散游戏将没有胜利者": "There will be no winner if the game is dismissed in the background", - "黄金2": "Gold 2", - "徽章": "badge", - "后台解散游戏将没有胜利者, 是否确定解散": "If the game is disbanded in the background, there will be no winner. Are you sure to disband?", - "黄金1": "Gold 1", - "徽章规则ID": "Badge rule ID", - "黄金3": "gold 3", - "黄金4": "Gold 4", - "黄金5": "Gold 5", - "徽章类型": "Badge type", - "徽章名称": "Badge name", - "回合数": "Number of rounds", - "后台派奖也只处理 TOP20": "The backstage prize distribution will only handle the TOP20", - "会员": "member", - "徽章配置管理": "Badge configuration management", - "徽章资源": "Badge resources", - "徽章Key": "BadgeKey", - "徽章图标": "badge icon", - "徽章ID": "Badge ID", - "活动": "Activity", - "活动奖励": "Activity rewards", - "会员名": "Member name", - "回合数(只查下注局": "Number of rounds (only check betting rounds)", - "活动结束后不可再查看排行榜": "After the event, you can no longer view the rankings", - "活动结束后不可再次编辑": "It cannot be edited again after the event is over.", - "活动类型": "Activity type", - "活动名称": "Activity name", - "活动礼物": "event gifts", - "活动结束后不可重新编辑;如需复用,请使用“复制活动": "After the event is over, it cannot be re-edited; if you need to reuse it, please use \"Copy Event\"", - "活动描述": "Activity description", - "活动结束后不可再查看排行榜,请通过奖品记录查看获奖快照": "After the event, you can no longer view the ranking list. Please view the winning snapshot through the prize record.", - "活动模版": "activity template", - "活动排名": "Activity ranking", - "活动排名奖品": "Event ranking prizes", - "活动时间": "Activity time", - "活动图片": "Event pictures", - "活动已结束": "Event has ended", - "活动结束后不可重新编辑": "It cannot be re-edited after the event is over.", - "活动排行榜数据只保留 30 天": "Activity ranking data is only retained for 30 days", - "活动图": "activity diagram", - "活动配置": "Activity configuration", - "活跃": "active", - "货币": "currency", - "货运代理": "freight forwarder", - "货运代理流水": "Freight forwarding flow", - "或点击上传": "Or click to upload", - "活动ID": "Activity ID", - "货币小数点": "Currency decimal point", - "货币小数点范围0": "Currency decimal point range 0", - "获得奖励": "Get rewarded", - "货币小数点范围0 ~ 6": "Currency decimal point range 0 ~ 6", - "获得积分": "get points", - "货运代理账户": "freight forwarding account", - "活动已结束,不可编辑": "The event has ended and cannot be edited", - "机器标签": "Machine label", - "获得总额": "Total amount obtained", - "获取令牌": "Get token", - "货运流水": "Freight flow", - "获得金币": "Get gold coins", - "获得糖果数量": "Get the number of candies", - "货运金币": "Freight gold coins", - "积分": "integral", - "积分来源": "Points source", - "几号": "What date", - "几分": "a bit", - "基本资料": "Basic information", - "几时": "when", - "记录数": "Number of records", - "基础信息": "Basic information", - "加入": "join in", - "几号(可空": "What number (can be left empty)", - "积分收支记录": "Points income and expenditure record", - "记录ID": "Record ID", - "激活宠物": "Activate pet", - "加入黑名单": "Add to blacklist", - "加入成员金币": "Join member gold coins", - "加入房间": "join room", - "加入列表": "Add to list", - "加入时间": "Join time", - "加速": "accelerate", - "加载更多": "load more", - "继续发送每条动态支付多少金币": "How many gold coins will be paid for each dynamic message that continues to be sent?", - "加载中": "loading", - "家族": "family", - "加入家族时间": "Join family time", - "加速粮食数": "Accelerate food quantity", - "家族公告": "family announcement", - "家族成员": "family members", - "加入配置": "Add configuration", - "家族等级": "family level", - "家族公告审批": "Family announcement approval", - "家族配置": "Family configuration", - "家族礼物": "family gift", - "家族昵称": "family nickname", - "家族列表": "family list", - "家族管理": "family management", - "家族名称审批": "Family name approval", - "家族名称": "family name", - "家族群聊": "Family group chat", - "家族头像审批": "Family portrait approval", - "家族ID": "Family ID", - "家族头像": "Family portrait", - "价值": "value", - "价格": "price", - "检测": "Detection", - "间隔多少s(秒)可以查看下一个": "How many s (seconds) is the interval between which you can view the next one?", - "家族每周宝箱奖励领取": "Receive family weekly treasure chest rewards", - "键": "key", - "家族群聊红包退款": "Family group chat red envelope refund", - "鉴定违规": "Identification violation", - "鉴定通过": "Appraisal passed", - "价值(美元": "Value (USD", - "家族审批": "family approval", - "检测T麦克风": "Detect T microphone", - "奖金": "bonus", - "家族账号": "family account", - "将文件拖到此处,或点击上传": "Drag your files here, or click Upload", - "将与名下BD解除绑定": "Will be unbound from the BD under my name", - "将用户移出房间黑名单": "Remove user from room blacklist", - "将主播工资结算到代理钱包中": "Settlement of anchor salary to agent wallet", - "奖励": "award", - "将文件拖到此处": "Drag files here", - "奖金池余额": "Bonus pool balance", - "奖金池": "Prize pool", - "奖励数": "Number of rewards", - "将主播工资结算到代理钱包中, 否则将结算到主播自己的钱包": "The anchor's salary will be settled into the agent's wallet, otherwise it will be settled into the anchor's own wallet", - "奖品": "prize", - "奖励备注": "Reward remarks", - "奖励糖果": "Bonus Candy", - "奖励类型": "Reward type", - "奖励组": "reward group", - "奖励配置": "Reward configuration", - "奖品-按钮1": "Prize - Button 1", - "奖励糖果数": "Number of reward candies", - "奖品-按钮1] 存在错误记录,系统会自动排除": "Prize-Button 1] There is an error record and the system will automatically exclude it.", - "奖品-按钮1] 没有关联活动排名奖品": "Prizes - Button 1] No associated activity ranking prizes", - "奖品发送后会保留排行榜快照记录": "Ranking snapshot records will be retained after prizes are sent.", - "奖品-按钮2] 没有关联活动排名奖品": "Prizes - Button 2] No associated activity ranking prizes", - "奖项": "Awards", - "奖品量": "Prize amount", - "奖品数量必须是 1": "Prize quantity must be 1", - "奖品-按钮2": "Prize - Button 2", - "奖品数量": "Number of prizes", - "奖品数": "Number of prizes", - "奖品不能为空": "Prize cannot be empty", - "降序排列": "Descending order", - "角色": "Role", - "角色名称": "Character name", - "角色名": "Character name", - "奖品-按钮2] 存在错误记录,系统会自动排除": "Prize-Button 2] There is an error record and the system will automatically exclude it.", - "阶段信息": "stage information", - "接收方式": "Receive method", - "降序排列(数字越大越靠前": "Sort in descending order (the larger the number, the higher it is)", - "接收金额": "Receive amount", - "交易被挂起": "Transaction is pending", - "接收礼物": "receive gifts", - "接收概率": "Reception probability", - "阶段配置": "stage configuration", - "角色管理": "role management", - "阶段图": "Stage diagram", - "接收人": "recipient", - "接收他人礼物获得金币比例(%)-普通用户": "Proportion of gold coins obtained by receiving gifts from others (%) - ordinary users", - "接收礼物获得目标比例": "Target ratio of receiving gifts", - "接收他人礼物获得金币比例": "Proportion of gold coins obtained by receiving gifts from others", - "接收礼物数量": "Number of gifts received", - "接收目标": "receive target", - "接收人数": "Number of recipients", - "接收人ID": "Recipient ID", - "接收他人礼物获得钻石比例": "Proportion of diamonds obtained by receiving gifts from others", - "接收他人礼物获得钻石比例(%)-代理": "Proportion of diamonds obtained by receiving gifts from others (%) - Agent", - "接收用户,长ID": "Receive user, long ID", - "接受方房间ID": "Recipient room ID", - "接收用户ID": "Receive user ID", - "接收用户": "receive user", - "接收自己礼物获得金币比例": "Proportion of gold coins obtained by receiving gifts from oneself", - "接收自己礼物获得金币比例(%)-普通用户": "Proportion of gold coins obtained by receiving gifts from oneself (%) - ordinary users", - "节点": "node", - "结构": "structure", - "接收转账": "Receive transfer", - "接受成为BD邀请": "Accept invitation to become a BD", - "结束": "Finish", - "结束值": "end value", - "结算": "Settlement", - "接受人": "recipient", - "结束成员数量": "End number of members", - "接受人ID": "Recipient ID", - "接受房间": "accept room", - "接受方积分": "Recipient Points", - "结算成员工资": "Settlement of member wages", - "结算人员发送美元或其他币种后的记录凭证截图": "Screenshot of the record voucher after the settlement staff sends US dollars or other currencies", - "姐妹": "sisters", - "截图": "screenshot", - "解散": "Disband", - "金币": "gold", - "结算代理工资": "Settlement Agent Salary", - "解锁条件": "Unlock conditions", - "解除处罚": "Lift punishment", - "金币补偿": "Gold coin compensation", - "解散家族": "Disband the family", - "结算主播工资": "Settlement of anchor salary", - "今日付费预览": "Today’s paid preview", - "金币必须是整数多个逗号隔开": "Gold coins must be an integer separated by multiple commas", - "金币奖励": "Gold coin reward", - "金币分析": "Gold coin analysis", - "金币购买VIP-购买": "Gold Coin Purchase VIP-Purchase", - "金币购买-道具-赠送": "Gold coin purchase-props-gift", - "金币购买-道具-自己用": "Gold coin purchase-props-for your own use", - "金币数": "Number of gold coins", - "金币收入": "gold coin income", - "金币数量": "Number of gold coins", - "金币购买VIP-赠送": "Buy VIP with gold coins-gift", - "金币收支记录": "Gold coin income and expenditure records", - "金币扣除": "Gold coin deduction", - "金币余额": "Gold coin balance", - "进货": "Restock", - "金额": "Amount", - "进入房间": "Enter the room", - "进入系统": "Enter the system", - "禁用": "Disabled", - "进行中": "in progress", - "经理": "manager", - "警告": "warn", - "经销商": "dealer", - "靓": "pretty", - "靓号": "Pretty account", - "金额: USD": "Amount: USD", - "金额(加入/奖金": "Amount (Join/Bonus", - "金币支出": "gold coin payout", - "进行连接": "Make a connection", - "金额(USD": "Amount (USD", - "金额降序": "Amount descending order", - "举报": "report", - "橘子": "tangerine", - "举报类型": "Report type", - "举报内容": "Report content", - "举报人": "whistleblower", - "靓号池管理": "Pretty account pool management", - "靓号Account": "Pretty Account", - "举报关系": "Reporting relationship", - "靓号类型": "Pretty account type", - "举报管理": "Report management", - "靓号管理": "Pretty account management", - "拒绝": "reject", - "卡片": "card", - "卡片类型": "Card type", - "卡号": "card number", - "举报人ID": "Reporter ID", - "开": "open", - "举报图片": "Report image", - "聚会麦位": "Party wheat position", - "举报视频": "Report video", - "开关控制": "switch control", - "开放国家": "open country", - "开披萨": "Open pizza", - "开放状态": "Open status", - "开启代理删除主播权限": "Enable proxy to delete anchor permissions", - "开启钱包后当前区域用户都可以使用钱包功能(显示钱包模块": "After opening the wallet, all users in the current area can use the wallet function (display wallet module", - "开启之后该区域下的代理将可以删除自己名下主播": "After turning it on, agents in this area will be able to delete anchors under their own names.", - "开启钱包后当前区域用户都可以使用钱包功能": "After opening the wallet, all users in the current area can use the wallet function.", - "开启之后该区域下的主播将可以发起与代理解约申请": "After turning it on, anchors in this area will be able to initiate a contract application with the agent.", - "开始": "start", - "开始值": "start value", - "开始时间": "start time", - "开启钱包": "Open wallet", - "开启钻石兑换金币": "Enable diamond exchange for gold coins", - "开启后用户可以使用钻石兑换金币": "After opening, users can use diamonds to exchange for gold coins.", - "开启主播申请解约权限": "Enable the anchor’s permission to apply for contract termination", - "开始~结束成员数量": "Start to end number of members", - "开通VIP": "Activate VIP", - "可访问": "accessible", - "可空": "available", - "可查看数据为最近1年内的数据": "The data that can be viewed is the data within the last 1 year.", - "可通过列表操作选择资源组": "Resource groups can be selected through list operations", - "可选": "Optional", - "客服": "customer service", - "开通支付国家": "Open payment country", - "可领取里程碑": "Milestones available", - "开通国家": "open country", - "开蔬菜": "Open vegetables", - "可操作": "Operable", - "可售卖": "available for sale", - "客户端": "client", - "扣除": "deduct", - "库存": "in stock", - "扣款": "Deduction", - "快捷支付": "Quick payment", - "快速填充": "Quick filling", - "宽度": "width", - "宽": "Width", - "快去提醒一下该充值了": "Go and remind me that it’s time to recharge.", - "库存必须是 -1": "Inventory must be -1", - "扣除日期": "Deduction date", - "扣除工资": "Deduction from wages", - "客服列表": "Customer service list", - "扣除目标": "deduction target", - "来源": "source", - "拉黑成员": "Block members", - "来源对象": "source object", - "来源平台": "Source platform", - "拉黑时间": "blacklist time", - "拉黑用户": "Block users", - "来源系统": "source system", - "喇叭列表": "Speaker list", - "来源描述": "Source description", - "类型名称": "Type name", - "累计充值": "Accumulated recharge", - "类型": "type", - "类别名称": "Category name", - "累计充值抽奖": "Accumulated recharge lottery", - "累积充值": "Accumulated recharge", - "蓝队积分": "Blue team points", - "累计充值奖励": "Cumulative recharge rewards", - "累计充值抽奖奖品": "Accumulated recharge lottery prizes", - "类型: / 牌类: / 得分": "Type: / Card type: / Score", - "累积充值价格里程碑": "Cumulative recharge price milestone", - "礼包": "gift pack", - "礼物": "Gift", - "累计月度": "Cumulative monthly", - "礼物(送": "gift(send", - "礼物(收": "gift(receive", - "礼物1": "gift 1", - "礼物2": "gift 2", - "礼物3": "gift 3", - "累计送礼次数": "Cumulative number of gifts given", - "累计送礼次数不能小于0": "The cumulative number of gifts cannot be less than 0", - "礼物背包": "gift backpack", - "礼物类型": "gift type", - "礼物单价": "Gift unit price", - "礼物封面": "gift cover", - "礼物管理": "gift management", - "礼物价值": "gift value", - "礼物流水": "gift flow", - "礼物货币": "gift currency", - "礼物总价值": "total gift value", - "礼物配置列表": "Gift configuration list", - "礼物赠送记录": "Gift giving record", - "礼物名称": "gift name", - "礼物值": "gift value", - "礼物数量": "gift quantity", - "礼物信息": "gift information", - "礼物数量不足 3 个": "The number of gifts is less than 3", - "历史": "history", - "里程碑": "milestone", - "例如": "For example", - "连接成功": "Connection successful", - "连接端点": "connection endpoint", - "礼物ID": "Gift ID", - "里程碑进度": "milestone progress", - "历史政策": "historical policy", - "历史身份": "historical identity", - "历史盈利": "historical profit", - "历史钻石政策": "Historical Diamond Policy", - "连击礼物次数": "Number of combo gifts", - "联系": "connect", - "连接失败": "Connection failed", - "联系方式": "Contact information", - "领取": "receive", - "链接": "Link", - "领取金币": "Receive gold coins", - "领取次数": "Number of times received", - "领取用户": "Get user", - "连续签到天数": "Number of consecutive check-in days", - "聊天气泡": "chat bubble", - "领取红包奖励": "Receive red envelope rewards", - "领取家族群聊红包": "Receive family group chat red envelopes", - "领取状态": "Collection status", - "流水": "running water", - "令牌": "token", - "两次输入的密码不一致": "The passwords entered twice are inconsistent", - "领取用户个人红包奖励": "Receive user personal red envelope rewards", - "麦克风权限": "Microphone permissions", - "麦克风数量": "Number of microphones", - "令牌解析": "Token parsing", - "麦位类型管理": "Wheat position type management", - "浏览时间": "View time", - "卵化": "ovulation", - "麦位类型": "Wheat position type", - "麦位名称": "Wheat position name", - "卖家": "seller", - "没有更多内容": "no more content", - "没有关联活动排名奖品": "There are no associated event ranking prizes", - "没有充值记录, 快去提醒一下该充值了": "There is no recharge record. Go and remind me that it’s time to recharge.", - "麦位图标": "wheat position icon", - "没有充值记录": "No recharge record", - "没有更多信息": "no more information", - "没有找到房间信息": "No room information found", - "麦位图": "Wheat position map", - "卖家流水": "Seller's turnover", - "每日": "daily", - "每日任务": "daily tasks", - "每日限额": "daily limit", - "每日签到": "Daily check-in", - "每周": "weekly", - "每条数据的生命周期30天": "The life cycle of each piece of data is 30 days", - "每个用户当天允许发送多少条动态": "How many updates each user is allowed to send on a day", - "每周(争霸赛": "Weekly (Contest", - "每日签到抽奖": "Daily sign-in lottery", - "每天工作数据": "Daily work data", - "每天签到": "Check in every day", - "每月明细": "Monthly details", - "枚举配置列表": "Enum configuration list", - "每周特殊关系卡片奖励": "Weekly special relationship card rewards", - "每周最佳特殊关系奖励": "Weekly Special Relationship Rewards", - "每周游戏任务": "Weekly game tasks", - "每周游戏任务奖励": "Weekly game mission rewards", - "每周CP礼物互送榜": "Weekly CP gift exchange list", - "每周王后": "Weekly Queen", - "每周国王": "weekly king", - "每周皇后": "Queen of the Week", - "美元": "Dollar", - "门票": "Tickets", - "密码": "password", - "每周CP相互赠送礼物榜单": "Weekly CP gifts to each other list", - "魅力等级多少级才能发布动态": "What is the level of charm required to post updates?", - "密码修改成功": "Password changed successfully", - "密钥": "key", - "免费": "free", - "美金政策": "dollar policy", - "密码已重置": "Password reset", - "美元汇率": "dollar exchange rate", - "魅力等级": "Charm level", - "免费试用": "Free trial", - "密码不能少于4位": "Password cannot be less than 4 characters", - "美金$钱包设置": "USD$Wallet Settings", - "秒": "Second", - "名称": "name", - "密码修改成功,请重新登录": "Password changed successfully, please log in again", - "描述信息描述信息描述信息": "description information description information description information", - "描述": "describe", - "免费喂食次数": "Free feeding times", - "命令内容": "Command content", - "名人堂编辑": "Hall of Fame Editor", - "描述列表": "Description list", - "明细签数": "Detailed number of signatures", - "模版": "stencil", - "模板下载": "Template download", - "命中区间时展示 BigWin 图标": "Show BigWin icon when hit interval", - "命中区间时展示 Win 图标": "Show Win icon when hit interval", - "命中区间时展示 SuperWin 图标": "Show SuperWin icon when hit interval", - "模式": "model", - "摩天轮次数奖励": "Ferris wheel rewards", - "模版名称": "Template name", - "摩天轮任务配置": "Ferris wheel mission configuration", - "模版发生改变后": "After the template is changed", - "模版ID": "Template ID", - "目标": "Target", - "摩天轮获胜奖励": "Ferris wheel winning rewards", - "模版发生改变后,相关引用都会同步变化,是否继续": "After the template is changed, the relevant references will be changed simultaneously. Do you want to continue?", - "摩天轮游戏每日数据": "Ferris wheel game daily data", - "魔法礼物必须选择规格": "Magic gifts must select specifications", - "摩天轮任务奖励配置列表": "Ferris wheel mission reward configuration list", - "目标值": "target value", - "男": "Male", - "目标ID": "Target ID", - "目录": "Table of contents", - "内部": "internal", - "男生": "boys", - "内部备注": "Internal remarks", - "目标兑换金币": "Target exchange gold coins", - "目标用户没有找到": "Target user not found", - "魔法礼物": "magic gift", - "默认参数": "Default parameters", - "内容": "content", - "昵称": "Nick name", - "年": "Year", - "年龄": "age", - "目标用户认证信息没找到": "Target user authentication information not found", - "年月": "years", - "内部操作金币": "Internal operation gold coins", - "你确定继续吗": "Are you sure to continue?", - "昵称审核": "Nickname review", - "内部运营后台": "Internal operations backend", - "内购产品配置V2": "In-app purchase product configuration V2", - "女": "Female", - "内购产品": "In-app purchase products", - "年销售总额": "Total annual sales", - "女生": "girl", - "您确定要删除吗(将与名下BD解除绑定, 不影响其他BD身份": "Are you sure you want to delete it? (It will be unbound from the BD under your name and will not affect the identities of other BDs.", - "排班统一“上海时间”,不区分国家,时差等因素": "Shift scheduling is unified in \"Shanghai time\" and does not differentiate between countries, time differences and other factors.", - "您确定要删除吗": "Are you sure you want to delete it?", - "排名范围": "Ranking range", - "排班统一": "Unified shift schedule", - "排行榜": "Ranking list", - "您确定要删除该参数配置吗": "Are you sure you want to delete this parameter configuration?", - "您确定要删除该权限吗": "Are you sure you want to remove this permission?", - "您确定要删除该管理员吗": "Are you sure you want to delete this administrator?", - "排序": "sort", - "排序权重": "Sorting weight", - "排名可输入单个数字,如 `1`;也可输入区间,如 `1~10`、`11~20": "You can enter a single number for ranking, such as `1`; you can also enter a range, such as `1~10`, `11~20", - "排行榜只展示前 20 名,后台派奖也只处理 TOP20": "The ranking list only displays the top 20, and only the top 20 are processed in the backend.", - "排序已保存": "Sort saved", - "排行榜前几": "Top rankings", - "排行榜只展示前 20 名": "The leaderboard only shows the top 20", - "排名可输入单个数字": "Ranking can be entered as a single number", - "批量处理": "Batch processing", - "朋友赠送金币": "Friends give gold coins", - "牌类": "Card type", - "配置必须是对象": "Configuration must be an object", - "匹配女神": "match goddess", - "飘窗": "bay window", - "匹配女生": "match girls", - "平台": "platform", - "凭证": "certificate", - "平均概率: 1.0 / 奖品数量": "Average probability: 1.0 / number of prizes", - "配置和数据管理任务": "Configuration and data management tasks", - "苹果": "apple", - "葡萄牙语": "Portuguese", - "平台渠道": "Platform channel", - "平均概率": "average probability", - "匹配所有": "match all", - "平台和推送平台": "Platforms and push platforms", - "评论增加分数": "Comments increase points", - "普通用户": "Ordinary user", - "其他": "other", - "其他语言": "other languages", - "其它": "other", - "签到获得": "Sign in to get", - "其他文件不可超过": "Other files cannot exceed", - "签到奖励": "Sign-in rewards", - "签到获取奖励": "Sign in to get rewards", - "普通礼物": "Ordinary gift", - "扑克游戏": "poker game", - "启动消费": "Start consumption", - "其他范围1": "Other range 1", - "其他,不在预计状态内": "Others, not within the expected state", - "签名": "sign", - "签到赠送": "Sign in and get a gift", - "签到时间": "Check-in time", - "钱包": "wallet", - "签名平台": "Signature platform", - "签名KEY": "Signature KEY", - "签到奖励(道具/糖果数": "Sign-in reward (number of props/candy", - "切换到": "switch to", - "签名KEY不能为空": "Signature KEY cannot be empty", - "签数": "Number of signatures", - "强更": "Strong update", - "青铜": "bronze", - "签名平台、数据内容、签名KEY不能为空": "Signature platform, data content, and signature KEY cannot be empty.", - "青铜3": "Bronze 3", - "青铜2": "Bronze 2", - "且经平台审查属实": "And it is true after review by the platform", - "且无法恢复": "and cannot be restored", - "青铜4": "Bronze 4", - "青铜1": "Bronze 1", - "切换团队移除": "Switch team to remove", - "亲密的朋友": "close friends", - "情况": "Condition", - "清空": "Clear", - "请补全备注和用户账号": "Please complete the remarks and user account", - "清空属性": "Clear properties", - "青铜5": "Bronze 5", - "请补全系统": "Please complete the system", - "请补全参数配置": "Please complete the parameter configuration", - "请补全区间配置": "Please complete the interval configuration", - "请调整": "Please adjust", - "请核实": "Please verify", - "请谨慎操作": "Please operate with caution", - "请联系管理员": "Please contact the administrator", - "请补全系统、游戏源和客户端": "Please complete the system, game source and client", - "请补全游戏基础信息": "Please complete the basic game information", - "请补全系统、平台和推送平台": "Please complete the system, platform and push platform", - "请处理后再将当前批次所有短账号重新发送": "Please process and then resend all short-term accounts in the current batch.", - "请求方式": "Request method", - "请补全语言和描述": "Please complete the language and description", - "请配置道具内容": "Please configure prop content", - "请勾选审批项": "Please check the approval items", - "请上传": "Please upload", - "请求平台": "request platform", - "请求日志": "Request log", - "请求黑名单": "Request blacklist", - "请求数据错误": "Request data error", - "请上传 svga": "Please upload svga", - "请上传 svga/pag 资源": "Please upload svga/pag resources", - "请联系管理员开通查看权限": "Please contact the administrator to enable viewing permissions", - "请上传麦位图标": "Please upload the wheat position icon", - "请上传麦位图": "Please upload the wheat bitmap", - "请上传 Android 资源": "Please upload Android resources", - "请上传封面": "Please upload the cover", - "请上传背景图": "Please upload background image", - "请上传图标": "Please upload icon", - "请上传国旗": "Please upload the flag", - "请上传活动图": "Please upload activity pictures", - "请上传图片": "Please upload pictures", - "请稍等": "please wait", - "请使用": "Please use", - "请输入": "Please enter", - "请上传转账凭证, 请稍等": "Please upload the transfer voucher, please wait.", - "请上传转账凭证": "Please upload transfer voucher", - "请上传中图标": "Please upload icon", - "请输入 金币数量": "Please enter the number of gold coins", - "请慎重选择": "Please choose carefully", - "请输入 金额": "Please enter the amount", - "请上传小图标": "Please upload small icon", - "请慎重选择,一旦开启日结模式后将停止使用月结工资,且无法恢复": "Please choose carefully. Once the daily settlement mode is turned on, the use of monthly wages will be stopped and cannot be restored.", - "请输入备注": "Please enter remarks", - "请输入包名": "Please enter the package name", - "请输入编码": "Please enter the code", - "请输入编号": "Please enter number", - "请输入版本号": "Please enter version number", - "请输入安装包大小": "Please enter the installation package size", - "请上传资源": "Please upload resources", - "请输入 IP": "Please enter IP", - "请输入标题": "Please enter a title", - "请输入菜单名称": "Please enter a menu name", - "请输入标识": "Please enter ID", - "请输入菜单路径": "Please enter menu path", - "请输入标签": "Please enter tag", - "请输入驳回理由": "Please enter the reason for rejection", - "请输入编译版本号": "Please enter the compilation version number", - "请输入菜单路由": "Please enter menu route", - "请输入财富等级": "Please enter wealth level", - "请输入宠物名称": "Please enter pet name", - "请输入宠物Code": "Please enter pet code", - "请输入厂商名称": "Please enter manufacturer name", - "请输入成员数量": "Please enter the number of members", - "请输入厂商Code": "Please enter manufacturer code", - "请输入成员ID": "Please enter member ID", - "请输入参数值": "Please enter parameter value", - "请输入产品CODE": "Please enter product CODE", - "请输入单价": "Please enter unit price", - "请输入登录密码": "Please enter your login password", - "请输入登录账号": "Please enter your login account", - "请输入等级": "Please enter the level", - "请输入创建费用": "Please enter the creation fee", - "请输入等级经验值": "Please enter level experience value", - "请输入导出数量": "Please enter the export quantity", - "请输入道具天数": "Please enter the prop days", - "请输入底价": "Please enter the lowest price", - "请输入电子邮箱": "Please enter your email address", - "请输入代理ID": "Please enter agent ID", - "请输入房间名称": "Please enter room name", - "请输入大于 0 的数量": "Please enter a quantity greater than 0", - "请输入定投用户ID多个以逗号分隔 123,321": "Please enter multiple fixed investment user IDs separated by commas 123,321", - "请输入订单id": "Please enter order id", - "请输入对外备注": "Please enter external remarks", - "请输入发送金额": "Please enter the sending amount", - "请输入对内备注": "Please enter internal remarks", - "请输入分组名称": "Please enter a group name", - "请输入规则描述": "Please enter a rule description", - "请输入房间账号和用户账号": "Please enter the room account number and user account number", - "请输入定投用户ID多个以逗号分隔 123": "Please enter multiple fixed investment user IDs separated by commas 123", - "请输入更新朝拜描述": "Please enter an updated Qibla description", - "请输入徽章Key": "Please enter badge Key", - "请输入归属人账号": "Please enter the owner account number", - "请输入活动名称": "Please enter event name", - "请输入房间ID": "Please enter room ID", - "请输入分组Code": "Please enter the group code", - "请输入徽章名称": "Please enter a badge name", - "请输入更新描述": "Please enter update description", - "请输入或选择来源": "Please enter or select a source", - "请输入获得糖果数量": "Please enter the number of candies received", - "请输入奖励金币数量": "Please enter the number of reward coins", - "请输入键": "Please enter key", - "请输入奖励数": "Please enter the number of rewards", - "请输入获得糖果数": "Please enter the number of candies received", - "请输入积分": "Please enter points", - "请输入或选择内容": "Please enter or select content", - "请输入价值": "Please enter value", - "请输入金币数": "Please enter the number of gold coins", - "请输入金币数量": "Please enter the number of gold coins", - "请输入奖励糖果数": "Please enter the number of reward candies", - "请输入奖励糖果": "Please enter bonus candy", - "请输入金币": "Please enter gold coins", - "请输入奖励顺序": "Please enter the reward order", - "请输入角色名": "Please enter a character name", - "请输入金额": "Please enter the amount", - "请输入接收人短账号": "Please enter the recipient’s short account number", - "请输入联系方式": "Please enter contact information", - "请输入礼物编码": "Please enter the gift code", - "请输入礼物ID": "Please enter gift ID", - "请输入礼物名称": "Please enter the gift name", - "请输入类型名称": "Please enter a type name", - "请输入靓号": "Please enter a good number", - "请输入里程碑": "Please enter milestone", - "请输入靓号类型": "Please enter the pretty number type", - "请输入密码": "Please enter password", - "请输入模版名称": "Please enter template name", - "请输入内容": "Please enter content", - "请输入名称": "Please enter name", - "请输入排行榜前几": "Please enter the top few in the rankings", - "请输入排序": "Please enter sorting", - "请输入区域编码": "Please enter area code", - "请输入渠道Code": "Please enter the channel code", - "请输入区域名称": "Please enter the area name", - "请输入目标用户长ID": "Please enter the target user long ID", - "请输入描述": "Please enter a description", - "请输入渠道名称": "Please enter the channel name", - "请输入权限名称": "Please enter permission name", - "请输入手机号码": "Please enter mobile phone number", - "请输入数量": "Please enter quantity", - "请输入券数": "Please enter the number of tickets", - "请输入权重": "Please enter weight", - "请输入商品价格": "Please enter the product price", - "请输入确认密码": "Please enter the confirmation password", - "请输入任务贡献值": "Please enter the task contribution value", - "请输入手机型号": "Please enter your mobile phone model", - "请输入人数": "Please enter the number of people", - "请输入天数": "Please enter the number of days", - "请输入数值": "Please enter a value", - "请输入天数,负数表示减去天数,0代表永久": "Please enter the number of days, a negative number means subtracting the number of days, 0 means permanent", - "请输入数量或天数": "Please enter quantity or days", - "请输入顺序": "Please enter the order", - "请输入下载链接": "Please enter download link", - "请输入糖果数量": "Please enter the number of candies", - "请输入数量/天数": "Please enter the quantity/days", - "请输入完成天数": "Please enter the number of days to complete", - "请输入图片地址": "Please enter the image address", - "请输入消息内容": "Please enter message content", - "请输入新密码": "Please enter new password", - "请输入新的国家货币Code": "Please enter the new national currency code", - "请输入新的美元汇率": "Please enter new USD exchange rate", - "请输入一周内完成天数": "Please enter the number of days to complete within a week", - "请输入新增行数": "Please enter the number of new rows", - "请输入序号": "Please enter the serial number", - "请输入用户短账号": "Please enter the user's short account number", - "请输入新的权重数": "Please enter a new weight number", - "请输入新账号": "Please enter a new account", - "请输入用户昵称": "Please enter user nickname", - "请输入游戏ID": "Please enter game ID", - "请输入有效的编译版本号": "Please enter a valid build version number", - "请输入用户长ID": "Please enter user long ID", - "请输入用户令牌": "Please enter user token", - "请输入有效期(天": "Please enter the validity period (days", - "请输入用户ID": "Please enter user ID", - "请输入有效期": "Please enter the validity period", - "请输入用户短账号,多个短账号用英文逗号分隔,一批最多 15 个": "Please enter the user's short account number. Multiple short account numbers are separated by commas. A maximum of 15 can be used in one batch.", - "请输入账号": "Please enter account number", - "请输入有效数字-9999": "Please enter a valid number -9999", - "请输入有效数字-9999~9999": "Please enter valid numbers -9999~9999", - "请输入正确的正数/小数最多两位小数点": "Please enter correct positive numbers/decimals with up to two decimal points", - "请输入折扣率": "Please enter discount rate", - "请输入原始密码": "Please enter original password", - "请输入展示顺序": "Please enter the display order", - "请输入有效天数": "Please enter the number of valid days", - "请输入正确的正数": "Please enter a correct positive number", - "请输入正确内容": "Please enter correct content", - "请输入值": "Please enter a value", - "请输入原始用户长ID": "Please enter the original user long ID", - "请输入BD ID": "Please enter BD ID", - "请输入转账金额": "Please enter the transfer amount", - "请输入政策标题": "Please enter a policy title", - "请输入Android链接": "Please enter Android link", - "请输入最大成员数": "Please enter the maximum number of members", - "请输入自研游戏Code": "Please enter the self-developed game code", - "请输入BD Leader 用户ID": "Please enter BD Leader user ID", - "请输入最大管理员数": "Please enter the maximum number of administrators", - "请填写": "Please fill in", - "请填写标题": "Please fill in the title", - "请填写金额": "Please fill in the amount", - "请输入BD账号": "Please enter your BD account number", - "请填写价值": "Please fill in the value", - "请填写标题和内容": "Please fill in the title and content", - "请输入Key信息": "Please enter Key information", - "请填写国家名称": "Please fill in the country name", - "请输入iOS链接": "Please enter iOS link", - "请填写名称": "Please fill in the name", - "请填写金币": "Please fill in gold coins", - "请填写完整导出条件": "Please fill in the complete export conditions", - "请填写客服": "Please fill in customer service", - "请填写描述": "Please fill in the description", - "请填写手机号前缀": "Please fill in the mobile phone number prefix", - "请填写靓号": "Please fill in the pretty number", - "请填写麦位价格": "Please fill in the wheat price", - "请填写权重序号": "Please fill in the weight serial number", - "请填写权重": "Please fill in the weight", - "请填写执行时间": "Please fill in the execution time", - "请填写完整信息": "Please fill in complete information", - "请填写Key": "Please fill in the Key", - "请填写UID": "Please fill in UID", - "请填写值": "Please fill in the value", - "请填写系统和用户ID": "Please fill in the system and user ID", - "请通过奖品记录查看获奖快照": "Please view the winning snapshot through the prize record", - "请完善麦位名称和麦位类型": "Please complete the wheat position name and wheat position type", - "请完整填写贵族能力信息": "Please fill in the noble ability information completely", - "请完整填写游戏任务规则": "Please complete the game task rules", - "请完整填写爆水晶规则": "Please fill in the crystal explosion rules completely", - "请完整填写 LuckyBox 规则": "Please fill in the LuckyBox rules completely", - "请完整填写解锁条件": "Please fill in the unlocking conditions completely", - "请先选择一个菜单节点": "Please select a menu node first", - "请选择": "Please select", - "请完整选择三组礼物": "Please select three complete sets of gifts", - "请下次务必注意言行": "Please be careful about your words and deeds next time", - "请先配置资源组内容": "Please configure the resource group content first", - "请先配置概率明细": "Please configure the probability details first", - "请先保存徽章规则": "Please save the badge rules first", - "请先进行连接": "Please connect first", - "请先创建连接": "Please create a connection first", - "请选择背景图": "Please select a background image", - "请选择道具资源": "Please select prop resources", - "请选择菜单类型": "Please select menu type", - "请选择充值类型": "Please select the recharge type", - "请选择操作状态": "Please select operation status", - "请选择处理状态": "Please select processing status", - "请选择道具类型": "Please select prop type", - "请选择导入文件": "Please select the import file", - "请选择菜单状态": "Please select menu status", - "请选择分组": "Please select a group", - "请选择等级徽章": "Please select a level badge", - "请选择归属系统": "Please select the ownership system", - "请选择关联类型": "Please select the association type", - "请选择贵族来源": "Please select a noble source", - "请选择房间": "Please select a room", - "请选择等级类型": "Please select level type", - "请选择等级Key": "Please select the level key", - "请选择付费类型": "Please select payment type", - "请选择国家": "Please select a country", - "请选择贵族类型": "Please select aristocrat type", - "请选择角色": "Please select a role", - "请选择奖励类型": "Please select reward type", - "请选择开始时间": "Please select a start time", - "请选择过期时间": "Please select expiration time", - "请选择奖项": "Please select an award", - "请选择活动时间": "Please select event time", - "请选择类型": "Please select type", - "请选择区域": "Please select a region", - "请选择平台": "Please select a platform", - "请选择卡片类型": "Please select card type", - "请选择开通国家": "Please select the country of activation", - "请选择内购产品": "Please select an in-app purchase product", - "请选择渠道": "Please select a channel", - "请选择模版": "Please select a template", - "请选择联系方式类型": "Please select contact type", - "请选择时间范围": "Please select a time range", - "请选择时间": "Please select a time", - "请选择数据类型": "Please select data type", - "请选择商品类型": "Please select product type", - "请选择售卖类型": "Please select sales type", - "请选择渠道类型": "Please select channel type", - "请选择时间段": "Please select a time period", - "请选择收费类型": "Please select charge type", - "请选择是否返回APP": "Please choose whether to return to the APP", - "请选择上架状态": "Please select the listing status", - "请选择挑战任务": "Please select a challenge task", - "请选择性别": "Please select gender", - "请选择用户": "Please select user", - "请选择业务类型": "Please select business type", - "请选择语言": "Please select language", - "请选择原因": "Please select a reason", - "请选择支付方式": "Please select payment method", - "请选择养成奖励": "Please select a development reward", - "请选择有效天数": "Please select valid days", - "请选择永远展示": "Please choose to display forever", - "请选择系统类型": "Please select system type", - "请选择系统": "Please select system", - "请选择账单状态": "Please select billing status", - "请选择系统和推送平台": "Please select system and push platform", - "请选择资源": "Please select a resource", - "请选择状态": "Please select a status", - "请选择支付平台": "Please select payment platform", - "请重新登录": "Please log in again", - "区域": "area", - "请直接编辑": "Please edit directly", - "区域(发-接": "Area(send-receive)", - "区域编码": "area code", - "区域国旗PK活动": "Regional flag PK activity", - "请至少设置一个奖品概率": "Please set at least one prize probability", - "区域编码(慎重填写,不可修改": "Area code (fill in carefully, cannot be modified)", - "请至少选择一个区域": "Please select at least one region", - "请直接编辑 `gameType / sysOrigin / rewardConfigList` 等字段": "Please edit fields such as `gameType / sysOrigin / rewardConfigList` directly", - "区域名称": "area name", - "区域ID": "Area ID", - "渠道类型": "Channel type", - "取消": "Cancel", - "渠道名称": "Channel name", - "渠道": "channel", - "取消置顶": "Unpin", - "曲丽丽 评论了你": "Qu Lili commented on you", - "渠道Code": "Channel Code", - "区域配置": "Zone configuration", - "渠道Icon": "ChannelIcon", - "渠道限额计算中": "Channel limit is being calculated", - "取消开放": "Cancel opening", - "取消支付": "Cancel payment", - "全部掉线后": "After all are disconnected", - "全部收起": "Collapse all", - "全部展开": "Expand all", - "权限变更": "Permission changes", - "权限": "Permissions", - "全选": "Select all", - "权限设置": "Permission settings", - "权限类型": "Permission type", - "权限名称": "Permission name", - "权重": "weight", - "权益描述": "Description of benefits", - "权限标识": "Permission ID", - "权重配置": "Weight configuration", - "权限分配": "Permission assignment", - "权重降序": "descending order of weight", - "全局通报": "global notification", - "全局广播礼物": "global broadcast gift", - "确定": "Sure", - "券": "coupon", - "券数": "Number of tickets", - "缺少支付国家": "Missing payment country", - "缺少区域": "Missing area", - "缺少用户ID": "Missing user ID", - "权重序号": "Weight serial number", - "缺少应用信息": "Missing application information", - "确定对外发布当前政策吗": "Are you sure you want to publish the current policy?", - "确定删除客服人员吗": "Are you sure you want to delete the customer service staff?", - "确定删除选择的喇叭记录吗": "Are you sure you want to delete the selected speaker record?", - "确定删除选择的政策吗": "Are you sure you want to delete the selected policy?", - "确认密码": "Confirm Password", - "确定删除描述吗": "Are you sure you want to delete the description?", - "确定移除该成员吗": "Are you sure you want to remove this member?", - "确定删除任务吗": "Are you sure you want to delete the task?", - "确定删除该家族吗": "Are you sure you want to delete this family?", - "确认审核选中记录吗": "Confirm the selected record for review?", - "确认删除选中记录吗": "Are you sure to delete the selected record?", - "确认删除吗": "Confirm deletion?", - "确认删除吗?【不可恢复": "Confirm deletion? 【Non-recoverable", - "确认发布公告吗?发布后不可以取消": "Confirm the announcement? Cannot be canceled after publishing", - "确认发布公告吗": "Confirm the announcement?", - "热门": "Popular", - "确认发送通知吗": "Are you sure you want to send the notification?", - "确认删除该设备吗": "Are you sure to delete this device?", - "确认选择": "Confirm selection", - "认证信息": "Certification information", - "人": "people", - "任务类型": "Task type", - "任务管理": "task management", - "日活跃": "Daily active", - "人身攻击": "personal attack", - "任务贡献值": "Task contribution value", - "日得奖": "Award-winning day", - "热门房间": "Popular rooms", - "日新增": "Newly added daily", - "日期": "date", - "日结模式": "Daily settlement mode", - "日语": "Japanese", - "日任务全完成": "All daily tasks completed", - "任务所需贡献值": "Contribution value required for the task", - "日下注次数": "Number of bets placed per day", - "热门动态权重计分设置": "Popular dynamic weighted scoring settings", - "日下注": "Daily bet", - "荣誉": "honor", - "如": "like", - "日志事件": "Log events", - "荣誉-管理员": "Honors-Administrator", - "日盈利": "daily profit", - "日中奖": "Daily winnings", - "删除": "Delete", - "删除成功": "Deleted successfully", - "日志内容": "Log content", - "荣誉-活动": "Honors-Activities", - "如: ar,en 多个使用英文逗号分隔": "For example: ar,en. Use commas to separate multiple items.", - "如: CN,IN 多个使用英文逗号分隔": "For example: CN,IN multiples separated by English commas", - "删除后不可复原】!! 确定删除该家族吗": "Deletion cannot be restored]!! Are you sure you want to delete this family?", - "筛选结果汇总": "Summary of filter results", - "删除节点": "Delete node", - "如需复用": "If reuse is required", - "删除后不可复原": "Cannot be restored after deletion", - "删除成员": "Delete member", - "删除靓号": "Delete pretty account", - "删除时间": "Delete time", - "商品类型": "Product type", - "商品信息": "Product information", - "商品": "commodity", - "商品管理": "Product management", - "上": "superior", - "商品ID": "Product ID", - "如:斋月活动,方便自己人看": "Such as: Ramadan activities, convenient for people to watch", - "上传": "upload", - "上传成功": "Upload successful", - "上传凭证": "Upload credentials", - "上架": "Listed", - "商品管理V2": "Product Management V2", - "上海时间": "Shanghai time", - "上传资源": "Upload resources", - "上/下架": "On/off shelves", - "上传封面": "Upload cover", - "上/下架状态": "On/off shelves status", - "上班时间段": "Working hours", - "上移": "move up", - "设备号": "Device number", - "设备ID": "Device ID", - "设置": "set up", - "设置成功": "Setup successful", - "烧烤游戏": "BBQ games", - "上架+过期": "Listed+Expired", - "设备+账号解封": "Device + account unblocked", - "设备号已复制": "Device number copied", - "上架状态": "Shelf status", - "烧烤机游戏": "BBQ machine game", - "设备解封": "Device unblocking", - "申请人": "applicant", - "设置信息": "Setup information", - "设置属性": "Set properties", - "申请类型": "Application type", - "设置资料": "Setup information", - "涉及色情": "involving pornography", - "申请团队成员列表": "Request team member list", - "申请处理": "Application processing", - "设置概率": "Set probabilities", - "审核": "Review", - "身份信息": "Identity information", - "审核人": "reviewer", - "身份变更-主动加入V1": "Identity change-actively join V1", - "身份变更-主动退出V1": "Identity change-actively exit V1", - "身份变更-发出邀请": "Change of Identity-Send Invitation", - "审核中": "Under review", - "审核状态": "Review status", - "审批": "Approval", - "审批成功": "Approval successful", - "审批管理": "Approval management", - "身份变更V2": "Identity Change V2", - "审核描述": "Review description", - "身份变更V1": "Identity change V1", - "身份变更V3": "Identity Change V3", - "审核提现申请": "Review withdrawal application", - "审批记录": "Approval records", - "审批人": "approver", - "审批时间": "Approval time", - "审批状态": "Approval status", - "审批头像": "Approval avatar", - "审批类型": "Approval type", - "审批内容": "Approval content", - "审批公告": "Approval Announcement", - "审批结果": "Approval results", - "失败": "Failed", - "审批昵称": "Approval nickname", - "审批页面": "Approval page", - "升序排列": "Ascending order", - "时间": "time", - "时间(周一至周日": "Time (Monday to Sunday", - "胜利方": "victor", - "剩余钻石": "remaining diamonds", - "失败人数": "Number of failures", - "慎重填写": "Fill in carefully", - "时间(Hour": "Hour", - "时差等因素": "Time difference and other factors", - "剩余积分兑换$比例": "Remaining points exchange rate for $", - "时间段": "time period", - "时间范围": "time range", - "时间信息": "time information", - "时长(我的": "Duration (my", - "时长(其他": "Duration (other", - "时长": "duration", - "时间必须在1个月以内": "The time must be within 1 month", - "使用": "use", - "实际价值": "actual value", - "实际收款账户": "Actual receiving account", - "实际扣款账户": "Actual debit account", - "实时数据预览": "Live data preview", - "实际提现金额": "Actual withdrawal amount", - "实体ATM": "Physical ATM", - "使用: Yes": "Use: Yes", - "实际接收工资用户": "Users who actually receive salary", - "事件": "event", - "事件通知": "event notification", - "事件类型": "event type", - "视频电话": "video call", - "使用兑换券获得靓号": "Use the redemption coupon to get a beautiful account", - "视频": "video", - "是": "Yes", - "使用站内注册账号关联后台PC端IM登录授权,登录账号“短id”初始密码“88888888": "Use the account registered on the site to associate the background PC IM login authorization, and the login account \"short id\" initial password \"88888888\"", - "使用站内注册账号关联后台PC端IM登录授权": "Use the registered account on the site to associate the backend PC IM login authorization", - "使用道具兑换券": "Use props to redeem coupons", - "使用金币创建家族": "Use gold coins to create a family", - "视频马甲": "Video vest", - "是否告白礼物": "Is it a confession gift?", - "视频匹配": "video matching", - "事件ID": "Event ID", - "是否继续": "Do you want to continue?", - "是否确定重置": "Are you sure to reset?", - "是否启动": "Whether to start", - "是否全屏": "Whether to full screen", - "是否确定修改配置值": "Are you sure you want to modify the configuration value?", - "是否可售卖": "Is it for sale?", - "是否确定解散": "Is dissolution determined?", - "是否确定切换": "Are you sure to switch?", - "是否继续提交": "Do you want to continue submitting?", - "是否确认删除": "Do you confirm deletion?", - "是否已收回": "Has it been withdrawn?", - "是否确认重置": "Do you want to confirm the reset?", - "是否团长代收": "Whether the group leader collects it on behalf of the group", - "是否确认提交": "Do you want to confirm the submission?", - "是否同意该申请": "Do you agree to the application?", - "收": "receive", - "是否确认恢复用户目标": "Do you want to confirm the recovery user target?", - "收回": "take back", - "是否确定重置,该区域的团队用户将可重新发起": "Whether to confirm the reset, team users in this area will be able to restart", - "是否确认删除, 本期账单工作数据将会同步移除": "Do you confirm the deletion? The current billing work data will be removed simultaneously.", - "收回成功": "Withdraw successfully", - "收款": "Collection", - "收款人": "Payee", - "是否永久": "Is it permanent?", - "收费类型": "Charge type", - "是否自研": "Whether to self-research", - "是否中奖": "Winning or not?", - "收入": "income", - "收到了 14 份新周报": "14 new weekly reports received", - "收益": "income", - "手机": "cell phone", - "手机号": "Phone number", - "手机号码": "phone number", - "手机型号": "Mobile phone model", - "收入 - 支出 = 余": "Income - Expenses = Surplus", - "收益间隔(M": "Yield interval (M", - "收益数量": "Revenue quantity", - "收益间隔": "return interval", - "收益间隔分钟": "Revenue interval minutes", - "手续费": "handling fee", - "首次充值": "First time recharge", - "售卖国家": "selling countries", - "手机号码前缀": "Mobile phone number prefix", - "首页弹出banner": "Home page pop-up banner", - "手机号前缀": "Mobile phone number prefix", - "首页弹出层": "Home page pop-up layer", - "首充奖励": "First deposit reward", - "售卖价格": "selling price", - "授权卖家数量": "Number of authorized sellers", - "输入支持范围0": "Input support range 0", - "售卖类型": "Sales type", - "授权类型": "Authorization type", - "输入正数为赠送": "Enter a positive number to receive a gift", - "输入关键字进行过滤": "Enter keywords to filter", - "输入正数为赠送,负数为回收": "Enter a positive number for gifting and a negative number for recycling.", - "数据平台": "Data Platform", - "输入内容必须是正整数": "The input content must be a positive integer", - "数据类型": "data type", - "数据内容": "Data content", - "数量": "quantity", - "数值": "numerical value", - "数量(可选": "Quantity (optional", - "数据分配图": "Data distribution diagram", - "数量/天数": "Quantity/Days", - "数据只会保留30天": "Data will only be retained for 30 days", - "数据大屏": "Big data screen", - "数据类型错误": "wrong data type", - "刷新": "refresh", - "输入支持范围0 ~ 99999999最多2位小数": "Input support range 0 ~ 99999999 up to 2 decimal places", - "数字越大越排在前面": "The bigger the number, the higher it is ranked.", - "数字越小越靠前": "The smaller the number, the higher it is", - "刷新菜单": "refresh menu", - "数字越大越靠前": "The bigger the number, the higher it is", - "数值控制": "numerical control", - "送": "deliver", - "顺序": "order", - "岁": "age", - "搜索": "search", - "碎片": "fragments", - "刷新资源": "Refresh resources", - "顺序权重": "ordinal weight", - "水果游戏": "fruit game", - "顺序(越大越靠前": "Order (the bigger the front)", - "水果机游戏": "Fruit machine game", - "数字越小越靠前(升序排列": "The smaller the number, the higher it is (arranged in ascending order)", - "糖果": "candy", - "特殊麦位": "Special wheat position", - "碎片价值必须是 1": "Shard value must be 1", - "糖果数": "Number of candies", - "提交": "Submit", - "糖果/积分": "Candy/Points", - "碎片价值": "fragment value", - "碎片数量必须是 1": "The number of fragments must be 1", - "锁版本": "lock version", - "锁定座位": "Lock seat", - "特效": "special effects", - "提交成功": "Submission successful", - "提交人": "Author", - "提示": "hint", - "提示文案": "Prompt copy", - "提现": "Withdraw cash", - "提交用户ID": "Submit user ID", - "提交执行": "Submit for execution", - "提交用户": "Submit user", - "提取数量": "Extract quantity", - "踢出房间": "kicked out of room", - "提现金额": "Withdraw amount", - "提交金额": "Submit amount", - "天数": "days", - "提现信息": "Withdrawal information", - "天": "sky", - "添加": "Add to", - "添加成员": "Add member", - "添加成功": "Added successfully", - "添加仓库": "Add warehouse", - "添加配置": "Add configuration", - "添加条件": "Add conditions", - "提现手续费比例": "Withdrawal fee ratio", - "添加根节点": "Add root node", - "提现方式": "Withdrawal method", - "提现申请详情": "Withdrawal application details", - "添加概率详情": "Add probability details", - "添加渠道": "Add channel", - "添加厂商": "Add vendor", - "条件": "condition", - "挑战的任务": "challenging tasks", - "条/天": "Articles/day", - "通过": "Approved", - "添加子节点": "Add child node", - "添加BD Leader": "Add BD Leader", - "添加周星礼物组": "Add Zhou Xing gift group", - "添加一级菜单": "Add first level menu", - "条": "strip", - "通知": "notify", - "同意": "agree", - "通用": "Universal", - "头像": "avatar", - "头像框": "Avatar frame", - "同时删除bd名下成员": "Delete members under bd's name at the same time", - "统计状态": "Statistical status", - "跳转外部链接示例": "Jump to external link example", - "跳转Workspace示例": "Jump to Workspace example", - "通知记录": "Notification record", - "统计管理": "Statistical management", - "图片": "picture", - "土耳其语": "turkish", - "图标": "icon", - "团队成员": "team member", - "团队管理": "Team management", - "团队列表": "Team list", - "团队信息": "Team information", - "投入奖金抽": "Enter bonus draw", - "投入奖金抽取": "Invest in bonus draw", - "头像审核": "Avatar review", - "投入奖金抽取金额": "Input bonus draw amount", - "投入奖金池抽取": "Invest in bonus pool draw", - "团长": "leader", - "团队钻石政策": "Team Diamond Policy", - "团队资料": "Team information", - "团长代收": "Collection by the group leader", - "团队通知记录": "Team notification record", - "团队申请": "Team application", - "团队政策": "team policy", - "团长工资": "Team leader salary", - "推荐属性": "Recommended properties", - "退款": "Refund", - "退出": "quit", - "拖拽排序": "Drag and drop sort", - "退款用户": "Refund users", - "退款人ID": "Refunder ID", - "推送平台": "Push platform", - "外部页面": "external page", - "退款扣除目标": "Refund deduction target", - "退款记录": "Refund record", - "违规": "Violation", - "玩家": "player", - "退款人信息": "Refunder information", - "未处理": "Not processed", - "未登录": "Not logged in", - "违规扣除": "Illegal deductions", - "违规的": "Illegal", - "未出账": "Account not issued", - "网上银行": "online banking", - "违规历史记录": "Violation history", - "完成人数": "Number of people completed", - "违规记录": "Violation record", - "未发布": "Unpublished", - "未知": "unknown", - "未上传": "Not uploaded", - "未找到相关定义数据类型,请联系管理员": "No relevant definition data type found, please contact the administrator", - "未上传封面": "No cover uploaded", - "未选中图": "Unselected image", - "喂食间隔": "Feeding interval", - "未获取到模版数据": "Template data not obtained", - "未找到用户": "User not found", - "喂粮数量": "Feeding quantity", - "喂养": "feed", - "未找到相关定义数据类型": "No relevant definition data type found", - "喂养加速粮食": "feeding speed food", - "喂养宠物": "Feed pets", - "喂养次数": "Feeding times", - "喂食间隔分钟": "Feeding interval minutes", - "喂养粮食数": "Number of feeding grains", - "喂食间隔(M": "Feeding interval (M", - "喂养类型": "Feeding type", - "喂养粮食": "feed food", - "无": "none", - "文档管理": "Document management", - "我的": "mine", - "文件上传": "File upload", - "文件命名": "File naming", - "无效": "invalid", - "西班牙语": "spanish", - "西瓜": "watermelon", - "文本聊天": "text chat", - "文案": "copywriting", - "五福碎片": "Fragments of Five Blessings", - "无密支付": "No secret payment", - "无效短账号": "Invalid short account", - "我的token": "my token", - "无需鉴权": "No authentication required", - "系统": "system", - "系统管理": "System management", - "系统检测自动移除": "System detection and automatic removal", - "系统不能为空": "System cannot be empty", - "系统补偿": "system compensation", - "系统公告管理": "System announcement management", - "系统抽取比率": "System extraction ratio", - "系统会自动排除": "The system will automatically exclude", - "系统:数据分配图": "System: Data Distribution Map", - "系统将移除团队所有数据": "The system will remove all team data", - "系统删除bd": "System delete bd", - "系统删除bd lead": "System delete bd lead", - "系统将移除团队所有数据, 操作不可逆!!!! (主播工作/账单/团队信息/团队成员/BD关系等所有": "The system will remove all team data and the operation is irreversible!!! (Anchor work/bills/team information/team members/BD relationships, etc.)", - "系统删除bd,同时删除bd名下成员": "The system deletes bd and deletes the members under bd's name at the same time.", - "下架": "Unlisted", - "系统使用bd lead添加BD": "The system uses bd lead to add BD", - "系统扣除": "System deduction", - "系统平台": "System platform", - "下载链接": "Download link", - "下移": "move down", - "下载失败": "Download failed", - "系统添加bd lead": "System adds bd lead", - "下架+过期": "Removed + Expired", - "下架状态": "Off the shelf status", - "系统赠送": "System gift", - "系统banner管理": "System banner management", - "系统添加bd": "System adds bd", - "先在": "first", - "鲜花": "flowers", - "显示": "show", - "先在“活动模版”创建模版,再在这里创建活动并关联模版": "First create a template in \"Activity Template\", then create an activity here and associate the template", - "下注金币": "Bet gold coins", - "显示心动值": "Display heartbeat value", - "显示银行卡菜单": "Show bank card menu", - "下注用户": "Betting users", - "显示钱包模块": "Show wallet module", - "显示所有条件": "Show all conditions", - "显示兑换金币按钮": "Show the exchange gold coin button", - "香蕉": "banana", - "详情": "Details", - "相关目标工作都会同步到新团队": "Relevant target work will be synchronized to the new team", - "向": "Towards", - "项": "item", - "显示KYC菜单": "Show KYC menu", - "相同区域": "Same area", - "现对您发出警告": "You are now warned", - "线下非银网点": "Offline non-bank outlets", - "显示转账按钮": "Show transfer button", - "消费金额": "Consumption amount", - "消耗金币": "Consume gold coins", - "消息推送": "Push message", - "消息内容": "Message content", - "销量": "Sales volume", - "销售情况": "sales", - "销售报表": "sales report", - "小工具": "Gadget", - "小图": "Thumbnail", - "校验": "check", - "相关引用都会同步变化": "Related references will change synchronously", - "消耗活动": "consumption activities", - "新增": "Create", - "小号图标": "trumpet icon", - "消耗糖果": "consume candy", - "消费总额": "Total consumption", - "新密码": "New Password", - "新人大礼包": "Newbie gift package", - "新增公告": "New announcement", - "小数最多两位小数点": "Decimals up to two decimal points", - "新增标签": "Add new tag", - "新建APP管理员": "Create a new APP administrator", - "新增管理员": "Add new administrator", - "新增规则": "Add new rule", - "新增表情分组": "Added new emoticon grouping", - "新增创建规则": "Add new creation rules", - "新增徽章规则": "Add badge rules", - "新增模版": "Add new template", - "新增家族等级": "Add new family level", - "新增活动": "Add new activity", - "新增空白行": "Add blank lines", - "新增礼物": "Add gift", - "新增描述": "Add description", - "新增家族奖励规则": "Added family reward rules", - "新增货运代理": "Add freight forwarder", - "新增任务": "Add new task", - "新增任务配置": "Add task configuration", - "新增内购产品": "Add in-app purchase products", - "新增资源": "Add new resources", - "新增游戏": "Add new game", - "新增手机型号": "Add new mobile phone model", - "新增属性": "Add new attributes", - "新增商品": "Add new product", - "新增权限": "Add new permissions", - "信息": "information", - "行": "OK", - "行] 碎片价值必须是 1~99999999 的整数": "Row] The fragment value must be an integer from 1 to 99999999", - "行] 库存必须是 -1~99999999 的整数": "Row] Inventory must be an integer between -1~99999999", - "行] 奖品数量必须是 1~99999999 的整数": "Line] The number of prizes must be an integer from 1 to 99999999", - "行动": "action", - "新增BD Lead": "Added BD Lead", - "信息快照": "information snapshot", - "新账号": "new account", - "新增IP": "Add new IP", - "行] 奖品不能为空": "OK] Prize cannot be empty", - "行动/电话小额付": "Mobile/telephone small payment", - "幸运": "Lucky", - "行] 序号必须是 0~99999999 的整数": "Line] The sequence number must be an integer from 0 to 99999999", - "幸运/魔法礼物必须选择规格": "Lucky/magic gifts must select specifications", - "行] 碎片数量必须是 1~99999999 的整数": "Row] The number of fragments must be an integer from 1 to 99999999", - "幸运礼物": "lucky gift", - "幸运规格": "lucky specs", - "幸运抽取金额": "Lucky draw amount", - "幸运礼物规格配置": "Lucky gift specifications", - "幸运礼物抽奖": "Lucky gift draw", - "幸运彩票押注": "Lucky Lottery Betting", - "幸运抽取": "lucky draw", - "幸运礼物规则配置": "Lucky gift rule configuration", - "幸运池": "lucky pool", - "兄弟": "brother", - "性别": "gender", - "修改": "Update", - "幸运礼物奖励": "Lucky gift reward", - "幸运礼物送礼记录": "Lucky gift giving record", - "性别: / 年龄": "Gender: /Age", - "修改/创建人": "Modified/created by", - "幸运礼物金币奖励": "Lucky gift gold coin reward", - "兄弟、姐妹": "brothers, sisters", - "幸运摩天轮奖励-自研": "Lucky Ferris Wheel Rewards-Self-developed", - "幸运摩天轮下注-自研": "Lucky Ferris Wheel Betting-Self-Research", - "修改备注": "Modify remarks", - "修改成功": "Modification successful", - "修改创建规则": "Modify creation rules", - "修改规则": "Modify rules", - "修改标签": "Modify label", - "修改/创建时间": "Modification/creation time", - "修改厂商": "Modify manufacturer", - "修改公告": "Modification notice", - "修改规格会立刻切换新规格和新抽奖数据,是否确定切换": "Modifying the specifications will immediately switch to the new specifications and new lottery data. Are you sure to switch?", - "修改规格会立刻切换新规格和新抽奖数据": "Modifying the specifications will immediately switch to the new specifications and new lottery data.", - "修改角色": "Modify role", - "修改密码": "Change password", - "修改节点": "Modify node", - "修改描述": "Modify description", - "修改人": "Modifier", - "修改家族等级": "Modify family level", - "修改家族奖励规则": "Modify family reward rules", - "修改时间": "modification time", - "修改资料": "Modify information", - "修改应用": "Modify application", - "修改渠道": "Modify channel", - "修改权限": "Modify permissions", - "修改靓号": "Modify the pretty account", - "修改商品": "Modify product", - "修改内购产品": "Modify in-app purchase products", - "修改用户": "Modify user", - "修改资源": "Modify resources", - "需要登录": "Login required", - "选择": "choose", - "序号": "serial number", - "选择类型": "Select type", - "选择日期": "Select date", - "选择时间": "Select time", - "选择文件": "Select file", - "序号越大越靠前": "The larger the serial number, the earlier it is", - "修改BD Leader": "Modify BD Leader", - "选择系统": "Select system", - "需要鉴权": "Authentication required", - "序号必须是 0": "The sequence number must be 0", - "选择文件并导入": "Select file and import", - "选择奖品组": "Select prize group", - "选择道具": "Select props", - "选中": "selected", - "选择资源": "Select resources", - "押注类型": "Bet type", - "选择资源组": "Select resource group", - "押注用户": "Bet on users", - "押注": "bet", - "押注数量": "Bet quantity", - "押注 - 支出 = 余": "Bet - Payout = Remaining", - "选中图": "Select image", - "延迟支付": "late payment", - "邀请用户": "Invite users", - "验证用户收礼物时段必须是主播身份": "Verify that the user must be the anchor during the time period when receiving gifts.", - "邀请用户奖励记录": "Invite user reward record", - "邀请用户奖励": "Invite user rewards", - "养成奖励": "Development rewards", - "验证转换条件": "Verify conversion conditions", - "邀请用户红包抽奖": "Invite users to draw red envelopes", - "邀请的用户首次充值": "The invited user recharges for the first time", - "邀请新用户注册奖励": "Invite new users to register rewards", - "邀请的用户首次充值奖励": "Invited users’ first recharge reward", - "邀请用户日志": "Invite user log", - "邀请用户数量奖励": "Rewards for number of invited users", - "邀请用户注册": "Invite users to register", - "邀请用户注册奖励": "Invite users to register for rewards", - "也可输入区间": "You can also enter a range", - "邀请用户配置": "Invite user configuration", - "业务场景": "business scenario", - "业务类型": "Business type", - "业务内容": "Business content", - "一个用户最多可查看广告": "A user can view ads at most", - "邀请用户每笔充值奖励百分比": "Reward percentage for each recharge made by inviting users", - "一个系统只能有一条创建家族规则": "A system can only have one creation family rule", - "邀请用户首次充值奖励": "Rewards for inviting users to recharge for the first time", - "一个系统只能有三条家族每周奖励规则": "A system can only have three family weekly reward rules", - "一旦开启日结模式后将停止使用月结工资": "Once the daily settlement mode is enabled, the use of monthly wages will be stopped.", - "移除": "Remove", - "一周玩游戏天数": "Game playing days per week", - "一周内完成天数": "Number of days completed in a week", - "业务CODE": "Business CODE", - "业务命令匹配": "Business command matching", - "一批最多 15 个": "Maximum 15 in one batch", - "已处理": "Processed", - "移除管理": "Remove management", - "移除/拉黑成员": "Remove/block members", - "已处理退款": "Refund processed", - "已出账": "Account has been issued", - "移除 / 拉黑成员": "Remove/block members", - "移除不活跃成员": "Remove inactive members", - "已处理退款, 抽成没有可退": "Refund has been processed, the commission is not refundable", - "已勾选": "checked", - "已发布": "Published", - "已复制": "Copied", - "已结束": "ended", - "已加载全部": "All loaded", - "已开始": "Started", - "已匹配": "Matched", - "已领取": "Received", - "已清空": "Cleared", - "已收回": "Received", - "已抢完": "Already grabbed", - "已售出": "sold", - "已结算": "Settled", - "已勾选了": "Already checked", - "已兑换钻石": "Exchanged for diamonds", - "已经加载全部": "All have been loaded", - "音乐": "music", - "意见反馈": "Feedback", - "译文": "translation", - "已授权卖家数量": "Number of authorized sellers", - "银行": "bank", - "银行卡": "bank card", - "银行柜台": "bank counter", - "已有用户的碎片数据会同步受影响": "Fragmented data of existing users will be affected simultaneously", - "银行卡转账": "Bank card transfer", - "银行类型": "Bank type", - "异常订单": "Abnormal orders", - "银行卡兑换": "Bank card exchange", - "已消耗": "Consumed", - "已重置": "Reset", - "印尼语": "Indonesian", - "印地语": "Hindi", - "银行卡信息不正确等待核实": "The bank card information is incorrect and awaiting verification.", - "应用": "application", - "银行钱包兑换金币比例": "Bank wallet exchange gold coin ratio", - "银行钱包工资钻石兑换金币比例": "Ratio of bank wallet salary diamonds to gold coins", - "应用管理": "Application management", - "应用列表": "Application list", - "英语": "English", - "盈亏": "Profit and loss", - "印度独立日": "indian independence day", - "银行虚拟账号": "Bank virtual account", - "英文国家名称": "English country name", - "盈利金币数": "Number of profitable gold coins", - "应收工资用户": "Payroll Receivable User", - "盈利率": "Profit rate", - "用户": "user", - "永久": "permanent", - "银行钱包工资钻石兑换美金比例": "Ratio of bank wallet salary diamonds to US dollars", - "映射路径": "Mapping path", - "用户-成就徽章": "User-Achievement Badge", - "盈利轮数": "Number of profit rounds", - "永远展示": "always show", - "永久麦位价格": "Permanent wheat position price", - "用户-表情包": "User-emoticon package", - "用户当天发送动态数量达到限制后": "After the number of updates sent by the user on the same day reaches the limit,", - "用户充值抽奖活动奖励": "User recharge lottery rewards", - "用户当天发送动态数量达到限制后,继续发送每条动态支付多少金币": "After the number of updates sent by the user on the same day reaches the limit, how many gold coins will be paid for each update that the user continues to send?", - "用户-徽章": "User-Badge", - "用户-管理员": "User-Administrator", - "用户1V1": "User 1V1", - "用户-活动徽章": "User-Activity Badge", - "用户:数据分配图": "User: Data Distribution Map", - "用户管理": "User management", - "用户活动领奖记录": "User activity award records", - "用户个性签名审批": "User personalized signature approval", - "用户房间区域变动": "User room area changes", - "用户观看广告配置": "User viewing ad configuration", - "用户徽章": "User badge", - "用户道具流水": "User props flow", - "用户动态": "User news", - "用户目标": "user goals", - "用户列表": "User list", - "用户昵称": "User nickname", - "用户名称": "Username", - "用户亏钱连击次数不能小于0": "The number of times the user loses money in combos cannot be less than 0", - "用户特殊关系卡退款": "User special relationship card refund", - "用户申请靓号记录": "User application for pretty account record", - "用户签到": "User sign-in", - "用户首次充值奖励": "User’s first recharge reward", - "用户亏钱连击次数": "Number of consecutive hits where the user lost money", - "用户令牌解析": "User token parsing", - "用户来自不同系统": "Users come from different systems", - "用户头像": "User avatar", - "用户详情": "User details", - "用户信息": "User information", - "用户退款": "User refund", - "用户银行流水": "User bank statement", - "用户提交": "User Submissions", - "用户银行卡审批": "User bank card approval", - "用户银行金币兑换申请": "User bank gold coin exchange application", - "用户银行卡提现钻石申请": "User bank card diamond withdrawal application", - "用户银行卡提现现金申请": "User bank card cash withdrawal application", - "用户银行卡钻石兑换金币申请": "User bank card diamond exchange application for gold coins", - "用户账号": "User account", - "用户银行账户": "User bank account", - "用户银行账户流水": "User bank account flow", - "用户长id": "User long id", - "用户友谊卡配置": "User friendship card configuration", - "用户id": "user id", - "用户ID": "User ID", - "用户账户调换": "User account swap", - "用户钻石流水列表": "User diamond turnover list", - "用英语逗号分割": "separated by commas", - "用户钻石余额列表": "User diamond balance list", - "用户支出糖果数": "Number of candies spent by users", - "用于处理审核": "used to process reviews", - "用户最新设备列表": "User's latest device list", - "用户长ID": "User long ID", - "用户ID和国家不能为空": "User ID and country cannot be empty", - "游客": "tourists", - "邮箱": "Mail", - "游客发消息": "Visitors send messages", - "游戏": "game", - "游戏分类": "Game classification", - "游客上麦": "Tourists come to Mai", - "游戏类型": "game type", - "用于处理审核、运营、配置和数据管理任务": "For handling auditing, operations, configuration and data management tasks", - "由于您被其他用户多次合理举报,且经平台审查属实。现对您发出警告,请下次务必注意言行,避免账号被冻结或者封禁": "Because you have been reasonably reported multiple times by other users, and it has been verified by the platform. We are now giving you a warning. Please be careful about your words and deeds next time to avoid your account being frozen or banned.", - "游戏模式": "game mode", - "游戏列表": "Game list", - "由于您被其他用户多次合理举报": "Because you have been reasonably reported multiple times by other users", - "游戏等级": "game level", - "游戏连赢轮数": "Number of rounds won in a row", - "游戏编号": "game number", - "游戏抽成": "game commission", - "游戏里程碑": "Game Milestones", - "游戏胜利": "game victory", - "游戏玩家": "gamer", - "游戏王": "Yu-Gi-Oh!", - "游戏券收支": "Game ticket income and expenditure", - "游戏券收支记录": "Game ticket income and expenditure records", - "游戏退还": "Game return", - "游戏券": "game coupons", - "游戏券数量": "Number of game tickets", - "游戏未开始超时": "Game timed out before starting", - "游戏源": "game source", - "游戏王奖励": "Yu-Gi-Oh Rewards", - "游戏王荣誉奖励": "Yu-Gi-Oh Honor Award", - "游戏王徽章奖励": "Yu-Gi-Oh Badge Reward", - "游戏已开始,全部掉线后,解散": "The game has started and will be dismissed after all players are disconnected.", - "游戏未开始超时,解散": "The game timed out before it started and was dismissed.", - "游戏状态": "game state", - "有效": "efficient", - "游戏源和客户端": "Game sources and clients", - "游戏已开始": "Game has started", - "有效范围0~100": "Valid range 0~100", - "游戏之王": "king of games", - "游戏ID": "Game ID", - "有效范围0": "Valid range 0", - "有效期": "Validity period", - "幼年": "childhood", - "有效天数": "Valid days", - "余": "Remain", - "余额": "balance", - "游戏中中奖披萨或蔬菜需达到的次数": "The number of times you need to win pizza or vegetables in the game", - "语言": "language", - "游戏中中奖某奖项需达到的次数": "The number of times required to win a certain prize in the game", - "有效天": "Valid days", - "语聊": "chat", - "原始密码": "original password", - "原始用户认证信息没找到": "Original user authentication information not found", - "有效天(当天满60分钟计有效": "Valid days (valid for 60 minutes on the same day)", - "原始ID和目标ID不能为空": "Original ID and target ID cannot be empty", - "原始用户没有找到": "Original user not found", - "语聊房": "chat room", - "语音厅": "Voice Hall", - "预付费卡": "prepaid card", - "原始ID": "Original ID", - "月": "moon", - "原因": "reason", - "原项目这里编辑的是模版 `indexTree` 结构": "What is edited here in the original project is the template `indexTree` structure.", - "原项目这里直接维护完整转盘配置结构": "The complete turntable configuration structure is directly maintained here in the original project.", - "原项目这里编辑的是模版": "The template is edited here in the original project.", - "允许钱包兑换金币": "Allow wallets to redeem gold coins", - "允许使用钱包": "Wallet allowed", - "月结模式": "Monthly settlement mode", - "允许钱包转账": "Allow wallet transfers", - "月销售总额": "Total monthly sales", - "运行": "run", - "运营": "operations", - "越大越靠前": "The bigger it is, the closer it is to the front", - "允许钱包提现": "Allow wallet withdrawals", - "运营管理": "operations management", - "允许使用钱包“兑换金币”功能(显示兑换金币按钮": "Allow the use of the wallet's \"Exchange Gold Coins\" function (display the Redeem Gold Coins button", - "运营商计费": "Carrier billing", - "允许提现": "Withdrawal allowed", - "运行次数": "Number of runs", - "在线": "online", - "允许使用钱包“转账”功能(显示转账按钮": "Allow the use of wallet \"transfer\" function (display transfer button", - "在区域钱包关闭情况下,代理角色能使用钱包": "When the regional wallet is closed, the agent role can use the wallet", - "砸金蛋": "Smash the golden egg", - "在线(Hour": "Online (Hour", - "在线成员": "online members", - "暂无动态": "No news yet", - "在区域钱包关闭情况下": "When the regional wallet is closed", - "再在这里创建活动并关联模版": "Then create an activity here and associate it with the template", - "暂无可复制内容": "No content to copy yet", - "暂无道具配置": "No props configuration yet", - "暂无购买记录": "No purchase record yet", - "暂无备注": "No remarks yet", - "暂无查看权限": "No viewing permission yet", - "在线房间": "online room", - "暂无联系方式": "No contact information yet", - "暂无日志": "No logs yet", - "暂无可展示渠道": "There is currently no display channel", - "暂无上传记录": "No upload record yet", - "暂无凭证": "No voucher yet", - "暂无历史政策": "No historical policy yet", - "暂无内部备注": "No internal remarks yet", - "暂无可选资源": "No resources available yet", - "暂无申请记录": "No application record yet", - "暂无数据": "No data yet", - "暂无应用数据": "No application data yet", - "暂无审批记录": "No approval record yet", - "暂无在线房间": "There are no online rooms yet", - "暂无通知记录": "No notification record yet", - "暂无在线成员": "No online members yet", - "暂无身份信息": "No identifying information yet", - "暂无政策数据": "No policy data yet", - "暂无账单详情": "No bill details yet", - "暂无照片墙": "No photo wall yet", - "暂无用户ID": "No user ID yet", - "早安": "Good morning", - "赠送": "give away", - "早安, ,欢迎进入数据平台": "Good morning, , welcome to the data platform", - "赠送车辆-金币": "Complimentary vehicle-gold coins", - "则不发佣金": "No commission will be paid", - "增加子级BD": "Add child BD", - "赠送成功": "Gift successfully", - "赠送车辆": "Free vehicle", - "赠送道具": "Gift props", - "增加行": "add row", - "赠送/扣除": "Gift/Deduction", - "赠送礼物": "give a gift", - "赠送道具主题-金币": "Gift prop theme-gold coins", - "赠送聊天气泡-金币": "Free chat bubble-gold coins", - "赠送聊天气泡-钻石": "Free chat bubble-diamond", - "赠送道具券": "Gift coupons for props", - "赠送徽章": "Give away a badge", - "赠送靓号-金币": "Complimentary account-gold coins", - "赠送红包封面": "Free red envelope cover", - "赠送贵族VIP-金币": "Give away noble VIP-gold coins", - "赠送周星礼物最低限额": "Minimum limit for giving Zhouxing gifts", - "赠送用户特殊关系卡": "Give users a special relationship card", - "赠送头像框-金币": "Free avatar frame-gold coins", - "赠送装扮-金币": "Free decoration-gold coins", - "赠送主题-钻石": "Gift theme-Diamond", - "赠送头像框-钻石": "Free avatar frame - diamond", - "赠送装扮": "Free decoration", - "诈骗": "Scam", - "炸金花": "Fried Golden Flower", - "展示次数": "Impressions", - "站外": "Outside the site", - "长ID": "Long ID", - "展示顺序": "Display order", - "展示位": "Display booth", - "斋月活动": "Ramadan activities", - "展示权重": "display weight", - "炸金花游戏": "Fried Golden Flower Game", - "账单": "bill", - "长时间未处理申请消息": "Application message not processed for a long time", - "账单进行了核实,并支付成功的": "The bill was verified and paid successfully", - "长时间未处理申请消息,自动退出": "If the application message has not been processed for a long time, it will automatically exit.", - "账单信息": "Billing Information", - "账单标题": "Bill title", - "账单兑换金币": "Exchange bills for gold coins", - "账单列表": "Bill list", - "长UID": "long UID", - "账单归属": "Bill attribution", - "账单进行了核实": "The bill was verified", - "账号": "account", - "账号日志": "Account log", - "账户": "Account", - "账单ID": "Billing ID", - "账号类型": "Account type", - "账号处理": "Account processing", - "账号解封": "Account unblocked", - "账单状态": "bill status", - "正常": "Normal", - "账号处理记录": "Account processing records", - "真实": "reality", - "正常的": "normal", - "政策": "policy", - "照片墙审核": "Photo wall review", - "照片墙": "photo wall", - "争霸赛": "Tournament", - "折扣率": "discount rate", - "正常结算": "Normal settlement", - "政策: Lv": "Policy: Lv", - "支付方式": "Payment method", - "支付成功": "Payment successful", - "支出": "expenditure", - "这里保持原项目保存的完整数据结构": "The complete data structure saved in the original project is maintained here.", - "政策类型": "policy type", - "支出金币": "Spend gold coins", - "政策等级": "policy level", - "支付金币": "Pay gold coins", - "支付厂商": "Payment Vendor", - "支付链接": "Payment link", - "支付工资模式": "Salary payment model", - "支付链接已复制": "Payment link has been copied", - "知己": "confidant", - "支付失败": "Payment failed", - "支付渠道": "payment channel", - "执行成功": "Executed successfully", - "支付平台": "Payment platform", - "执行时间": "Execution time", - "直径": "diameter", - "值": "value", - "止": "end", - "只读": "read only", - "置顶": "pin to top", - "只支持 img、svga、svg、apk,apk 不可超过 M,其他文件不可超过 M": "Only supports img, svga, svg, apk, apk cannot exceed M, other files cannot exceed M", - "只支持 img": "Only supports img", - "只查下注局": "Only check betting games", - "执行处罚": "Execute penalties", - "直播积分": "Live points", - "支付区域关系": "Payment area relationship", - "置顶区域": "pinned area", - "中号图标": "medium icon", - "中奖类型": "Winning type", - "置顶权重": "Top weight", - "置顶房间": "Top room", - "重置": "Reset", - "中奖礼物": "winning gift", - "中奖碎片": "Winning Shards", - "中奖概率": "Probability of winning", - "重置成功": "Reset successful", - "重传": "retransmit", - "中文": "Chinese", - "重置密码": "reset password", - "周": "week", - "周期": "cycle", - "周星": "Zhou Xing", - "重置目标": "reset target", - "重新运行": "Rerun", - "周任务全完成": "Weekly tasks completed", - "重置提现": "Reset withdrawals", - "中文备注": "Chinese remarks", - "主播": "Anchor", - "周星正常运行切换最少需要配置 3 组礼物": "Zhouxing needs to configure at least 3 sets of gifts for normal operation switching.", - "周星奖励": "Weekly Star Award", - "周争霸赛": "Weekly Contest", - "周星礼物": "Zhouxing gift", - "朱偏右 回复了你": "Zhu Qianyou replied to you", - "主播工资": "Anchor salary", - "主播代理": "Anchor agent", - "周一至周日": "Monday to Sunday", - "主播工资结算代理钱包": "Anchor salary settlement agent wallet", - "主播日积分奖励": "Anchor daily points reward", - "主播信息": "Anchor information", - "主播申请解约": "Anchor applies for termination of contract", - "主播取消申请解约": "Anchor cancels application for contract termination", - "主播解约费": "Anchor termination fee", - "主播工作": "anchor job", - "主播解约费(金币": "Anchor termination fee (gold coins", - "注册奖励": "Sign up bonus", - "主题": "theme", - "注册来源": "Registration source", - "主题背景": "theme background", - "主播月积分奖励": "Anchor monthly points reward", - "注册时间": "Registration time", - "主播ID": "Anchor ID", - "注销": "Log out", - "注册信息": "Registration information", - "注意": "Notice", - "注册来源OpenId不一致": "Registration source OpenId is inconsistent", - "注册平台": "Registration platform", - "注册数量": "Number of registrations", - "注册IP": "Register IP", - "主播钻石工资": "Anchor Diamond Salary", - "注销用户恢复": "Logout user recovery", - "注意: 当前重置目标将计算到最新未结算账单(更细的操作将在后期完善": "Note: The current reset target will be calculated to the latest unsettled bill (more detailed operations will be completed later)", - "注意: 可查看数据为最近1年内的数据": "Note: The data that can be viewed is the data within the last 1 year.", - "专属礼物归属人": "Exclusive gift owner", - "专属礼物": "Exclusive gift", - "注意: 每条数据的生命周期30天, 30天后记录将会永久清理": "Note: The life cycle of each piece of data is 30 days. After 30 days, the records will be permanently cleared.", - "注意!! 切换到【不同区域】代理团队名下: 该主播相关目标工作都将删除,请谨慎操作": "Attention!! Switch to [different region] under the name of the agency team: all the target work related to the anchor will be deleted, please operate with caution", - "注意!! 切换到【相同区域】代理团队名下: 该主播没有结算前更换代理团队, 相关目标工作都会同步到新团队": "Attention!! Switch to the name of the agent team in [Same Region]: The anchor has not changed the agent team before settlement, and the relevant target work will be synchronized to the new team.", - "注意: 每条数据的生命周期30天, 30天后记录将会清理": "Note: The life cycle of each piece of data is 30 days, and the records will be cleared after 30 days.", - "注意:周星正常运行切换最少需要配置 3 组礼物": "Note: Normal operation switching of Zhouxing requires at least 3 sets of gifts to be configured.", - "转账": "transfer", - "装扮": "dress up", - "状态": "state", - "赚取的佣金比例(单位": "Commission rate earned (units", - "转账金币": "Transfer gold coins", - "砖石兑换金币": "Exchange bricks and stones for gold coins", - "转盘游戏": "Roulette game", - "赚取的佣金比例": "Commission percentage earned", - "转账凭证": "Transfer voucher", - "状态描述": "Status description", - "转账凭证: 结算人员发送美元或其他币种后的记录凭证截图": "Transfer Voucher: Screenshot of the record voucher after the settlement staff sends US dollars or other currencies", - "资源": "resource", - "资源管理": "Resource management", - "资源类型": "Resource type", - "资源名称": "Resource name", - "资料卡": "data card", - "资源信息": "Resource information", - "资源配置": "Resource allocation", - "资料详情": "Information details", - "资源已刷新": "The resource has been refreshed", - "资源图": "resource map", - "资源名": "Resource name", - "状态已更新": "Status updated", - "资源组": "resource group", - "子爵": "Viscount", - "字段": "Field", - "自定义": "Customize", - "自定义(只读": "Custom (read-only", - "资源组 ID": "Resource group ID", - "资源组ID": "Resource group ID", - "资源组已关联": "Resource group is associated", - "资源ID": "Resource ID", - "资源组配置": "Resource group configuration", - "资源组已更新": "Resource group updated", - "自定义名人堂": "Custom Hall of Fame", - "自己": "Own", - "自定义属性": "Custom properties", - "自动发放工资凭据": "Automatically issue salary vouchers", - "自定义主题": "Custom theme", - "自动发送工资详情": "Automatically send salary details", - "自动退出": "Automatically exit", - "自研游戏Code": "Self-developed game code", - "总额": "lump sum", - "总计": "total", - "自己购买或朋友赠送": "Buy it yourself or give it to a friend", - "总额数量": "Total quantity", - "总贡献值": "Total contribution value", - "总签数": "Total number of signatures", - "族长": "patriarch", - "总人数": "total number of people", - "总钻石工资": "total diamond salary", - "总签数必须大于0": "The total number of signatures must be greater than 0", - "总工资": "total salary", - "钻石": "diamond", - "钻石打卡": "Diamond punch card", - "钻石兑换金币比例": "Diamond exchange gold coin ratio", - "钻石购买VIP-赠送": "Diamond purchase VIP-gift", - "钻石兑换金币": "Exchange diamonds for gold coins", - "钻石奖励": "diamond reward", - "钻石购买VIP": "Diamond Purchase VIP", - "钻石购买-道具-赠送": "Diamond Purchase-Props-Gift", - "钻石购买-道具-自己用": "Diamond purchase-props-for your own use", - "钻石起兑最小数量": "Minimum quantity of diamonds to redeem", - "钻石钱包设置": "Diamond wallet settings", - "最大额度": "Maximum amount", - "钻石政策": "diamond policy", - "钻石余额": "Diamond balance", - "钻石扣除": "diamond deduction", - "最大成员数": "Maximum number of members", - "最大成员数量": "Maximum number of members", - "最多200个字": "Maximum 200 words", - "最多5位小数": "Up to 5 decimal places", - "最多输入200字": "Enter up to 200 words", - "最大管理员数": "Maximum number of administrators", - "最多输入500字": "Enter up to 500 words", - "最多授权卖家数量": "Maximum number of authorized sellers", - "最大限额": "maximum limit", - "最低财富等级": "lowest wealth level", - "最多填写两个userId(用户长id),用英语逗号分割": "Fill in at most two userIds (user long id), separated by English commas", - "最多填写两个userId": "Fill in at most two userIds", - "最近12小时": "Last 12 hours", - "最近处理人": "Recent handler", - "最近6小时": "Last 6 hours", - "最近登录IP": "Recently logged in IP", - "最近操作用户": "Recently operated users", - "最近2小时": "Last 2 hours", - "最近一天": "last day", - "最近一周": "last week", - "最小额度": "Minimum amount", - "最近三个月": "last three months", - "最新审核状态": "Latest review status", - "尊贵麦位": "Noble wheat position", - "最近活跃": "Recently active", - "最小限额": "minimum limit", - "最近一个月": "last month", - "最终系统保存为大写": "The final system saves it as uppercase", - "座驾": "car", - "座位": "seat", - "Android资源": "Android resources", - "API内容属性": "API content attributes", - "alert图": "alert diagram", - "API参数签名": "API parameter signature", - "Alias Method分析": "Alias ​​MethodAnalysis", - "Android链接": "Android link", - "apk 不可超过": "apk cannot exceed", - "actionType === 'send' ? '发送' : '扣除": "actionType === 'send' ? 'Send' : 'Deduct", - "App启动页": "App start page", - "ATM线上": "ATM online", - "App版本": "App version", - "App系统管理": "App system management", - "App订单ID": "App order ID", - "app类型": "app type", - "APP管理员": "APP administrator", - "AUTO-代理代收": "AUTO-Agency collection", - "AUTO-扣除代理": "AUTO-Deduction Agent", - "ATM线下": "ATM offline", - "AUTO-扣除代理代收": "AUTO-Deduction agency collection", - "AUTO-主播结算": "AUTO-anchor settlement", - "AUTO-扣除主播": "AUTO-deduct anchor", - "AUTO-代理结算": "AUTO-Agency settlement", - "badgeForm.id ? '编辑徽章规则' : '新增徽章规则": "badgeForm.id ? 'Edit badge rules' : 'Add badge rules", - "banner封面": "banner cover", - "BD Leader 用户ID": "BD Leader User ID", - "BD Leader用户ID": "BD Leader user ID", - "banner小图": "banner thumbnail", - "BD数量": "BD quantity", - "BD列表": "BD list", - "BD关系等所有": "BD relationships and all", - "BigWin图标(含": "BigWin icon (including", - "bool可选值 true": "bool optional value true", - "BigWin图标(止": "BigWin icon (only", - "bool可选值 true/false": "bool optional value true/false", - "CLIPSPAY-进货": "CLIPSPAY-Restock", - "BigWin图标": "BigWin icon", - "cp奖励": "cp reward", - "Club聊天": "Club Chat", - "CP空间祝福": "CP space blessing", - "CP组建": "CP formation", - "CP申请": "CP application", - "cp礼物互赠消耗": "cp gift exchange consumption", - "CP奖励": "CP reward", - "CP礼物": "CP gift", - "createType === 'IP' ? '如: 127.0.0.1 或 127.0.0' : '请输入手机型号,最终系统保存为大写": "createType === 'IP' ? 'For example: 127.0.0.1 or 127.0.0' : 'Please enter the mobile phone model, and the final system will save it in uppercase", - "createType === 'IP' ? '新增IP' : '新增手机型号": "createType === 'IP' ? 'Add IP' : 'Add mobile phone model", - "createType === 'IP' ? 'IP' : '手机型号": "createType === 'IP' ? 'IP' : 'Mobile phone model", - "double范围0~99999小数最多两位": "double range 0~99999 up to two decimal places", - "en 多个使用英文逗号分隔": "en multiples are separated by commas", - "form.id ? '修改创建规则' : '新增创建规则": "form.id ? 'Modify creation rules' : 'Add new creation rules", - "form.id ? '编辑表情分组' : '新增表情分组": "form.id ? 'Edit expression group' : 'Add expression group", - "form.id ? '编辑任务配置' : '新增任务配置": "form.id ? 'Edit task configuration' : 'Add task configuration", - "double范围0": "doublerange0", - "form.id ? '修改' : '新增": "form.id ? 'Modify' : 'Add", - "form.id ? '修改' : '添加": "form.id ? 'Modify' : 'Add", - "form.id ? '修改厂商' : '添加厂商": "form.id ? 'Modify manufacturer' : 'Add manufacturer", - "form.id ? '编辑游戏' : '新增游戏": "form.id ? 'Edit game' : 'Add game", - "form.id ? '修改内购产品' : '新增内购产品": "form.id ? 'Modify in-app purchase product' : 'Add in-app purchase product", - "form.id ? '修改家族等级' : '新增家族等级": "form.id ? 'Modify family level' : 'Add family level", - "form.id ? '修改家族奖励规则' : '新增家族奖励规则": "form.id ? 'Modify family reward rules' : 'Add family reward rules", - "form.id ? '修改渠道' : '添加渠道": "form.id ? 'Modify channel' : 'Add channel", - "form.id ? '修改权限' : '新增权限": "form.id ? 'Modify permissions' : 'Add new permissions", - "form.id ? '修改公告' : '新增公告": "form.id ? 'Modify announcement' : 'Add new announcement", - "form.id ? `修改( )` : `添加": "form.id ? `Modify( )` : `Add", - "form.id ? `修改( )` : `新增": "form.id ? `Modify()` : `Add", - "IM通讯": "IM communication", - "IM用户名": "IM username", - "ID变更": "ID change", - "IM账号管理": "IM account management", - "Hkys第三方游戏": "Hkys third party games", - "gameType 不能为空": "gameType cannot be empty", - "form.taskType === 'WEEK_COMPETITION' ? '排行榜前几' : '数值": "form.taskType === 'WEEK_COMPETITION' ? 'Top numbers in the ranking' : 'Value", - "indexTree 必须是数组": "indexTree must be an array", - "IN 多个使用英文逗号分隔": "Use commas to separate multiple IN", - "isAdd ? '创建角色' : '修改角色": "isAdd ? 'Create role' : 'Modify role", - "int范围0": "int range 0", - "iOS链接": "iOS link", - "iOS资源": "iOS resources", - "int范围0~99999": "int range 0~99999", - "JSON 读写": "JSON reading and writing", - "JSON 格式不正确": "JSON format is incorrect", - "King国王王后": "KingKingQueen", - "isAdd ? '创建用户' : '修改用户": "isAdd ? 'Create user' : 'Modify user", - "isEditing ? '修改' : '添加": "isEditing ? 'Modify' : 'Add", - "isEditing ? '修改' : '新增": "isEditing ? 'Modify' : 'Add", - "isBadgeRewardType(draft.type) ? '请输入天数,0 表示永久' : '请输入数量/天数": "isBadgeRewardType(draft.type) ? 'Please enter the number of days, 0 means permanent' : 'Please enter the quantity/number of days", - "ktv表情": "ktv expression", - "Lucky抽取": "Lucky extraction", - "KTV表情": "KTV expression", - "live图": "live picture", - "LuckyBox抽奖记录": "LuckyBox lottery record", - "Lucky抽": "Lucky smokes", - "Lucky Box & 幸运抽奖": "Lucky Box & Lucky Draw", - "Likei在线": "LikeiOnline", - "KTV游戏每周榜单奖励": "KTV game weekly list rewards", - "LUDO游戏退款": "LUDO game refund", - "LUDO胜利": "LUDO Victory", - "LUDO退款": "LUDO refund", - "LUDO游戏": "LUDO games", - "pag 资源": "pag resources", - "Payoneer-进货": "Payoneer-Restock", - "MVP用户": "MVP user", - "Ludo飞行棋": "Ludo flying chess", - "PK记录": "PK record", - "ratio范围0~10": "ratio range 0~10", - "Redis操作": "Redis operation", - "Push标题": "Push title", - "Paypal-进货": "Paypal-Restock", - "ratio范围0": "ratio range 0", - "Push内容": "Push content", - "range使用": "range use", - "range使用 ~ 分割两侧数值范围0~99999": "range uses ~ to split the numerical range 0~99999 on both sides", - "row?.config?.id row?.id ? (isClose ? '查看活动' : '编辑活动') : '新增活动": "row?.config?.id row?.id ? (isClose ? 'View Activities' : 'Edit Activities') : 'Add Activities", - "Redis缓存管理": "Redis cache management", - "sud游戏退款": "sud game refund", - "string类型异常": "string type exception", - "Socket测试": "Socket test", - "sud游戏获胜奖励": "sud game winning rewards", - "showExpandUpload ? 'iOS资源' : '资源": "showExpandUpload ? 'iOS Resources' : 'Resources", - "rewardConfigList 概率总和必须等于 1": "The sum of rewardConfigList probabilities must equal 1", - "SuperWin图标": "SuperWin icon", - "sud游戏退款平局": "sud game refund draw", - "SuperWin图标(止": "SuperWin icon (only", - "Tab分组": "Tab grouping", - "SuperWin图标(含": "SuperWin icon (including", - "SVIP礼物": "SVIP gift", - "SVIP奖励": "SVIP rewards", - "taskForm.id ? '编辑任务' : '新增任务": "taskForm.id ? 'Edit task' : 'Add new task", - "tips.milestone '里程碑": "tips.milestone 'Milestone", - "tips.mediumIcon '中号图标": "tips.mediumIcon 'Medium icon", - "T人日志": "T person's diary", - "tips.mark '标识": "tips.mark 'logo", - "tips.quantity '数量": "tips.quantity 'Quantity", - "tips.level '等级": "tips.level 'Level", - "VIP等级": "VIP level", - "tips.smallIcon '小号图标": "tips.smallIcon 'Small icon", - "tips.sourceUrl '动画资源图": "tips.sourceUrl 'Animation resource map", - "VIP权益": "VIP benefits", - "Win图标": "Win icon", - "VIP类型": "VIP type", - "WEB端购买": "Purchase via WEB", - "UID不存在": "UID does not exist", - "USDT-进货": "USDT-Restock", - "Win图标(含": "Win icon (including", - "Win图标(止": "Win icon (stop", - "开启": "Enabled", - "启用": "Enabled", - "确认": "Confirm" -} diff --git a/apps/src/locales/langs/zh-CN/runtime.json b/apps/src/locales/langs/zh-CN/runtime.json index 29992b3..ee2c4db 100644 --- a/apps/src/locales/langs/zh-CN/runtime.json +++ b/apps/src/locales/langs/zh-CN/runtime.json @@ -107,7 +107,6 @@ "编辑应用": "编辑应用", "编辑用户": "编辑用户", "编辑游戏": "编辑游戏", - "编辑置顶动态": "编辑置顶动态", "编辑资料": "编辑资料", "编辑资源": "编辑资源", "编码": "编码", @@ -161,7 +160,6 @@ "不允许跨年查询": "不允许跨年查询", "不在预计状态内": "不在预计状态内", "财富": "财富", - "财富、魅力等级多少级才能发布动态": "财富、魅力等级多少级才能发布动态", "财富等级": "财富等级", "菜单": "菜单", "菜单编辑": "菜单编辑", @@ -223,7 +221,6 @@ "超级货运": "超级货运", "超级经销商": "超级经销商", "超商条码": "超商条码", - "超限制发动态支付金币": "超限制发动态支付金币", "朝拜": "朝拜", "朝拜描述": "朝拜描述", "车辆": "车辆", @@ -443,13 +440,6 @@ "动画": "动画", "动画资源": "动画资源", "动画资源图": "动画资源图", - "动态-禁止用户发动态": "动态-禁止用户发动态", - "动态管理": "动态管理", - "动态举报审批": "动态举报审批", - "动态内容": "动态内容", - "动态内容审批": "动态内容审批", - "动态数量": "动态数量", - "动态图片": "动态图片", "动效": "动效", "冻结": "冻结", "豆子": "豆子", @@ -856,7 +846,6 @@ "几时": "几时", "记录数": "记录数", "记录ID": "记录ID", - "继续发送每条动态支付多少金币": "继续发送每条动态支付多少金币", "加入": "加入", "加入成员金币": "加入成员金币", "加入房间": "加入房间", @@ -1198,7 +1187,6 @@ "美元": "美元", "美元汇率": "美元汇率", "魅力等级": "魅力等级", - "魅力等级多少级才能发布动态": "魅力等级多少级才能发布动态", "门票": "门票", "密码": "密码", "密码不能少于4位": "密码不能少于4位", @@ -1700,7 +1688,6 @@ "确认审核选中记录吗": "确认审核选中记录吗", "确认选择": "确认选择", "热门": "热门", - "热门动态权重计分设置": "热门动态权重计分设置", "热门房间": "热门房间", "人": "人", "人身攻击": "人身攻击", @@ -2347,10 +2334,7 @@ "用户:数据分配图": "用户:数据分配图", "用户1V1": "用户1V1", "用户充值抽奖活动奖励": "用户充值抽奖活动奖励", - "用户当天发送动态数量达到限制后": "用户当天发送动态数量达到限制后", - "用户当天发送动态数量达到限制后,继续发送每条动态支付多少金币": "用户当天发送动态数量达到限制后,继续发送每条动态支付多少金币", "用户道具流水": "用户道具流水", - "用户动态": "用户动态", "用户房间区域变动": "用户房间区域变动", "用户个性签名审批": "用户个性签名审批", "用户观看广告配置": "用户观看广告配置", @@ -2486,7 +2470,6 @@ "暂无备注": "暂无备注", "暂无查看权限": "暂无查看权限", "暂无道具配置": "暂无道具配置", - "暂无动态": "暂无动态", "暂无购买记录": "暂无购买记录", "暂无可复制内容": "暂无可复制内容", "暂无可选资源": "暂无可选资源", diff --git a/apps/src/locales/runtime.ts b/apps/src/locales/runtime.ts deleted file mode 100644 index 1a99b9e..0000000 --- a/apps/src/locales/runtime.ts +++ /dev/null @@ -1,267 +0,0 @@ -import { nextTick, watch } from 'vue'; - -import { i18n } from '@vben/locales'; - -const CHINESE_RE = /[\u3400-\u9fff]/; -const SKIP_ATTRIBUTE_SELECTOR = - '[data-no-runtime-locale], .ace_editor, .monaco-editor, noscript, script, style'; -const SKIP_TEXT_SELECTOR = `${SKIP_ATTRIBUTE_SELECTOR}, [contenteditable="true"], code, pre`; -const TRANSLATABLE_ATTRIBUTES = [ - 'alt', - 'aria-label', - 'placeholder', - 'title', -] as const; - -const elementOriginals = new WeakMap>(); -const textOriginals = new WeakMap(); - -let initialized = false; -let observer: MutationObserver | undefined; -let runtimeMatcherCache: - | { - dict: Record; - locale: string; - pattern?: RegExp; - } - | undefined; - -function escapeRegExp(text: string) { - return text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); -} - -function getRuntimeDictionary(locale: string) { - const messages = i18n.global.getLocaleMessage(locale) as Record; - const dictionary: Record = {}; - - for (const [key, value] of Object.entries(messages)) { - if (typeof value === 'string' && CHINESE_RE.test(key)) { - dictionary[key] = value; - } - } - - return dictionary; -} - -function getRuntimeMatcher(locale: string) { - if (runtimeMatcherCache?.locale === locale) { - return runtimeMatcherCache; - } - - const dict = locale === 'en-US' ? getRuntimeDictionary(locale) : {}; - const keys = Object.keys(dict).sort((left, right) => right.length - left.length); - - runtimeMatcherCache = { - dict, - locale, - pattern: - keys.length > 0 - ? new RegExp(keys.map((key) => escapeRegExp(key)).join('|'), 'g') - : undefined, - }; - - return runtimeMatcherCache; -} - -function getElementOriginalMap(element: Element) { - let originalMap = elementOriginals.get(element); - - if (!originalMap) { - originalMap = new Map(); - elementOriginals.set(element, originalMap); - } - - return originalMap; -} - -function shouldSkipElement(element: Element) { - return element.matches(SKIP_ATTRIBUTE_SELECTOR) || !!element.closest(SKIP_ATTRIBUTE_SELECTOR); -} - -function shouldSkipTextNode(node: Text) { - return !!node.parentElement?.closest(SKIP_TEXT_SELECTOR); -} - -function getCurrentLocale() { - return String(i18n.global.locale.value); -} - -function translateText(text: string) { - if (!text || !CHINESE_RE.test(text)) { - return text; - } - - const locale = getCurrentLocale(); - if (locale !== 'en-US') { - return text; - } - - const { dict, pattern } = getRuntimeMatcher(locale); - if (!pattern) { - return text; - } - - return text.replace(pattern, (matched) => dict[matched] ?? matched); -} - -function translateElementAttributes(element: Element) { - if (shouldSkipElement(element)) { - return; - } - - const locale = getCurrentLocale(); - const originals = getElementOriginalMap(element); - - for (const attribute of TRANSLATABLE_ATTRIBUTES) { - const rawValue = element.getAttribute(attribute); - if (rawValue == null) { - continue; - } - - if (locale === 'en-US') { - const originalValue = CHINESE_RE.test(rawValue) - ? rawValue - : (originals.get(attribute) ?? rawValue); - if (!CHINESE_RE.test(originalValue)) { - continue; - } - - const translatedValue = translateText(originalValue); - if (translatedValue !== originalValue) { - originals.set(attribute, originalValue); - if (rawValue !== translatedValue) { - element.setAttribute(attribute, translatedValue); - } - } - continue; - } - - const originalValue = originals.get(attribute); - if (originalValue !== undefined && rawValue !== originalValue) { - element.setAttribute(attribute, originalValue); - } - } -} - -function translateTextNode(node: Text) { - if (shouldSkipTextNode(node)) { - return; - } - - const rawValue = node.nodeValue ?? ''; - const locale = getCurrentLocale(); - - if (locale === 'en-US') { - const originalValue = CHINESE_RE.test(rawValue) - ? rawValue - : (textOriginals.get(node) ?? rawValue); - if (!CHINESE_RE.test(originalValue)) { - return; - } - - const translatedValue = translateText(originalValue); - if (translatedValue !== originalValue) { - textOriginals.set(node, originalValue); - if (rawValue !== translatedValue) { - node.nodeValue = translatedValue; - } - } - return; - } - - const originalValue = textOriginals.get(node); - if (originalValue !== undefined && rawValue !== originalValue) { - node.nodeValue = originalValue; - } -} - -function processNode(root: Node) { - const stack: Node[] = [root]; - - while (stack.length > 0) { - const node = stack.pop(); - if (!node) { - continue; - } - - if (node.nodeType === Node.TEXT_NODE) { - translateTextNode(node as Text); - continue; - } - - if (node.nodeType !== Node.ELEMENT_NODE) { - continue; - } - - const element = node as Element; - translateElementAttributes(element); - - for (let index = element.childNodes.length - 1; index >= 0; index -= 1) { - const childNode = element.childNodes[index]; - if (childNode) { - stack.push(childNode); - } - } - } -} - -function refreshRuntimeLocale() { - if (typeof document === 'undefined' || !document.body) { - return; - } - - processNode(document.body); -} - -function startObserver() { - if ( - observer || - typeof document === 'undefined' || - typeof MutationObserver === 'undefined' || - !document.body - ) { - return; - } - - observer = new MutationObserver((mutations) => { - for (const mutation of mutations) { - if (mutation.type === 'attributes' || mutation.type === 'characterData') { - processNode(mutation.target); - continue; - } - - mutation.addedNodes.forEach((node) => processNode(node)); - } - }); - - observer.observe(document.body, { - attributeFilter: [...TRANSLATABLE_ATTRIBUTES], - attributes: true, - characterData: true, - childList: true, - subtree: true, - }); -} - -function setupRuntimeLocaleSync() { - if (initialized) { - return; - } - initialized = true; - - watch( - () => getCurrentLocale(), - async () => { - runtimeMatcherCache = undefined; - await nextTick(); - refreshRuntimeLocale(); - startObserver(); - }, - { - flush: 'post', - immediate: true, - }, - ); -} - -export { setupRuntimeLocaleSync, translateText as translateLocaleText }; diff --git a/apps/src/router/access.ts b/apps/src/router/access.ts index 4f33889..004ed1d 100644 --- a/apps/src/router/access.ts +++ b/apps/src/router/access.ts @@ -1,8 +1,9 @@ +import type { RouteRecordRaw } from 'vue-router'; + import type { ComponentRecordType, GenerateMenuAndRoutesOptions, } from '@vben/types'; -import type { RouteRecordRaw } from 'vue-router'; import { generateAccessible } from '@vben/access'; import { preferences } from '@vben/preferences'; @@ -24,8 +25,6 @@ const ROUTE_MENU_OVERRIDES: Record< } > = { BdLead: { aliases: ['BdLead'], routers: ['team/bd-lead'] }, - DynamicTagList: { aliases: ['DynamicTag'], routers: ['dynamic/tag'] }, - DynamicUserList: { aliases: ['UserDynamicList'], routers: ['user/dynamic/list'] }, OperateBusinessDevelopment: { aliases: ['BusinessDevelopment'], routers: ['room/business-development'], @@ -63,16 +62,16 @@ const ROUTE_MENU_OVERRIDES: Record< }; const LOCAL_RESIDENT_ACTIVITY_FALLBACK_ROUTES = new Set([ - 'ResidentWheelConfig', 'ResidentSmashGoldenEggConfig', 'ResidentVoiceRoomRocket', + 'ResidentWheelConfig', ]); const LOCAL_APP_SYSTEM_FALLBACK_ROUTES = new Set([ 'AppSystemAgoraErrorLog', ]); -function normalizeRoutePath(path?: string | null) { +function normalizeRoutePath(path?: null | string) { return String(path || '') .trim() .replace(/^\/+/, '') @@ -95,9 +94,9 @@ function collectRoutePaths(route: RouteRecordRaw) { const values = [normalizeRoutePath(route.path)]; const aliases = Array.isArray(route.alias) ? route.alias - : route.alias + : (route.alias ? [route.alias] - : []; + : []); values.push(...aliases.map((item) => normalizeRoutePath(String(item)))); const override = ROUTE_MENU_OVERRIDES[String(route.name || '')]; if (override?.routers) { diff --git a/apps/src/router/routes/modules/approval.ts b/apps/src/router/routes/modules/approval.ts index 7164467..0c32df9 100644 --- a/apps/src/router/routes/modules/approval.ts +++ b/apps/src/router/routes/modules/approval.ts @@ -82,18 +82,6 @@ const routes: RouteRecordRaw[] = [ component: () => import('#/views/approval/index.vue'), meta: { title: '家族头像审批' }, }, - { - name: 'ApprovalDynamicContent', - path: 'dynamic/content/approval', - component: () => import('#/views/approval/index.vue'), - meta: { title: '动态内容审批' }, - }, - { - name: 'ApprovalDynamicReport', - path: 'dynamic/report', - component: () => import('#/views/approval/index.vue'), - meta: { title: '动态举报审批' }, - }, { name: 'ApprovalUserBankCard', path: 'user/bank-card/approval', diff --git a/apps/src/router/routes/modules/dynamic.ts b/apps/src/router/routes/modules/dynamic.ts deleted file mode 100644 index 957b85d..0000000 --- a/apps/src/router/routes/modules/dynamic.ts +++ /dev/null @@ -1,41 +0,0 @@ -import type { RouteRecordRaw } from 'vue-router'; - -const routes: RouteRecordRaw[] = [ - { - meta: { - icon: 'lucide:messages-square', - order: 14, - title: '动态管理', - }, - name: 'DynamicManager', - path: '/dynamic/manager', - children: [ - { - name: 'DynamicTagList', - path: 'dynamic/tag', - component: () => import('#/views/dynamic/tag-list.vue'), - meta: { title: '标签列表' }, - }, - { - name: 'DynamicPopularConfig', - path: 'dynamic/popular/config', - component: () => import('#/views/dynamic/popular-config.vue'), - meta: { title: '权重配置' }, - }, - { - name: 'DynamicUserList', - path: 'user/dynamic/list', - component: () => import('#/views/dynamic/user-dynamic-list.vue'), - meta: { title: '用户动态' }, - }, - { - name: 'DynamicBlacklist', - path: 'dynamic/blacklist', - component: () => import('#/views/dynamic/dynamic-blacklist.vue'), - meta: { title: '黑名单' }, - }, - ], - }, -]; - -export default routes; diff --git a/apps/src/views/approval/config.ts b/apps/src/views/approval/config.ts index 43c03b3..5b132ae 100644 --- a/apps/src/views/approval/config.ts +++ b/apps/src/views/approval/config.ts @@ -1,7 +1,5 @@ import { approveData, - approveDynamicContentNotPass, - approveDynamicContentPass, approvePhotoWallNotPass, approvePhotoWallPass, approveReportedNotPass, @@ -10,8 +8,6 @@ import { approveUserBankCardNotPass, approveUserBankCardPass, batchProcessFeedback, - getDynamicContentPage, - getDynamicReportPage, getFamilyApprovalPage, getFeedbackPage, getPhotoWallApprovalPage, @@ -23,7 +19,6 @@ import { getUserProfileDescApprovalPage, getViolationHistoryPage, markFamilyNotPass, - processDynamicReport, } from '#/api/legacy/approval'; type ApprovalActionType = 'danger' | 'primary'; @@ -181,12 +176,6 @@ const REPORT_STATUS_OPTIONS: ApprovalFilterOption[] = [ { label: '无效', value: 2 }, ]; -const DYNAMIC_REPORT_STATUS_OPTIONS: ApprovalFilterOption[] = [ - { label: '待审核', value: 0 }, - { label: '违规', value: 1 }, - { label: '正常', value: 2 }, -]; - const REPORT_TYPE_OPTIONS: ApprovalFilterOption[] = [ { label: '非法信息', value: 0 }, { label: '人身攻击', value: 1 }, @@ -230,7 +219,7 @@ function splitCsv(value: any) { return []; } if (Array.isArray(value)) { - return value.filter(Boolean).map((item) => String(item)); + return value.filter(Boolean).map(String); } return String(value) .split(',') @@ -248,7 +237,7 @@ function buildApprovalDataAction( await approveData({ approvalStatus, approvalType, - waitApprovalUser: records.map(mapRecord), + waitApprovalUser: records.map((record) => mapRecord(record)), }); }, label: approvalStatus === 'PASS' ? '鉴定通过' : '鉴定违规', @@ -262,7 +251,7 @@ function familyNotPassAction( ): ApprovalBulkAction { return { execute: async (records) => { - const approvalRecords = records.map(mapRecord); + const approvalRecords = records.map((record) => mapRecord(record)); await approveData({ approvalStatus: 'NOT_PASS', approvalType, @@ -867,9 +856,9 @@ const approvalPages: Record = { `年龄:${record.userProfile?.age || '-'}`, `创建时间:${record.createTime || '-'}`, `修改时间:${record.updateTime || '-'}`, - ...(query.themeStatus !== 'PENDING' - ? [`审核人:${record.optUserNickname || '-'}`] - : []), + ...(query.themeStatus === 'PENDING' + ? [] + : [`审核人:${record.optUserNickname || '-'}`]), ], title: record.userProfile?.userNickname || '-', titleUserId: record.userProfile?.id, @@ -1183,10 +1172,10 @@ const approvalPages: Record = { record.violationType === 'PHOTO_WALL' || record.violationType === 'ROOM_AVATAR' ? 'images' - : record.violationType === 'LIVE' || + : (record.violationType === 'LIVE' || record.violationType === 'SHORT_VIDEO' ? 'videos' - : 'text'; + : 'text'); return { content: contentType === 'text' ? record.content || '-' : splitCsv(record.content), @@ -1471,238 +1460,6 @@ const approvalPages: Record = { }, title: '家族审批', }, - '/approval/manager/dynamic/content/approval': { - actions: [ - { - execute: async (records) => { - await approveDynamicContentPass(records.map((record) => record.dynamicId)); - }, - label: '鉴定通过', - show: (query) => query.approveStatus === 'PENDING', - type: 'primary', - }, - { - execute: async (records) => { - await approveDynamicContentNotPass( - records.map((record) => record.dynamicId), - ); - }, - label: '鉴定违规', - show: (query) => - query.approveStatus === 'PENDING' || query.approveStatus === 'PASS', - type: 'danger', - }, - ], - buildCard: (record, query) => ({ - actions: [{ label: '账号处理', type: 'account', value: record.userId }], - galleryImages: (record.pictures || []) - .map((item: any) => item.resourceUrl) - .filter(Boolean), - leadText: record.dynamicContent || '', - lines: [ - `性别:${record.userSexName || record.userBaseInfo?.userSexName || '-'}`, - `年龄:${record.userBaseInfo?.age || '-'}`, - `创建时间:${record.createTime || '-'}`, - ...(query.approveStatus !== 'PENDING' - ? [`审批时间:${record.updateTime || '-'}`] - : []), - ], - overlay: - (record.pictures || []) - .map((item: any) => item.labelNames) - .filter(Boolean) - .join(' / ') || '', - title: record.userBaseInfo?.userNickname || '-', - titleUserId: record.userId, - }), - defaultQuery: { - approveStatus: 'PENDING', - cursor: 1, - endDateTime: '', - limit: 20, - startDateTime: '', - sysOrigin: DEFAULT_SYS_ORIGIN, - userId: '', - }, - fetch: getDynamicContentPage, - filters: [ - { field: 'sysOrigin', label: '系统', placeholder: '系统', type: 'sysOrigin' }, - { - field: 'approveStatus', - label: '审核', - options: COMMON_APPROVAL_ALL_OPTIONS, - placeholder: '审核', - type: 'select', - }, - { - endField: 'endDateTime', - label: '时间范围', - placeholder: '时间范围', - startField: 'startDateTime', - type: 'dateRange', - }, - { field: 'userId', label: '用户ID', placeholder: '用户ID', type: 'input' }, - ], - kind: 'gallery', - selectable: (query) => - query.approveStatus === 'PENDING' || query.approveStatus === 'PASS', - title: '动态内容审批', - }, - '/approval/manager/dynamic/report': { - actions: [ - { - execute: async (records) => { - await processDynamicReport({ - approvalStatus: 2, - contentIds: records.map((record) => record.dynamicContentId), - }); - }, - label: '正常', - show: (query) => query.approvalStatus === 0, - type: 'primary', - }, - { - execute: async (records) => { - await processDynamicReport({ - approvalStatus: 1, - contentIds: records.map((record) => record.dynamicContentId), - }); - }, - label: '违规', - show: (query) => query.approvalStatus === 0, - type: 'danger', - }, - ], - columns: [ - { - key: 'sysOrigin', - render: (record) => ({ - text: record.sysOrigin || '-', - type: 'origin', - }), - title: '系统', - width: 90, - }, - { - key: 'reportUser', - render: (record) => ({ - text: record.reportUser?.userNickname || '-', - type: 'link', - userId: record.reportUser?.id, - }), - title: '举报人', - }, - { - key: 'reportedUser', - render: (record) => ({ - text: record.reportedUser?.userNickname || '-', - type: 'link', - userId: record.reportedUser?.id, - }), - title: '被举报人', - }, - { - key: 'reportType', - render: (record) => ({ - text: - REPORT_TYPE_OPTIONS.find((item) => item.value === record.reportType) - ?.label || '-', - type: 'text', - }), - title: '举报类型', - }, - { - key: 'dynamicContent', - render: (record) => ({ - text: record.dynamicContent || '-', - type: 'text', - }), - title: '动态内容', - }, - { - key: 'time', - render: (record) => ({ - text: - record.createTime && record.updateTime - ? `${record.createTime} / ${record.updateTime}` - : record.createTime || '-', - type: 'text', - }), - title: '时间', - width: 240, - }, - ], - defaultQuery: { - approvalStatus: 0, - cursor: 1, - endTime: '', - limit: 20, - reportType: '', - reportUserId: '', - reportedUserId: '', - startTime: '', - sysOrigin: DEFAULT_SYS_ORIGIN, - }, - expandable: (record) => [ - { label: '举报图片', type: 'images', value: splitCsv(record.reportedUrls) }, - { - label: '动态图片', - type: 'images', - value: (record.dynamicPictures || []) - .map((item: any) => item.resourceUrl) - .filter(Boolean), - }, - { label: '举报内容', value: record.reportedContent || '-' }, - ], - fetch: getDynamicReportPage, - filters: [ - { field: 'sysOrigin', label: '系统', placeholder: '系统', type: 'sysOrigin' }, - { - field: 'approvalStatus', - label: '状态', - options: DYNAMIC_REPORT_STATUS_OPTIONS, - placeholder: '状态', - type: 'select', - }, - { - clearable: true, - field: 'reportType', - label: '举报类型', - options: REPORT_TYPE_OPTIONS, - placeholder: '举报类型', - type: 'select', - }, - { - field: 'reportUserId', - label: '举报人ID', - placeholder: '举报人ID', - type: 'input', - }, - { - field: 'reportedUserId', - label: '被举报人ID', - placeholder: '被举报人ID', - type: 'input', - }, - { - endField: 'endTime', - label: '时间范围', - placeholder: '时间范围', - startField: 'startTime', - type: 'dateRange', - }, - ], - kind: 'table', - rowActions: (record) => [ - { - label: '被举报账号处理', - type: 'account', - value: record.reportedUser?.id, - }, - ], - selectable: (query) => query.approvalStatus === 0, - title: '动态举报审批', - }, '/approval/manager/user/bank-card/approval': { actions: [ { @@ -1760,15 +1517,15 @@ const approvalPages: Record = { color: record.status === 'PENDING' ? 'default' - : record.status === 'PASS' + : (record.status === 'PASS' ? 'success' - : 'error', + : 'error'), text: record.status === 'PENDING' ? '待审核' - : record.status === 'PASS' + : (record.status === 'PASS' ? '通过' - : '驳回', + : '驳回'), type: 'tag', }), title: '状态', @@ -1821,12 +1578,11 @@ const approvalPages: Record = { export { APPROVAL_TYPE_OPTIONS, + approvalPages, BANK_CARD_OPTIONS, - DYNAMIC_REPORT_STATUS_OPTIONS, FEEDBACK_STATUS_OPTIONS, PHOTO_WALL_STATUS_OPTIONS, REPORT_STATUS_OPTIONS, REPORT_TYPE_OPTIONS, SYS_ORIGIN_OPTIONS, - approvalPages, }; diff --git a/apps/src/views/dynamic/components/tag-edit-modal.vue b/apps/src/views/dynamic/components/tag-edit-modal.vue deleted file mode 100644 index b4c8eb9..0000000 --- a/apps/src/views/dynamic/components/tag-edit-modal.vue +++ /dev/null @@ -1,256 +0,0 @@ - - - - - diff --git a/apps/src/views/dynamic/dynamic-blacklist.vue b/apps/src/views/dynamic/dynamic-blacklist.vue deleted file mode 100644 index deaaf37..0000000 --- a/apps/src/views/dynamic/dynamic-blacklist.vue +++ /dev/null @@ -1,267 +0,0 @@ - - - - - diff --git a/apps/src/views/dynamic/popular-config.vue b/apps/src/views/dynamic/popular-config.vue deleted file mode 100644 index 0eb13e3..0000000 --- a/apps/src/views/dynamic/popular-config.vue +++ /dev/null @@ -1,139 +0,0 @@ - - - - - diff --git a/apps/src/views/dynamic/tag-list.vue b/apps/src/views/dynamic/tag-list.vue deleted file mode 100644 index 134ff2c..0000000 --- a/apps/src/views/dynamic/tag-list.vue +++ /dev/null @@ -1,216 +0,0 @@ - - - - - diff --git a/apps/src/views/dynamic/user-dynamic-list.vue b/apps/src/views/dynamic/user-dynamic-list.vue deleted file mode 100644 index 0825b0a..0000000 --- a/apps/src/views/dynamic/user-dynamic-list.vue +++ /dev/null @@ -1,519 +0,0 @@ - - - - - diff --git a/apps/src/views/operate/constants.ts b/apps/src/views/operate/constants.ts index a9acea6..25178d0 100644 --- a/apps/src/views/operate/constants.ts +++ b/apps/src/views/operate/constants.ts @@ -232,7 +232,6 @@ export const CURRENCY_ORIGIN_OPTIONS = [ { value: 'USER_REFUND', name: '用户退款' }, { value: 'ACTIVITY_FRIENDSHIP_CARD_REWARDS', name: '每周特殊关系卡片奖励' }, { value: 'WEEKLY_GAME_TASKS', name: '每周游戏任务奖励' }, - { value: 'SEND_DYNAMIC_PAY_GOLD', name: '超限制发动态支付金币' }, { value: 'BUY_EMOJI', name: '购买表情包' }, { value: 'BET_TEEN_PATTI', name: '炸金花' }, { value: 'TEEN_PATTI', name: '炸金花游戏 ' }, diff --git a/apps/src/views/props/resource-config.vue b/apps/src/views/props/resource-config.vue index f3c3c34..ca1dba9 100644 --- a/apps/src/views/props/resource-config.vue +++ b/apps/src/views/props/resource-config.vue @@ -82,7 +82,7 @@ const pageActionOpen = ref(false); const tableAreaRef = ref(null); const pagerRef = ref(null); const tableScrollY = ref(320); -const amountFormatter = new Intl.NumberFormat('en-US', { +const amountFormatter = new Intl.NumberFormat('zh-CN', { maximumFractionDigits: 2, }); const tableScroll = computed(() => ({ x: 1000, y: tableScrollY.value })); @@ -685,7 +685,7 @@ loadData(true);