mirror of
https://gitee.com/dgflash/oops-plugin-framework.git
synced 2026-05-08 03:16:49 +08:00
多语言模块扩展支持添加其它自定义多语言组件
This commit is contained in:
@@ -53,7 +53,7 @@ export class LanguageManager {
|
||||
* @param language 语言名
|
||||
* @param callback 多语言资源数据加载完成回调
|
||||
*/
|
||||
setLanguage(language: string, callback: (success: boolean) => void) {
|
||||
setLanguage(language: string, callback?: (success: boolean) => void) {
|
||||
if (language == null || language == "") {
|
||||
language = this._defaultLanguage;
|
||||
}
|
||||
@@ -68,7 +68,7 @@ export class LanguageManager {
|
||||
}
|
||||
|
||||
if (language === LanguageData.current) {
|
||||
callback(false);
|
||||
callback && callback(false);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@ export class LanguageManager {
|
||||
LanguageData.current = language;
|
||||
this._languagePack.updateLanguage(language);
|
||||
this._languagePack.releaseLanguageAssets(oldLanguage);
|
||||
callback(true);
|
||||
callback && callback(true);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ import { TTFFont } from "cc";
|
||||
* @LastEditors: dgflash
|
||||
* @LastEditTime: 2023-08-22 16:37:40
|
||||
*/
|
||||
|
||||
export class LanguageData {
|
||||
/** JSON资源目录 */
|
||||
static path_json: string = "language/json";
|
||||
@@ -49,4 +50,10 @@ export class LanguageData {
|
||||
|
||||
return labId;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const LanguageType = [
|
||||
'LanguageLabel',
|
||||
'LanguageSprite',
|
||||
'LanguageSpine'
|
||||
]
|
||||
@@ -28,7 +28,9 @@ export class LanguageLabel extends Component {
|
||||
})
|
||||
set params(value: Array<LangLabelParamsItem>) {
|
||||
this._params = value;
|
||||
if (!EDITOR) this.enabled = true;
|
||||
if (!EDITOR) {
|
||||
this._needUpdate = true;
|
||||
}
|
||||
}
|
||||
get params(): Array<LangLabelParamsItem> {
|
||||
return this._params || [];
|
||||
@@ -42,7 +44,9 @@ export class LanguageLabel extends Component {
|
||||
}
|
||||
set dataID(value: string) {
|
||||
this._dataID = value;
|
||||
if (!EDITOR) this.enabled = true;
|
||||
if (!EDITOR) {
|
||||
this._needUpdate = true;
|
||||
}
|
||||
}
|
||||
|
||||
get string(): string {
|
||||
@@ -59,11 +63,16 @@ export class LanguageLabel extends Component {
|
||||
return _string;
|
||||
}
|
||||
|
||||
/** 更新语言 */
|
||||
language() {
|
||||
this._needUpdate = true;
|
||||
}
|
||||
|
||||
/** 初始字体尺寸 */
|
||||
initFontSize: number = 0;
|
||||
|
||||
onLoad() {
|
||||
this.enabled = true;
|
||||
this._needUpdate = true;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -86,16 +95,15 @@ export class LanguageLabel extends Component {
|
||||
ii.value = value;
|
||||
this._params.push(ii);
|
||||
}
|
||||
this.enabled = true;
|
||||
}
|
||||
|
||||
language() {
|
||||
this.enabled = true;
|
||||
this._needUpdate = true;
|
||||
}
|
||||
private _needUpdate: boolean = false;
|
||||
|
||||
update() {
|
||||
this.updateContent();
|
||||
this.enabled = false;
|
||||
if (this._needUpdate) {
|
||||
this.updateContent();
|
||||
this._needUpdate = false;
|
||||
}
|
||||
}
|
||||
|
||||
updateContent() {
|
||||
@@ -114,7 +122,6 @@ export class LanguageLabel extends Component {
|
||||
if (font) {
|
||||
richtext.font = font;
|
||||
}
|
||||
this.initFontSize = richtext.fontSize;
|
||||
richtext.string = this.string;
|
||||
this.initFontSize = richtext.fontSize;
|
||||
}
|
||||
|
||||
@@ -8,10 +8,7 @@ import { director, error, JsonAsset, TTFFont } from "cc";
|
||||
import { resLoader } from "../../../core/common/loader/ResLoader";
|
||||
import { Logger } from "../../../core/common/log/Logger";
|
||||
import { JsonUtil } from "../../../core/utils/JsonUtil";
|
||||
import { LanguageData } from "./LanguageData";
|
||||
import { LanguageLabel } from "./LanguageLabel";
|
||||
import { LanguageSpine } from "./LanguageSpine";
|
||||
import { LanguageSprite } from "./LanguageSprite";
|
||||
import { LanguageData, LanguageType } from "./LanguageData";
|
||||
|
||||
export class LanguagePack {
|
||||
/**
|
||||
@@ -21,23 +18,12 @@ export class LanguagePack {
|
||||
updateLanguage(lang: string) {
|
||||
let rootNodes = director.getScene()!.children;
|
||||
for (let i = 0; i < rootNodes.length; ++i) {
|
||||
// 更新所有的LanguageLabel节点
|
||||
let labels = rootNodes[i].getComponentsInChildren(LanguageLabel);
|
||||
for (let j = 0; j < labels.length; j++) {
|
||||
labels[j].language();
|
||||
}
|
||||
|
||||
// 更新所有的LanguageSprite节点
|
||||
let sprites = rootNodes[i].getComponentsInChildren(LanguageSprite);
|
||||
for (let j = 0; j < sprites.length; j++) {
|
||||
sprites[j].language();
|
||||
}
|
||||
|
||||
// 更新所有的LanguageSpine节点
|
||||
let spines = rootNodes[i].getComponentsInChildren(LanguageSpine);
|
||||
for (let j = 0; j < spines.length; j++) {
|
||||
spines[j].language();
|
||||
}
|
||||
LanguageType.forEach(type => {
|
||||
let comps: any[] = rootNodes[i].getComponentsInChildren(type);
|
||||
for (let j = 0; j < comps.length; j++) {
|
||||
comps[j].language();
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ export default class VMLabel extends VMBase {
|
||||
@property({
|
||||
readonly: true
|
||||
})
|
||||
private labelType: string = LABEL_TYPE.CC_LABEL;
|
||||
protected labelType: string = LABEL_TYPE.CC_LABEL;
|
||||
|
||||
@property({
|
||||
type: [CCString],
|
||||
@@ -57,7 +57,7 @@ export default class VMLabel extends VMBase {
|
||||
private templateFormatArr: string[] = [];
|
||||
|
||||
/** 源字符串 */
|
||||
private originText: string | null = null;
|
||||
protected originText: string | null = null;
|
||||
|
||||
onRestore() {
|
||||
this.checkLabel();
|
||||
|
||||
Reference in New Issue
Block a user