本章主要讲解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
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/98497.html