多语言模块

This commit is contained in:
2025-08-12 19:49:50 +08:00
parent 83370bd0ef
commit 707946304e
43 changed files with 1977 additions and 1305 deletions
+13 -1
View File
@@ -22,6 +22,7 @@ import { ImagePopup } from "../components/ImagePopup";
import ResManager from "db://assets/Scripts/Main/Manager/ResManager";
import { VideoRoleType } from "db://assets/Scripts/Main/Common/GlobalValue";
import ConfigManager from "../../manager/ConfigManager";
import LanguageUtils from "../../../Main/Common/LanguageUtils";
const { ccclass, property } = _decorator;
@ccclass("ChatPanel")
@@ -46,6 +47,7 @@ export class ChatPanel extends li_BaseView {
id: number;
private _nodeTab: any = {};
nameKey: string;
openUIDataCT(data) {
this.id = data;
// 设置当前聊天的角色ID
@@ -64,13 +66,23 @@ export class ChatPanel extends li_BaseView {
this,
this.onDialogUpdate
);
Utils.addInnerEL(InnerMsgCode.LanguageChange, this, () => {
this.girlName.string = LanguageUtils.getText(this.nameKey);
});
}
onDestroy(): void {
Utils.removeInnerEL(InnerMsgCode.LanguageChange, this, () => {
this.girlName.string = LanguageUtils.getText(this.nameKey);
});
}
refresh(id: number) {
this.id = id;
const data = ConfigManager.tables.TbGirls.get(this.id);
const dataDetail = ConfigManager.tables.TbGirlsDetail.get(this.id);
if (!data) return;
this.girlName.string = data.name;
this.nameKey = data.nameKey;
this.girlName.string = LanguageUtils.getText(data.nameKey);
ResManager.I.changeBundleSpriteFrame(
this.girlImg,
data.avatarPath,
@@ -4,6 +4,9 @@ import ResManager from "db://assets/Scripts/Main/Manager/ResManager";
import { DetailImageItem } from "./DetailImageItem";
import { NavigationManager } from "../../manager/NavigationManager";
import ConfigManager from "../../manager/ConfigManager";
import LanguageUtils from "../../../Main/Common/LanguageUtils";
import Utils from "../../../Main/Common/Utils";
import { InnerMsgCode } from "../../../Main/Config/InnerMsgCode";
const { ccclass, property } = _decorator;
@@ -47,6 +50,19 @@ export class GirlDetailPanel extends li_BaseView {
super.onLoadCT();
this.imgItemInst.node.active = false;
this.refresh(this.id);
Utils.addInnerEL(InnerMsgCode.LanguageChange, this, () => {
this.girlName.string = this.descName.string = LanguageUtils.getText(
this.nameKey
);
let desc = "";
const tags = LanguageUtils.getText(this.tagKey).split("|");
for (let i = 0; i < tags.length; i++) {
if (i != 0) desc += "\n";
desc += tags[i];
}
this.tags.string = desc;
});
}
setVideEnable(enable: boolean) {
@@ -55,12 +71,16 @@ export class GirlDetailPanel extends li_BaseView {
this.avatarVideo.play();
}
}
nameKey: string;
tagKey: string;
refresh(index: number) {
console.log(index);
const dataDetail = ConfigManager.tables.TbGirlsDetail.get(this.id);
const data = ConfigManager.tables.TbGirls.get(this.id);
this.girlName.string = this.descName.string = data.name;
this.nameKey = data.nameKey;
this.girlName.string = this.descName.string = LanguageUtils.getText(
data.nameKey
);
if (dataDetail.pics[0].endsWith("video")) {
ResManager.I.changeBundleVideo(
@@ -86,9 +106,11 @@ export class GirlDetailPanel extends li_BaseView {
this.desc.string = dataDetail.detailDesc;
let desc = "";
for (let i = 0; i < data.tag.length; i++) {
this.tagKey = data.tagKey;
const tags = LanguageUtils.getText(data.tagKey).split("|");
for (let i = 0; i < tags.length; i++) {
if (i != 0) desc += "\n";
desc += data.tag[i];
desc += tags[i];
}
this.tags.string = desc;
for (let i = 0; i < 5; i++) {
@@ -5,6 +5,8 @@ import ResManager from "db://assets/Scripts/Main/Manager/ResManager";
import Utils from "db://assets/Scripts/Main/Common/Utils";
import { NavigationManager } from "../../manager/NavigationManager";
import { Girl, PriceType } from "../../../schema/schema";
import LanguageUtils from "../../../Main/Common/LanguageUtils";
import { InnerMsgCode } from "../../../Main/Config/InnerMsgCode";
const { ccclass, property } = _decorator;
@@ -29,15 +31,49 @@ export class GirlListItem extends Component {
id: number = -1;
nameKey: string;
tagKey: string;
protected onLoad(): void {
Utils.addInnerEL(InnerMsgCode.LanguageChange, this, () => {
this.girlName.string = this.girlName.string = LanguageUtils.getText(
this.nameKey
);
let desc = "";
const tags = LanguageUtils.getText(this.tagKey).split("|");
for (let i = 0; i < tags.length; i++) {
if (i != 0) desc += "\n";
desc += tags[i];
}
this.tags.string = desc;
});
}
protected onDestroy(): void {
Utils.removeInnerEL(InnerMsgCode.LanguageChange, this, () => {
this.girlName.string = this.girlName.string = LanguageUtils.getText(
this.nameKey
);
let desc = "";
const tags = LanguageUtils.getText(this.tagKey).split("|");
for (let i = 0; i < tags.length; i++) {
if (i != 0) desc += "\n";
desc += tags[i];
}
this.tags.string = desc;
});
}
baseNode: Node;
refreshData(data: Girl, baseNode: Node) {
this.baseNode = baseNode;
this.id = data.id;
this.girlName.string = data.name;
this.nameKey = data.nameKey;
this.girlName.string = LanguageUtils.getText(data.nameKey);
this.tagKey = data.tagKey;
let desc = "";
for (let i = 0; i < data.tag.length; i++) {
if (i != 0) desc += "&";
desc += data.tag[i];
const tags = LanguageUtils.getText(data.tagKey).split("|");
for (let i = 0; i < tags.length; i++) {
if (i != 0) desc += "|";
desc += tags[i];
}
this.tags.string = desc;
this.price.node.active = data.priceType == PriceType.pay;
+17 -2
View File
@@ -4,6 +4,8 @@ import ResManager from "db://assets/Scripts/Main/Manager/ResManager";
import Utils from "db://assets/Scripts/Main/Common/Utils";
import { NavigationManager } from "../../manager/NavigationManager";
import { TbThemes, Theme } from "../../../schema/schema";
import LanguageUtils from "../../../Main/Common/LanguageUtils";
import { InnerMsgCode } from "../../../Main/Config/InnerMsgCode";
const { ccclass, property } = _decorator;
@ccclass("ThemeItem")
@@ -19,11 +21,24 @@ export class ThemeItem extends Component {
private category: number;
private isLocked: boolean;
start() {}
key: string;
protected onLoad(): void {
Utils.addInnerEL(InnerMsgCode.LanguageChange, this, () => {
this.titleName.string = LanguageUtils.getText(this.key);
});
}
protected onDestroy(): void {
Utils.removeInnerEL(InnerMsgCode.LanguageChange, this, () => {
this.titleName.string = LanguageUtils.getText(this.key);
});
}
refresh(themeData: Theme) {
this.lockImg.node.active = !themeData.isRelease;
this.isLocked = !themeData.isRelease;
this.titleName.string = themeData.name;
this.key = themeData.key;
this.titleName.string = LanguageUtils.getText(themeData.key);
this.category = themeData.category;
ResManager.I.changeBundleSpriteFrame(
this.img,
@@ -15,6 +15,7 @@ import { ThemeItem } from "./ThemeItem";
import { NavigationManager } from "../../manager/NavigationManager";
import { GirlListItem } from "./GirlListItem";
import ConfigManager from "../../manager/ConfigManager";
import LanguageUtils from "../../../Main/Common/LanguageUtils";
const { ccclass, property } = _decorator;
@@ -43,6 +44,7 @@ export class ThemePanel extends li_BaseView {
this.itemInst = this._nodeTab.ThemeItem.getComponent(ThemeItem);
this.itemInst.node.active = false;
this.content = this._nodeTab.AllThemesLayout;
this.Show();
}
@@ -50,7 +52,6 @@ export class ThemePanel extends li_BaseView {
//some temp data
this.coinNum.string = (50.0).toString();
this.recId = 1;
if (this.cache) {
for (let i = this.cache.length - 1; i >= 0; i--) {
this.cache[i].node.destroy();