优化多语言翻译

This commit is contained in:
2026-03-20 10:29:31 +08:00
parent b689a40595
commit 6ff65afcb5
19 changed files with 768 additions and 279 deletions

View File

@@ -1,12 +1,13 @@
{
"toolbar": {
"weightRatio": "Weight Ratio",
"weightTest": "Test Weight"
"weightTest": "Test Weights"
},
"search": {
"tier": "Tier",
"clockwise": "Clockwise",
"anticlockwise": "Anticlockwise"
"anticlockwise": "Counter-clockwise",
"optionBigwin": "BIGWIN"
},
"table": {
"startIndex": "Start Index",
@@ -17,5 +18,67 @@
"realEv": "Real EV",
"remark": "Remark",
"weight": "Weight"
},
"weightShared": {
"xAxisEndIndex": "End Index",
"xAxisGridNumber": "Points",
"emptyTier": "No data for this tier",
"sumLineDual": "Tier weight sum (clockwise): {cw}; counter-clockwise: {ccw} (each row 110000, ratio draw within tier, sum not limited)",
"sumLineSingle": "Tier weight sum: {sum} (each row 110000, ratio draw within tier, sum not limited)",
"t4t5NoteSingle": "T4 and T5 have a single outcome; no weight configuration.",
"t4t5NoteDual": "T4 and T5 have a single outcome when hit; no weight configuration.",
"colEndIndexId": "End Index (id)",
"colGridNumber": "Points (grid_number)",
"colDicePoints": "Dice Points",
"colRealEv": "Real EV",
"colUiText": "Display Text",
"colRemark": "Remark",
"colWeightCwDir": "Clockwise weight (direction=0)",
"colWeightCcwDir": "Counter-clockwise weight (direction=1)",
"weightColSuffix": "Weight (1-10000)",
"fetchFail": "Failed to load weight data",
"nothingToSubmit": "Nothing to submit",
"submitFail": "Save failed",
"btnCancel": "Cancel",
"btnSubmit": "Submit",
"saveSuccess": "Saved successfully"
},
"weightEdit": {
"title": "Dice Reward (dice_reward) Weight Ratio",
"globalTip": "You are editing weights on dice_reward (DiceReward), split by end_index into clockwise and counter-clockwise; the draw uses the set for the current direction."
},
"weightRatio": {
"title": "Weight Ratio",
"globalTip": "Configure dice_reward weights: first by direction (clockwise / counter-clockwise), then by tier (T1T5); each row weight 110000, ratio draw within tier.",
"tabClockwise": "Clockwise",
"tabCounterclockwise": "Counter-clockwise"
},
"weightTest": {
"title": "One-Click Weight Test",
"alertTitle": "Bonus pool logic",
"alertBody": "Same as playStart draw: uses name=default safety line and kill switch; when profit is below the line, paid tickets use player tier weights (custom below), free tickets use killScore; when profit reaches the line and kill is on, both use killScore.",
"stepPaid": "Paid ticket",
"stepFree": "Free ticket",
"labelLotteryTypePaid": "Test pool type",
"labelLotteryTypeFree": "Test pool type",
"placeholderPaidPool": "Leave empty for custom tier odds below (default: default)",
"placeholderFreePool": "Leave empty for custom tier odds below (default: killScore)",
"tierProbHint": "Custom tier odds (T1T5), each 0100%, sum of five must not exceed 100%",
"tierFieldLabel": "Tier {tier} (%)",
"tierSumError": "Current sum of five tiers is {sum}%, cannot exceed 100%",
"labelCwCount": "Clockwise spins",
"labelCcwCount": "Counter-clockwise spins",
"placeholderSelect": "Please select",
"btnPrev": "Back",
"btnNext": "Next",
"btnStart": "Start test",
"btnCancel": "Cancel",
"warnTotalSpins": "At least one of paid/free direction spin counts must be greater than 0",
"warnPaidTierSumPositive": "When no paid pool is selected, T1T5 odds sum must be greater than 0",
"warnPaidTierSumMax": "Paid T1T5 odds sum cannot exceed 100%",
"warnFreeTierSumPositive": "When no free pool is selected, T1T5 odds sum must be greater than 0",
"warnFreeTierSumMax": "Free T1T5 odds sum cannot exceed 100%",
"successCreated": "Test job created and will run in background. Check player draw records (test data) for results.",
"failCreate": "Failed to create test job"
}
}

