我正在开发一个网站,该网站需要提供用户选择的不同语言的网页。例如如果用户选择西类牙语作为他的首选语言,则服务器应以西类牙语发送网页的文本元素。

在 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],
    })
}

10-08 02:15