LanguageManager.ts 838 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { resources } from "cc";
  2. const win = window as any;
  3. export class LanguageManager {
  4. // 当前语言
  5. public static currentLanguage: string = 'en';
  6. // 存储语言资源
  7. private static languageData: any = {};
  8. // 加载语言文件
  9. public static loadLanguage(language: string): void {
  10. this.currentLanguage = language;
  11. this.languageData = win.languages[language]
  12. }
  13. // 获取文本内容
  14. public static getText(key: string): string {
  15. const win: any = window;
  16. if (!win.languages) {
  17. return key;
  18. }
  19. const searcher = key.split('.');
  20. let data = this.languageData;
  21. for (let i = 0; i < searcher.length; i++) {
  22. data = data[searcher[i]];
  23. if (!data) {
  24. return '';
  25. }
  26. }
  27. return data || '';
  28. }
  29. // 切换语言
  30. public static switchLanguage(language: string): void {
  31. this.loadLanguage(language);
  32. }
  33. }