#Uniapp: uniapp国际化适配

server/2025/1/13 13:06:36/

uniapp国际化适配

插件安装

npm i vue-i18n@9.1.9

根目录下新建locales文件目录

import Vue from 'vue';
import VueI18n from 'vue-i18n';
import zhCN from './lang/zh-CN';
import enUS from './lang/en-US';// 获取默认语言
export const defaultLang = uni.getStorageSync('language') || 'zh-CN';// 语言包
const messages = {'zh-CN': {...zhCN},'en-US': {...enUS}
};// 判断 Vue 版本
const isVue3 = Vue.version.startsWith('3');let i18n;if (isVue3) {// Vue 3 使用 createI18nconst { createI18n } = VueI18n;i18n = createI18n({legacy: false, // 使用 Composition API 模式locale: defaultLang, // 默认语言fallbackLocale: defaultLang, // 回退语言messages // 语言包});
} else {// Vue 2 使用 VueI18n 构造函数Vue.use(VueI18n);i18n = new VueI18n({silentTranslationWarn: true, // 禁止翻译失败警告locale: defaultLang, // 默认语言fallbackLocale: defaultLang, // 回退语言messages // 语言包});
}/*** 设置语言编码* @param {string} lang 语言编码*/
export function setI18nLanguage(lang) {if (isVue3) {i18n.global.locale = lang; // Vue 3 设置语言} else {i18n.locale = lang; // Vue 2 设置语言}uni.setStorageSync('language', lang); // 持久化语言设置
}/*** 获取语言值* @param {string} key 多语言 key* @returns {string} 语言值*/
export function i18nRender(key) {if (isVue3) {return i18n.global.t(key); // Vue 3 获取翻译} else {return i18n.t(key); // Vue 2 获取翻译}
}export default i18n;

main.js引入

import App from './App';
import i18n from './locales';import navigationBarMixin from './mixin/navigationBarMixin'; // 动态修改导航栏标题// #ifndef VUE3
import Vue from 'vue';Vue.mixin(navigationBarMixin);Vue.config.productionTip = false;
App.mpType = 'app';
const app = new Vue({i18n,...App
});
app.$mount();
// #endif// #ifdef VUE3
import { createSSRApp } from 'vue';
export function createApp() {const app = createSSRApp(App);app.use(i18n)return {app};
}
// #endif

使用示例+语言切换

<template><!-- index.wxml --><view class="container"><view class="top-swiper-images"><image class="swiper-background-image" src="/static/images/swiper_back_img.png"></image><button style='    position: absolute;top: 0;z-index: 999;display: flex;margin: 32rpx;width: 280rpx;background-color:#E60012' size='mini' type="primary" @click="switchLanguage($i18n.locale)">语言切换:{{currentLanguageText}}</button></view></view>
</template><script>import {setI18nLanguage,defaultLang} from '../../locales';export default {data() {return {};},computed: {// 将语言代码转换为友好的文本currentLanguageText() {return this.$i18n.locale === 'zh-CN' ? '中文' : 'English';}},methods: {switchLanguage(lang) {setI18nLanguage(lang == 'zh-CN' ? 'en-US' : 'zh-CN') // 切换语言this.setNavigationBarTitle()},};
</script>
<style>page {background-color: #ffffff;position: relative;}.container {}
</style>

http://www.ppmy.cn/server/158007.html

相关文章

“多维像素”多模态雷视融合技术构建自动驾驶超级感知能力|上海昱感微电子创始人蒋宏GADS演讲预告

2025年1月14日&#xff0c;第四届全球自动驾驶峰会将在北京中关村国家自主创新示范区展示交易中心-会议中心举行。经过三年的发展&#xff0c;全球自动驾驶峰会已经成长为国内自动驾驶领域最具影响力、规模最大的产业峰会之一。在主会场下午的城市NOA专题论坛上&#xff0c;上海…

Flink 应用

Flink 应用 Flink 应用的特点Flink 应用的组成数据源&#xff08;Source&#xff09;数据流处理逻辑&#xff08;Processing Logic&#xff09;数据目的地&#xff08;Sink&#xff09;运行时配置&#xff08;Runtime Configuration&#xff09;状态&#xff08;State&#xff…

react ts 定义基本类型,组件通过ref调用时类型提示

记录&#xff0c;以防忘记 子组件 import React, { forwardRef, Ref, useImperativeHandle, useState } from react;// 类型定义方式1 interface IProps {/**参数1 */params1: number | string | undefined/**参数2 */params2: number | string | undefined/**方法 */openDia…

web作业

作业一 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>Document</title> </head&g…

202506读书笔记|《飞花令·江》——余霞散成绮,澄江静如练,江梅一夜落红雪,便有夭桃无数开

202506读书笔记|《飞花令江》——余霞散成绮&#xff0c;澄江静如练&#xff0c;江梅一夜落红雪&#xff0c;便有夭桃无数开 摘录 《飞花令江》素心落雪编著&#xff0c;飞花令得名于唐代诗人韩翃《寒食》中的名句“春城无处不飞花”&#xff0c;类似于行酒令&#xff0c;是文人…

【源码解析】Java NIO 包中的 HeapByteBuffer

文章目录 1. 前言2. HeapByteBuffer3. HeapByteBuffer 的创建4. 创建视图5. get 获取元素6. put 设置元素7. compact 切换写模式8. 大端模式和小端模式9. HeapByteBufferR10. 小结 1. 前言 上一篇文章我们介绍了 ByteBuffer 里面的一些抽象方法和概念&#xff0c;这篇文章开始…

springCloud特色知识记录(基于黑马教程2024年)

目录 Nacos 简介 Nacos 的特点 Nacos 的使用步骤可以查看黑马教程文档&#xff1a;‍‌​‌​&#xfeff;⁠​⁠​​​​​&#xfeff;‬​​​​‍‌&#xfeff;‬⁠​&#xfeff;​‬​​​​‍​&#xfeff;⁠​&#xfeff;​​⁠​​‬​⁠&#xfeff;​​day03-微…

计算机网络(三)——局域网和广域网

一、局域网 特点&#xff1a;覆盖较小的地理范围&#xff1b;具有较低的时延和误码率&#xff1b;使用双绞线、同轴电缆、光纤传输&#xff0c;传输效率高&#xff1b;局域网内各节点之间采用以帧为单位的数据传输&#xff1b;支持单播、广播和多播&#xff08;单播指点对点通信…