微信小程序开发之笔记《四》:翻译小轮子weapp-i18n(迈向国际化)
凌雪 2018-11-12 来源 :网络 阅读 1561 评论 0

摘要:本文将带你了解微信小程序开发之笔记《四》:翻译小轮子weapp-i18n(迈向国际化),希望本文对大家学微信有所帮助。

本文将带你了解微信小程序开发之笔记《四》:翻译小轮子weapp-i18n(迈向国际化),希望本文对大家学微信有所帮助。


微信小程序已支持个人公众号,又唤起我对小程序的一些“热情”。说实在的,它不过是一个封闭的web框架。语法上,有点像vue,但是它单项绑定的特性,又有点像react。总的来说,借用知乎上的一句话就是,“四不像”。我自己有一个想法,就是按照它的语法,将它做成一个支持virtual dom的web框架,兼容它的所有接口,于此同时,native的接口可以用cordova替换。其实,这样的想法早就有人想过,像phodal大神的phodal/winv就是一个非常好的原型,只不过没有很好的持续下去。说真的,有时候我搞不懂alloyteam为啥要自己搞一套omi?题外话说多了。考虑到小程序是迈向国际化的,怎么能不考虑做成i18n的翻译工具。就此,我造了一个小轮子,欢迎大家使用和fork。源码解析这个项目源码非常简单。灵感来自Leaflet.i18n。设置翻译内容设置翻译内容要在application的onLaunch时(或前)设置。T.registerLocale = function (locales) {
    T.locales = locales;
    }翻译内容以js的对象或json形式进行保存。其中,包括en和zh-Hans分别对应了英语和简体中文。当然,你可以自定义很多其他语言,如法语,日语。内部对象的key帮助你获取翻译语言。export default {
    "en": {
        "Weather":   "Weather"
    },
    "zh-Hans": {
        "Weather": "天气"
    }
    }切换翻译语言该方法用于切换语言的类型,code指的是语言类型,如en指的是英语,zh-Hans指的是简体中文。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
    }使用使用样例在brandonxiang/weapp-weatherfine中查看。这是我已经上线的小程序小好天气。步骤将weapp-i18n.js放在utils文件夹中编写locales.js在app.js中引用并设置翻译语言将T绑在wx对象下wx.T = T在各个page下使用翻译问题tabbar和title中的文字无法翻译,如有解决办法,欢迎pr或issue。TODO增加模版翻译功能项目地址:https://github.com/brandonxiang/weapp-i18n 项目地址:weapp-i18n-master.zip    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之微信频道!

本文由 @凌雪 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程