|
@@ -13,13 +13,15 @@ type LanguageManager struct {
|
13
|
13
|
sync.RWMutex
|
14
|
14
|
Info map[string]LangData
|
15
|
15
|
translations map[string]map[string]string
|
|
16
|
+ defaultLang string
|
16
|
17
|
}
|
17
|
18
|
|
18
|
19
|
// NewLanguageManager returns a new LanguageManager.
|
19
|
|
-func NewLanguageManager(languageData map[string]LangData) *LanguageManager {
|
|
20
|
+func NewLanguageManager(defaultLang string, languageData map[string]LangData) *LanguageManager {
|
20
|
21
|
lm := LanguageManager{
|
21
|
22
|
Info: make(map[string]LangData),
|
22
|
23
|
translations: make(map[string]map[string]string),
|
|
24
|
+ defaultLang: defaultLang,
|
23
|
25
|
}
|
24
|
26
|
|
25
|
27
|
// make fake "en" info
|
|
@@ -38,6 +40,17 @@ func NewLanguageManager(languageData map[string]LangData) *LanguageManager {
|
38
|
40
|
return &lm
|
39
|
41
|
}
|
40
|
42
|
|
|
43
|
+// Default returns the default languages.
|
|
44
|
+func (lm *LanguageManager) Default() []string {
|
|
45
|
+ lm.RLock()
|
|
46
|
+ defer lm.RUnlock()
|
|
47
|
+
|
|
48
|
+ if lm.defaultLang == "" {
|
|
49
|
+ return []string{}
|
|
50
|
+ }
|
|
51
|
+ return []string{lm.defaultLang}
|
|
52
|
+}
|
|
53
|
+
|
41
|
54
|
// Count returns how many languages we have.
|
42
|
55
|
func (lm *LanguageManager) Count() int {
|
43
|
56
|
lm.RLock()
|