97 lines
3.1 KiB
JavaScript
97 lines
3.1 KiB
JavaScript
"use strict";
|
||
const common_vendor = require("../common/vendor.js");
|
||
const lang_en = require("./en.js");
|
||
const lang_zhHans = require("./zh-Hans.js");
|
||
const uniStarter_config = require("../uni-starter.config.js");
|
||
const { i18n: { enable: i18nEnable } } = uniStarter_config.config;
|
||
const messages = {
|
||
"en": lang_en.langEn,
|
||
"zh-Hans": lang_zhHans.zhHans
|
||
};
|
||
let currentLang;
|
||
if (i18nEnable) {
|
||
currentLang = common_vendor.index.getStorageSync("CURRENT_LANG");
|
||
} else {
|
||
currentLang = "zh-Hans";
|
||
}
|
||
if (!currentLang) {
|
||
if (common_vendor.index.getLocale) {
|
||
common_vendor.index.__f__("log", "at lang/i18n.js:18", "获取应用语言:", common_vendor.index.getLocale());
|
||
let language = "en";
|
||
if (common_vendor.index.getLocale() != "en") {
|
||
language = "zh-Hans";
|
||
}
|
||
common_vendor.index.setStorageSync("CURRENT_LANG", language);
|
||
currentLang = language;
|
||
} else {
|
||
common_vendor.index.getSystemInfo({
|
||
success: function(res) {
|
||
common_vendor.index.__f__("log", "at lang/i18n.js:28", "获取设备信息:", res);
|
||
let language = "zh-Hans";
|
||
if (res.language == "en") {
|
||
language = "en";
|
||
}
|
||
common_vendor.index.setStorageSync("CURRENT_LANG", language);
|
||
currentLang = language;
|
||
},
|
||
fail: (err) => {
|
||
common_vendor.index.__f__("error", "at lang/i18n.js:37", err);
|
||
}
|
||
});
|
||
}
|
||
}
|
||
let i18nConfig = {
|
||
locale: currentLang,
|
||
// set locale
|
||
messages
|
||
// set locale messages
|
||
};
|
||
const i18n = common_vendor.createI18n(i18nConfig);
|
||
if (i18nEnable) {
|
||
common_vendor.index.__f__("log", "at lang/i18n.js:65", `
|
||
你已开启多语言国际化,将自动根据语言获取【lang/en.js】或【lang/zh-Hans.js】文件中配置的tabbar的值,
|
||
覆盖你在pages.json中的tabbar的值
|
||
如果你不需要多语言国际化,请打开配置文件uni-starter.config.js找到 -> i18n -> enable把值设置为false
|
||
`);
|
||
let initLanguageAfter = () => {
|
||
function $i18n(e) {
|
||
try {
|
||
if (i18n && i18n.global && i18n.global.messages && i18n.global.locale) {
|
||
return i18n.global.messages[i18n.global.locale][e];
|
||
}
|
||
if (i18n && i18n.messages && i18n.locale) {
|
||
return i18n.messages[i18n.locale][e];
|
||
}
|
||
return "";
|
||
} catch (error) {
|
||
common_vendor.index.__f__("error", "at lang/i18n.js:86", "[i18n] 获取翻译文本失败:", error);
|
||
return "";
|
||
}
|
||
}
|
||
setTimeout(function() {
|
||
try {
|
||
const tabbarText = $i18n("tabbar");
|
||
if (tabbarText) {
|
||
tabbarText.split(",").forEach((text, index) => {
|
||
common_vendor.index.setTabBarItem({
|
||
index,
|
||
text,
|
||
complete: () => {
|
||
}
|
||
});
|
||
});
|
||
}
|
||
} catch (error) {
|
||
common_vendor.index.__f__("error", "at lang/i18n.js:104", "[i18n] 更新 tabbar 失败:", error);
|
||
}
|
||
}, 1);
|
||
};
|
||
initLanguageAfter();
|
||
common_vendor.index.$on("changeLanguage", (e) => {
|
||
common_vendor.index.__f__("log", "at lang/i18n.js:110", "changeLanguage", e);
|
||
initLanguageAfter();
|
||
});
|
||
}
|
||
exports.i18n = i18n;
|
||
//# sourceMappingURL=../../.sourcemap/mp-weixin/lang/i18n.js.map
|