什么是$t?$t的介绍及使用

目录

$t介绍:

作用:

安装国际化插件:

创建国际化资源文件

 配置 vue-i18n :

 切换语言:

下面为中文和英文状态下的效果:


如下面所示,这是一段前端代码:

<el-form-item :label="$t('extend.billingDesc')"
                          prop="billingDesc">
              <el-input size="small"
                        v-model="siteForm.billingDesc" />
            </el-form-item>

第一眼看到这个代码的时候,你应该能肯定这个是form表单的label显示的文字,

大概知道这个$t,是一个全局的方法或者哪里引入的东西

$t介绍:

$t 是一个通常用于国际化(i18n)的函数。具体来说,当你使用 Vue.js 并结合某些国际化库(如 vue-i18n)时,$t 函数被用来根据当前设置的语言环境(locale)返回相应的翻译文本

作用:

  1. 翻译文本$t 方法根据当前设置的语言环境(locale)和提供的键(key),返回对应的翻译文本。轻松地为应用提供多语言支持
  2. 动态翻译:由于 $t 方法是在运行时根据当前语言环境和键进行翻译的,因此它支持动态翻译。这意味着你可以根据用户的交互或应用的状态来改变显示的文本
  3. 可维护性:通过将文本与代码分离,并使用键来引用翻译文本,可以提高代码的可维护性。当需要修改或添加翻译时,只需更新国际化资源文件,而无需修改组件代码。

 当你直接复制文章前的代码到页面上去时,页面label的显示是会有问题的,如下图所示:

如果页面上的 label显示了 extend.billingDesc 而不是实际的翻译文本,那么很可能是国际化配置没有正确设置或者国际化资源文件没有正确加载

安装国际化插件:

(如果你还没有安装 vue-i18n 插件)

通过 npm 或 yarn 来安装:

npm install vue-i18n  
# 或者  
yarn add vue-i18n

创建国际化资源文件

在你的项目中创建一个目录(例如 src/i18n)来存放你的国际化资源文件。每个语言环境的资源文件都应该是一个 JavaScript 对象,其键是你要翻译的文本(如 extend.billingDesc),值是该文本在对应语言环境中的翻译。

如下图所示:

其中cn是中文,en是英文

代码例如:

//cn.js

module.exports = {
    language:'语言',
    rulesPage:{ //校验
      role:"角色不能为空",
      pickArea:"拣货库区不能为空",
      email:"请输入正确的邮箱地址",
      phone:"请输入正确的手机号码"
    },
    extend:{
      billingDesc:'账单描述'
    }
  }
//en.js
module.exports = {
    language:'language',
    rulesPage:{ //校验
      role:"The role cannot be empty",
      pickArea:"The picking warehouse area cannot be empty",
      email:"Please enter the correct email address",
      phone:"Please enter the correct phone number"
    },
    extend:{
      billingDesc:'billingDesc'
    }
 }

 配置 vue-i18n :

 引入自己搞的资源包,locale默认使用的包,下面为当你登录后,优先获取本地缓存的lang,再判断当前的用户需要什么语言,就是个语言环境持久化

当用户切换语言环境时,你可以把新的语言环境设置保存到这些存储机制中,并在应用启动时从它们中读取设置来恢复用户的语言环境偏好

//index.js

//引入
import VueI18n from 'vue-i18n'
import CN from './locale/cn'
import EN from './locale/en'
import Vue from 'vue'

//语言包对象
const messages = { EN , CN };

//需要创建一个 VueI18n 实例,并设置其 messages 属性为你的国际化资源文件。
Vue.use(VueI18n)
const i18n = new VueI18n({
//也可以通过使用浏览器的 sessionStorage 或 cookies 来实现。
//也可以用navigator.language 获取浏览器的语言,前提是你需要有这个语言的资源包哦,也可以对拿到的语言进行判断是否有此包,否则就默认中文
  locale: localStorage.lang||'CN',  //当前默认为中文
  messages,
});
//导出
export default i18n;

main.js:

//...
import i18n from './i18n/index';
//...
new Vue({
  el: '#app',
  i18n,
  router,
  store,
  render: h => h(App)
})

 切换语言:

你可以通过修改 VueI18n 实例 locale 属性切换语言环境。

