您现在的位置是:网站首页>软件开发>前端技术栈>vuevue
vue 中$t()的作用
风口下的猪2023-03-30【vue】
简介
$t,是vue-i18n国际化插件
vue 项目中 $t('')直接在html中直接调用这个函数 {{ $t('login.title') }}
$t是引入国际化后,挂到了Vue.prototype上的一个方法,接受一个字符串作为参数
<div class="title-container">
<h3 class="title">
{{ $t('login.title') }}
</h3>
</div>
//---------$t('login.title') 我理解的意思是去当前语言环境下login对象的title值
1.main.js中引入vue-i18n
// 国际化 这个文件是本地创建的 主要是获取当前语言环境和相应的变量值
import i18n from './lang'
new Vue({
el: '#app',
i18n,
render: h => h(App)
})
2.浏览器的语言环境不同,相应设置不同的语言配置文件
// ./lang/index.js
import Vue from 'vue' //引入vue
import VueI18n from 'vue-i18n' //引入vue的国际化插件
import Cookies from 'js-cookie' //我这里需要,所以引入轻量级的处理cookies的js
import elementZhLocale from 'element-ui/lib/locale/lang/zh-CN'// element-ui lang
import elementEnLocale from 'element-ui/lib/locale/lang/en' // element-ui lang
import zhLocale from './zh' //本地创建的中文环境配置文件
import enLocale from './en' //本地创建的英文环境配置文件
Vue.use(VueI18n) // 通过插件的形式挂载,通过全局方法 Vue.use() 使用插件
const messages = {
en: {
...enLocale,
...elementEnLocale
},
zh: {
...zhLocale,
...elementZhLocale
}
}
//获取当前语言环境,通过后台返回的语言或者浏览器语言环境
export function getLanguage() {
const chooseLanguage = Cookies.get('language')//取后台设置的语言
if (chooseLanguage) return chooseLanguage
//如果后台没有返回语言则根据浏览器的语言环境返回语言变量
const language = (navigator.language || navigator.browserLanguage).toLowerCase()
const locales = Object.keys(messages)//获取前端设置的所有语言
//遍历所有语言值组成的数组,匹配前端设置的语言能匹配到就返回改语言值
for (const locale of locales) {
if (language.indexOf(locale) > -1) {
return locale
}
}
//如果都没匹配到就直接返回英文
return 'en'
}
const i18n = new VueI18n({
//语言标识 this.$i18n.locale 通过切换locale的值来实现语言切换
//如:this.$i18n.locale='en' 直接切换成英文,仅限于配置了语言的一些变量
locale: getLanguage(),//调的上边这个函数
messages //上边配置的语言标识对应的不同配置
})
export default i18n
3.创建不同语言标识对应的文件,以中文环境为例
// ./lang/index.js 创建文件 存储语言对应的一些变量
export default {
login: {
title: '登录表单',
},
warning: '警告信息'
}
很赞哦! (0)
/ponder/index.php/index/catelist/catelist/cateid/10.html
相关阅读 (同一栏目)
- v-html和直接插值的区别
- vue.js中{{}}允许原生的js代码
- 事件修饰符
- v-for推荐写法 :key=
- {{}}和
- src、href等赋值,采用数据绑定方式时的“动态刷新”问题
- class动态绑定时,短分割线命名的class报错问题
- vue里ref ($refs)用法
- uniapp 如何禁止或监听默认返回事件
- 解决[Vue warn]:Error in render:
- created()和mounted()使用注意项
- this.$nextTick()
- can not resolve the wrapperDom
- vue中 props中的变量不能在less中使用
- vue.js阻止事件冒泡和默认事件
- Vue报错
- import ... from和import {} from 的区别
- icons
- vue组件化梳理 (1)组件注册
- 通过vue-cli创建vue项目
- vue.use()的作用是什么
- 【解决】控制台报错Uncaught TypeError: Object(...) is not a function at eval (vue-router.esm-bundler.js
- vue路由跳转了但界面不显示的问题及解决
- Vue 路由设置梳理 (1)安装及初始路由
- Vue 路由设置梳理 (2)路由规则编写
- Vue 路由设置梳理 (3)申明式路由跳转及编程式路由跳转
- Vue 路由设置梳理 (4)首页重定向
- vue-cli项目的前端跨域解决方案
- vue-cli项目proxy跨域,在线上针对A域名跨B域名情况失效的解决方法
- axios上传图片报500
- vue-cli项目,点击某个菜单后公共模板(header/footer/menu等)不见了,只有主体页面部分
- vue-cli项目中的404
- vue-cli项目,如何给页面设置网站title、keywords、description等meta信息
- vue-cli项目网站,如何设置网站图标
- npm 安装和卸载插件包
- vue项目中通过CDN方式引入外包js/css
- vue2.X版本使用summernote的坑
- vue中使用html2canvas的坑(1)网络图片空白
- vue中使用html2canvas的坑(2)最外层dom的border-radius失效
- vue中使用html2canvas的坑(3)画图片时不支持object-fit:cover的问题
- js调用外部vue中的methods
- vue-cli项目控制无token时页面重定向跳转到登录,注意循环堆栈问题
- vue中input标签上传本地文件或图片后获取完整路径,如E:\medicineOfCH\stageImage\xxx.jpg
- vue 中$t()的作用
- vue路由守卫中next方法的理解
- 全局路由 router.afterEach 与 router.beforeEach
- 独享路由 beforeEnter
- 组件内路由守卫 beforeRouteEnter和beforeRouteLeave
- 关于next({ ...to, replace: true })的理解
- mixin混入
- vue语法 `${ }` (模版字符串)
- 组件内通信利器provide/inject
- vue webpack性能优化(二) 优化方向确定
- Vue中的爷孙传值$attrs 和利用$listeners 孙爷传值
- 在vue中实现onShow生命周期函数
- vue中this.$router.back()、this.$router.go()的区别使用
- Vue中 keep-alive 详解
栏目目录
标签云
站点信息
- 文章统计:528篇
- 移动端访问:扫码进入SQ3R
