当前位置: 首页 > news >正文

微信小程序中英文切换miniprogram-i18n-plus

原生微信小程序使用 miniprogram-i18n-plus

第一步:

npm install miniprogram-i18n-plus -S

安装完成后,会在项目文件文件夹 node_modules文件里生成 miniprogram-i18n-plus, 然后在工具栏-工具-构建npm,然后看到miniprogram_npm里面有一个miniprogram-i18n-plus

第二步:

在app.js文件中设置  进入小程序判断有无存储在storage 的语言,没有的话就获取系统当前语言是什么语言,有就拿已存储设置得语言

import storage from './utils/storage';   // 自定义得缓存文件
import setLanguage from "./i18n/index";  // 引入得 miniprogram-i18n-plus 处理得文件
let language = "en_US"; // zh_CN en_US   // 默认得语言
App({onLaunch() {// 判断有无存储在storage 的语言,没有的话就获取系统当前语言是什么语言,有就拿已存储的if(storage.get('language')) {language = storage.get('language')} else {wx.getSystemInfo({success:(res)=> {if(res.language === 'en') {language = 'en_US'}else {language = 'zh_CN'}storage.set('language', language)}})}setLanguage.setLanguage();},globalData: {statusBarHeight: wx.getSystemInfoSync()['statusBarHeight'],}
})

在文件中创建一个i18n文件夹,里面创建index.js文件和中文语言文件zh.js和英文文件en.js,

index.js文件代码

import i18nInstance from "../miniprogram_npm/miniprogram-i18n-plus/index";  //引入得插件
import storage from '../utils/storage';  // 缓存文件
import en_US from './en';                // 英文文件
import zh_CN from './zh';                // 中文文件
function setLanguage () {const locales = {...zh_CN,...en_US};// 更改语言let language= storage.get('language')  // 语言缓存i18nInstance.setLocale(language);        i18nInstance.loadTranslations(locales);
}
module.exports = {setLanguage: setLanguage
}

en.js 文件 

const languageMap = {"title": 'Must-Read for Beginners ',"tips": 'Hot Topic ',
}
module.exports = {en_US: languageMap
}

zh.js 文件

const languageMap = {title: '新手必读',tips: '热门话题',
}
module.exports = {zh_CN: languageMap
}

第三步:

在文件中使用 需要引入  miniprogram-i18n-plus  在data 中定义 

i18n: i18nInstance.getLanguage()
import { i18nInstance } from "../../miniprogram_npm/miniprogram-i18n-plus/index";Page({data: {i18n: i18nInstance.getLanguage()}
})

也可以使用官网得方法  在onLoad 函数中设置

Page({data: {language: {},},onLoad() {i18nInstance.effect({context: this,callback: this.setLanguage,});},setLanguage() {this.setData({language: i18nInstance.getLanguage(),});},
});

最后:

在文件中调用  index.wxml  

<view> {{i18n.title}} </view>

http://www.dtcms.com/a/298141.html

相关文章:

  • HTTP 与 SpringBoot 参数提交与接收协议方式
  • Orbbec开发---数据流与数据流操作
  • “即时零售”风起,E3+企业中台如何赋能品牌企业破局增长?
  • 单片机(STM32-ADC模数转换器)
  • 软件异常读写威胁硬盘安全:从过往案例到防护之道
  • 05.原型模式:从影分身术到细胞分裂的编程艺术
  • jQuery事件方法:bind、live、delegate、on对比
  • 秒收蜘蛛池解析机制的原理
  • Sulfo-CY3 Alkyne磺酸基Cy3-炔
  • 猛犸世纪接连登上《IT时报》《第一财经》,GEO优化走向AI营销主舞台
  • jwt 验证方法 (ASP.NET Core)
  • Android 15中的16KB大页有何优势?
  • 使用vllm创建相同模型的多个实例,使用nginx进行负载均衡,提高模型吞吐量
  • 浅谈数字花园
  • jenston nano+conda+pytorch的部署办法
  • 一次“非法指令”(SIGILL)问题的完整调试过程:CPU指令集兼容性探秘
  • Windows Server 2003 R2系统C盘扩容教程
  • 本地部署Dify教程
  • 软件工程之可行性研究:从理论到实践的全面解析
  • Tomcat线程池深度优化指南:高并发场景下的maxConnections计算与监控体系
  • 当人机交互迈向新纪元:脑机接口与AR/VR/MR的狂飙之路
  • 管理 GitHub Pages 站点的自定义域(Windows)
  • 【Web】DASCTF 2025上半年赛 wp
  • 牛客刷题记录01
  • 软件工程的工具链演进
  • Lua(数据库访问)
  • (CVPR 2025 )基于学习的自动HSI光谱校准方法
  • [CSS]让overflow不用按shift可以滚轮水平滚动(纯CSS)
  • 【氮化镓】GaN取代GaAs作为空间激光无线能量传输光伏转换器材料
  • SQL server 2019删除重建用户