added lang "auto-detect" instead of random lang

This commit is contained in:
partisan 2024-09-09 14:14:41 +02:00
parent 9b5a40632a
commit 82d5a83911
2 changed files with 76 additions and 10 deletions

18
main.go
View file

@ -17,7 +17,7 @@ type LanguageOption struct {
var settings UserSettings
var languageOptions = []LanguageOption{
{Code: "", Name: "Any Language"},
{Code: "", Name: "Auto-detect"},
{Code: "en", Name: "English"},
{Code: "af", Name: "Afrikaans"},
{Code: "ar", Name: "العربية (Arabic)"},
@ -70,25 +70,31 @@ func handleSearch(w http.ResponseWriter, r *http.Request) {
query, safe, lang, searchType, page := parseSearchParams(r)
// Load user settings
settings = loadUserSettings(r)
settings = loadUserSettings(w, r)
// Update the theme, safe search, and language based on query parameters or use existing settings
// Update theme if provided, or use existing settings
theme := r.URL.Query().Get("theme")
if theme != "" {
settings.Theme = theme
saveUserSettings(w, settings)
saveUserSettings(w, settings) // Save if theme is updated
} else if settings.Theme == "" {
settings.Theme = "dark" // Default theme
}
// Update safe search if provided, or use existing settings
if safe != "" && safe != settings.SafeSearch {
settings.SafeSearch = safe
saveUserSettings(w, settings)
saveUserSettings(w, settings) // Save if safe search is updated
}
// Update language if provided, or use existing settings
if lang != "" && lang != settings.Language {
settings.Language = lang
saveUserSettings(w, settings)
saveUserSettings(w, settings) // Save if language is updated
} else if settings.Language == "" {
// If no language set, auto-detect from browser or default to "en"
settings.Language = normalizeLangCode(r.Header.Get("Accept-Language"))
saveUserSettings(w, settings) // Save if language is auto-detected
}
// This will do for now (to handle Dark Reader addon)