vue3+ts使用i18n切换语言

1、下载i18n:

        npm install vue-i18n --save

npm install vue-i18n --save

2、创建语言配置:

在src目录下创建一个名为i18n的文件夹,在里面分别创建index.ts、enConfig.ts、cnConfig.ts

提示:文件名可以随便起,只要对应就可以

enConfig.ts

//enConfig
export default {
  message: {
    hello: 'hello world',
    name:'name'
  }
}

zhConfig.ts

//zhConfig.ts
export default {
  message: {
    hello: '你好',
    name:'姓名'
  }
}

index.ts

//index.ts
import { createI18n } from "vue-i18n";
import en from './i18n/enConfig'
import zh from "./i18n/zhConfig";

const i18n = createI18n({
  locale:localStorage.getItem('language') || 'zhCn', // 默认是中文
  //fallbackLocale: 'en', // 语言切换的时候是英文
  globalInjection:true,//全局配置
  legacy:false,//vue3写法
  messages:{en,zh}// 你需要做国际化的语种,就是刚才编写的两个语言

})

export default i18n

3、配置main.ts:

import i18n from '@/i18n/index'

app.use(i18n)

import { createApp } from 'vue'
import { createPinia } from 'pinia'
import i18n from '@/i18n/index' //引入配置的语言

import "@/assets/base.css"
import App from './App.vue'
import router from './router'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
const app = createApp(App)
import 'virtual:svg-icons-register' 
import './permission'
import  svgcomponent from './components/svg_component.vue'

// import 'lib-flexible'
app.use(createPinia())
app.component('SvgComponent',svgcomponent)
app.use(router)
app.use(ElementPlus)
app.use(i18n)    //挂载
app.mount('#app')

4、中英文切换:

const { locale } = useI18n()   //导入

locale.value = 'cn' //修改切换语言

<template>
      <button @click="changecn">点击切换中文</button>
      <button @click="changezh">点击切换英文</button>
</template>

<script setup lang="ts">
import { useI18n } from "vue-i18n";
import { computed } from "vue";

const {locale}= useI18n()
//储存语种并进行切换
const changecn= () => {
  localStorage.setItem('language','cn')
  locale.value = 'cn'

};
const changezh= () => {
  localStorage.setItem('language','zh')
  i18n.locale.value = 'zh'
};
</script>
<style scoped lang="less">

</style>

5、页面使用:

直接使用{{ $t(“message.name”) }}

<template>
  <div>
    {{ $t("message.name") }}
  </div>
</template>

<script setup lang="ts"></script>
<style scoped lang="less">

</style>

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3 TS Vite Element Plus I18n开源项目是一个基于Vue3和TypeScript的快速开发框架,它集成了Element Plus组件库和国际化功能。 Vue3是目前最新的Vue版本,它带来了很多新的特性和改进,比如更好的性能、更强大的类型推断和优化的渲染逻辑。使用Vue3可以让开发者拥有更好的开发体验和更高效的编码方式。 TS是TypeScript的缩写,它是JavaScript的超集,为JavaScript添加了静态类型检查和其他新特性。使用TypeScript可以更早地发现代码错误,并提供更好的代码提示和重构能力,提高了代码的可维护性和可读性。 Vite是一个由Evan You(Vue的创造者)开发的新一代前端构建工具,它具有极快的冷启动和热重载能力,能够大大提升开发效率。使用Vite可以快速搭建起整个项目的开发环境。 Element Plus是一套基于Vue3的UI组件库,它提供了丰富的常用组件和样式,可以帮助开发者快速搭建精美的界面。Element Plus基于Vue3的语法进行了优化,提供了更好的性能和更丰富的功能。 I18n是国际化的缩写,它是指将应用程序适配到不同的语言和地区。开源项目中的I18n功能可以帮助开发者轻松实现多语言支持,提供了翻译和切换语言的功能。 综上所述,Vue3 TS Vite Element Plus I18n开源项目是一个强大的开发框架,它集成了最新的Vue版本、TypeScript、快速开发工具Vite、Element Plus组件库和国际化功能。使用这个项目可以大大提高前端开发的效率和质量,特别适合构建大型和多语言的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值