使用uniapp开发国际化---app,vue,nvue

news/2024/11/25 17:38:35/

插件市场下载示例

hello-i18n 示例工程 - DCloud 插件市场

项目使用

main.js引入

// 国际化 json 文件,文件内容详见下面的示例
import en from './en.json'
import zhHans from './zh-Hans.json'
import zhHant from './zh-Hant.json'
const messages = {en,'zh-Hans': zhHans,'zh-Hant': zhHant
}let i18nConfig = {locale: uni.getLocale(),// 获取已设置的语言messages
}// VUE2
// #ifndef VUE3
import Vue from 'vue'
import VueI18n from 'vue-i18n'// v8.x
Vue.use(VueI18n)
const i18n = new VueI18n(i18nConfig)
Vue.config.productionTip = false
App.mpType = 'app'
const app = new Vue({i18n,...App
})
app.$mount()
// #endif// VUE3
// #ifdef VUE3
import { createSSRApp } from 'vue'
import { createI18n } from 'vue-i18n'// v9.x
const i18n = createI18n(i18nConfig)
export function createApp() {const app = createSSRApp(App)app.use(i18n)return {app}
}
// #endif

创建文件

 en.json----"自定义key":"英文"

 zh-Hans.json----"自定义key":"中文"    

 注意:json文件中的名称需要中英文对应。

index.js

import en from './en.json'
import zhHans from './zh-Hans.json'
export default {en,'zh-Hans': zhHans,
}

 页面中使用

vue页面模板使用----$t('')

<template><view class="container">
<--  index.title 为json文件中 自定义key --><view class="title">{{$t('index.title')}}</view></view>
</template>

nvue页面模板使用----t('')

import messages from '../../locale/index.js'import {initVueI18n} from '@dcloudio/uni-i18n'const {t} = initVueI18n(messages)
        // 初始化created() {const {t} = initVueI18n(messages);this.t = t;},

pages.json 使用 ----%index.title%

{"pages": [{"path": "pages/index/index","style": {"navigationBarTitleText": "%index.title%" // locale目录下 语言地区代码.json 文件中定义的 key,使用 %% 占位}}],"tabBar": {"list": [{"pagePath": "pages/index/index","text": "%index.home%"}]}
}

data中使用---this.$t('')

data() {return {// json 文件中定义的 keyname: this.$t('dhjl'),}},

切换语言---在某一个页面写入

<view class="" style="margin-top: 20px;margin-left: 290px;"><u-radio-group v-model="radiovalue1" placement="column"><u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in locales" :key="index":label="item.text" :name="item.text" @change="onLocaleChange(item)"></u-radio></u-radio-group></view>
computed:{locales() {return [{text: this.$t('locale.en'),code: 'en'},{text: this.$t('locale.zh-hans'),code: 'zh-Hans'}]}},
// 更改语言onLocaleChange(e) {if (this.isAndroid) {uni.showModal({content: this.$t('index.language-change-confirm'),success: (res) => {if (res.confirm) {uni.setLocale(e.code);}}})} else {uni.setLocale(e.code);this.$i18n.locale = e.code;}},

启动项目,就可以成功切换语言了。

如果遇到切换语言的时候不能全局切换,可以尝试注释掉以下代码。

以上就是关于在uniapp中使用国际化的一些说明,内容不多,操作简单。


http://www.ppmy.cn/news/101679.html

相关文章

TCP协议的RST标志

下文中的内容多数来自【参考】中的文章&#xff0c;这边进行一个整理和总结&#xff0c;后续会慢慢增加出现各个 RST 包的测试代码&#xff0c;便于理解。 TCP的 “断开连接” 标志 RST 标志 Reset&#xff0c;复位标志&#xff0c;用于非正常地关闭连接。它是 TCP 协议首部里…

代码随想录算法训练营第55天 | 392、115

392. 判断子序列 题目描述 给定字符串 s 和 t &#xff0c;判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些&#xff08;也可以不删除&#xff09;字符而不改变剩余字符相对位置形成的新字符串。&#xff08;例如&#xff0c;"ace"是"abc…

关于【Stable-Diffusion WEBUI】生成全身图:插件解决面部崩坏问题

文章目录 &#xff08;零&#xff09;前言&#xff08;一&#xff09;脸难看的问题&#xff08;1.1&#xff09;面部修复&#xff08;1.2&#xff09;远景脸部问题 &#xff08;二&#xff09;面部修复插件&#xff08;Face Editor&#xff09;&#xff08;2.1&#xff09;模型…

Day55【动态规划】392.判断子序列、115.不同的子序列

392.判断子序列 力扣题目链接/文章讲解 视频讲解 本题目可以用双指针法来做 class Solution { public:bool isSubsequence(string s, string t) {// pointer to s, pointer to tint ps 0, pt 0; for (pt 0; pt < t.size(); pt) { // 遍历t&#xff0c;在t中按顺序寻找…

redis心得

部署模式 主从 一主多从&#xff0c;主节点负责写入&#xff0c;从节点负责复制。但并非高可用&#xff0c;主节点挂了&#xff0c;要人工切换。 哨兵 Redis 的哨兵模式是为了解决主从模式的高可用方案。 其引入了一个 Sentinel 系统去监视主节点及其从节点。一旦发现有主…

人工智能电话客服机器人-提升效率节约人力成本

随着科技的不断发展&#xff0c;人工智能技术已经开始广泛应用于各个领域。其中&#xff0c;人工智能电话客服机器人已经成为企业提升效率、节约人力成本的重要工具。本文将从以下几个方面探讨人工智能电话客服机器人的优势和应用。 一、人工智能电话客服机器人的优势 1.24小时…

智能照明“暗潮涌动”

在技术持续升级、消费者观念发生转变等多方因素的共同影响下&#xff0c;与智能相关的设备销量逐渐走俏。能够为人们带来便捷、舒适的智能家居产品也逐渐走进千家万户&#xff0c;深入到人们的日常生活中。在此背景下&#xff0c;智能家居行业日渐火热&#xff0c;实现了飞速发…

Java版企业工程项目管理系统源码+java版本+项目模块功能清单+spring cloud +spring boot

工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#xff1a;实现对数据字典标签的增删改查操作 2、编码管理&#xff1a;实现对系统编码的增删改查操作 3、用户管理&#xff1a;管理和查看用户角色 4、菜单管理&#xff1a;实现对系统菜单的增删改查操…