All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 49s
99 lines
2.6 KiB
TypeScript
99 lines
2.6 KiB
TypeScript
import { _decorator, CCBoolean, Component, Label, TTFFont } from 'cc';
|
|
import { getLanguage } from '../comm';
|
|
|
|
const { ccclass, property } = _decorator;
|
|
|
|
@ccclass('LocalizedLabel2')
|
|
export class LocalizedLabel2 extends Component {
|
|
private label: Label | null = null;
|
|
|
|
// 加入是否是加粗的属性
|
|
@property({
|
|
type: CCBoolean,
|
|
tooltip: '是否是加粗的'
|
|
})
|
|
public isBold: boolean = false;
|
|
|
|
// ========== 除了中日韩其他所有语言字体 ==========
|
|
@property({
|
|
type: TTFFont,
|
|
tooltip: '其他语言字体'
|
|
})
|
|
public fontOther: TTFFont | null = null;
|
|
|
|
@property({
|
|
type: TTFFont,
|
|
tooltip: '加粗字体'
|
|
})
|
|
public fontOtherBold: TTFFont | null = null;
|
|
|
|
// ========== 泰语字体 (th),越南语字体 (vi) ==========
|
|
@property({
|
|
type: TTFFont,
|
|
tooltip: '泰语越南字体'
|
|
})
|
|
public fontThVi: TTFFont | null = null;
|
|
|
|
@property({
|
|
type: TTFFont,
|
|
tooltip: '泰语越南加粗字体'
|
|
})
|
|
public fontThViBold: TTFFont | null = null;
|
|
|
|
// ========== 缅甸语字体 (my) ==========
|
|
@property({
|
|
type: TTFFont,
|
|
tooltip: '缅甸语字体'
|
|
})
|
|
public fontMy: TTFFont | null = null;
|
|
|
|
@property({
|
|
type: TTFFont,
|
|
tooltip: '缅甸语加粗字体'
|
|
})
|
|
public fontMyBold: TTFFont | null = null;
|
|
|
|
start() {
|
|
this.label = this.getComponent(Label);
|
|
this.updateLabel();
|
|
}
|
|
|
|
public updateLabel() {
|
|
if (!this.label) return;
|
|
this.applyFont();
|
|
}
|
|
|
|
private applyFont() {
|
|
const currentLang = getLanguage();
|
|
let targetFont: TTFFont | null = null;
|
|
switch (currentLang) {
|
|
case 'zh':
|
|
case 'ja':
|
|
case 'ko':
|
|
targetFont = null;
|
|
break;
|
|
case 'th':
|
|
targetFont = this.isBold ? this.fontThViBold : this.fontThVi;
|
|
break;
|
|
case 'vi':
|
|
targetFont = this.isBold ? this.fontThViBold : this.fontThVi;
|
|
break;
|
|
case 'my':
|
|
targetFont = this.isBold ? this.fontMyBold : this.fontMy;
|
|
break;
|
|
default:
|
|
targetFont = this.isBold ? this.fontOtherBold : this.fontOther;
|
|
break;
|
|
}
|
|
|
|
if (targetFont) {
|
|
this.label.useSystemFont = false;
|
|
this.label.font = targetFont;
|
|
} else {
|
|
this.label.useSystemFont = true;
|
|
}
|
|
this.label.isBold = this.isBold;
|
|
this.label.updateRenderData();
|
|
console.log(currentLang, 'targetFont', targetFont);
|
|
}
|
|
} |