34 lines
728 B
Go
34 lines
728 B
Go
|
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})
|
||
|
}
|
||
|
}
|