UI组件库和内容文字的中英文切换

news/2024/10/22 19:22:24/

同时实现UI组件库(这里以ElementPlus为例)和内容文字的中英文切换

1. 安装vueI18n和element-plus

pnpm i vue-i18n  element-plus

2. 然后在项目中src目录下新建lang文件夹,里面新建en.ts和zh.ts还有index.ts

index.ts

javascript">import { createI18n } from 'vue-i18n'
import en from './en'
import zh from './zh'
import type { App } from 'vue'const messages = { en, zh }const localeData = {globalInjection: true, // 如果设置true, $t() 函数将注册到全局legacy: false, // 如果想在composition api中使用需要设置为falselocale: localStorage.getItem('lang') || 'zh', // 当前选择的语言messages, // set locale messages
}export const i18n = createI18n(localeData)export const setupI18n = {install(app: App) {app.use(i18n)},
}

en.ts

javascript">export default {router: {Dashboard: 'homePage',},
}

zh.ts

javascript">export default {router: {Dashboard: '首页',},
}

3. 在mian.ts中进行注册使用

e3c5f5d3cc074d2fb5a9f06154db344f.png

// ElementPlus

import ElementPlus from 'element-plus'

import 'element-plus/dist/index.css'

// vuei18n

import { setupI18n } from '@/lang'

const app = createApp(App)

app.use(ElementPlus)

app.use(setupI18n)

4. 在pinia中新增处理语言的逻辑

config.ts

javascript">import { defineStore } from 'pinia'
import { i18n } from '@/lang'
import { ref } from 'vue'export const useConfigStore = defineStore('config', () => {// 当前语言let language = ref(localStorage.getItem('lang') || 'zh')// 设置语言const setLanguage = (lang: string) => {const { locale }: any = i18n.globallanguage.value = langlocale.value = lang}return {language,setLanguage,}
})

index.ts

javascript">import { useConfigStore } from './config'export { useConfigStore }

5. 修改App.vue文件

javascript"><template><el-config-provider :locale="lang[language]"><RouterView /></el-config-provider>
</template><script setup lang="ts">
import { computed } from 'vue'
import { ElConfigProvider } from 'element-plus'
import { RouterView } from 'vue-router'
import { useConfigStore } from './stores'
import zh from 'element-plus/es/locale/lang/zh-cn'
import en from 'element-plus/es/locale/lang/en'const configStore = useConfigStore()const language = computed(() => configStore.language)const lang: any = { zh, en }
</script>

此时就完成了中英文切换的功能,我们进行测试一下

  • 点击按钮,传入相应的语言即可。
javascript"><template><el-button @click="changeLanguage('zh')">中文</el-button><el-button @click="changeLanguage('en')">英文</el-button><el-paginationv-model:current-page="currentPage4"v-model:page-size="pageSize4":page-sizes="[100, 200, 300, 400]":small="small":disabled="disabled":background="background"layout="total, sizes, prev, pager, next, jumper":total="400"/>{{ $t('router.Dashboard') }}
</template><script lang="ts" setup>
import { ref } from 'vue'
import { useConfigStore } from '@/stores'const configStore = useConfigStore()const currentPage4 = ref(4)
const pageSize4 = ref(100)
const small = ref(false)
const background = ref(false)
const disabled = ref(false)const changeLanguage = (language: 'zh' | 'en') => {configStore.setLanguage(language)
}
</script>

测试结果:

a852b883ee7b49de9f7eedfaba0b2205.png

3e2e4a0b60c24b7492e260ca8186519d.png


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

相关文章

Nacos如何支持服务发现和注册?

Nacos如何支持服务发现和注册 在微服务架构的浪潮中&#xff0c;服务发现和注册成为了支撑整个架构稳定运行的关键技术之一。而Nacos&#xff0c;作为阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台&#xff0c;凭借其简单易用、功能强大的特性&#xff0c;受到了广…

Unity 编辑器工具 - 资源引用查找器

目录 1.功能概述 2.完整代码 3. 实现原理 4. 使用预览 5.新增优化版本 在Unity项目开发过程中&#xff0c;管理和维护资源之间的引用关系是至关重要的。当然我们项目也是需要这个功能 毕竟项目大了之后查找资源引用还是交给 资源引用查找器 比较好。 1.功能概述 资源引用…

【Linux】进程间通信 - 管道

文章目录 1. 进程间通信介绍1.1 进程间通信目的1.2 进程间通信发展1.3 进程间通信分类 2. 管道2.1 什么是管道2.2 匿名管道2.3 用 fork 来共享管道原理2.4 站在文件描述符角度 - 深入理解管道2.5 站在内核角度 - 管道本质2.6 管道读写规则2.7 管道特点 3. 命名管道3.1 匿名管道…

c++容器与算法概述

容器与算法 每个标准库容器都提供了begin() end() 函数&#xff0c;分别返回容器的头部位置和尾部位置。 I/O 流 对于自定义的类型&#xff1a; struct Entry {std::string name;int number;};如果需要使用标准输出需要重载<< 运算符&#xff0c;特别注意&#xff1a…

项目部署总结

1、安装jdk 第一步&#xff1a;上传jdk压缩安装包到服务器 第二步&#xff1a;将压缩安装包解压 tar -xvf jdk-8uXXX-linux-x64.tar.gz 第三步&#xff1a;配置环境变量 编辑/etc/profile文件&#xff0c;在文件末尾添加以下内容&#xff1a; export JAVA_HOME/path/to/j…

【计算机科学速成课】笔记二

笔记一 文章目录 7.CPU阶段一&#xff1a;取指令阶段阶段二&#xff1a;解码阶段阶段三&#xff1a;执行阶段 8.指令和程序9.高级CPU设计——流水线与缓存 7.CPU CPU也叫中央处理器&#xff0c;下面我们要用ALU&#xff08;输入二进制&#xff0c;会执行计算&#xff09;、两种…

【计算机网络】FTP站点配置搭建教程以及相关问题解决方案(超详细)

文章目录 1、安装Window Server 20082、搭建FTP环境&#xff08;1&#xff09;安装FTP服务器&#xff08;2&#xff09;配置FTP服务器&#xff08;3&#xff09;测试FTP连接 3、遇到的问题以及解决方案&#xff08;1&#xff09;Windows无法访问此文件夹&#xff08;2&#xff…

JavaScript中的DOM和BOM

个人主页&#xff1a;学习前端的小z 个人专栏&#xff1a;JavaScript 精粹 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结&#xff0c;欢迎大家在评论区交流讨论&#xff01; 文章目录 &#x1f4af;Web API&#x1f340;1 API的概念&#x1f340;2 Web API的概念…