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

  1. /**
  2. * ,
  3. *
  4. * 2024105
  5. */
  6. import { ref, computed } from 'vue'
  7. import cn from './zhcn' //简体中文包
  8. import en from './en' //英文包
  9. import th from './th' //泰语包
  10. import hk from './zhhk' //中文繁体包
  11. import kr from './kr' //韩语包
  12. // import { LanguagePack } from './type'
  13. export const languagePacks = {
  14. cn,
  15. hk,
  16. en,
  17. th,
  18. kr
  19. }
  20. //默认简体中文,用户没有选择过yuyan
  21. const currentLang = ref(localStorage.getItem('userLanguage') || 'cn')
  22. export const t = computed(() => languagePacks[currentLang.value] || languagePacks['cn'])
  23. // 用户第一次访问网站时,默认设置为 'cn'。
  24. // 用户切换语言时,通过 changeLanguage 函数设置新的值:
  25. export function changeLanguage(lang: string) {
  26. if (languagePacks[lang]) {
  27. currentLang.value = lang
  28. localStorage.setItem('userLanguage', lang) // 这里设置新的 userLanguage
  29. } else {
  30. console.error(`Language pack not found: ${lang}`)
  31. }
  32. }
  33. export const availableLanguages = Object.keys(languagePacks) //导出是何种语言['简体中文','英文','繁体中文','泰语']