广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >Vue-i18n 在 JS 文件中的使用方法
  • 695
分享到

Vue-i18n 在 JS 文件中的使用方法

2024-04-02 19:04:59 695人浏览 薄情痞子
摘要

这篇文章主要介绍“Vue-i18n 在 js 文件中的使用方法”,在日常操作中,相信很多人在Vue-i18n 在 JS 文件中的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大

这篇文章主要介绍“Vue-i18n 在 js 文件中的使用方法”,在日常操作中,相信很多人在Vue-i18n 在 JS 文件中的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue-i18n 在 JS 文件中的使用方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

vue.js项目中,vue-i18n是一个比较流行的多语言方案。常规用法是在项目入口文件里,将它作为插件引入,然后在 .vue文件或者组件模板里按照  api 来调用就行。插件会自动往组件实例中注入$t方法。

const messages = {   en: {     message: {       hello: 'hello world'     }   },   cn: {     message: {       hello: '你好世界'     }   } }  // Create VueI18n instance with options const i18n = new VueI18n({   locale: 'cn', // set locale   messages, // set locale messages }) new Vue({ i18n }).$mount('#app')  //App.vue <div id="app">   <p>{{ $t("message.hello") }}</p> </div>

问题来了,如果不在组件模板里怎么办?比如一些工具函数,请求拦截器等跟视图无关的JS代码中如何使用呢?插件的使用场景是在组件内部,也就是能访问到组件实例的地方。对于其他地方的使用方法,官方文档里貌似没有提供直接的  API。摸索了一段时间终于解决,在此记录下。

