1

我有这些语言文件:

locales/
    en-US/
        a.yaml
        b.yaml
    zh-CN/
        a.yaml
        b.yaml
    DA/
        a.yaml
        b.yaml

设置默认语言:

app.I18n.SetDefault("en-US")

如何根据l参数动态设置语言:

www.sete.com/xx/xxx?l=en => set en-US
www.sete.com/xx/xxx?l=cn => set zh-CN
www.sete.com/xx/xxx?l=da => set DA

www.sete.com/xx/xxx?l=NotFound => default en-US

另外,当我设置一种不存在的语言时:

www.sete.com/xx/xxx?l=NotFound 

我收到这样的响应错误:

{
    "user": "yaml%!(EXTRA string=Tom....)"
}

那么,我该怎么做才能更好地解决这些问题呢?我尽力了,我的英语不好,请帮助我......

4

1 回答 1

0

您可以在以下位置找到 Iris i18n 示例:https ://github.com/kataras/iris/tree/master/_examples/i18n

如果未找到该语言,则将显示默认语言的键,除非app.I18N.Strict为 true。如果 Strict 字段为 false 并且默认语言没有可用的翻译密钥,app.I18n.DefaultMessageFunc则将被触发,您可以查看如何配置如果密钥不存在会发生什么:https ://github.com /kataras/iris/blob/7b6a8f1e26469ab3ae53cfe468d6e5202c75c2a8/_examples/i18n/basic/main.go#L38-L47

于 2020-11-07T20:10:33.160 回答