View File

@@ -1,7 +1,74 @@
{
"toolbar": {
"gameRewardConfig": "Game Reward Config",
"createRewardRef": "Create Reward Reference"
"createRewardRef": "Create Reward Reference",
"createRewardRefTitle": "Rule: start_index=config(grid_number).id; clockwise end_index=(start_index+grid_number)%26; counter-clockwise end_index=start_index-grid_number>=0?start_index-grid_number:26+start_index-grid_number"
},
"configPage": {
"tabIndex": "Reward Index",
"tabBigwin": "Big Win Weights",
"tipIndex": "Dice points must be between 5 and 30 and unique in this table.",
"tipBigwin": "Left to right: big-win points (read-only), display text, real EV, remark, weight (0~10000). Points 5 and 30 are fixed at 100%. This tab saves big-win weights only.",
"colId": "Index (id)",
"colDicePoints": "Dice Points",
"colDisplayText": "Display Text",
"colDisplayTextEn": "Display Text (EN)",
"colRealEv": "Real Settlement",
"colTier": "Tier",
"colRemark": "Remark",
"placeholderTierSelect": "Tier",
"placeholderDisplayZh": "Display text (Chinese)",
"placeholderDisplayEn": "Display text (English)",
"placeholderRemark": "Remark",
"btnSave": "Save",
"btnReset": "Reset",
"colBigwinPoints": "Big-Win Points",
"colDisplayInfo": "Display Info",
"colDisplayInfoEn": "Display Info (EN)",
"colRealPrize": "Real Prize",
"colWeightRange": "Weight (0-10000)",
"placeholderDisplayInfoZh": "Display info (Chinese)",
"placeholderDisplayInfoEn": "Display info (English)",
"weightFixedTip": "Points 5 and 30 are fixed at 100%",
"emptyBigwin": "No BIGWIN tier rows. Set tier to BIGWIN in the Reward Index tab first.",
"confirmCreateRefTitle": "Create Reward Reference",
"confirmCreateRefMsg": "Create reward reference by rule: start_index is the id of the cell for grid_number in reward config; clockwise end_index=(start_index+roll)%26; counter-clockwise end_index=start_index-roll if >=0 else 26+start_index-roll. Existing data will be cleared, then 26 points (530) for both directions will be generated. Continue?",
"confirmCreateRefOk": "Create",
"confirmCreateRefCancel": "Cancel",
"createRefSuccess": "Created for 26 dice points (530), clockwise + counter-clockwise: clockwise added {cwNew}, counter-clockwise added {ccwNew}; clockwise updated {cwUp}, counter-clockwise updated {ccwUp}{skippedPart}",
"createRefSuccessSkipped": "; {n} point(s) used fallback start index",
"createRefSuccessSimple": "Created successfully",
"createRefFail": "Failed to create reward reference",
"loadIndexFail": "Failed to load reward index config",
"saveSuccess": "Saved successfully",
"saveFail": "Save failed",
"resetIndexReloaded": "Reward index reloaded from server",
"resetBigwinReloaded": "Big win weights reloaded from server",
"warnNoIndexToSave": "No reward index rows to save",
"warnGridRange": "Dice points must be between {min} and {max}",
"dupJoiner": ", ",
"warnDupGrid": "Duplicate dice points in this table: {list}",
"warnNoBigwinToSave": "No BIGWIN rows to save",
"warnBigwinDupGrid": "Duplicate big-win points in this table: {list}",
"infoNoBigwin": "No BIGWIN rows. Set tier to BIGWIN in the Reward Index tab first."
},
"weightRatio": {
"title": "T1T5 Weight Ratio (Clockwise / Counter-clockwise)",
"globalTip": "Weights come from dice_reward, split by end index (DiceRewardConfig.id) into clockwise and counter-clockwise; draw uses the weight set for the current direction.",
"xAxisEndIndex": "End Index",
"emptyTier": "No data for this tier",
"sumLine": "Tier weight sum (clockwise): {cw}; counter-clockwise: {ccw} (each row 110000, ratio draw within tier, sum not limited)",
"t4t5Note": "T4 and T5 have a single outcome; no weight configuration.",
"colEndIndexId": "End Index (id)",
"colDicePoints": "Dice Points",
"colRealEv": "Real EV",
"colUiText": "Display Text",
"colWeightCw": "Clockwise weight (1-10000)",
"colWeightCcw": "Counter-clockwise weight (1-10000)",
"fetchFail": "Failed to load weight ratio data",
"nothingToSubmit": "Nothing to submit",
"submitFail": "Save failed",
"saveSuccess": "Saved successfully"
},
"search": {
"dicePoints": "Dice Points",

View File

@@ -4,6 +4,8 @@
},
"table": {
"id": "ID",
"clockwiseAbbr": "CW",
"counterclockwiseAbbr": "CCW",
"status": "Status",
"paidDraw": "Paid Draw",
"freeDraw": "Free Draw",
@@ -27,5 +29,51 @@
"ruleTestCountRequired": "Test count is required",
"addSuccess": "Added successfully",
"editSuccess": "Updated successfully"
},
"detail": {
"title": "Test Record Detail",
"sectionBasic": "Basic Info",
"recordId": "Record ID",
"testCount": "Test count",
"testCountSuffix": " runs",
"createTime": "Created at",
"admin": "Operator",
"paidPoolId": "Paid lottery pool config ID",
"freePoolId": "Free lottery pool config ID",
"bigwinSnapshot": "BIGWIN weight snapshot",
"sectionPaidTier": "Paid draw tier odds (T1T5, used in test)",
"sectionFreeTier": "Free draw tier odds (T1T5, used in test)",
"colTier": "Tier",
"colWeight": "Weight",
"colPercent": "Share",
"emptyPaidTier": "No paid tier data (legacy records may only have tier_weights_snapshot)",
"emptyFreeTier": "No free tier data",
"sectionSnapshot": "Weight snapshot (T1T5 / BIGWIN used in test)",
"subCw": "Clockwise (non-BIGWIN)",
"subCcw": "Counter-clockwise (non-BIGWIN)",
"colGridNumber": "Dice points",
"emptyCw": "No clockwise data",
"emptyCcw": "No counter-clockwise data",
"subBigwin": "BIGWIN (DiceRewardConfig snapshot)",
"emptyBigwinTable": "No BIGWIN data",
"sectionResult": "Landing stats (count per grid_number)",
"chartXAxis": "Dice points (grid_number)",
"emptyResult": "No landing data",
"resultTotal": "Total landings: {n}",
"btnImport": "Import to current config",
"importTitle": "Import to production config",
"importDesc": "Import this test record into DiceReward (cell weights), DiceRewardConfig (BIGWIN weight), and DiceLotteryPoolConfig (paid/free T1T5 odds). Select target pools.",
"importPaidLabel": "Import paid tier odds to pool",
"importPaidPlaceholder": "Select a pool (paid pool recommended)",
"importPaidTip": "If empty, uses paid pool ID saved on this record",
"importFreeLabel": "Import free tier odds to pool",
"importFreePlaceholder": "Select a pool (free pool recommended)",
"importFreeTip": "If empty, uses free pool ID saved on this record",
"btnConfirmImport": "Confirm import",
"importSuccess": "Imported. DiceReward, DiceRewardConfig (BIGWIN), and pool config refreshed.",
"importFail": "Import failed",
"dash": "—",
"dirCw": "Clockwise",
"dirCcw": "Counter-clockwise"
}
}

