E企盈营销工具技术服务商 热线:4006-838-530

微信小程序国际化

E企盈直播平台营销卖货系统

微信小程序国际化,看了看网上有i18n或者自己写个json等方法。于是用自己写json方法试了一下。感觉非常适合小白型的人理解和使用1.新建一个js文件,写入jsonlet localList = {  ‘zh’: {    ‘language’: ‘简体中文’,    ‘login’: ‘登录’,    ‘logout’: ‘登出’,    ‘pay’: ‘支付’,    ‘changeLanguage’: ‘切换语言’,    ‘search’: ‘搜索’,    ‘address’: ‘地址’,    ‘contacts’: ‘联 系 人’,    ‘phone’: ‘联系电话’,  },  ‘en’: {    ‘language’: ‘English’,    ‘login’: ‘Login’,    ‘logout’: ‘Logout’,    ‘pay’: ‘Pay’,    ‘changeLanguage’: ‘ChangeLanguage’,    ‘search’: ‘Search’,    ‘address’: ‘Address’,    ‘contacts’: ‘Contacts’,    ‘phone’: ‘Phone’,  }}module.exports = {  localList: localList}2.在app.js中设置初始化的默认语言(试了其它文件如page中的index.js之类不好使,只能在app.js中)    // 国际化    let lang = wx.getSystemInfoSync().language    // 无语种时预设一个默认语言    if (wx.getStorageSync(“local”) == “”){      let localList = require(“./utils/locales.js”)      wx.setStorageSync(“local”, localList.localList[lang])    }当缓存中为空串时(wx.getStorageSync(“local”)为空时返回的不是null,而是””),设置默认的语言。有则不进行设置,否则会覆盖掉后面用户自己手动更改的语言。(另外,这有问题,后面改了)因为:原本设定,返回的lang是”zh”,就在json中有对应的”zh”,返回的lang是”en”,就在json中有对应的”en”,只要json中的键与lang对应的就可以localList.localList[lang]这样获取并设置。相当于这样:if (lang == “zh”) {  wx.setStorageSync(“local”, localList.localList.zh) //用缓存}if(lang == “en”){ // dddd  wx.setStorageSync(“local”, localList.localList.en) //用缓存}然而,开发工具中返回的是”zh”,手机返回的是”zh_CN”,英文倒是返回的”en”,但有一个不一样也不敢这样写了,难保有其它手机不一样,所以后来改了(见第5条)……3.页面中进行引用Page({  data: {    local: wx.getStorageSync(“local”)  }})<view>22{{local.login}}</view><view>22{{local.pay}}</view>4.切换语言,用showActionSheet直接写死了语种,反正我这就俩语种  changeLang() {    let that = this    wx.showActionSheet({      itemList: [‘中文’, ‘English’],      success(res) {        if(res.tapIndex == 0){          let localList = require(“../../utils/locales.js”)          wx.setStorageSync(“local”, localList.localList.zh)          that.setData({            local: wx.getStorageSync(“local”)          })        }        if(res.tapIndex == 1){          let localList = require(“../../utils/locales.js”)          wx.setStorageSync(“local”, localList.localList.en)          that.setData({            local: wx.getStorageSync(“local”)          })        }      },      fail(res) {        console.log(res.errMsg)      }    })      }5.继续第二条。初始化赋值一个默认语言后来改了,改成什么样呢。可以改成为空时也弹出再次弹一个showActionSheet,但是一样不好使,因为我还有一个lanucher页面,还没等选择菜单呢就被延迟启动的lanucher顶没了。所有呢,我改成了这样if (wx.getStorageSync(“local”) == “”){      let localList = require(“./utils/locales.js”)      wx.setStorageSync(“local”, localList.localList.zh)    }指定默认中文得了,想改自己点切换按钮改去!!!6.补充,我又改了,想了想还是这样吧if (wx.getStorageSync(“local”) == “”){      let localList = require(“./utils/locales.js”)      if (lang == “zh” || lang == “zh_CN”) {        wx.setStorageSync(“local”, localList.localList.zh)      }else{        wx.setStorageSync(“local”, localList.localList.en)      }    }除了这两个中文,其它都英文吧,反正是初始化的默认小程序

赞(0) 打赏
未经允许不得转载:E企盈小程序开发-热线:4006-838-530 » 微信小程序国际化
分享到: 更多 (0)
E企盈小程序直播营销卖货系统
E企盈直播平台营销卖货系统

评论 抢沙发

E企盈小程序开发

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