language.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /**
  2. * 系统语言
  3. */
  4. export enum Language {
  5. Simplified = 'zh-CN',
  6. Traditional = 'zh-TW',
  7. English = 'en-US',
  8. Thai = 'th',
  9. Vietnamese = 'vi'
  10. }
  11. /**
  12. * 获取客户端语言
  13. * @returns
  14. */
  15. export function getClientLanguage() {
  16. const rules = [
  17. { result: Language.Simplified, code: ['zh-CN'] },
  18. { result: Language.Traditional, code: ['zh-TW'] },
  19. { result: Language.English, code: ['en', 'en-US'] },
  20. { result: Language.Thai, code: ['th', 'th-TH'] },
  21. { result: Language.Vietnamese, code: ['vi', 'vi-VN'] },
  22. ]
  23. const lang = rules.find(rule => rule.code.includes(navigator.language))
  24. return lang ? lang.result : Language.English
  25. }
  26. /**
  27. * 获取语言列表
  28. * @returns
  29. */
  30. export function getLanguageList() {
  31. return [
  32. { label: '简体中文', value: Language.Simplified },
  33. { label: '繁体中文', value: Language.Traditional },
  34. { label: 'English', value: Language.English },
  35. { label: 'ภาษาไทย', value: Language.Thai },
  36. { label: 'Tiếng Việt', value: Language.Vietnamese },
  37. ]
  38. }
  39. /**
  40. * 获取语言名称
  41. * @param languageValue
  42. * @returns
  43. */
  44. export function getLanguageLabelByValue(languageValue: Language) {
  45. const languages = getLanguageList()
  46. const item = languages.find((e) => e.value === languageValue)
  47. return item?.label ?? languageValue
  48. }