微信小程序页面制作双语

741 阅读2分钟

这是我参与11月更文挑战的第26天,活动详情查看:2021最后一次更文挑战

微信小程序页面制作双语的过程

首先在项目根目录下新建language文件夹,里面存中文文字和英文文字,以及切换双语的相关方法 在这里插入图片描述

zh_lang.js写的是中文,最后导出,文件内容如下


var Languague = {
   // 首页
    index: {
        score_query: "成绩查询",
        sign_in: "扫码签到",
        schedule: "日程查看",
        exam: "考试安排",
        notice: "通知公告",
        certificate: "证书荣誉",
        exchange: "预约交换",
        more: "更多",
        today_agenda: "今日日程",
        top_title: "Mools教学系统",
        more_recent_agenda: "更多近期日程",
        no_schedule: "今日暂无日程安排",
        bind: "绑定查看今日日程"
    },
};
module.exports = {
    lang: Languague
}

en_lang.js写的是英文,最后导出,文件内容如下

var Languague = {
   // 首页
   index: {
    score_query: "score query",
    sign_in: "sign in",
    schedule: "schedule",
    exam: "exam",
    notice: "notice",
    certificate: "certificate",
    exchange: "exchange",
    more: "more",
    today_agenda: "Today's agenda",
    top_title: "Mools teaching system",
    more_recent_agenda: "more recent agenda"
  },
};
module.exports = {
    lang: Languague
}

languageutils文件内容如下:

1.languageVersion方法:

首先需要在点击选择语言时(例如前端组件中写的选择简体中文和English)往内存中存入控制语言显示的值,比如我储存的languageVersion,值为0时,引入上面写好的中文文件,值为1时,引入上面写好的英文文件,然后返回出去,供所需要的js页面使用。

2.changLanguage 方法:

切换语言,获取缓存中的languageVersion值,然后切换他的值,换不同的语言,下面的代码一看就明白了 最后别忘了导出这两个方法

const app = getApp();

const languageVersion = function()
{
    var languageVersion = wx.getStorageSync("languageVersion");
    if (languageVersion == 0) 
    {
        // 导入我们定义好的中文字典
        var zh_lang = require('./zh_lang.js')
        // console.log(zh_lang)
        return zh_lang
    } 
    else 
    {
        // 导入我们定义好的英文字典
        var en_lang = require('./en_lang.js')
        // console.log(en_lang)
        return en_lang
    }
}

const changLanguage = function()
{
    var languageVersion = wx.getStorageSync("languageVersion");
    //修改前面已经定义好的,用于标识小程序的语言版本
    if (languageVersion == 0) 
    {
        wx.setStorage({
            key: "languageVersion",
            data: 1,
        });
    } 
    else if (languageVersion == 1)
    {
        wx.setStorage({
            key: "languageVersion",
            data: 0,
        });
    }
}
//抛出方法
module.exports = {
  'languageVersion': languageVersion,
  'changLanguage': changLanguage
}

这是需要双语的page页面的js文件

1.首先引入上面定义的languageUtils文件

2.在页面加载时调用languageUtils文件里的languageVersion初始化显示哪种语言(这里我自己封装了initLanguage方法用于初始化)

wx.setNavigationBarTitle用于动态修改微信小程序navigatationBarTitle的,详情看微信开放文档 微信开放文档:wx.setNavigationBarTitle

3.把语言文字保存到data中,前端绑定数据就ok了**

// 双语字典
const languageUtils = require("../../../language/languageUtils");
data: {

    //用于保存当前页面所需字典变量
    content: {},

  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    var self = this;
    // 初始化显示语言
    self.initLanguage();
  },
   /**
  * @name: 初始化语言(双语)
  * @author: camellia
  * @date: 2021-11-05 
  */
  initLanguage() {
    var self = this;
    //获取当前小程序语言版本所对应的字典变量
    var lang = languageUtils.languageVersion();
    // 页面显示
    self.setData({
      content: lang.lang,
    });
    // 顶部标题放到这里来就行了 
    wx.setNavigationBarTitle({
      title: lang.lang.grantAuth.top_title,
    });

需要双语的page页面的wxml文件

双大括号绑定data数据写法不用多说

 <view class="CheckAll">
       {{content.course.chech_course}}
</view>