package main import ( "github.com/chai2010/gettext-go/gettext" "html/template" "os" ) func setup(locale string, domain string, dir string) { gettext.SetLocale(locale) gettext.Textdomain(domain) gettext.BindTextdomain(domain, dir, nil) } func changeLocale(locale string) { gettext.SetLocale(locale) } func translate(input string) string { return gettext.PGettext("", input) } const tmpl = ` {{gettext "Home"}} {{gettext "Canon"}} {{gettext "About"}} {{gettext "Setting"}} {{gettext "Translation"}} ` func main() { setup("zh_TW", "messages", "locale") setup("vi_VN", "messages", "locale") funcMap := template.FuncMap{ "gettext": translate, } t, _ := template.New("foo").Funcs(funcMap).Parse(tmpl) changeLocale("zh_TW") t.Execute(os.Stdout, nil) changeLocale("vi_VN") t.Execute(os.Stdout, nil) }