1. 程式人生 > 其它 >微信小程式開發:中英文切換能力的簡單實現方法

微信小程式開發:中英文切換能力的簡單實現方法

專案背景,在已經完善的漢語微信小程式基礎上,實現登入時切換中英文介面的功能,這裡只要做前端固定文案部分,介面返回的內容先不考慮。實現程式碼如下:

1、首先在微信小程式的根目錄下建立“language”資料夾,用於儲存語言相關的js檔案。用_en.js代表英語,_zh.js代表漢語。

_en.js程式碼舉例:

const languageMap = {
  "登入": "Login",
  "請輸入手機號": "Mobile phone number",
  "密碼": "Password",
  "登入說明": "Login instructions"
}

module.exports 
= { languageMap: languageMap }

_zh.js程式碼舉例:

const languageMap = {
  "登入": "登入",
  "請輸入手機號": "請輸入手機號",
  "密碼": "密碼",
  "登入說明": "登入說明"
}

module.exports = {
  languageMap: languageMap
}

2、在utils資料夾下建立languageUtils.js,目的是寫入操作語言的通用方法。

languageUtils.js:

const app = getApp();

// 獲取當前存的語言選擇結果,如果沒有預設用中文
const languageVersion = function () { return wx.getStorageSync('lang') || 'zh'; } //返回翻譯資料 function translate() { return require('../language/_' + languageVersion() + '.js').languageMap; } //切換語言方法 const changeLanguage= function (langType) { if (langType== 1) { wx.setStorageSync('lang', 'en') }
else { wx.setStorageSync('lang', 'zh') } } //丟擲方法 module.exports = { languageVersion: languageVersion, changeLanguage: changeLanguage, _lang: translate, }

切換語言就用小程式自己的Picker元件來操作,比較簡單,舉個小栗子:

<picker bindchange="changeLang" value="{{langInex}}" range="{{array}}">
    <view class="picker" >
        {{array[langInex]}} <i class="sz szxia"></i>
    </view>
 </picker>

3、正式使用,程式碼如下

需要使用頁面的Js檔案:

//先將js檔案引入頁面
var lang = require('../../utils/languageUtils');

//生命週期函式
 onShow: function () {
    this.initLanguage();
  },

 //初始化展示語言
  initLanguage() {
    this.setData({
      _lang: lang._lang()
    })
  
//把頁面的Title值順便修改一下   wx.setNavigationBarTitle({ title:
this.data._lang["登入"], }) }

頁面的wxml檔案:

  <form bindsubmit="formSubmit">
    <view class="wp100">
      <input class="loginInput" value="{{mobile}}" name="mobile" focus="{{mobileFocus}}" type="number" maxlength="11"
        placeholder="{{_lang['請輸入手機號']}}" />
    </view>
    <view class="wp100 pt20 pr">
      <input class="loginInput wp100" focus="{{pwdFocus}}" name="pwd" type="password" placeholder="{{_lang['密碼']}}" />
    </view>
    <view class="wp100 pt50">
      <button class="loginBtn" formType="submit">{{_lang["登入"]}}</button>
    </view>
  </form>

這樣就妥啦!!