rp_10012/assets/Loading/scripts/i18n/LocalizedLabel2.ts
TJH 154722c074
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 49s
UI调整
2026-01-23 14:44:30 +08:00

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);
}
}