import VueI18n from 'vue-i18n'; const messages = {   en: {     message: {       hello: 'hello world'     }   },   cn: {     message: {       hello: '你好世界'     }   } } const i18n = new VueI18n({   locale: 'cn', // set locale   messages: messages , // set locale messages });  console.log(i18n.tc('message.hello')) // 你好世界

搭配 VS Code 插件

随着项目规模的扩大,文本标签会越来越多,手动维护非常麻烦。同时,模板里用"a.b.c"这样的属性字符串来引用文本,在源码层面非常不易阅读。这些问题,都应该由工具来解决。之前想过自己开发一个  VS Code 插件来解决这些问题,没想到早就有人做好了。开源社区就是这么强大,你能想到的,早就有人做了。这个插件就叫 Vue i18n。

Vue-i18n 在 JS 文件中的使用方法

Vue i18n

早期版本不怎么好用,本人还提过 PR  修过缺陷。现在比较完善了,功能齐全,操作便捷。可以选中文本一键生成中英文,键名默认是组件路径加随机串,省去了命名的烦恼。还能在编辑器里直接看到对应的中文,鼠标悬浮显示英文。总之比较方便,推荐使用。

前面介绍了vue-i18n在 Vue 组件外部使用的方法,但是对于这个 VS Code  插件有点小问题要解决。插件是根据源码的字符串来匹配,然后在编辑器显示出对应的文本。因此,源码里一定要有 $t('xxx')字样才行。

Vue-i18n 在 JS 文件中的使用方法

改成这样就能显示出来了:

Vue-i18n 在 JS 文件中的使用方法

看起来没问题,但实际上运行会报错:

Vue-i18n 在 JS 文件中的使用方法

运行时异常

这是为什么呢?点击错误信息的调用栈进去看源码,发现原来i18n.tc这个方法是绑定到this(运行时指向VueI18n对象)上去执行的,而这里的代码执行的时候并没有this,所以是undefined。

VueI18n.prototype.tc = function tc (key, choice) {     var ref;     var values = [], len = arguments.length - 2;     while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];   return (ref = this)._tc.apply(ref, [ key, this.locale, this._getMessages(), null, choice ].concat( values )) };

所以,这里不能直接拿来调用,需要改变执行上下文。重新封装下这个方法:

import Vue from 'vue'; import VueI18n from 'vue-i18n'; import i18nLabels from '@/i18n';  Vue.use(VueI18n); export const i18n = new VueI18n({   locale: 'zh', // set locale   messages: i18nLabels, // set locale messages });  // 重新封装方法 export function $t(args) {   return i18n.tc.call(i18n, args); }

使用的时候导入这个方法就行了。

到此,关于“Vue-i18n 在 JS 文件中的使用方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Vue-i18n 在 JS 文件中的使用方法

本文链接: https://www.lsjlt.com/news/75264.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue-i18n 在 JS 文件中的使用方法
    这篇文章主要介绍“Vue-i18n 在 JS 文件中的使用方法”,在日常操作中,相信很多人在Vue-i18n 在 JS 文件中的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2022-10-19
  • 关于vue-i18n在单文件js中的使用
    目录vue-i18n在单文件js中使用示例i18n如何在js文件中生效下面是我研究出的解决方法vue-i18n在单文件js中使用 示例 import Vue from 'vue' i...
    99+
    2022-11-13
  • spring boot使用i18n时properties文件中文乱码问题的解决方法
    国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式。它要求从产品中抽离所有地域语言,国家/地区和文化相关的元素。换言之,应用程序的功能和代码设计考虑在不同地区运行的需要,其代码简化了不同本地版...
    99+
    2023-05-30
    spring boot i18n
  • vue引用外部JS并调用JS文件中的方法实例
    目录VUE项目中引入JS文件的几种方法1.在index.html页面使用script标签引入2.在main.js中使用window.moduleName 使用3.手动添加export...
    99+
    2023-02-27
    vue引用外部js文件 vuecli引入外部js
  • vue如何引用外部JS并调用JS文件中的方法
    这篇“vue如何引用外部JS并调用JS文件中的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue如何引用外部JS并调用...
    99+
    2023-07-05
  • VUE项目中引入JS文件的方法总结
    目录1.在index.html页面使用script标签引入2.在main.js中使用window.moduleName 使用3.手动添加export4. 使用import方式,把需要...
    99+
    2022-11-13
  • 关于vue文件中index.vue的使用方法
    目录vue文件中index.vue使用vue的index.html总结为啥要有index.html单页面应用index.html实战代码汇总vue文件中index.vue使用 <...
    99+
    2022-11-13
    vue index.vue index.vue的使用 vue使用index.vue
  • Javascript中导入js文件的方法
    这篇文章主要介绍Javascript中导入js文件的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!为了避免在HTML中显示大量的代码,我们一般选择将js脚本单独放入一个文件中,然后再将js文件导入HTML中,这样...
    99+
    2023-06-14
  • vue中i18n的安装与几种使用方式详解
    目录vue中i18n安装项目中的使用使用方式 组件里使用使用方式js总结介绍 Vue I18n 是 Vue.js 的国际化插件。它可以轻松地将一些本地化功能集成到你的 Vue.js ...
    99+
    2022-11-13
  • Vue中的.vue文件的使用方式
    目录定义.vue文件引用.vue文件使用render函数什么是.vue文件,它的作用是什么需要安装vue-loader npm i vue-loader vue-template-c...
    99+
    2022-11-13
  • 组件库中使用vue-i18n国际化的案例详解
    目录前言项目中使用 i18n组件库中使用 i18n需求未添加 i18n 前的组件库组件库 i18n 的配置文件组件库的输出文件组件库中使用 i18n项目中使用组件库和 i18n页面展...
    99+
    2023-05-18
    vue-i18n 国际化 vue-i18n 国际化使用
  • vue项目中js文件使用vue的this实例说明
    目录vue中其他.js文件使用this实例main.js中导出vuerequest.js中导入main.js并使用vue模板使用this问题vue中其他.js文件使用this实例 在...
    99+
    2022-12-08
    vue项目js文件 vue的this js文件使用vue的this
  • 详解在vue使用weixin-js-sdk常见使用方法
    链接:https://qydev.weixin.qq.com/wiki/index.php?title=%E5%BE%AE%E4%BF%A1JS-SDK%E6%8E%A5%E...
    99+
    2022-11-12
  • Vue如何引用public中的js文件
    目录如何引用public中的js文件vue引用公共js步骤如何引用public中的js文件 在public文件夹下创建config.js文件。 config.js中可以使用变量,也可...
    99+
    2022-11-13
  • 在html5中怎样使用js的方法
    这篇文章主要介绍在html5中怎样使用js的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!   在html5中使用js的两种方法:   使用<script>标签的...
    99+
    2022-10-19
  • join()方法怎么在js中使用
    今天就跟大家聊聊有关join()方法怎么在js中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、说明join方法能把数组序列转换为字符串, join方法后面可以跟match方法...
    99+
    2023-06-15
  • vue使用pdf.js预览pdf文件的方法
    我们在页面进行pdf预览的时候,由于有些文件不能够进行打印和下载,这时候我们使用window自带的pdf就很难满足客户的需求,因此需要另外的办法来支持我们进行特殊条件的pdf文件预览...
    99+
    2022-11-12
  • js中matchAll()方法的使用方法
    本篇内容介绍了“js中matchAll()方法的使用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!说明matchAll()方法返回一个包...
    99+
    2023-06-20
  • 聊聊JS事件调用Vue的几种方法
    随着前端开发的不断发展,越来越多的开发者开始使用Vue.js这个流行的JavaScript框架,以便更快速、高效地开发Web应用程序。在实际应用中,我们不可避免地会遇到一些问题,例如,在Vue.js应用程序中如何处理JavaScript事件...
    99+
    2023-05-14
  • 在Node.js中使用HTTP上传文件的方法
    开发环境 我们将使用 Visual Studio Express 2013 for Web 作为开发环境, 不过它还不能被用来做 Node.js 开发。为此我们需要安装 Node.js Tools for ...
    99+
    2022-06-04
    上传文件 方法 Node
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作