langs.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. const supportLangs = [
  2. {
  3. name: 'English',
  4. value: 'en-US',
  5. icon: '🇺🇸',
  6. },
  7. {
  8. name: 'فارسی',
  9. value: 'fa-IR',
  10. icon: '🇮🇷',
  11. },
  12. {
  13. name: '汉语',
  14. value: 'zh-Hans',
  15. icon: '🇨🇳',
  16. },
  17. {
  18. name: 'Русский',
  19. value: 'ru-RU',
  20. icon: '🇷🇺',
  21. },
  22. {
  23. name: 'Tiếng Việt',
  24. value: 'vi-VN',
  25. icon: '🇻🇳',
  26. },
  27. {
  28. name: 'Español',
  29. value: 'es-ES',
  30. icon: '🇪🇸',
  31. },
  32. {
  33. name: 'Indonesian',
  34. value: 'id-ID',
  35. icon: '🇮🇩',
  36. },
  37. ];
  38. function getLang() {
  39. let lang = getCookie('lang');
  40. if (!lang) {
  41. if (window.navigator) {
  42. lang = window.navigator.language || window.navigator.userLanguage;
  43. if (isSupportLang(lang)) {
  44. setCookie('lang', lang, 150);
  45. } else {
  46. setCookie('lang', 'en-US', 150);
  47. window.location.reload();
  48. }
  49. } else {
  50. setCookie('lang', 'en-US', 150);
  51. window.location.reload();
  52. }
  53. }
  54. return lang;
  55. }
  56. function setLang(lang) {
  57. if (!isSupportLang(lang)) {
  58. lang = 'en-US';
  59. }
  60. setCookie('lang', lang, 150);
  61. window.location.reload();
  62. }
  63. function isSupportLang(lang) {
  64. for (l of supportLangs) {
  65. if (l.value === lang) {
  66. return true;
  67. }
  68. }
  69. return false;
  70. }