3d2a72cbc6cca1ab3e944eaac6480643c74353ec.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. System.register(["__unresolved_0", "cc", "__unresolved_1", "__unresolved_2", "__unresolved_3"], function (_export, _context) {
  2. "use strict";
  3. var _reporterNs, _cclegacy, __checkObsolete__, __checkObsoleteInNamespace__, sys, Logger, LanguageData, LanguagePack, LanguageManager, _crd;
  4. function _reportPossibleCrUseOfLogger(extras) {
  5. _reporterNs.report("Logger", "../../../core/common/log/Logger", _context.meta, extras);
  6. }
  7. function _reportPossibleCrUseOfLanguageData(extras) {
  8. _reporterNs.report("LanguageData", "./LanguageData", _context.meta, extras);
  9. }
  10. function _reportPossibleCrUseOfLanguagePack(extras) {
  11. _reporterNs.report("LanguagePack", "./LanguagePack", _context.meta, extras);
  12. }
  13. _export("LanguageManager", void 0);
  14. return {
  15. setters: [function (_unresolved_) {
  16. _reporterNs = _unresolved_;
  17. }, function (_cc) {
  18. _cclegacy = _cc.cclegacy;
  19. __checkObsolete__ = _cc.__checkObsolete__;
  20. __checkObsoleteInNamespace__ = _cc.__checkObsoleteInNamespace__;
  21. sys = _cc.sys;
  22. }, function (_unresolved_2) {
  23. Logger = _unresolved_2.Logger;
  24. }, function (_unresolved_3) {
  25. LanguageData = _unresolved_3.LanguageData;
  26. }, function (_unresolved_4) {
  27. LanguagePack = _unresolved_4.LanguagePack;
  28. }],
  29. execute: function () {
  30. _crd = true;
  31. _cclegacy._RF.push({}, "3757cxZqLZObIdvP/gQ6Yuj", "Language", undefined);
  32. __checkObsolete__(['sys']);
  33. /** 多语言管理器 */
  34. _export("LanguageManager", LanguageManager = class LanguageManager {
  35. constructor() {
  36. this._languages = [sys.Language.CHINESE, sys.Language.ENGLISH];
  37. // 支持的语言
  38. this._languagePack = new (_crd && LanguagePack === void 0 ? (_reportPossibleCrUseOfLanguagePack({
  39. error: Error()
  40. }), LanguagePack) : LanguagePack)();
  41. // 语言包
  42. this._defaultLanguage = sys.Language.CHINESE;
  43. }
  44. // 默认语言
  45. /** 支持的多种语言列表 */
  46. get languages() {
  47. return this._languages;
  48. }
  49. set languages(languages) {
  50. this._languages = languages;
  51. }
  52. /** 设置的当前语言列表中没有配置时,使用默认语言 */
  53. set default(lang) {
  54. this._defaultLanguage = lang || sys.Language.CHINESE;
  55. }
  56. /** 获取当前语种 */
  57. get current() {
  58. return (_crd && LanguageData === void 0 ? (_reportPossibleCrUseOfLanguageData({
  59. error: Error()
  60. }), LanguageData) : LanguageData).current;
  61. }
  62. /** 语言包 */
  63. get pack() {
  64. return this._languagePack;
  65. }
  66. /**
  67. * 是否存在指定语言
  68. * @param lang 语言名
  69. * @returns 存在返回true,则否false
  70. */
  71. isExist(lang) {
  72. return this.languages.indexOf(lang) > -1;
  73. }
  74. /** 获取下一个语种 */
  75. getNextLang() {
  76. let supportLangs = this.languages;
  77. let index = supportLangs.indexOf((_crd && LanguageData === void 0 ? (_reportPossibleCrUseOfLanguageData({
  78. error: Error()
  79. }), LanguageData) : LanguageData).current);
  80. return supportLangs[(index + 1) % supportLangs.length];
  81. }
  82. /**
  83. * 改变语种,会自动下载对应的语种
  84. * @param language 语言名
  85. * @param callback 多语言资源数据加载完成回调
  86. */
  87. setLanguage(language, callback) {
  88. if (language == null || language == "") {
  89. language = this._defaultLanguage;
  90. } else {
  91. language = language.toLowerCase();
  92. }
  93. let index = this.languages.indexOf(language);
  94. if (index < 0) {
  95. console.log(`当前不支持【${language}】语言,将自动切换到【${this._defaultLanguage}】语言`);
  96. language = this._defaultLanguage;
  97. }
  98. if (language === (_crd && LanguageData === void 0 ? (_reportPossibleCrUseOfLanguageData({
  99. error: Error()
  100. }), LanguageData) : LanguageData).current) {
  101. callback && callback(false);
  102. return;
  103. }
  104. this.loadLanguageAssets(language, lang => {
  105. (_crd && Logger === void 0 ? (_reportPossibleCrUseOfLogger({
  106. error: Error()
  107. }), Logger) : Logger).instance.logConfig(`当前语言为【${language}】`);
  108. const oldLanguage = (_crd && LanguageData === void 0 ? (_reportPossibleCrUseOfLanguageData({
  109. error: Error()
  110. }), LanguageData) : LanguageData).current;
  111. (_crd && LanguageData === void 0 ? (_reportPossibleCrUseOfLanguageData({
  112. error: Error()
  113. }), LanguageData) : LanguageData).current = language;
  114. this._languagePack.updateLanguage(language);
  115. this._languagePack.releaseLanguageAssets(oldLanguage);
  116. callback && callback(true);
  117. });
  118. }
  119. /**
  120. * 根据data获取对应语种的字符
  121. * @param labId
  122. * @param arr
  123. */
  124. getLangByID(labId) {
  125. return (_crd && LanguageData === void 0 ? (_reportPossibleCrUseOfLanguageData({
  126. error: Error()
  127. }), LanguageData) : LanguageData).getLangByID(labId);
  128. }
  129. /**
  130. * 下载语言包素材资源
  131. * 包括语言json配置和语言纹理包
  132. * @param lang
  133. * @param callback
  134. */
  135. loadLanguageAssets(lang, callback) {
  136. lang = lang.toLowerCase();
  137. return this._languagePack.loadLanguageAssets(lang, callback);
  138. }
  139. /**
  140. * 释放不需要的语言包资源
  141. * @param lang
  142. */
  143. releaseLanguageAssets(lang) {
  144. lang = lang.toLowerCase();
  145. this._languagePack.releaseLanguageAssets(lang);
  146. }
  147. });
  148. _cclegacy._RF.pop();
  149. _crd = false;
  150. }
  151. };
  152. });
  153. //# sourceMappingURL=3d2a72cbc6cca1ab3e944eaac6480643c74353ec.js.map