golang多语言支持
生活随笔
收集整理的這篇文章主要介紹了
golang多语言支持
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
專注后臺開發相關技術,廣度深度并存,干貨情懷同在。
微信搜索【盼盼編程】關注這個不一樣的程序員。
??強烈推薦人工智能學習網站??
?
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.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) }多語言開發使用
設置語言以及語言包所在位置,然后初始化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}}?
???強烈推薦人工智能學習網站??
專注后臺開發相關技術,廣度深度并存,干貨情懷同在。
微信搜索【盼盼編程】關注這個不一樣的程序員。
總結
以上是生活随笔為你收集整理的golang多语言支持的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: golang用户认证
- 下一篇: golang中的pprof支持