i18n.mx raw

   1  package main
   2  
   3  import (
   4  	"git.smesh.lol/musiquay/web/common/jsbridge/localstorage"
   5  )
   6  
   7  const lsKeyLang = "musiquay-lang"
   8  
   9  
  10  // t returns the translated string for the given key in the current language.
  11  func t(key string) (s string) {
  12  	if m, mok := translations[appSt.currentLang]; mok {
  13  		if v, vok := m[key]; vok {
  14  			return v
  15  		}
  16  	}
  17  	// Fallback to English.
  18  	if v2, vok2 := translations["en"][key]; vok2 {
  19  		return v2
  20  	}
  21  	return key
  22  }
  23  
  24  func setLang(lang string) {
  25  	if _, ok := translations[lang]; !ok {
  26  		return
  27  	}
  28  	appSt.currentLang = lang
  29  	localstorage.SetItem(lsKeyLang, lang)
  30  }
  31  
  32  func initLang() {
  33  	saved := localstorage.GetItem(lsKeyLang)
  34  	if saved != "" {
  35  		if _, ok2 := translations[saved]; ok2 {
  36  			appSt.currentLang = saved
  37  			return
  38  		}
  39  	}
  40  }
  41  
  42  var langNames map[string]string
  43  
  44  var translations map[string]map[string]string
  45