package main import ( "html/template" "net/http" ) func CreateWebHandler(tmpl *template.Template, settings *TranslateSettings) func(w http.ResponseWriter, req *http.Request) { return func(w http.ResponseWriter, req *http.Request) { if req.Method == "GET" { tmpl.ExecuteTemplate(w, "index", nil) return } from := req.FormValue("from") to := req.FormValue("to") text := req.FormValue("text") translation, err := Translate(settings, from, to, text) if err != nil { writeError(w, 500, err) } type indexPageData struct { From string To string Text string Translation string } tmpl.ExecuteTemplate(w, "index", indexPageData{from, to, text, translation}) } }