View File

@@ -6,7 +6,8 @@
"search": {
"tier": "档位",
"clockwise": "顺时针",
"anticlockwise": "逆时针"
"anticlockwise": "逆时针",
"optionBigwin": "BIGWIN"
},
"table": {
"startIndex": "起始索引",
@@ -17,5 +18,67 @@
"realEv": "实际中奖金额",
"remark": "备注",
"weight": "权重(1-10000)"
},
"weightShared": {
"xAxisEndIndex": "结束索引",
"xAxisGridNumber": "点数",
"emptyTier": "该档位暂无配置数据",
"sumLineDual": "当前档位权重合计(顺时针):{cw};逆时针:{ccw}(各条 1-10000档位内按权重比抽取和不限制",
"sumLineSingle": "当前档位权重合计:{sum}(各条 1-10000档位内按权重比抽取和不限制",
"t4t5NoteSingle": "T4、T5 仅单一结果,无需配置权重。",
"t4t5NoteDual": "T4、T5 档位抽中时仅有一个结果,无需配置权重。",
"colEndIndexId": "结束索引(id)",
"colGridNumber": "点数(grid_number)",
"colDicePoints": "色子点数",
"colRealEv": "实际中奖金额",
"colUiText": "显示文本",
"colRemark": "备注",
"colWeightCwDir": "顺时针权重(direction=0)",
"colWeightCcwDir": "逆时针权重(direction=1)",
"weightColSuffix": "权重(1-10000)",
"fetchFail": "获取权重数据失败",
"nothingToSubmit": "没有可提交的配置",
"submitFail": "保存失败",
"btnCancel": "取消",
"btnSubmit": "提交",
"saveSuccess": "保存成功"
},
"weightEdit": {
"title": "奖励对照表dice_reward权重配比",
"globalTip": "编辑的是奖励对照表dice_reward / DiceReward 模型的权重按结束索引end_index区分顺时针与逆时针两套权重抽奖时按当前方向取对应权重。"
},
"weightRatio": {
"title": "权重配比",
"globalTip": "配置奖励对照表dice_reward的权重一级按方向顺时针/逆时针二级按档位T1-T5各条权重 1-10000档位内按权重比抽取。",
"tabClockwise": "顺时针",
"tabCounterclockwise": "逆时针"
},
"weightTest": {
"title": "一键测试权重",
"alertTitle": "彩金池逻辑说明",
"alertBody": "与 playStart 抽奖逻辑一致:使用 name=default 的安全线、杀分开关;盈利未达安全线时,付费抽奖券使用玩家自身权重(下方自定义档位),免费抽奖券使用 killScore 配置;盈利达到安全线且杀分开启时,付费/免费均使用 killScore 配置。",
"stepPaid": "付费抽奖券",
"stepFree": "免费抽奖券",
"labelLotteryTypePaid": "测试数据档位类型",
"labelLotteryTypeFree": "测试数据档位类型",
"placeholderPaidPool": "不选则下方自定义档位概率(默认 default",
"placeholderFreePool": "不选则下方自定义档位概率(默认 killScore",
"tierProbHint": "自定义档位概率T1T5每档 0-100%,五档之和不能超过 100%",
"tierFieldLabel": "档位 {tier}%",
"tierSumError": "当前五档之和为 {sum}%,不能超过 100%",
"labelCwCount": "顺时针次数",
"labelCcwCount": "逆时针次数",
"placeholderSelect": "请选择",
"btnPrev": "上一步",
"btnNext": "下一步",
"btnStart": "开始测试",
"btnCancel": "取消",
"warnTotalSpins": "付费或免费至少一种方向次数之和大于 0",
"warnPaidTierSumPositive": "付费未选奖池时T1T5 档位概率之和需大于 0",
"warnPaidTierSumMax": "付费档位概率 T1T5 之和不能超过 100%",
"warnFreeTierSumPositive": "免费未选奖池时T1T5 档位概率之和需大于 0",
"warnFreeTierSumMax": "免费档位概率 T1T5 之和不能超过 100%",
"successCreated": "测试任务已创建,后台将自动执行。请在【玩家抽奖记录(测试数据)】中查看生成的测试数据",
"failCreate": "创建测试任务失败"
}
}

