-
Notifications
You must be signed in to change notification settings - Fork 2
/
prefsLanguage.go
59 lines (54 loc) · 1.26 KB
/
prefsLanguage.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package ff9Save
import "github.com/jeandeaual/go-locale"
func LanguageStringToLanguageInt() map[string]int32 {
return map[string]int32{
//"System": -1, not valid but game uses it internally might re add later
"English(US)": 0,
"English(UK)": 1,
"Japanese": 2,
"German": 3,
"French": 4,
"Italian": 5,
"Spanish": 6,
}
}
func LanguageIntToLanguageString() map[int32]string {
return map[int32]string{
//System language is only valid for binary saves converted to system language when saved as json
-1: getSystemLanguage(),
0: "English(US)",
1: "English(UK)",
2: "Japanese",
3: "German",
4: "French",
5: "Italian",
6: "Spanish",
}
}
func getSystemLanguage() string {
defaultSystemLanguage := "English(US)"
userLanguage, err := locale.GetLanguage()
if err != nil {
return defaultSystemLanguage
}
switch userLanguage {
case "en":
return defaultSystemLanguage
case "ja":
return "Japanese"
case "de":
return "German"
case "fr":
return "French"
case "it":
return "Italian"
case "es":
return "Spanish"
}
return defaultSystemLanguage
}
//assume system language if not found
// possibly enum this with all possible languages
type PrefsLanguage struct {
Value string //find out type //int32 on marshal
}