vue3项目如何国际化实战指南

 更新时间:2022年09月22日 15:53:32   作者:别拿bug搞偷袭  
像很多大型的网址,特别是跨国际等公司网页,访问来自世界各地用户,所以网页的国际化极其重要的需求,下面这篇文章主要给大家介绍了关于vue3项目如何国际化的相关资料,需要的朋友可以参考下

vue3项目如何国际化

  • 我们已经属性vue2 ,使用i18n ,进行国际化
  • 那vue3 我们如何配置 i18n 呢 ?

配置

Ⅰ、安装

npm i vue-i18n

Ⅱ、创建 il18n

  • 在src目录下,创建 i18n 文件夹,并在下面分别创建三个文件 分别为 :
  • ① index.js => 主文件用于导入 i18n ,和相关配置
  • ② zh.js => 存放中文内容
  • ③ en.js => 存放英文内容

① main.js 示例 =>

import { createI18n } from 'vue-i18n';
import ZH from './zh.js';
import EN from './en.js';
const messages = {
  zh: { ...ZH  },
  en: { ...EN  },
};

const i18n = createI18n({
  legacy: false,
  globalInjection: true,
  locale: 'zh',
  messages
});
export default i18n;

locale属性用于设置初始语言, 值要和 messages 中的属性 key ,相互对应

② zh.js 示例 =>

export default {
  person: {
    name:'张三',
    hobby:'唱跳,rap,篮球'
  },
};

③ en.js 示例 =>

export default {
  person: {
    name:'zhangsan',
    hobby:'Singing and dancing, rap, basketball'
  },
};

Ⅲ、在main.js 中配置 i18n

import { createApp } from "vue";
import App from "./App.vue";
import i18n from './i18n/index';
const app = createApp(App);
app
    .use(i18n)
    .mount("#app");

使用

Ⅰ、在 html 中使用 如果只是在 html 中使用,不用在导入任何东西

<template>
  <div>
   <span> {{ $t("person.name") }} </span> 
   <span> {{ $t("person.hobby") }} </span>
  </div>
</template>

Ⅱ、在js 中使用 需要通过 导入 getCurrentInstance 进行获取

<script setup>
import { getCurrentInstance } from "vue";
const { $t } = getCurrentInstance().proxy;

console.log( $t("person.name") ); // => 获取值
</script>

Ⅱ、修改语言 (和获取当前语言)

  • 切换语言要导入vue-i18n 的 locale 属性,locale 是ref 对象,要修改value
  • 不要修改 i18n/index.js文件, 导出的对象属性
<script setup>
import { useI18n } from 'vue-i18n'
const { locale } = useI18n()
// 切换中文
function  changeZh(){   locale.value = 'zh';   };
// 切换英文
function  changeEn(){   locale.value = 'en';   };
</script>

总结

到此这篇关于vue3项目如何国际化的文章就介绍到这了,更多相关vue3项目国际化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 学习Vue组件实例

    学习Vue组件实例

    本篇文章给大家分享了Vue实例的相关内容以及重要知识点,对此有兴趣的朋友可以跟着学习参考下。
    2018-04-04
  • Vue3的setup在el-tab中动态加载组件的方法

    Vue3的setup在el-tab中动态加载组件的方法

    公司某项目需求在页面显示的组件是根据角色变化而变化的,怎么实现这个效果呢,下面小编给大家介绍下Vue3的setup在el-tab中动态加载组件的方法,需要的朋友可以参考下
    2022-11-11
  • Vue自定义指令详细

    Vue自定义指令详细

    这篇文章主要介绍了Vue自定义指令,文章从背景开始详细介绍Vue自定义指令的详细内容,随着Vue自定义指令的相关资料展开具体内容,需要的朋友可以参考一下
    2021-11-11
  • 如何使用VUE+faceApi.js实现摄像头拍摄人脸识别

    如何使用VUE+faceApi.js实现摄像头拍摄人脸识别

    Face-api.js是一个JavaScript API,是基于tensorflow.js核心API 的人脸检测和人脸识别的浏览器实现,这篇文章主要给大家介绍了关于如何使用VUE+faceApi.js实现摄像头拍摄人脸识别的相关资料,需要的朋友可以参考下
    2023-05-05
  • vue项目配置使用flow类型检查的步骤

    vue项目配置使用flow类型检查的步骤

    这篇文章主要介绍了vue项目配置使用flow类型检查的步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Vue Element前端应用开发之echarts图表

    Vue Element前端应用开发之echarts图表

    在我们做应用系统的时候,往往都会涉及图表的展示,综合的图表展示能够给客户带来视觉的享受和数据直观体验,同时也是增强客户认同感的举措之一
    2021-05-05
  • vue实现全选功能

    vue实现全选功能

    这篇文章主要为大家详细介绍了vue实现全选功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • Vue Axios请求取消和重发封装的实现代码

    Vue Axios请求取消和重发封装的实现代码

    这篇文章主要介绍了Vue Axios请求取消和重发的封装的实现,文章通过代码示例讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-09-09
  • Vue.js学习之计算属性

    Vue.js学习之计算属性

    Vue.js 的内联表达式非常方便,但它最合适的使用场景是简单的布尔操作或字符串拼接。如果涉及更复杂的逻辑,你应该使用计算属性。下面这篇文章主要给大家介绍了Vue.js中的计算属性,需要的朋友可以参考借鉴,一起来看看吧。
    2017-01-01
  • Vue 子组件更新props中的属性值问题

    Vue 子组件更新props中的属性值问题

    这篇文章主要介绍了Vue 子组件更新props中的属性值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10

最新评论