diff --git a/zh/14.5.md b/zh/14.5.md index 2cd1e11e..94c96f40 100644 --- a/zh/14.5.md +++ b/zh/14.5.md @@ -6,114 +6,114 @@ beego中设置全局变量如下: ```Go - Translation i18n.IL - Lang string //设置语言包,zh、en - LangPath string //设置语言包所在位置 +Translation i18n.IL +Lang string //设置语言包,zh、en +LangPath string //设置语言包所在位置 ``` 初始化多语言函数: ```Go - func InitLang(){ - beego.Translation:=i18n.NewLocale() - beego.Translation.LoadPath(beego.LangPath) - beego.Translation.SetLocale(beego.Lang) - } +func InitLang(){ + beego.Translation:=i18n.NewLocale() + beego.Translation.LoadPath(beego.LangPath) + beego.Translation.SetLocale(beego.Lang) +} ``` 为了方便在模板中直接调用多语言包,我们设计了三个函数来处理响应的多语言: ```Go - beegoTplFuncMap["Trans"] = i18n.I18nT - beegoTplFuncMap["TransDate"] = i18n.I18nTimeDate - beegoTplFuncMap["TransMoney"] = i18n.I18nMoney +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 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 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) - } +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) +} ``` ## 多语言开发使用 1. 设置语言以及语言包所在位置,然后初始化i18n对象: ```Go - beego.Lang = "zh" - beego.LangPath = "views/lang" - beego.InitLang() + beego.Lang = "zh" + beego.LangPath = "views/lang" + beego.InitLang() ``` 2. 设计多语言包 上面讲了如何初始化多语言包,现在设计多语言包,多语言包是json文件,如第十章介绍的一样,我们需要把设计的文件放在LangPath下面,例如zh.json或者en.json ```json - # zh.json + # zh.json - { - "zh": { - "submit": "提交", - "create": "创建" - } - } + { + "zh": { + "submit": "提交", + "create": "创建" + } + } - #en.json + #en.json - { - "en": { - "submit": "Submit", - "create": "Create" - } - } + { + "en": { + "submit": "Submit", + "create": "Create" + } + } ``` 3. 使用语言包 我们可以在controller中调用翻译获取响应的翻译语言,如下所示: ```Go - func (this *MainController) Get() { - this.Data["create"] = beego.Translation.Translate("create") - this.TplNames = "index.tpl" - } + func (this *MainController) Get() { + this.Data["create"] = beego.Translation.Translate("create") + this.TplNames = "index.tpl" + } ``` 我们也可以在模板中直接调用响应的翻译函数: ```Go - //直接文本翻译 - {{.create | Trans}} + //直接文本翻译 + {{.create | Trans}} - //时间翻译 - {{.time | TransDate}} + //时间翻译 + {{.time | TransDate}} - //货币翻译 - {{.money | TransMoney}} + //货币翻译 + {{.money | TransMoney}} ``` ## links * [目录]()