mirror of
http://junepve.top:3000/chicrobot/CINC.git
synced 2026-10-29 21:41:29 +08:00
51 lines
1.2 KiB
JavaScript
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(); |