diff --git a/bloat.go b/bloat.go index e89675f..ca4a76f 100644 --- a/bloat.go +++ b/bloat.go @@ -14,3 +14,148 @@ // OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. package main + +import ( + "net/http" + "regexp" + "log" + "humungus.tedunangst.com/r/webs/login" +) + +type i18n struct { + Home string + Atme string + First string + Combos string + Chatter string + Tags string + Events string + Longago string + Saved string + Honkers string + Hcfs string + Account string + Morestuff string + Myhonks string + About string + Front string + Funzone string + Xzone string + Help string + Search string + Login string + + Newhonk string +} + +func getLangCookie(r *http.Request) string { + langCookie, err := r.Cookie("lang") + if err != nil { + return "en" + } + return langCookie.Value +} + + + +func setLangCookie (w http.ResponseWriter, r *http.Request) { + var lang string + lang = r.FormValue("lang") + var IsLetter = regexp.MustCompile(`^([a-z]+)$`).MatchString + + if !IsLetter(lang) { + lang = "wrong" // so !=2 is triggered + if debugMode { + log.Printf("lang cookie value is not letters") + } + } + + if len(lang) != 2 { + if debugMode { + log.Printf("lang cookie value is too long or too short. defaulting to eng") + } + lang = "en" + } + + maxage := 3600 * 24 * 30 * 12 + if !debugMode { + http.SetCookie(w, &http.Cookie{ + Name: "lang", + Value: lang, + MaxAge: maxage, + Secure: true, + HttpOnly: true, + }) + } else { + http.SetCookie(w, &http.Cookie{ + Name: "lang", + Value: lang, + MaxAge: maxage, + Secure: false, + HttpOnly: true, + }) + } + + + u := login.GetUserInfo(r) + if u == nil { + http.Redirect(w, r, "/", http.StatusSeeOther) + } +} + +func setLangStr (lang string) interface{} { + switch lang { + case "fr" : + tlStr := i18n{ + "accueil", + "mentions", + "premier (first)", + "combos", + "discutaille", + "balises", + "événements", + "il y a longtemps", + "sauvegardés", + "klaxonneurs", + "filtrer (hcfs)", + "compte", + "plus de choses", + "profil", + "à propos", + "tout le réseau connu", + "zone fun", + "récup", + "aide", + "rechercher", + "connexion", + "klaxonner", + } + return tlStr + default: + tlStr := i18n{ + "home", + "@me", + "first", + "combos", + "chatter", + "tags", + "events", + "long ago", + "saved", + "honkers", + "filters", + "account", + "more stuff", + "my honks", + "about", + "front", + "funzone", + "xzone", + "help", + "search", + "login", + "new honk", + } + return tlStr + } +}