我正在开发一个网站,该网站需要提供用户选择的不同语言的网页。例如如果用户选择西类牙语作为他的首选语言,则服务器应以西类牙语发送网页的文本元素。
在 Go 中执行此操作的标准方法是什么?我也很想知道你们在使用什么方法。
谢谢。
最佳答案
我总是使用 map 并在其上定义一个函数,该函数返回给定键的文本:
type Texts map[string]string
func (t *Texts) Get(key string) string{
return (*t)[key]
}
var texts = map[string]Texts{
"de":Texts{
"title":"Deutscher Titel",
},
"en":Texts{
"title":"English title",
},
}
func executeTemplate(lang string){
tmpl, _ := template.New("example").Parse(`Title: {{.Texts.Get "title" }} `)
tmpl.Execute(os.Stdout,struct{
Texts Texts
}{
Texts: texts[lang],
})
}