View File

@@ -1,7 +1,74 @@
{
"toolbar": {
"gameRewardConfig": "游戏奖励配置",
"createRewardRef": "创建奖励对照"
"createRewardRef": "创建奖励对照",
"createRewardRefTitle": "按规则start_index=config(grid_number).id顺时针 end_index=(start_index+grid_number)%26逆时针 end_index=start_index-grid_number≥0?start_index-grid_number:26+start_index-grid_number"
},
"configPage": {
"tabIndex": "奖励索引",
"tabBigwin": "大奖权重",
"tipIndex": "色子点数须在 530 之间且本表内不重复。",
"tipBigwin": "从左至右:中大奖点数(不可改)、显示信息、实际中奖、备注、权重(0~10000)。点数 5、30 权重固定 100%。本表单独立提交,仅提交大奖权重。",
"colId": "索引(id)",
"colDicePoints": "色子点数",
"colDisplayText": "显示文本",
"colDisplayTextEn": "显示文本(英文)",
"colRealEv": "真实结算",
"colTier": "所属档位",
"colRemark": "备注",
"placeholderTierSelect": "档位",
"placeholderDisplayZh": "显示文本(中文)",
"placeholderDisplayEn": "显示文本(英文)",
"placeholderRemark": "备注",
"btnSave": "保存",
"btnReset": "重置",
"colBigwinPoints": "中大奖点数",
"colDisplayInfo": "显示信息",
"colDisplayInfoEn": "显示信息(英文)",
"colRealPrize": "实际中奖",
"colWeightRange": "权重(0-10000)",
"placeholderDisplayInfoZh": "显示信息(中文)",
"placeholderDisplayInfoEn": "显示信息(英文)",
"weightFixedTip": "点数 5、30 固定 100%",
"emptyBigwin": "暂无 BIGWIN 档位配置,请在「奖励索引」中设置 tier 为 BIGWIN。",
"confirmCreateRefTitle": "创建奖励对照",
"confirmCreateRefMsg": "按规则创建奖励对照:起始索引 start_index=奖励配置中 grid_number 对应格位的 id顺时针 end_index=(start_index+摇取点数)%26逆时针 end_index=start_index-摇取点数≥0 则取该值,否则 26+start_index-摇取点数。先清空现有数据再为 5-30 共 26 个点数、顺/逆时针分别生成。是否继续?",
"confirmCreateRefOk": "确定创建",
"confirmCreateRefCancel": "取消",
"createRefSuccess": "已按 5-30 共 26 个点数、顺时针+逆时针创建:顺时针新增 {cwNew} 条、逆时针新增 {ccwNew} 条;顺时针更新 {cwUp} 条、逆时针更新 {ccwUp} 条{skippedPart}",
"createRefSuccessSkipped": "{n} 个点数使用兜底起始索引",
"createRefSuccessSimple": "创建成功",
"createRefFail": "创建奖励对照失败",
"loadIndexFail": "获取奖励索引配置失败",
"saveSuccess": "保存成功",
"saveFail": "保存失败",
"resetIndexReloaded": "已重新加载奖励索引,恢复为服务器最新数据",
"resetBigwinReloaded": "已重新加载,大奖权重恢复为服务器最新数据",
"warnNoIndexToSave": "暂无奖励索引数据可保存",
"warnGridRange": "色子点数必须在 {min}{max} 之间",
"dupJoiner": "、",
"warnDupGrid": "色子点数在本表内不能重复,重复的点数为:{list}",
"warnNoBigwinToSave": "暂无 BIGWIN 档位配置可保存",
"warnBigwinDupGrid": "大奖权重本表内点数不能重复,重复的点数为:{list}",
"infoNoBigwin": "暂无 BIGWIN 档位配置,请先在「奖励索引」中设置 tier 为 BIGWIN"
},
"weightRatio": {
"title": "T1-T5 权重配比(顺时针/逆时针)",
"globalTip": "权重来自奖励对照表dice_reward按结束索引DiceRewardConfig.id区分顺时针与逆时针两套权重抽奖时按当前方向取对应权重。",
"xAxisEndIndex": "结束索引",
"emptyTier": "该档位暂无配置数据",
"sumLine": "当前档位权重合计(顺时针):{cw};逆时针:{ccw}(各条 1-10000档位内按权重比抽取和不限制",
"t4t5Note": "T4、T5 档位抽中时仅有一个结果,无需配置权重。",
"colEndIndexId": "结束索引(id)",
"colDicePoints": "色子点数",
"colRealEv": "实际中奖金额",
"colUiText": "显示文本",
"colWeightCw": "顺时针权重(1-10000)",
"colWeightCcw": "逆时针权重(1-10000)",
"fetchFail": "获取权重配比数据失败",
"nothingToSubmit": "没有可提交的配置",
"submitFail": "保存失败",
"saveSuccess": "保存成功"
},
"search": {
"dicePoints": "色子点数(摇取5-30)",

View File

@@ -4,6 +4,8 @@
},
"table": {
"id": "ID",
"clockwiseAbbr": "顺",
"counterclockwiseAbbr": "逆",
"status": "状态",
"paidDraw": "付费抽取",
"freeDraw": "免费抽取",
@@ -27,5 +29,51 @@
"ruleTestCountRequired": "测试次数100/500/1000必需填写",
"addSuccess": "新增成功",
"editSuccess": "修改成功"
},
"detail": {
"title": "测试记录详情",
"sectionBasic": "基本信息",
"recordId": "记录ID",
"testCount": "测试次数",
"testCountSuffix": "次",
"createTime": "创建时间",
"admin": "执行管理员",
"paidPoolId": "付费奖池配置ID",
"freePoolId": "免费奖池配置ID",
"bigwinSnapshot": "BIGWIN 权重快照",
"sectionPaidTier": "付费抽奖档位概率T1-T5测试时使用",
"sectionFreeTier": "免费抽奖档位概率T1-T5测试时使用",
"colTier": "档位",
"colWeight": "权重",
"colPercent": "占比",
"emptyPaidTier": "暂无付费档位数据(旧记录可能仅保存 tier_weights_snapshot",
"emptyFreeTier": "暂无免费档位数据",
"sectionSnapshot": "权重配比快照(测试时使用的 T1-T5/BIGWIN 配置)",
"subCw": "顺时针(非 BIGWIN",
"subCcw": "逆时针(非 BIGWIN",
"colGridNumber": "色子点数",
"emptyCw": "暂无顺时针数据",
"emptyCcw": "暂无逆时针数据",
"subBigwin": "BIGWIN按 DiceRewardConfig 配置快照)",
"emptyBigwinTable": "暂无 BIGWIN 数据",
"sectionResult": "落点统计(各 grid_number 出现次数)",
"chartXAxis": "色子点数 (grid_number)",
"emptyResult": "暂无落点数据",
"resultTotal": "总落点次数:{n}",
"btnImport": "导入到当前配置",
"importTitle": "导入到正式配置",
"importDesc": "将本测试记录导入DiceReward格子权重、DiceRewardConfigBIGWIN weight、DiceLotteryPoolConfig付费/免费 T1-T5 档位概率)。请选择要写入的奖池。",
"importPaidLabel": "导入付费档位概率到奖池",
"importPaidPlaceholder": "选择任意奖池(建议付费池)",
"importPaidTip": "不选则使用本记录保存时的付费奖池配置 ID",
"importFreeLabel": "导入免费档位概率到奖池",
"importFreePlaceholder": "选择任意奖池(建议免费池)",
"importFreeTip": "不选则使用本记录保存时的免费奖池配置 ID",
"btnConfirmImport": "确认导入",
"importSuccess": "导入成功,已刷新 DiceReward、DiceRewardConfig(BIGWIN)、奖池配置",
"importFail": "导入失败",
"dash": "—",
"dirCw": "顺时针",
"dirCcw": "逆时针"
}
}