网友真实露脸自拍10p,成人国产精品秘?久久久按摩,国产精品久久久久久无码不卡,成人免费区一区二区三区

小程序模板網

微信小程序筆記《四》:翻譯小輪子weapp-i18n(邁向國際化)

發布時間:2017-12-08 17:44 所屬欄目:小程序開發教程

正是由于微信小程序已支持個人公眾號,又喚起我對小程序的一些“熱情”。說實在的,它不過是一個封閉的web框架。語法上,有點像vue,但是它單項綁定的特性,又有點像react。總的來 ...

 
 
 

正是由于微信小程序已支持個人公眾號,又喚起我對小程序的一些“熱情”。說實在的,它不過是一個封閉的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形式進行保存。其中,包括enzh-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



易優小程序(企業版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.xiuhaier.com/wxmini/doc/course/18091.html 復制鏈接 如需定制請聯系易優客服咨詢:800182392 點擊咨詢
QQ在線咨詢
AI智能客服 ×