I18nUtil.ts 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555
  1. import Config from "../Config";
  2. import Gamecfg from "../common/gameCfg";
  3. import { gameMethod } from "../common/gameMethod";
  4. import { FightTypeMap, Lang, TaskKind } from "../data/const/TypeConst";
  5. import Load from "./Load";
  6. export class I18n {
  7. static getI18nText(key: string, ...args) {
  8. let i18n = Gamecfg.languageClientText.getItem(key);
  9. let str: string = key;
  10. if (!i18n || !i18n[Config.lang]) {
  11. if (CC_PREVIEW) console.warn(`多语言languageText: ${key},${Config.lang}不存在`);
  12. } else str = i18n[Config.lang];
  13. return I18n.format(str, args);
  14. }
  15. static getI18nLang(key: string, ...args) {
  16. let i18n = Gamecfg.languageLang.getItem(key);
  17. let str: string = key;
  18. if (!i18n || !i18n[Config.lang]) {
  19. if (CC_PREVIEW) console.warn(`多语言languageLang: ${key},${Config.lang}不存在`);
  20. } else str = i18n[Config.lang];
  21. return I18n.format(str, args);
  22. }
  23. static format(str: string, args: any[]) {
  24. let result = str;
  25. args.forEach((element, index) => {
  26. result = result.replace(`{${index}}`, element);
  27. });
  28. return result;
  29. }
  30. static readonly temp = [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}];
  31. static getI18nLangArr(key: string) {
  32. let i18n = Gamecfg.languageLang.getItem(key);
  33. let arr: any = this.temp;
  34. if (!i18n || !i18n[Config.lang]) {
  35. if (CC_PREVIEW) console.warn(`多语言languageLangArr: ${key},${Config.lang}不存在`);
  36. return arr;
  37. } else {
  38. try {
  39. arr = JSON.parse(i18n[Config.lang]);
  40. } catch (e: any) {
  41. if (CC_PREVIEW) console.error(e);
  42. }
  43. }
  44. return arr;
  45. }
  46. /**
  47. * 如果是zh-cn,则从原路径读取
  48. */
  49. static LoadI18nTexture(node: cc.Node, url: string, callback: Function = null) {
  50. let u = url;
  51. if (Config.lang != Lang.lang_zh_cn) u = `${Config.lang}/${url}`;
  52. Load.loadTexture(node, u, (isSucc) => {
  53. if (!isSucc) {
  54. console.warn(`${Config.lang}: ${node.name}节点上的资源${url}加载失败`);
  55. }
  56. if (callback) callback(isSucc);
  57. });
  58. }
  59. static getEpsTypeName(type: number) {
  60. return I18n.getI18nText(`common_eptype_${type}`);
  61. }
  62. static getMoneyDesc(money: number | string) {
  63. return I18n.getI18nText("money_desc", money);
  64. }
  65. static getTaskDescKey(id: number | string) {
  66. return `task_desc_name_${id}`;
  67. }
  68. static getTaskDesc(id: number | string, ...args) {
  69. return I18n.getI18nLang(I18n.getTaskDescKey(id), ...args);
  70. }
  71. static getUserEpDesc(key: string | number, ...args) {
  72. return I18n.getI18nLang(`user_ep_desc_${key}`, ...args);
  73. }
  74. static getFazhenInfoName(id: string | number) {
  75. return I18n.getI18nLang(`equip_info_name_${id}`);
  76. }
  77. static getFazhenSkillDesc(id: string | number, ...args) {
  78. return I18n.getI18nLang(`fazhen_skill_desc_${id}`, ...args);
  79. }
  80. static getFazhenSkillName(id: string | number, ...args) {
  81. return I18n.getI18nLang(`fazhen_skill_name_${id}`);
  82. }
  83. static getFazhenInfoDesc(id: string | number) {
  84. return I18n.getI18nLang(`fazhen_info_desc_${id}`);
  85. }
  86. static getFushiEpDesc(key: string | number) {
  87. return I18n.getI18nLang(`fushi_ep_desc_${key}`);
  88. }
  89. static getFushiItemName(id: string | number) {
  90. return I18n.getI18nLang(`fushi_item_name_${id}`);
  91. }
  92. static getFushiEpName(key: string | number) {
  93. return I18n.getI18nLang(`fushi_ep_name_${key}`);
  94. }
  95. static getFushiTaskdescContent(kind: string | number, ...args) {
  96. return I18n.getI18nLang(`fushi_taskdesc_content_${kind}`, ...args);
  97. }
  98. static getFushiTaskdescName(kind: string | number, ...args) {
  99. return I18n.getI18nLang(`fushi_taskdesc_name_${kind}`, ...args);
  100. }
  101. static getGuideInfoParam(id: string | number): any[] {
  102. return I18n.getI18nLangArr(`guide_info_pram_${id}`);
  103. }
  104. static getPveInfoName(id: string | number) {
  105. return I18n.getI18nLang(`pve_info_name_${id}`);
  106. }
  107. static getJinxiuByTzDesc(tzid: number | string) {
  108. return I18n.getI18nLang(`jinxiu_info_desc_${tzid}`);
  109. }
  110. static getJinxiuByTzName(tzid: number | string) {
  111. return I18n.getI18nLang(`jinxiu_info_tzName${tzid}`);
  112. }
  113. static getYixiangInfoDesc(id: string | number) {
  114. return I18n.getI18nLang(`yixiang_info_desc_${id}`);
  115. }
  116. static getYixiangInfoName(id: string | number) {
  117. return I18n.getI18nLang(`yixiang_info_name_${id}`);
  118. }
  119. static getYixiangInfoSource(id: string | number) {
  120. return I18n.getI18nLang(`yixiang_info_source_${id}`);
  121. }
  122. static getLiudaoInfoName(id: string | number) {
  123. return I18n.getI18nLang(`liudao_info_name_${id}`);
  124. }
  125. static getLonggongJiaofuName(id: string | number) {
  126. return I18n.getI18nLang(`longgong_jiaofu_name_${id}`);
  127. }
  128. static getDongtianPvdtName(id: number | string) {
  129. return I18n.getI18nLang(`dongtian_pvdt_name_${id}`);
  130. }
  131. static getEquipPifugetDesc(id: number | string) {
  132. return I18n.getI18nLang(`equip_pifu_getDesc_${id}`);
  133. }
  134. static getDongtianCarName(id: string | number) {
  135. return I18n.getI18nLang(`dongtian_car_name_${id}`);
  136. }
  137. static getDongtianXlLvName(type: number | string, id: number | string) {
  138. return I18n.getI18nLang(`dongtian_xlLv_name_${type}_${id}`);
  139. }
  140. static getPveJingyingName(id: string | number) {
  141. return I18n.getI18nLang(`pve_jingying_name_${id}`);
  142. }
  143. static getPvwTypeName(id: string | number) {
  144. return I18n.getI18nLang(`pvw_type_name_${id}`);
  145. }
  146. static getPvwMonsterName(id: string | number) {
  147. return I18n.getI18nLang(`pvw_monster_name_${id}`);
  148. }
  149. static getReddotInfoName(id: string | number) {
  150. return I18n.getI18nLang(`reddot_info_name_${id}`);
  151. }
  152. static getShengqiInfoName(id: string | number) {
  153. return I18n.getI18nLang(`shengqi_info_name_${id}`);
  154. }
  155. static getShengqiInfoDesc(id: string | number) {
  156. return I18n.getI18nLang(`shengqi_info_desc_${id}`);
  157. }
  158. static getShengqiInfoSkillDesc(id: string | number) {
  159. return I18n.getI18nLang(`shengqi_info_skillDesc_${id}`);
  160. }
  161. static getShengqiInfoChipName(id: string | number) {
  162. return I18n.getI18nLang(`shengqi_info_chipName_${id}`);
  163. }
  164. static getShengqiInfoChipDesc(id: string | number) {
  165. return I18n.getI18nLang(`shengqi_info_chipDesc_${id}`);
  166. }
  167. static getShopCoinName(id: string | number) {
  168. return I18n.getI18nLang(`shop_coin_name_${id}`);
  169. }
  170. static getShopDiamondName(id: string | number) {
  171. return I18n.getI18nLang(`shop_diamond_name_${id}`);
  172. }
  173. static getShopKind11Title(id: string | number) {
  174. return I18n.getI18nLang(`shop_kind11_title_${id}`);
  175. }
  176. static getSubscribeInfoContent(id: string | number) {
  177. return I18n.getI18nLang(`subscribe_info_content_${id}`);
  178. }
  179. static getXianlvInfoName(id: number | string) {
  180. return I18n.getI18nLang(`xianlv_info_name_${id}`);
  181. }
  182. static getMonClubBossName(id: number | string) {
  183. return I18n.getI18nLang(`mon_clubBoss_name_${id}`);
  184. }
  185. static getHelpInfoDesc(id: number | string) {
  186. return I18n.getI18nLang(`help_info_desc_${id}`);
  187. }
  188. static getXianlvSkill_DescDesc(id: string | number) {
  189. return I18n.getI18nLang(`xianlv_skill_desc_desc_${id}`);
  190. }
  191. static getXianlvSkillName(id: string | number) {
  192. return I18n.getI18nLang(`xianlv_skill_name_${id}`);
  193. }
  194. static getXiantuInfoName(id: string | number) {
  195. let kaiqiCfg = Gamecfg.kaiqiInfo.getItem(id.toString());
  196. return I18n.getI18nLang(kaiqiCfg.name);
  197. }
  198. static getXiantuInfoDesc(id: string | number) {
  199. let kaiqiCfg = Gamecfg.kaiqiInfo.getItem(id.toString());
  200. return I18n.getI18nLang(kaiqiCfg.desc);
  201. }
  202. static getZhaocaiPinzhirwdTitle(pinzhi: string | number) {
  203. return I18n.getI18nLang(`zhaocai_pinzhi_rwdTitle_${pinzhi}`);
  204. }
  205. static getClubMijiName(type: number | string, id: number | string) {
  206. return I18n.getI18nLang(`club_miji_name_${type}_${id}`);
  207. }
  208. // 宗门旗帜描述
  209. static getClubFlagDesc(id: number | string, ...args) {
  210. return I18n.getI18nLang(`club_flag_desc_${id}`, args);
  211. }
  212. static getFazhenJibanName(id: string | number) {
  213. return I18n.getI18nLang(`fazhen_jiban_name_${id}`);
  214. }
  215. static getBaoshiInfoName(id: number | string) {
  216. return I18n.getI18nLang(`baoshi_info_name_${id}`);
  217. }
  218. static getChenghaoInfoName(id: string | number) {
  219. return I18n.getI18nLang(`chenghao_info_name_${id}`);
  220. }
  221. static getChenghaoInfoDesc(id: string | number) {
  222. return I18n.getI18nLang(`chenghao_info_desc_${id}`);
  223. }
  224. static getEquipPifuName(id: number | string) {
  225. return I18n.getI18nLang(`equip_pifu_name_${id}`);
  226. }
  227. static getEquipPifuDesc(id: number | string) {
  228. return I18n.getI18nLang(`equip_pifu_desc_${id}`);
  229. }
  230. static getBaoshiItemName(id: string | number) {
  231. return I18n.getI18nLang(`baoshi_item_name_${id}`);
  232. }
  233. static getBaoshiItemDesc(id: string | number) {
  234. return I18n.getI18nLang(`baoshi_item_desc_${id}`);
  235. }
  236. static getJumpInfoName(id: string | number) {
  237. return I18n.getI18nLang(`jump_info_name_${id}`);
  238. }
  239. static getShopFushizName(id: string | number) {
  240. return I18n.getI18nLang(`shop_fushiz_name_${id}`);
  241. }
  242. static getReddotInfoDesc(id: string | number) {
  243. return I18n.getI18nLang(`reddot_info_desc_${id}`);
  244. }
  245. static getFushiJitanName(id: string | number, saveid: string | number) {
  246. return I18n.getI18nLang(`fushi_jitan_name_${id}_${saveid}`);
  247. }
  248. static getFushiItemDesc(id: number | string) {
  249. return I18n.getI18nLang(`fushi_item_desc_${id}`);
  250. }
  251. static getJingguaiInfoName(id: number | string) {
  252. return I18n.getI18nLang(`jingguai_info_name_${id}`);
  253. }
  254. static getJingguaiInfoDesc(id: number | string) {
  255. return I18n.getI18nLang(`jingguai_info_desc_${id}`);
  256. }
  257. static getJingguaiPinzhiName(id: number | string) {
  258. return I18n.getI18nLang(`jingguai_pinzhi_name_${id}`);
  259. }
  260. static getLiantiJingluoName(id: number | string) {
  261. return I18n.getI18nLang(`lianti_jingluo_name_${id}`);
  262. }
  263. static getLiantiTipoDesc(id: number | string) {
  264. return I18n.getI18nLang(`lianti_tipo_desc_${id}`);
  265. }
  266. static getShopJintiaoName(id: number | string) {
  267. return I18n.getI18nLang(`shop_jintiao_name_${id}`);
  268. }
  269. static getMonXiongshouName(id: number | string) {
  270. return I18n.getI18nLang(`mon_xiongshou_name_${id}`);
  271. }
  272. static getXiongshouMFDesc(id: number | string) {
  273. return I18n.getI18nLang(`xiongshou_MF_desc_${id}`);
  274. }
  275. static getXiongshouNLName(id: number | string) {
  276. return I18n.getI18nLang(`xiongshou_NL_name_${id}`);
  277. }
  278. static getXiongshouNLDes(id: number | string) {
  279. return I18n.getI18nLang(`xiongshou_NL_des_${id}`);
  280. }
  281. static getDiZiPuGongDesc(key: number | string) {
  282. return I18n.getI18nLang(`${key}`);
  283. }
  284. //==========================================================================遮天==========================================================================
  285. static getItemMoneyName(id: number | string) {
  286. // 道具名字
  287. return I18n.getI18nLang(`item_money_name_${id}`);
  288. }
  289. static getItemMoneyDesc(id: number | string) {
  290. // 道具描述
  291. return I18n.getI18nLang(`item_money_desc_${id}`);
  292. }
  293. static getZhenFaInfoName(id: string | number) {
  294. return I18n.getI18nLang(`zhenfa_info_name_${id}`);
  295. }
  296. static getShouLingName(id: string | number) {
  297. return I18n.getI18nLang(`shouling_name_${id}`);
  298. }
  299. static getShoulingSkillDesc(key: string | number) {
  300. return I18n.getI18nLang(`${key}`);
  301. }
  302. static getShoulingTuJianName(key: string | number) {
  303. return I18n.getI18nLang(`shouling_jiban_name_${key}`);
  304. }
  305. static getDiziBaseName(id: string) {
  306. let diziBase = Gamecfg.huobanBase.getItem(id);
  307. return I18n.getI18nLang(diziBase?.name);
  308. }
  309. static getDaoyouBaseDesc(id: string) {
  310. return I18n.getI18nLang(`daoyou_base_desc_${id}`);
  311. }
  312. static getDaoYouSkillTypeName(id: string, ...args) {
  313. return I18n.getI18nLang(`daoyou_skillType_skillName_${id}`, ...args);
  314. }
  315. static getJingjieStepTitle(id: string | number) {
  316. return I18n.getI18nLang(`jingjie_step_title_${id}`);
  317. }
  318. static getJingjieStepMiniTitle(id: string | number) {
  319. let title = I18n.getI18nLang(`jingjie_step_title_${id}`);
  320. let splitTitle: string[] = title.split("·");
  321. return splitTitle[splitTitle.length - 1];
  322. }
  323. static getDiziJingjieStepTitle(pinzhi: string, jingjie: string) {
  324. let diziTuPoCfg = Gamecfg.huobanTupo.getItem(pinzhi, jingjie);
  325. return I18n.getI18nLang(diziTuPoCfg.jingjie);
  326. }
  327. static getDiziJingjieStepMiniTitle(pinzhi: string, jingjie: string) {
  328. let diziTuPoCfg = Gamecfg.huobanTupo.getItem(pinzhi, jingjie);
  329. let title = I18n.getI18nLang(diziTuPoCfg.jingjie);
  330. let splitTitle: string[] = title.split("·");
  331. return splitTitle[splitTitle.length - 1];
  332. }
  333. static getDiziJingjieStepDoubleTitle(pinzhi: string, jingjie: string) {
  334. let diziTuPoCfg = Gamecfg.huobanTupo.getItem(pinzhi, jingjie);
  335. let title = I18n.getI18nLang(diziTuPoCfg.jingjie);
  336. let splitTitle: string[] = title.split("·");
  337. return [splitTitle[0], splitTitle[splitTitle.length - 1]];
  338. }
  339. static getDaDiGuZiName(id: number | string) {
  340. // 古字名字
  341. return I18n.getI18nLang(`dadiguzi_info_name_${id}`);
  342. }
  343. static getDaDiGuZiBuWeiName(id: number | string) {
  344. // 古字部位名字
  345. return I18n.getI18nLang(`dadiguzi_info_buwei_${id}`);
  346. }
  347. static getDaDiGuZiTypeName(id: number | string) {
  348. // 古字类型名字(灵脉)
  349. return I18n.getI18nLang(`dadiguzi_type_name_${id}`);
  350. }
  351. static getDaDiGuZiShuFaName(id: number | string) {
  352. // 术法名字
  353. return I18n.getI18nLang(`shufa_name_des${id}`);
  354. }
  355. static getDaDiGuZiShuFaTypeName(id: number | string) {
  356. // 术法类型名字
  357. return I18n.getI18nLang(`dadiguzi_xfinfo_type_${id}`);
  358. }
  359. static getDaDiGuZiSfinfoDesc(id: string) {
  360. // 术法技能描述
  361. return I18n.getI18nLang(id);
  362. }
  363. static getDaDiGuZiXftjName(id: number | string) {
  364. // 图鉴名字
  365. return I18n.getI18nLang(`dadiguzi_xftj_name_${id}`);
  366. }
  367. static getDaDiGuZiMingwenName(id: number | string) {
  368. // 铭文名字
  369. return I18n.getI18nLang(`dadiguzi_mingwen_name_${id}`);
  370. }
  371. static getDaDiGuZiLingmaiDesc(id: number | string, count: number | string) {
  372. // 灵脉描述
  373. return I18n.getI18nLang(`dadiguzi_lingmai_desc_${id}_${count}`);
  374. }
  375. static getDaoWenTzName(id: number | string) {
  376. // 道纹套装名字
  377. return I18n.getI18nLang(`daowen_tz_info_name_${id}`);
  378. }
  379. static getDaoWenBwName(id: number | string) {
  380. // 道纹部位名字
  381. return I18n.getI18nLang(`daowen_slot_name_${id}`);
  382. }
  383. static getDaoWenTzDesc(id: number | string) {
  384. // 道纹套装描述
  385. return I18n.getI18nLang(`daowen_skill_des${id}`);
  386. }
  387. static getUserEpName(key: string | number) {
  388. // 属性名字
  389. return I18n.getI18nLang(`user_ep_name_${key}`);
  390. }
  391. static getSkinName(key: string | number) {
  392. // 皮肤名字
  393. return I18n.getI18nLang(`skin_skin_name_${key}`);
  394. }
  395. static getDiZiTuJianName(id: string | number) {
  396. // 图鉴名字
  397. return I18n.getI18nLang(`dizi_tujian_name_${id}`);
  398. }
  399. static getDouFaNpcName(id: string | number, name: string) {
  400. if (id.toString().length < 6)//NPC读语言表
  401. {
  402. let npcName = I18n.getI18nLang(`doufa_npc_name_${id}`);
  403. return npcName;
  404. }
  405. return name;
  406. }
  407. static getDouLuoNpcName(id: string | number, name: string) {
  408. if (id.toString().length < 6)//NPC读语言表
  409. {
  410. let npcCfg = Gamecfg.douLuoNpc.getItem(id.toString());
  411. let npcName = I18n.getI18nLang(npcCfg?.name);
  412. return npcName;
  413. }
  414. return name;
  415. }
  416. static getDouLuoNpcServer(id: string | number, name: string) {
  417. if (id.toString().length < 6)//NPC读语言表
  418. {
  419. let npcCfg = Gamecfg.douLuoNpc.getItem(id.toString());
  420. let npcName = I18n.getI18nLang(npcCfg?.sevname);
  421. return npcName;
  422. }
  423. return name;
  424. }
  425. static getYaoTianNpcName(id: string | number, name: string) {
  426. if (id.toString().length < 6)//NPC读语言表
  427. {
  428. let npcName = I18n.getI18nLang(name);
  429. return npcName;
  430. }
  431. return name;
  432. }
  433. static getJingjieStepTitleByKey(key: string) {
  434. return I18n.getI18nLang(key);
  435. }
  436. static getCnNum(key: string | number) {
  437. // 中文数字一到十
  438. return I18n.getI18nLang(`number_${key}`);
  439. }
  440. }