小程序国际化实现方式

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:31   1855   0

小程序国际化实现方式 2018年11月14日 11:44:53 丫先知 阅读数:436 话不多说,上代码。

首先需要一个工具类:locales.js

// Time 为事例值 export default {

//英文 "en": {

   "Time":"Time"
复制代码

},

//中文 "zh-cn": {

    "Time":"时间"
复制代码

},

//繁体 "zh-hk": {

    "Time":"時間"
复制代码

} }

然后是另一个工具类:wxapp-i18n.js

let T = {} T.locale = null T.locales = {}

T.registerLocale = function (locales) { T.locales = locales; }

T.setLocale = function (code) { T.locale = code }

T._ = function (line, data) { const locale = T.locale const locales = T.locales if (locale && locales[locale] && locales[locale][line]) { line = locales[locale][line] }

return line
复制代码

}

export default T

然后在 app.js 中引入文件并做处理.

//国际化 import locales from './utils/locales' import T from './utils/wxapp-i18n'

// 数据注入 T.registerLocale(locales) try { // 获取系统设置的语言格式 var value = wx.getStorageSync('language') if (value) { T.setLocale(value) } else { T.setLocale('zh-hk')//默认显示繁体 } } catch (e) { T.setLocale('zh-hk')//默认显示繁体 } wx.T = T 使用方式如下, 假设需要在index.wxml中使用国际化,则在index.js中书写:

setLang() { const _ = wx.T._ this.setData({ Time: _('Time') }) } -- setLang 是自定义方法,可以在 OnLoad中调用此方法.

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP