Files
CINC/lang/LanguageManager.js

51 lines
1.2 KiB
JavaScript

// lang/LanguageManager.js
class LanguageManager {
constructor() {
this.translations = {};
this.currentLanguage = '#^'; // 默认语言
}
/**
* 加载翻译文件
* @param {Object} translations - 翻译对象
*/
loadTranslations(translations) {
this.translations = translations;
}
/**
* 设置当前语言
* @param {string} lang - 语言代码,如 'en', 'zh'
*/
setLanguage(lang) {
if (this.translations[lang]) {
this.currentLanguage = lang;
return true;
}
return false;
}
/**
* 获取翻译文本
* @param {string} key - 文本键值
* @param {string} lang - 可选,指定语言,默认使用当前语言
* @returns {string} 翻译后的文本
*/
t(key, lang = this.currentLanguage) {
if (this.translations[lang] && this.translations[lang][key]) {
return this.translations[lang][key];
}
return key; // 如果没有找到翻译,返回原键值
}
/**
* 获取可用语言列表
* @returns {string[]} 语言代码数组
*/
getAvailableLanguages() {
return Object.keys(this.translations);
}
}
// 导出单例
export default new LanguageManager();