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