68 lines
1.4 KiB
JavaScript
68 lines
1.4 KiB
JavaScript
// 多语言配置
|
|
import zh from './zh.js';
|
|
import en from './en.js';
|
|
import ja from './ja.js';
|
|
import ru from './ru.js';
|
|
|
|
// 语言配置对象
|
|
const messages = {
|
|
zh,
|
|
en,
|
|
ja,
|
|
ru
|
|
};
|
|
|
|
// 创建一个响应式的语言状态
|
|
let currentLanguage = uni.getStorageSync('language') || 'zh';
|
|
|
|
// 获取当前语言
|
|
function getCurrentLanguage() {
|
|
return currentLanguage;
|
|
}
|
|
|
|
// 设置语言
|
|
function setLanguage(lang) {
|
|
console.log('设置语言:', lang);
|
|
currentLanguage = lang;
|
|
uni.setStorageSync('language', lang);
|
|
|
|
// 触发语言变化事件
|
|
uni.$emit('languageChanged', lang);
|
|
|
|
// 强制更新所有页面组件
|
|
const pages = getCurrentPages();
|
|
pages.forEach(page => {
|
|
if (page.$vm && page.$vm.$forceUpdate) {
|
|
page.$vm.$forceUpdate();
|
|
}
|
|
});
|
|
|
|
// 触发全局更新
|
|
if (typeof uni.$vm !== 'undefined' && uni.$vm.$forceUpdate) {
|
|
uni.$vm.$forceUpdate();
|
|
}
|
|
}
|
|
|
|
// 获取翻译文本
|
|
function t(key) {
|
|
const langMessages = messages[currentLanguage] || messages.zh;
|
|
return langMessages[key] || key;
|
|
}
|
|
|
|
// 获取所有支持的语言
|
|
function getSupportedLanguages() {
|
|
return [
|
|
{ code: 'zh', name: '中文' },
|
|
{ code: 'en', name: 'English' },
|
|
{ code: 'ja', name: '日本語' },
|
|
{ code: 'ru', name: 'Русский' }
|
|
];
|
|
}
|
|
|
|
export default {
|
|
messages,
|
|
getCurrentLanguage,
|
|
setLanguage,
|
|
t,
|
|
getSupportedLanguages
|
|
};
|