golang多语言支持
生活随笔
收集整理的這篇文章主要介紹了
golang多语言支持
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
專注后臺(tái)開發(fā)相關(guān)技術(shù),廣度深度并存,干貨情懷同在。
微信搜索【盼盼編程】關(guān)注這個(gè)不一樣的程序員。
??強(qiáng)烈推薦人工智能學(xué)習(xí)網(wǎng)站??
?
beego中設(shè)置全局變量如下:
Translation i18n.IL Lang string //設(shè)置語言包,zh、en LangPath string //設(shè)置語言包所在位置初始化多語言函數(shù):
func InitLang(){beego.Translation:=i18n.NewLocale()beego.Translation.LoadPath(beego.LangPath)beego.Translation.SetLocale(beego.Lang) }為了方便在模板中直接調(diào)用多語言包,我們設(shè)計(jì)了三個(gè)函數(shù)來處理響應(yīng)的多語言:
beegoTplFuncMap["Trans"] = i18n.I18nT beegoTplFuncMap["TransDate"] = i18n.I18nTimeDate beegoTplFuncMap["TransMoney"] = i18n.I18nMoneyfunc I18nT(args ...interface{}) string {ok := falsevar s stringif len(args) == 1 {s, ok = args[0].(string)}if !ok {s = fmt.Sprint(args...)}return beego.Translation.Translate(s) }func I18nTimeDate(args ...interface{}) string {ok := falsevar s stringif len(args) == 1 {s, ok = args[0].(string)}if !ok {s = fmt.Sprint(args...)}return beego.Translation.Time(s) } func I18nMoney(args ...interface{}) string {ok := falsevar s stringif len(args) == 1 {s, ok = args[0].(string)}if !ok {s = fmt.Sprint(args...)}return beego.Translation.Money(s) }多語言開發(fā)使用
設(shè)置語言以及語言包所在位置,然后初始化i18n對象:
beego.Lang = "zh" beego.LangPath = "views/lang" beego.InitLang()設(shè)計(jì)多語言包
上面講了如何初始化多語言包,現(xiàn)在設(shè)計(jì)多語言包,多語言包是json文件,如第十章介紹的一樣,我們需要把設(shè)計(jì)的文件放在LangPath下面,例如zh.json或者en.json
# zh.json{ "zh": {"submit": "提交","create": "創(chuàng)建"} }#en.json{ "en": {"submit": "Submit","create": "Create"} }使用語言包
我們可以在controller中調(diào)用翻譯獲取響應(yīng)的翻譯語言,如下所示:
func (this *MainController) Get() {this.Data["create"] = beego.Translation.Translate("create")this.TplNames = "index.tpl" }我們也可以在模板中直接調(diào)用響應(yīng)的翻譯函數(shù):
//直接文本翻譯 {{.create | Trans}}//時(shí)間翻譯 {{.time | TransDate}} //貨幣翻譯 {{.money | TransMoney}}?
???強(qiáng)烈推薦人工智能學(xué)習(xí)網(wǎng)站??
專注后臺(tái)開發(fā)相關(guān)技術(shù),廣度深度并存,干貨情懷同在。
微信搜索【盼盼編程】關(guān)注這個(gè)不一樣的程序員。
總結(jié)
以上是生活随笔為你收集整理的golang多语言支持的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: golang用户认证
- 下一篇: golang中的pprof支持