例如,this.$i18n.locale = 'EN' 将把当前的语言环境切换到英语。如果使用的本地缓存之类的话,修改本地缓存的数据就可以了,使用Vuex的话就掉用他里面的方法就行

一般使用点击事件就行,更好的就是在创建用户或者角色的时候选择他是哪国人,使用哪国语言就行了,一般用于国际化的平台,一般国内来讲的话,用中文就可以了,其实不需要这么麻烦。

下面为中文和英文状态下的效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/617901.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于短时傅里叶变换域的一维信号邻域降噪方法(MATLAB)

基于傅里叶变换的信号频域表示及能量频域分布揭示了信号在频域的特征&#xff0c;但傅里叶变换是一种整体变换&#xff0c;只能了解信号的全局特性&#xff0c;不能有效检测信号频率随时间的变化情况。只有把时域和频域结合起来才能更好地反映非平稳信号的特征。时频分析的基本…

Redis 的主从复制

Redis 的主从复制 1、主从复制的实现2、主从复制的同步功能(PSYNC)2.1、部分重同步 本文讲解的Redis 主从复制机制&#xff0c;是基于 2.8及以后的版本而言&#xff0c;2.8以前的版本主从复制机制与此有所不同&#xff0c;请知悉。 Redis的复制功能分为 同步 (psync) 和 命令传…

远程点击没反应

目录 todesk远程登录后点击没反应 解决方法&#xff1a; 方法1 快捷键&#xff1a; 方法2 界面点击Ctrl Alt Delete todesk&#xff0c;向日葵远程登录后点击没反应 todesk远程登录后点击没反应 解决方法&#xff1a; 方法1 快捷键&#xff1a; Ctrl Alt Delete 方法…

【Python从入门到进阶】54、使用Python轻松操作SQLite数据库

一、引言 1、什么是SQLite SQLite的起源可以追溯到2000年&#xff0c;由D. Richard Hipp&#xff08;理查德希普&#xff09;所创建。作为一个独立的开发者&#xff0c;Hipp在寻找一个能够在嵌入式系统中使用的轻量级数据库时&#xff0c;发现现有的解决方案要么过于庞大&…

DML操作表的数据

一、增加数据 语法&#xff1a; INSERT [INTO] 表名 [( 列名表 )] VALUES ( 值列表 ) 1.1 插入全部字段 l 所有的字段名都写出来 INSERT INTO 表名 (字段名1, 字段名2, 字段名3…) VALUES (值1, 值2, 值3); l 不写字段名 INSERT INTO 表名 VALUES (值1, 值2, 值3…); 注&…

吴恩达机器学习笔记:第 9 周-16推荐系统(Recommender Systems) 16.5-16.6

目录 第 9 周 16、 推荐系统(Recommender Systems)16.5 向量化&#xff1a;低秩矩阵分解16.6 推行工作上的细节&#xff1a;均值归一化 第 9 周 16、 推荐系统(Recommender Systems) 16.5 向量化&#xff1a;低秩矩阵分解 在上几节视频中&#xff0c;我们谈到了协同过滤算法&…

Unity VR在编辑器下开启Quest3透视(PassThrough)功能

现在有个需求是PC端串流在某些特定时候需要开启透视。我研究了两天发现一些坑,记录一下方便查阅,也给没踩坑的朋友一些思路方案。 先说结论,如果要打PC端或者在Unity编辑器中开启,那么OpenXR当前是不行的可能还需要一个长期的过程,必须需要切换到Oculus。当然Unity官方指…

胆子真大,敢搞B站

今天给大家分享一款浏览器插件&#xff0c;能让你的B站在电脑端访问时候会更高级 作者已经开源到Github Star数量还在持续上升中 来看下这款插件究竟具备哪些功能 首先是开启首页干净模式&#xff0c;也就是去除大屏 正常情况我们访问B站是这个样子的~ 开启总开关后 首页的视…

SM4-GCM Library代码示例

