golang beego框架学习(八)

AndyYang| 阅读:364 发表时间:2017-04-29 15:17:01 golang
摘要:本章主要讲解beego多语言的实现,通过i18n。
本章主要讲解beego多语言的实现,通过i18n。

首先导入包:
import (
    "github.com/beego/i18n"
)
conf目录下新建文件:
locale_en-US.ini,内容
hi = hello
bye = goodbye
locale_zh-CN.ini,内容
hi = 您好
bye = 再见
main方法中加载语言包:
i18n.SetMessage("zh-CN", "conf/locale_zh-CN.ini")
i18n.SetMessage("en-US", "conf/locale_en-US.ini")
default.go中添加:
type baseController struct {
    beego.Controller
    i18n.Locale
}

func (this *baseController) Prepare() {
    lang := this.GetString("lang")
    if lang == "zh-CN" {
        this.Lang = lang
    } else {
        this.Lang = "en-US"
    }

    //模板中显示语言,不通过控制器
    //this.Data["Lang"] = this.Lang
}

type MainController struct {
    baseController
}
然后底部的get方法中添加读取:
c.Data["hi"] = c.Tr("hi")
c.Data["bye"] = c.Tr("bye")
即可实现中英文的转换。

模板也可以直接实现多语言的转换,需要多做几处修改:
1、main方法中加多:
beego.AddFuncMap("i18n", i18n.Tr)
2、prepare中注释的开启

3、模板中调用的时候做修改,改成如下调用
{{i18n .Lang "hi"}} - {{i18n .Lang "bye"}}

github:https://github.com/yangsir/beego_study

本文为AndyYang原创,转载请注明出处!
如果您觉得好,可以打赏作者:

已有0条评论

昵称:
邮箱:

  • 最新评论

若兰网 - www.rolan.wang
反馈
微信订阅号