You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

33 lines
1.2 KiB

/**
* 功能:对多语言包集中管理,切换语言时,进行本地存储。
* 作者:刘海春
* 时间:2024年10月5日
*/
import { ref, computed } from 'vue'
import cn from './zhcn' //简体中文包
import en from './en' //英文包
import th from './th' //泰语包
import hk from './zhhk' //中文繁体包
import kr from './kr' //韩语包
// import { LanguagePack } from './type'
export const languagePacks = {
cn,
hk,
en,
th,
kr
}
//默认简体中文,用户没有选择过yuyan
const currentLang = ref(localStorage.getItem('userLanguage') || 'cn')
export const t = computed(() => languagePacks[currentLang.value] || languagePacks['cn'])
// 用户第一次访问网站时,默认设置为 'cn'。
// 用户切换语言时,通过 changeLanguage 函数设置新的值:
export function changeLanguage(lang: string) {
if (languagePacks[lang]) {
currentLang.value = lang
localStorage.setItem('userLanguage', lang) // 这里设置新的 userLanguage
} else {
console.error(`Language pack not found: ${lang}`)
}
}
export const availableLanguages = Object.keys(languagePacks) //导出是何种语言['简体中文','英文','繁体中文','泰语']