国际化(微信小程序+TS)

该文详细介绍了微信小程序的国际化配置步骤,包括环境配置、i18n文本定义、使用方法以及打包编译过程。通过gulp和miniprogram-i18n库,实现WXML和JS中的文本国际化,并提供了中文和英文的示例。同时,文章还讲解了如何进行语言切换和打包编译,确保小程序支持多语言环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、环境配置

1、安装根目录依赖

2、安装minprogram依赖

3、新建gulpfile文件

二、i18文本定义

1、中文 zh-CN.json

2、英文 en-US.json

三、使用

1、WXML中的使用

2、Javascript中的使用

3、中英文切换

四、打包编译

1、配置TS

2、配置project.config.js

3、打包

参考文档


一、环境配置

        目录结构示例

├── dist               // 小程序构建目录
├── gulpfile.js
├── node_modules
├── package.json
└── miniprogram                // 小程序源文件目录
|   ├── app.js
|   ├── app.json
|   ├── app.wxss
|   ├── i18n           // 国际化文本目录
|   |   ├── en-US.json
|   |   └── zh-CN.json

1、安装根目录依赖

        在项目根目录运行以下命令安装 gulp 及 miniprogram-i18n 的 gulp 插件。

npm i -D gulp @miniprogram-i18n/gulp-i18n-locales @miniprogram-i18n/gulp-i18n-wxml

2、安装minprogram依赖

        1)初始化仓库 npm init 

        一直回车,最后输入yes,minprogram中生成package.json文件,即初始化成功,此时即可安装依赖。

        2)安装依赖。

        在 miniprogram下进入终端,输入以下命令

npm i -S @miniprogram-i18n/core

        3)构建npm

        小程序开发工具左上角>工具>构建npm,构建成功之后minprogram中会生成一个miniprogram_npm这个文件夹,这个时候就已经可以使用依赖了。

3、新建gulpfile文件

        在根目录创建gulpfile.js文件

        复制以下代码

/* eslint-disable require-jsdoc */
const {src, dest, series} = require('gulp');
const gulpI18nWxml = require('@miniprogram-i18n/gulp-i18n-wxml');
const gulpI18nLocales = require('@miniprogram-i18n/gulp-i18n-locales');

function mergeAndGenerateLocales() {
  return src('miniprogram/i18n/*.json')
      .pipe(gulpI18nLocales({defaultLocale: 'zh-CN', fallbackLocale: 'zh-CN'}))
      .pipe(dest('dist/i18n/'));
}

function transpileWxml() {
  return src('miniprogram/**/*.wxml')
      .pipe(gulpI18nWxml({
        wxsPath: 'miniprogram/i18n/locales.wxs',
      }))
      .pipe(dest('dist/'));
}

function copyToDist() {
  return src(['miniprogram/**/*', '!miniprogram/**/*.wxml', '!miniprogram/i18n/*.json'])
      .pipe(dest('dist/'));
}

exports.default = series(copyToDist, transpileWxml, mergeAndGenerateLocales);

二、i18文本定义

在minprogram中新建i18n文件夹,新建相应的json文件(内容为空时,必须有一个{},否则报错

(ps:目前 miniprogram-i18n 仅支持纯文本及文本插值,后续会对其他 i18n 特性进行支持)

1、中文 zh-CN.json

// i18n/zh-CN.json
{
  "cc": "超",
  "withdata": "{value}超"
}

2、英文 en-US.json

// i18n/en-US.json
{
  "cc": "chao",
  "withdata": "{value} chao"
}

三、使用

1、WXML中的使用

        直接通过 t('cc')使用即可

<view>{{ t('cc') }}</view>
<view>{{t('cc',{value:'kk'})}}</view>

2、Javascript中的使用

        先引入,然后通过  i18n.t('cc') 直接使用即可

import { getI18nInstance } from '@miniprogram-i18n/core'
const i18n = getI18nInstance()

3、中英文切换

setLocale         设置当前语言

getLocale         获取当前语言

getFallbackLocale         获取备选语言

onLocaleChange(()=> {})        语言改变时触发的回调

import { I18nPage } from '@miniprogram-i18n/core'
I18nPage({
  onLoad() {
    // 语言切换时触发
    this.onLocaleChange((locale) => {
      // 获取当前语言
      console.log('current locale:', this.getLocale(), locale)
    })
    // 设置中文
    this.setLocale('zh-CN')
  },
   
  toggleLocale() {
    // 切换语言
    this.setLocale(
      this.getLocale() === 'zh-CN' ? 'en-US' : 'zh-CN'
    )
  },
})

四、打包编译

1、配置TS

        打开文件:typings>types>index.d.ts,在最后一行注入以下代码

(declare就是告诉TS编译器你担保这些变量和模块存在,并声明了相应类型,编译的时候不需要提示错误 )

declare module '@miniprogram-i18n/core'

2、配置project.config.js

         将minprogram修改为dist

3、打包

         1)在根目录的package.json文件中添加命令 “build”:“gulp”

        2)打开终端,输入npm run build

        3)完成

       注意:修改miniprogram代码的内容后,重新npm run build即可。

参考文档

https://github.com/wechat-miniprogram/miniprogram-i18nhttps://github.com/wechat-miniprogram/miniprogram-i18n

一键完成小程序国际化 | 微信开放社区本文介绍了一个用于小程序国际化的工具https://developers.weixin.qq.com/community/develop/article/doc/000aea41d44be836fbf882e845b813

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

[chao]

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值