beego中設定全域變數如下:
Translation i18n.IL
Lang string //設定語言包,zh、en
LangPath string //設定語言包所在位置
初始化多語言函式:
func InitLang(){
beego.Translation:=i18n.NewLocale()
beego.Translation.LoadPath(beego.LangPath)
beego.Translation.SetLocale(beego.Lang)
}
為了方便在模板中直接呼叫多語言包,我們設計了三個函式來處理回應的多語言:
beegoTplFuncMap["Trans"] = i18n.I18nT
beegoTplFuncMap["TransDate"] = i18n.I18nTimeDate
beegoTplFuncMap["TransMoney"] = i18n.I18nMoney
func I18nT(args ...interface{}) string {
ok := false
var s string
if 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 := false
var s string
if 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 := false
var s string
if len(args) == 1 {
s, ok = args[0].(string)
}
if !ok {
s = fmt.Sprint(args...)
}
return beego.Translation.Money(s)
}
多語言開發使用
-
設定語言以及語言包所在位置,然后初始化i18n物件:
beego.Lang = "zh" beego.LangPath = "views/lang" beego.InitLang() -
設計多語言包
上面講了如何初始化多語言包,現在設計多語言包,多語言包是json檔案,如第十章介紹的一樣,我們需要把設計的檔案放在LangPath下面,例如zh.json或者en.json
# zh.json { "zh": { "submit": "提交", "create": "創建" } } #en.json { "en": { "submit": "Submit", "create": "Create" } } -
使用語言包
我們可以在controller中呼叫翻譯獲取回應的翻譯語言,如下所示:
func (this *MainController) Get() { this.Data["create"] = beego.Translation.Translate("create") this.TplNames = "index.tpl" }我們也可以在模板中直接呼叫回應的翻譯函式:
//直接文本翻譯 {{.create | Trans}} //時間翻譯 {{.time | TransDate}} //貨幣翻譯 {{.money | TransMoney}}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/259537.html
標籤:區塊鏈
