langs.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. supportLangs = [
  2. {
  3. name : "English",
  4. value : "en-US",
  5. icon : "🇺🇸"
  6. },
  7. {
  8. name : "Farsi",
  9. value : "fa_IR",
  10. icon : "🇮🇷"
  11. },
  12. {
  13. name : "汉语",
  14. value : "zh-Hans",
  15. icon : "🇨🇳"
  16. },
  17. ]
  18. function getLang(){
  19. let lang = getCookie('lang')
  20. if (! lang){
  21. if (window.navigator){
  22. lang = window.navigator.language || window.navigator.userLanguage;
  23. if (isSupportLang(lang)){
  24. setCookie('lang' , lang , 150)
  25. }else{
  26. setCookie('lang' , 'en-US' , 150)
  27. window.location.reload();
  28. }
  29. }else{
  30. setCookie('lang' , 'en-US' , 150)
  31. window.location.reload();
  32. }
  33. }
  34. return lang;
  35. }
  36. function setLang(lang){
  37. if (!isSupportLang(lang)){
  38. lang = 'en-US';
  39. }
  40. setCookie('lang' , lang , 150)
  41. window.location.reload();
  42. }
  43. function isSupportLang(lang){
  44. for (l of supportLangs){
  45. if (l.value === lang){
  46. return true;
  47. }
  48. }
  49. return false;
  50. }
  51. function getCookie(cname) {
  52. let name = cname + "=";
  53. let decodedCookie = decodeURIComponent(document.cookie);
  54. let ca = decodedCookie.split(';');
  55. for(let i = 0; i <ca.length; i++) {
  56. let c = ca[i];
  57. while (c.charAt(0) == ' ') {
  58. c = c.substring(1);
  59. }
  60. if (c.indexOf(name) == 0) {
  61. return c.substring(name.length, c.length);
  62. }
  63. }
  64. return "";
  65. }
  66. function setCookie(cname, cvalue, exdays) {
  67. const d = new Date();
  68. d.setTime(d.getTime() + (exdays*24*60*60*1000));
  69. let expires = "expires="+ d.toUTCString();
  70. document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
  71. }