sm4-gcm加密解密测试代码: fn main() {let key Sm4Key([0u8; 16]);let nonce [0u8; 12];let plaintext b"Hello World!";let ciphertext sm4_gcm::sm4_gcm_encrypt(&key, &nonce, plaintext);println!("Encrypted: {}", hex::encode(&cip…

K-AI01,K-AO01,K-BUS02和利时

K-AI01,K-AO01,K-BUS02和利时1.将工程师站的计算机开机&#xff1b;2.开机后鼠标双击桌面上的“maintenance tool”图标&#xff0c;K-AI01,K-AO01,K-BUS02和利时。出现如下图标&#xff1a; 按顺序点击”图标中的箭头所指的按钮&#xff0c;出现如下画面选中画面中需要强制的逻…

MybatisPlus入门用法

目录 1.引入依赖 2.继承BaseMapper 常见注解 常见配置 1.引入依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version></dependency> 2.继承Bas…

next水和错误

产生原因 应该是和预渲染有关&#xff0c;官方也有谈到 水和错误主要原因 这个主要事服务器端渲染和客户端渲染结果不一致&#xff0c;客户端再渲染导致的错误&#xff0c;主要结果就是耗费性能&#xff0c;当然也可以关闭提示错误 具体解决措施可以看看官方文档参考 相关的…

ACE框架学习4

目录 ACE Proactor框架 异步I/O工厂类 ACE_Handler类 前摄式Acceptor-Connector类 ACE_Proactor类 ACE Streams框架 ACE_Model类 ACE_Streams类 ACE Proactor框架 ACE Proactor框架实现了proactor模式&#xff0c;也就是异步网络模式&#xff0c;允许事件驱动…

C++内存管理(2)+模版初阶

目录 1.内存的划分 2.内存泄漏 3.模版初阶 &#xff08;1&#xff09;模版的引入 &#xff08;2&#xff09;函数模版 &#xff08;3&#xff09;类模版 &#xff08;4&#xff09;类型的不匹配问题 1.内存的划分 &#xff08;1&#xff09;C里面&#xff0c;把内存划分为…

漫谈ApplicationContext和BeanFactory的区别

各位大佬光临寒舍&#xff0c;希望各位能赏脸给个三连&#xff0c;谢谢各位大佬了&#xff01;&#xff01;&#xff01; 目录 1.背景介绍 2.细述ApplicationContext和BeanFactory 3.总结 1.背景介绍 当我们使用SpringBoot创建项目的时候会看到一串代码&#xff1a…

全面理解BDD(行为驱动开发):转变思维方式,提升软件质量

在传统的软件开发流程中&#xff0c;开发人员和测试人员的工作通常是相互独立的。开发人员负责编写代码&#xff0c;测试人员负责找出代码中的问题。然而&#xff0c;这种方法可能导致沟通不足&#xff0c;而且会浪费时间和资源。为了解决这些问题&#xff0c;出现了一种新的开…

Linux cmake 初窥【3】

1.开发背景 基于上一篇的基础上&#xff0c;已经实现了多个源文件路径调用&#xff0c;但是没有库的实现 2.开发需求 基于 cmake 的动态库和静态库的调用 3.开发环境 ubuntu 20.04 cmake-3.23.1 4.实现步骤 4.1 准备源码文件 基于上个试验的基础上&#xff0c;增加了动态库…

电文加密(C语言)

一、题目说明&#xff1b; 即第1个字母变成第26个字母&#xff0c;第i个字母变成第(26 - i 1)个字母&#xff0c;非字母字符不变。 二、N-S流程图&#xff1b; 三、运行结果&#xff1b; 四、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h&g…

过拟合和欠拟合的学习

1.什么拟合 就是说这个曲线能不能很好地描述某些样本数据&#xff0c;并且拥有较好的泛化能力。 2.什么是过拟合 过拟合就是曲线太过于贴切训练数据的特征了&#xff0c;在训练集上表现得非常优秀&#xff0c;近乎完美的预测/区分了所有得数据&#xff0c;但是在新的测试集上…

LeetCode—用队列实现栈

一.题目 二.思路 1.后入先出的实现&#xff1a; 创建两个队列来实现栈&#xff08;后入先出&#xff09;&#xff1a; 两个队列&#xff0c;保持一个存数据&#xff0c;另一个为空&#xff0c;入数据&#xff08;push&#xff09;要入不为空的队列&#xff0c;&#xff08;p…