golang beego框架学习(八)

摘要:本章主要讲解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

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/98497.html

(0)
上一篇 2021年8月21日
下一篇 2021年8月21日

相关推荐

发表回复

登录后才能评论