import { PageFooterText, pageFooterZhCn, pageFooterEnUs } from './PageFooter'; import { MainPageText, mainPageZhCn, mainPageEnUs } from './MainPage'; import { UserPageText, userPageZhCn, userPageEnUs } from './UserPage'; import { TabBarText, tabBarEnUs, tabBarZhCn } from './TabBar'; import { ReportPageText, reportPageEnUs, reportPageZhCn } from './ReportPage'; import { InformPageText, informPageZhCn, informPageEnUs } from './InformPage'; import { AboutPageText, aboutPageEnUs, aboutPageZhCn } from './AboutPage'; import { ButtonText, buttonEnUs, buttonZhCn } from './Button'; import { MemberPageText, memberPageEnUs, memberPageZhCn } from './MemberPage'; import { TicketListText, ticketListEnUs, ticketListZhCn } from './TicketList'; import { NavBarTitle, navBarTitleEnUs, navBarTitleZhCh } from './NavBarTitle'; import { TicketDetailText, ticketDetailEnUs, ticketDetailZhCn, } from './TicketDetail'; interface TextRecord { pageFooter: PageFooterText; mainPage: MainPageText; userPage: UserPageText; tabBar: TabBarText; reportPage: ReportPageText; informPage: InformPageText; aboutPage: AboutPageText; button: ButtonText; memberPage: MemberPageText; ticketList: TicketListText; navBar: NavBarTitle; ticketDetail: TicketDetailText; } const textZhCn: TextRecord = { pageFooter: pageFooterZhCn, mainPage: mainPageZhCn, userPage: userPageZhCn, tabBar: tabBarZhCn, reportPage: reportPageZhCn, informPage: informPageZhCn, aboutPage: aboutPageZhCn, button: buttonZhCn, memberPage: memberPageZhCn, ticketList: ticketListZhCn, navBar: navBarTitleZhCh, ticketDetail: ticketDetailZhCn, }; const textEnUs: TextRecord = { pageFooter: pageFooterEnUs, mainPage: mainPageEnUs, userPage: userPageEnUs, tabBar: tabBarEnUs, reportPage: reportPageEnUs, informPage: informPageEnUs, aboutPage: aboutPageEnUs, button: buttonEnUs, memberPage: memberPageEnUs, ticketList: ticketListEnUs, navBar: navBarTitleEnUs, ticketDetail: ticketDetailEnUs, }; // type Lang = 'zh_CN' | 'en_US' | ...; export type Lang = 'zh_CN' | 'en_US'; class PlainText { private readonly textZhCn: TextRecord; private readonly textEnUs: TextRecord; private lang: Lang; constructor() { this.textZhCn = textZhCn; this.textEnUs = textEnUs; this.lang = 'zh_CN'; } setLang(lang: Lang) { this.lang = lang; } get(): TextRecord { if (this.lang == 'zh_CN') { return this.textZhCn; } else if (this.lang == 'en_US') { return this.textEnUs; } return this.textZhCn; } getCurLang(): Lang { return this.lang; } } const pt = new PlainText(); export default pt;