mirror of
https://github.com/hrfee/jfa-go.git
synced 2024-12-29 12:30:11 +00:00
separate options for form and admin language
This commit is contained in:
parent
c9e7e34fbf
commit
a4e44f5a8b
38
api.go
38
api.go
@ -1085,17 +1085,25 @@ func (app *appContext) GetConfig(gc *gin.Context) {
|
|||||||
app.info.Println("Config requested")
|
app.info.Println("Config requested")
|
||||||
resp := app.configBase
|
resp := app.configBase
|
||||||
// Load language options
|
// Load language options
|
||||||
langOptions := make([]string, len(app.storage.lang.Form))
|
loadLangs := func(langs *map[string]map[string]interface{}, settingsKey string) (string, []string) {
|
||||||
chosenLang := app.config.Section("ui").Key("language").MustString("en-us")
|
langOptions := make([]string, len(*langs))
|
||||||
chosenLangName := app.storage.lang.Form[chosenLang]["meta"].(map[string]interface{})["name"].(string)
|
chosenLang := app.config.Section("ui").Key("language-" + settingsKey).MustString("en-us")
|
||||||
|
chosenLangName := (*langs)[chosenLang]["meta"].(map[string]interface{})["name"].(string)
|
||||||
i := 0
|
i := 0
|
||||||
for _, lang := range app.storage.lang.Form {
|
for _, lang := range *langs {
|
||||||
langOptions[i] = lang["meta"].(map[string]interface{})["name"].(string)
|
langOptions[i] = lang["meta"].(map[string]interface{})["name"].(string)
|
||||||
i++
|
i++
|
||||||
}
|
}
|
||||||
l := resp.Sections["ui"].Settings["language"]
|
return chosenLangName, langOptions
|
||||||
l.Options = langOptions
|
}
|
||||||
l.Value = chosenLangName
|
formChosen, formOptions := loadLangs(&app.storage.lang.Form, "form")
|
||||||
|
fl := resp.Sections["ui"].Settings["language-form"]
|
||||||
|
fl.Options = formOptions
|
||||||
|
fl.Value = formChosen
|
||||||
|
adminChosen, adminOptions := loadLangs(&app.storage.lang.Admin, "admin")
|
||||||
|
al := resp.Sections["ui"].Settings["language-admin"]
|
||||||
|
al.Options = adminOptions
|
||||||
|
al.Value = adminChosen
|
||||||
for sectName, section := range resp.Sections {
|
for sectName, section := range resp.Sections {
|
||||||
for settingName, setting := range section.Settings {
|
for settingName, setting := range section.Settings {
|
||||||
val := app.config.Section(sectName).Key(settingName)
|
val := app.config.Section(sectName).Key(settingName)
|
||||||
@ -1111,11 +1119,12 @@ func (app *appContext) GetConfig(gc *gin.Context) {
|
|||||||
resp.Sections[sectName].Settings[settingName] = s
|
resp.Sections[sectName].Settings[settingName] = s
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
resp.Sections["ui"].Settings["language"] = l
|
resp.Sections["ui"].Settings["language-form"] = fl
|
||||||
|
resp.Sections["ui"].Settings["language-admin"] = al
|
||||||
|
|
||||||
t := resp.Sections["jellyfin"].Settings["type"]
|
t := resp.Sections["jellyfin"].Settings["type"]
|
||||||
opts := make([]string, len(serverTypes))
|
opts := make([]string, len(serverTypes))
|
||||||
i = 0
|
i := 0
|
||||||
for _, v := range serverTypes {
|
for _, v := range serverTypes {
|
||||||
opts[i] = v
|
opts[i] = v
|
||||||
i++
|
i++
|
||||||
@ -1146,10 +1155,17 @@ func (app *appContext) ModifyConfig(gc *gin.Context) {
|
|||||||
tempConfig.NewSection(section)
|
tempConfig.NewSection(section)
|
||||||
}
|
}
|
||||||
for setting, value := range settings.(map[string]interface{}) {
|
for setting, value := range settings.(map[string]interface{}) {
|
||||||
if section == "ui" && setting == "language" {
|
if section == "ui" && setting == "language-form" {
|
||||||
for key, lang := range app.storage.lang.Form {
|
for key, lang := range app.storage.lang.Form {
|
||||||
if lang["meta"].(map[string]interface{})["name"].(string) == value.(string) {
|
if lang["meta"].(map[string]interface{})["name"].(string) == value.(string) {
|
||||||
tempConfig.Section("ui").Key("language").SetValue(key)
|
tempConfig.Section("ui").Key("language-form").SetValue(key)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if section == "ui" && setting == "language-admin" {
|
||||||
|
for key, lang := range app.storage.lang.Admin {
|
||||||
|
if lang["meta"].(map[string]interface{})["name"].(string) == value.(string) {
|
||||||
|
tempConfig.Section("ui").Key("language-admin").SetValue(key)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
11
config.go
11
config.go
@ -84,8 +84,15 @@ func (app *appContext) loadConfig() error {
|
|||||||
|
|
||||||
substituteStrings = app.config.Section("jellyfin").Key("substitute_jellyfin_strings").MustString("")
|
substituteStrings = app.config.Section("jellyfin").Key("substitute_jellyfin_strings").MustString("")
|
||||||
|
|
||||||
app.storage.lang.chosenFormLang = app.config.Section("ui").Key("language").MustString("en-us")
|
oldFormLang := app.config.Section("ui").Key("language").MustString("")
|
||||||
app.storage.lang.chosenFormLang = app.config.Section("ui").Key("language").MustString("en-us")
|
if oldFormLang != "" {
|
||||||
|
app.storage.lang.chosenFormLang = oldFormLang
|
||||||
|
}
|
||||||
|
newFormLang := app.config.Section("ui").Key("language-form").MustString("")
|
||||||
|
if newFormLang != "" {
|
||||||
|
app.storage.lang.chosenFormLang = newFormLang
|
||||||
|
}
|
||||||
|
app.storage.lang.chosenAdminLang = app.config.Section("ui").Key("language-admin").MustString("en-us")
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -84,7 +84,7 @@
|
|||||||
"description": "Settings related to the UI and program functionality."
|
"description": "Settings related to the UI and program functionality."
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
"language": {
|
"language-form": {
|
||||||
"name": "Default Form Language",
|
"name": "Default Form Language",
|
||||||
"required": false,
|
"required": false,
|
||||||
"requires_restart": true,
|
"requires_restart": true,
|
||||||
@ -93,7 +93,18 @@
|
|||||||
"en-us"
|
"en-us"
|
||||||
],
|
],
|
||||||
"value": "en-US",
|
"value": "en-US",
|
||||||
"description": "Default UI Language. Currently only implemented for account creation form. Submit a PR on github if you'd like to translate."
|
"description": "Default Account Form Language. Submit a PR on github if you'd like to translate."
|
||||||
|
},
|
||||||
|
"language-admin": {
|
||||||
|
"name": "Default Admin Language",
|
||||||
|
"required": false,
|
||||||
|
"requires_restart": true,
|
||||||
|
"type": "select",
|
||||||
|
"options": [
|
||||||
|
"en-us"
|
||||||
|
],
|
||||||
|
"value": "en-US",
|
||||||
|
"description": "Default Admin page Language. Settings has not been translated. Submit a PR on github if you'd like to translate."
|
||||||
},
|
},
|
||||||
"theme": {
|
"theme": {
|
||||||
"name": "Default Look",
|
"name": "Default Look",
|
||||||
|
4
views.go
4
views.go
@ -15,9 +15,9 @@ func gcHTML(gc *gin.Context, code int, file string, templ gin.H) {
|
|||||||
func (app *appContext) AdminPage(gc *gin.Context) {
|
func (app *appContext) AdminPage(gc *gin.Context) {
|
||||||
lang := gc.Query("lang")
|
lang := gc.Query("lang")
|
||||||
if lang == "" {
|
if lang == "" {
|
||||||
lang = app.storage.lang.chosenFormLang
|
lang = app.storage.lang.chosenAdminLang
|
||||||
} else if _, ok := app.storage.lang.Form[lang]; !ok {
|
} else if _, ok := app.storage.lang.Form[lang]; !ok {
|
||||||
lang = app.storage.lang.chosenFormLang
|
lang = app.storage.lang.chosenAdminLang
|
||||||
}
|
}
|
||||||
emailEnabled, _ := app.config.Section("invite_emails").Key("enabled").Bool()
|
emailEnabled, _ := app.config.Section("invite_emails").Key("enabled").Bool()
|
||||||
notificationsEnabled, _ := app.config.Section("notifications").Key("enabled").Bool()
|
notificationsEnabled, _ := app.config.Section("notifications").Key("enabled").Bool()
|
||||||
|
Loading…
Reference in New Issue
Block a user