refactor: 重构多语言处理逻辑,统一配置与显示分离

1. 新增LangUtil工具类实现统一的多语言映射与参数替换
2. 移除各配置文件中的硬编码多语言包装类,替换为直接中文文本
3. 更新zh.json补充成就相关多语言词条
4. 重构HighlightSet适配新的多语言调用规范
This commit is contained in:
panw
2026-05-15 15:44:32 +08:00
parent a16fe4bff7
commit 4f8a955506
5 changed files with 368 additions and 226 deletions

View File

@@ -1,24 +1,5 @@
import { v3 } from "cc"
import { BoxSet, FacSet } from "./GameSet"
import { oops } from "db://oops-framework/core/Oops"
class I18nString {
constructor(private key: string, private params?: any[]) {}
private getTranslated(): string {
let str = oops.language.getLangByID(this.key) || this.key;
if (this.params && this.params.length > 0) {
for (let i = 0; i < this.params.length; i++) {
str = str.replace(`{${i}}`, String(this.params[i]));
}
}
return str;
}
toString() { return this.getTranslated(); }
valueOf() { return this.getTranslated(); }
toJSON() { return this.getTranslated(); }
get length() { return this.toString().length; }
}
export const t = (key: string, ...params: any[]) => new I18nString(key, params) as unknown as string;
export enum HType {
Melee = 0,
@@ -145,48 +126,48 @@ export interface HSkillInfo {
export const HeroInfo: Record<number, heroInfo> = {
// ========== 近战英雄 ==========
5001:{uuid:5001,name:t("hero_name_5001"),path:"hk1", fac:FacSet.HERO,cards_lv:1,lv:1,type:HType.Melee,hp:150,ap:25,speed:800,atking:[{s_uuid:6301,t_num:2}],
skills:{6001:{uuid:6001,lv:1,cd:1.5,ccd:0}},info:t("hero_info_5001")},
5002:{uuid:5002,name:t("hero_name_5002"),path:"hk3", fac:FacSet.HERO,cards_lv:3,lv:1,type:HType.Melee,hp:150,ap:75,speed:800,atked:[{s_uuid:6301,t_num:2}],
skills:{6001:{uuid:6001,lv:1,cd:1.5,ccd:0}},info:t("hero_info_5002")},
5003:{uuid:5003,name:t("hero_name_5003"),path:"hk4", fac:FacSet.HERO,cards_lv:2,lv:1,type:HType.Melee,hp:100,ap:100,speed:800,
skills:{6001:{uuid:6001,lv:1,cd:1.5,ccd:0}},info:t("hero_info_5003")},
5004:{uuid:5004,name:t("hero_name_5004"),path:"hc1", fac:FacSet.HERO,cards_lv:4,lv:1,type:HType.Melee,hp:100,ap:200,speed:800,
skills:{6001:{uuid:6001,lv:1,cd:0.7,ccd:0}},info:t("hero_info_5004")},
5005:{uuid:5005,name:t("hero_name_5005"),path:"hk2", fac:FacSet.HERO,cards_lv:4,lv:1,type:HType.Melee,hp:100,ap:200,speed:800,
skills:{6001:{uuid:6001,lv:1,cd:1.5,ccd:0}},info:t("hero_info_5005")},
5001:{uuid:5001,name:"盾战士",path:"hk1", fac:FacSet.HERO,cards_lv:1,lv:1,type:HType.Melee,hp:150,ap:25,speed:800,atking:[{s_uuid:6301,t_num:2}],
skills:{6001:{uuid:6001,lv:1,cd:1.5,ccd:0}},info:"近战,魔法盾 坦克"},
5002:{uuid:5002,name:"圣骑士",path:"hk3", fac:FacSet.HERO,cards_lv:3,lv:1,type:HType.Melee,hp:150,ap:75,speed:800,atked:[{s_uuid:6301,t_num:2}],
skills:{6001:{uuid:6001,lv:1,cd:1.5,ccd:0}},info:"近战,群体护盾 坦克"},
5003:{uuid:5003,name:"风行剑士",path:"hk4", fac:FacSet.HERO,cards_lv:2,lv:1,type:HType.Melee,hp:100,ap:100,speed:800,
skills:{6001:{uuid:6001,lv:1,cd:1.5,ccd:0}},info:"近战,闪击 近战dps"},
5004:{uuid:5004,name:"刺客",path:"hc1", fac:FacSet.HERO,cards_lv:4,lv:1,type:HType.Melee,hp:100,ap:200,speed:800,
skills:{6001:{uuid:6001,lv:1,cd:0.7,ccd:0}},info:"近战,火焰击 近战dps"},
5005:{uuid:5005,name:"自然骑士",path:"hk2", fac:FacSet.HERO,cards_lv:4,lv:1,type:HType.Melee,hp:100,ap:200,speed:800,
skills:{6001:{uuid:6001,lv:1,cd:1.5,ccd:0}},info:"治疗近战,火焰击 近战dps"},
// ========== 法师英雄 ==========
5101:{uuid:5101,name:t("hero_name_5101"),path:"hm2", fac:FacSet.HERO,cards_lv:1,lv:1,type:HType.Long,hp:150,ap:60,speed:800,revive:{s_uuid:6501,r_num:1,upr:0.5},
skills:{6201:{uuid:6007,lv:1,cd:1,ccd:0}},info:t("hero_info_5101")},
5102:{uuid:5102,name:t("hero_name_5102"),path:"hm1", fac:FacSet.HERO,cards_lv:2,lv:1,type:HType.Long,hp:130,ap:120,speed:800,
skills:{6203:{uuid:6002,lv:1,cd:1,ccd:0}},info:t("hero_info_5102")},
5103:{uuid:5103,name:t("hero_name_5103"),path:"hm9", fac:FacSet.HERO,cards_lv:3,lv:1,type:HType.Long,hp:145,ap:180,speed:800,
skills:{6201:{uuid:6002,lv:1,cd:1,ccd:0}},info:t("hero_info_5103")},
5104:{uuid:5104,name:t("hero_name_5104"),path:"hm4", fac:FacSet.HERO,cards_lv:4,lv:1,type:HType.Long,hp:160,ap:240,speed:800,
skills:{6201:{uuid:66002201,lv:1,cd:1,ccd:0}},info:t("hero_info_5104")},
5105:{uuid:5105,name:t("hero_name_5105"),path:"hm3", fac:FacSet.HERO,cards_lv:5,lv:1,type:HType.Long,hp:175,ap:300,speed:800,
skills:{6203:{uuid:6002,lv:1,cd:1,ccd:0}},info:t("hero_info_5105") },
5101:{uuid:5101,name:"奥术法师",path:"hm2", fac:FacSet.HERO,cards_lv:1,lv:1,type:HType.Long,hp:150,ap:60,speed:800,revive:{s_uuid:6501,r_num:1,upr:0.5},
skills:{6201:{uuid:6007,lv:1,cd:1,ccd:0}},info:"冰球,冰锥 远法dps"},
5102:{uuid:5102,name:"火焰法师",path:"hm1", fac:FacSet.HERO,cards_lv:2,lv:1,type:HType.Long,hp:130,ap:120,speed:800,
skills:{6203:{uuid:6002,lv:1,cd:1,ccd:0}},info:"火击,火球 远法dps"},
5103:{uuid:5103,name:"冰法法师",path:"hm9", fac:FacSet.HERO,cards_lv:3,lv:1,type:HType.Long,hp:145,ap:180,speed:800,
skills:{6201:{uuid:6002,lv:1,cd:1,ccd:0}},info:"冰击,冰锥 远法dps"},
5104:{uuid:5104,name:"寒霜术士",path:"hm4", fac:FacSet.HERO,cards_lv:4,lv:1,type:HType.Long,hp:160,ap:240,speed:800,
skills:{6201:{uuid:66002201,lv:1,cd:1,ccd:0}},info:"冰锥,冰刺 远法dps"},
5105:{uuid:5105,name:"炎爆法师",path:"hm3", fac:FacSet.HERO,cards_lv:5,lv:1,type:HType.Long,hp:175,ap:300,speed:800,
skills:{6203:{uuid:6002,lv:1,cd:1,ccd:0}},info:"火球,陨石术 远法dps" },
// ========== 远程英雄 ==========
5201:{uuid:5201,name:t("hero_name_5201"),path:"ha1", fac:FacSet.HERO,cards_lv:1,lv:1,type:HType.Long,hp:115,ap:60,speed:800,
skills:{6101:{uuid:6005,lv:1,cd:0.9,ccd:0}},info:t("hero_info_5201")},
5202:{uuid:5202,name:t("hero_name_5202"),path:"ha2", fac:FacSet.HERO,cards_lv:3,lv:1,type:HType.Long,hp:145,ap:180,speed:800,
skills:{6011:{uuid:6005,lv:1,cd:0.9,ccd:0}},info:t("hero_info_5202")},
5203:{uuid:5203,name:t("hero_name_5203"),path:"ha3", fac:FacSet.HERO,cards_lv:3,lv:1,type:HType.Long,hp:145,ap:180,speed:800,
skills:{6011:{uuid:6005,lv:1,cd:0.9,ccd:0}},info:t("hero_info_5203")},
5201:{uuid:5201,name:"射手",path:"ha1", fac:FacSet.HERO,cards_lv:1,lv:1,type:HType.Long,hp:115,ap:60,speed:800,
skills:{6101:{uuid:6005,lv:1,cd:0.9,ccd:0}},info:"普通射击,暴射 远dps"},
5202:{uuid:5202,name:"游侠",path:"ha2", fac:FacSet.HERO,cards_lv:3,lv:1,type:HType.Long,hp:145,ap:180,speed:800,
skills:{6011:{uuid:6005,lv:1,cd:0.9,ccd:0}},info:"暴射,光箭 远dps"},
5203:{uuid:5203,name:"游侠",path:"ha3", fac:FacSet.HERO,cards_lv:3,lv:1,type:HType.Long,hp:145,ap:180,speed:800,
skills:{6011:{uuid:6005,lv:1,cd:0.9,ccd:0}},info:"暴射,光箭 远dps"},
// ========== 辅助英雄 ==========
5301:{uuid:5301,name:t("hero_name_5301"),path:"hh1", fac:FacSet.HERO,cards_lv:1,lv:1,type:HType.Long,hp:115,ap:50,speed:800,atking:[{s_uuid:6302,t_num:2}],
skills:{6202:{uuid:6004,lv:1,cd:1.2,ccd:0}},info:t("hero_info_5301") },
5302:{uuid:5302,name:t("hero_name_5302"),path:"hz1", fac:FacSet.HERO,cards_lv:2,lv:1,type:HType.Long,hp:130,ap:50,speed:800,atking:[{s_uuid:6304,t_num:2}],
skills:{6202:{uuid:6004,lv:1,cd:1.2,ccd:0}},info:t("hero_info_5302")},
5301:{uuid:5301,name:"牧师",path:"hh1", fac:FacSet.HERO,cards_lv:1,lv:1,type:HType.Long,hp:115,ap:50,speed:800,atking:[{s_uuid:6302,t_num:2}],
skills:{6202:{uuid:6004,lv:1,cd:1.2,ccd:0}},info:"冰锥1,治疗 远辅助" },
5302:{uuid:5302,name:"战地医师",path:"hz1", fac:FacSet.HERO,cards_lv:2,lv:1,type:HType.Long,hp:130,ap:50,speed:800,atking:[{s_uuid:6304,t_num:2}],
skills:{6202:{uuid:6004,lv:1,cd:1.2,ccd:0}},info:"冰锥1,群体治疗 远辅助"},
5303:{uuid:5303,name:t("hero_name_5303"),path:"hm6", fac:FacSet.HERO,cards_lv:4,lv:1,type:HType.Long,hp:160,ap:80,speed:800,
skills:{6202:{uuid:6004,lv:1,cd:1.2,ccd:0}},info:t("hero_info_5303")},
5304:{uuid:5304,name:t("hero_name_5304"),path:"hm7", fac:FacSet.HERO,cards_lv:6,lv:1,type:HType.Long,hp:190,ap:120,speed:800,
skills:{6202:{uuid:6004,lv:1,cd:1.2,ccd:0}},info:t("hero_info_5304")},
5303:{uuid:5303,name:"守护祭司",path:"hm6", fac:FacSet.HERO,cards_lv:4,lv:1,type:HType.Long,hp:160,ap:80,speed:800,
skills:{6202:{uuid:6004,lv:1,cd:1.2,ccd:0}},info:"普通射击,单体攻击buff 射手辅助"},
5304:{uuid:5304,name:"秘法精灵",path:"hm7", fac:FacSet.HERO,cards_lv:6,lv:1,type:HType.Long,hp:190,ap:120,speed:800,
skills:{6202:{uuid:6004,lv:1,cd:1.2,ccd:0}},info:"普通射击,群体攻击buff 射手辅助"},
@@ -204,35 +185,32 @@ export const HeroInfo: Record<number, heroInfo> = {
//============== 兽人系列 ===============
// 近战型
6001:{uuid:6001,name:t("mon_name_6001"),path:"mo1", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:120,ap:12,speed:100,
6001:{uuid:6001,name:"兽人战士",path:"mo1", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:120,ap:12,speed:100,
skills:{6001:{uuid:6001,lv:1,cd:0.65,ccd:0}},info:""},
6002:{uuid:6002,name:t("mon_name_6002"),path:"mo3", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:120,ap:12,speed:100,
6002:{uuid:6002,name:"兽人斥候",path:"mo3", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:120,ap:12,speed:100,
skills:{6001:{uuid:6001,lv:1,cd:0.65,ccd:0}},info:""},
6003:{uuid:6003,name:t("mon_name_6003"),path:"mo4", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:350,ap:30,speed:100,
6003:{uuid:6003,name:"兽人卫士",path:"mo4", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:350,ap:30,speed:100,
skills:{6001:{uuid:6001,lv:1,cd:2,ccd:0}},info:""},
// 4. 远程
6004:{uuid:6004,name:t("mon_name_6004"),path:"mo2", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Long,hp:80,ap:45,speed:100,
6004:{uuid:6004,name:"兽人射手",path:"mo2", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Long,hp:80,ap:45,speed:100,
skills:{6001:{uuid:6101,lv:1,cd:1.5,ccd:0}},info:""},
6005:{uuid:6005,name:t("mon_name_6005"),path:"mo5", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Long,hp:80,ap:20,speed:100,
6005:{uuid:6005,name:"兽人法师",path:"mo5", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Long,hp:80,ap:20,speed:100,
skills:{6001:{uuid:6203,lv:1,cd:1.5,ccd:0}},info:""},
// 6. 精英/BOSS型
6006:{uuid:6006,name:t("mon_name_6006"),path:"mo6", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:1500,ap:20,speed:100,
6006:{uuid:6006,name:"兽人首领",path:"mo6", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:1500,ap:20,speed:100,
skills:{6002:{uuid:6002,lv:1,cd:2,ccd:0}},info:""},
//============== 亡灵系列 ===============
// 近战型
6101:{uuid:6101,name:t("mon_name_6101"),path:"mud1", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:120,ap:12,speed:100,
6101:{uuid:6101,name:"亡灵战士",path:"mud1", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:120,ap:12,speed:100,
skills:{6001:{uuid:6001,lv:1,cd:0.65,ccd:0}},info:""},
6103:{uuid:6103,name:t("mon_name_6103"),path:"mud3", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:120,ap:12,speed:100,
6103:{uuid:6103,name:"亡灵斥候",path:"mud3", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:120,ap:12,speed:100,
skills:{6001:{uuid:6001,lv:1,cd:0.65,ccd:0}},info:""},
// 4. 远程
6102:{uuid:6102,name:t("mon_name_6102"),path:"mud2", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Long,hp:80,ap:45,speed:100,
6102:{uuid:6102,name:"亡灵射手",path:"mud2", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Long,hp:80,ap:45,speed:100,
skills:{6001:{uuid:6101,lv:1,cd:1.5,ccd:0}},info:""},
// 6105:{uuid:6105,name:"兽人法师",path:"mud5", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:80,ap:20,speed:100,
// skills:{6001:{uuid:6001,lv:1,cd:1,ccd:0},6003:{uuid:6003,lv:1,cd:10,ccd:0}},info:""},
// 6. 精英/BOSS型
6104:{uuid:6104,name:t("mon_name_6104"),path:"mud4", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Long,hp:350,ap:30,speed:100,
6104:{uuid:6104,name:"亡灵法师",path:"mud4", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Long,hp:350,ap:30,speed:100,
skills:{6204:{uuid:6204,lv:1,cd:2,ccd:0},6206:{uuid:6206,lv:1,cd:10,ccd:0}},info:""},
6105:{uuid:6105,name:t("mon_name_6105"),path:"mud5", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:1500,ap:20,speed:100,
6105:{uuid:6105,name:"亡灵首领",path:"mud5", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:1500,ap:20,speed:100,
skills:{6002:{uuid:6002,lv:1,cd:2,ccd:0},6005:{uuid:6005,lv:1,cd:10,ccd:0}},info:""},
};