go+i18n实现多语言切换

作者: 五岁小孩 | 来源:发表于2021-01-20 08:49 被阅读0次

<center><font size="5">go+ii8n实现多语言切换</font></center>

  • go get github.com/syyongx/ii18n
    
  • 配置文件目录

    --config
      --lang
          --app
              --en-US
                  --app.json
              --zh-CN
                  --app.json
              --zh-TW
                  --app.json
    
  • 初始化/使用

    service

    //初始化多语言
    func init() {
      logs.Debug("package service,lang init()...")
    
      config := map[string]i18n.Config{
          model.AppConfig.SysNo: i18n.Config{
              SourceNewFunc:    i18n.NewJSONSource,
              OriginalLang:     model.AppConfig.SysDefaultLang,
              ForceTranslation: true,
              BasePath:         model.AppConfig.SysLangPath + model.AppConfig.SysNo, //  model.AppConfig.SysLangPath
              FileMap: map[string]string{
                  "web":     "web.json",
                  "common":  "common.json",
                  "login":   "login.json",
                  "setting": "setting.json",
              },
          },
      }
      i18n.NewI18N(config)
    }
    
    
    

    模板方法使用多语言

    //router中添加该方法
    router.SetFuncMap(template.FuncMap{
          "TPFunTi18nLang":            common.TPFunTi18nLang,
      })
    
    
    //根据参数获取信息
    // TPFunTi18nLang
    // 1、category 如web
    // 2、lang 如zh-CN
    // 3、message 如web_title
    // 4、params 如xxx=xxx
    func TPFunTi18nLang(lang string, category string, message string, params ...string) string {
    
      var paramsMap = &map[string]string{}
    
      for _, v := range params {
          if !common.IsEmpty(v) {
              paramTmp := strings.Split(v, "=")
              (*paramsMap)[paramTmp[0]] = paramTmp[1]
          }
      }
    
      messageRtn := i18n.T(model.AppConfig.SysNo+"."+category, message, *paramsMap, lang)
    
      return messageRtn
    }
    
    

相关文章

  • go+i18n实现多语言切换

    go+ii8n实现多语言切换 包go get github.com/syyongx/ii18n 配置文件目录--c...

  • Flutter 多语言&多主题实现

    目录 多语言实现 多主题实现 状态管理 切换多语言 切换多主题 多语言实现 1. AndroidStudio-> ...

  • rxjs - i18n

    目的 实现网页多语言的切换 依赖 react,rxjs,useObservable感觉就是简单,简单,简单 实现 ...

  • 多语言切换实现

    为了顺应国际化的脚步,有时会碰到多语言切换的需求,例如Amazon官网上的这一幕 准备好语言包后首先将Accept...

  • Android实现多语言切换

    1,在res包下新建下图 2,选择locale - >> - 选择语言,都填好后,res下会多出一个values_...

  • iOS 多语言版本的开发(三)

    iOS 多语言版本的开发(三) 写在前面 iOS 多语言版本的开发(二) 中我们实现了如何让用户自己去切换系统语言...

  • iOS如何在App内切换多语言

    最近写项目的时候遇到这样一个需求,要求实现类似微信的多语言功能, 可在App内立即切换多语言,不需要重启App 下...

  • 国际化(多语言踩坑记录)

    多语言切换中遇到的坑:

  • Android 内多语言切换实现

    前言: 网上有很多安卓内多语言切换的文章,我也看了一些,很多都千篇一律,而且还是有问题,我就自己重新改了一下。整好...

  • Android 内多语言切换实现

    前言: 网上有很多安卓内多语言切换的文章,我也看了一些,很多都千篇一律,而且还是有问题,我就自己重新改了一下。整好...

网友评论

    本文标题:go+i18n实现多语言切换

    本文链接:https://www.haomeiwen.com/subject/tkvonktx.html