小程序多语言

app.js

引用文件

javascript 复制代码
//国际化
import locales from './utils/locales'
import T from './utils/wxapp-i18n'

设置全局变量

javascript 复制代码
App({
    // 全局变量
    globalData: {
        lang: '',
    },
})

设置全局函数,每个多语言页面都要调用

javascript 复制代码
    setLang() {
        T.registerLocale(locales)

        // 获取系统设置的语言格式
        let resultLang = ''
        var value = this.globalData.lang
        console.log('::::value', value);

        // en zh zh_TW
        if (value) {
            T.setLocale(value)
            resultLang = value
        } else {
            // 如果没有储存的值
            // 使用系统语言
            wx.getSystemInfo({
                success: function (res) {
                    // 比如 "zh_CN" 表示简体中文,"zh_TW" 表示繁体中文,"en_US" 表示美式英语等

                    const map = {
                        zh_CN: 'zh',
                        zh_TW: 'zh_TW',
                        zh_HK: 'zh_TW',
                        en: 'en_US',
                    }

                    T.setLocale(map[res.language] || 'en_US') //默认显示英文
                    // wx.setStorageSync('lang', map[res.language] || 'zh')
                    resultLang = map[res.language] || 'en_US'
                },
                fail: function (err) {
                    console.error("获取系统信息失败", err);

                    // 默认中文
                    T.setLocale('en_US') //默认显示英文
                    // wx.setStorageSync('lang', 'zh')
                    resultLang = 'en_US'
                }
            });
        }
        wx.T = T

        return resultLang
    },

页面中使用

javascript 复制代码
const app = getApp()
const t = wx.T._

method

如:

javascript 复制代码
    setLang() {
        const lang = app.setLang()

        this.setData({
            lang,
            playing: t('Playing'),
            WeChatAuthorization: t('WeChatAuthorization'),
            Allow: t('Allow'),
            Reject: t('Reject'),
        })
    },

如:

javascript 复制代码
    const titleMapLang = {
                                'zh': '提示',
                                'zh_TW': '提示',
                                'en_US': 'Prompt'
                            };
                            const contentMapLang = {
                                'zh': '需要获取摄像头权限才能使用此功能',
                                'zh_TW': '需要獲取攝像頭權限才能使用此功能',
                                'en_US': 'Camera permission is required to use this feature'
                            };
                            const confirmTextMapLang = {
                                'zh': '去设置',
                                'zh_TW': '去設置',
                                'en_US': 'Settings'
                            };

                            // 用户没有授权,可以引导用户去设置页面开启权限
                            wx.showModal({
                                title: titleMapLang[_this.data.lang],
                                content: contentMapLang[_this.data.lang],
                                showCancel: false,
                                confirmText: confirmTextMapLang[_this.data.lang],
                                success: function (res) {
                                    if (res.confirm) {
                                        wx.openSetting();
                                    }
                                }
                            });
相关推荐
Ai-_Man1 天前
希望大家能推荐一款软件,可以直接把文心生成的代码变流程图,提高办公效率
人工智能·ai·小程序·流程图
Chengbei111 天前
DSH渗透测试插件dsh-pentest全新升级!适配DeepSeek Harness,可视化探索链路,一键搭建轻量化AI渗透测试环境。
人工智能·web安全·网络安全·微信·小程序·系统安全·安全架构
2601_949950631 天前
用练题簿小程序把课件做成可以在线刷题的内容
小程序·练习·小程序推荐
一几文1 天前
2026年上半年软考高级-系统架构设计师考试真题回顾与解析-综合知识选择题6
小程序·架构·系统架构·软考高级·软考·it证书
zhangminghuan2 天前
微信小程序开发核心知识点全景解析(前端必备硬核基础)
前端·微信小程序·小程序
游戏开发爱好者82 天前
开心上架是什么,一站式 Apple 开发者工作台总览
android·小程序·https·uni-app·iphone·webview
sltin2 天前
需求到落地:我如何在微信小程序里实现证件照换底、隐私打码与水印相机
数码相机·微信小程序·小程序
软件聚导航2 天前
软件聚导航-前端工程师的“小家庭”,工具与生活并存
人工智能·小程序·学习方法·图片压缩
咸虾米_3 天前
小程序流量主哪种广告最赚钱?各类广告收益与实操建议
微信小程序·小程序·小程序开发·流量主广告
show4333 天前
2026小程序端AI配音技术实现:TTS多音色引擎集成与MP3生成性能优化
人工智能·性能优化·小程序