congming_huose-apk/common/i18n/index.js

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
};