java零基础 wavedorm tfs react router vue学习教程 pmp培训视频 java商城源码 jquery遍历子元素 安卓小程序源码 less比较级 matlab中如何定义函数 kubernetes视频 kubernetes入门 python迭代 python字符串匹配 python插件 java的string java数组 java如何获取当前时间 java怎么编程 黑客攻防实战入门 离散数学及其应用 倒计时计时器 ezcad2 反转颜色 php小数点保留2位 光头强换肤助手 苹果手机不弹出信任 c程序 flash教程 神牧属性 dnf风神加点 网易云听歌识曲电脑版 urlpattern 剪影是什么意思 传真机怎么接收文件 cad2012激活 错误代码101 正则表达式匹配数字 虚拟机连不上网
当前位置: 首页 > 学习教程  > 编程语言

golang多语言支持

2021/2/13 16:26:50 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

beego中设置全局变量如下: Translation i18n.IL Lang string //设置语言包,zh、en LangPath string //设置语言包所在位置初始化多语言函数: func InitLang(){beego.Translation:i18n.NewLocale()beego.Translation.LoadPath(beego.Lang…

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)
}

多语言开发使用

  1. 设置语言以及语言包所在位置,然后初始化i18n对象:

    beego.Lang = "zh"
    beego.LangPath = "views/lang"
    beego.InitLang()
    
  2. 设计多语言包

    上面讲了如何初始化多语言包,现在设计多语言包,多语言包是json文件,如第十章介绍的一样,我们需要把设计的文件放在LangPath下面,例如zh.json或者en.json

    # zh.json
    
    {
    "zh": {
        "submit": "提交",
        "create": "创建"
        }
    }
    
    #en.json
    
    {
    "en": {
        "submit": "Submit",
        "create": "Create"
        }
    }
    
  3. 使用语言包

    我们可以在controller中调用翻译获取响应的翻译语言,如下所示:

    func (this *MainController) Get() {
        this.Data["create"] = beego.Translation.Translate("create")
        this.TplNames = "index.tpl"
    }
    

    我们也可以在模板中直接调用响应的翻译函数:

    //直接文本翻译
    {{.create | Trans}}
    
    //时间翻译
    {{.time | TransDate}}   
    
    //货币翻译
    {{.money | TransMoney}} 

本文链接: http://www.dtmao.cc/news_show_700028.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?