【问题标题】:Dynamic setting language in Golang web framework IrisGolang web框架Iris中的动态设置语言
【发布时间】:2020-05-02 17:45:18
【问题描述】:

我有这些语言文件:

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....)"
}

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

【问题讨论】:

    标签: localization go-iris


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-04-29
      • 1970-01-01
      • 1970-01-01
      • 2021-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-17
      • 1970-01-01
      相关资源
      最近更新 更多