vue 前端国际化方案

news2025/2/24 16:30:06

方案介绍:

1.使用i18n(使用步骤可百度,要注意版本问题)
2.整合ele-ui的国际化方案(百度,几行添加一下即可)
3.数据信息的配置(重头戏,以下详细介绍)excel转json

数据配置

当前大多数使用的方案是json里面放中英文,例如

// english.json
{
short: 'test abc'
}

// 中文.json
{
short: '测试ABC'
}

excel转json方案

我采用的方案是直接中文对照英文,对于代码来说,可读性强一些;例如:

this.$t(short)

这句话看到了之后并不知道展示的啥,
但是如果用this.$t('测试ABC‘)

不会影响代码的可读性,同时,假使测试ABC对应的英文不存在,也不会影响页面的展示。

所以,excel里面的配置就如下如所示
在这里插入图片描述

excel转json的代码实现

var fs = require('fs')
var xlsx = require('xlsx') // xlsx读表格

exports = module.exports = xlsxTojson

function xlsxTojson (config, callback) {
  if (!config.input) {
    console.error('You need input file')
    process.exit(1)
  }
  return new CV(config, callback)
}
function CV (config, callback) {
  // 构造函数
  var wb = this.load_xlsx(config.input)
  var ws
  var csv = []
  if (wb.SheetNames.length > 0) {
    for (let i = 0; i < wb.SheetNames.length; i++) {
      const temp = wb.SheetNames[i]
      ws = this.ws(temp, wb)
      csv = csv.concat(this.csv(ws, config))
    }
  }
  this.cvjson(csv, config.output, callback)
}
CV.prototype.load_xlsx = function (input) {
  // 读文件
  return xlsx.readFile(input)
}

CV.prototype.ws = function (sheet, wb) {
  return wb.Sheets[sheet]
}
CV.prototype.csv = function (ws) {
  // 文件内容转json
  return xlsx.utils.sheet_to_json(ws)
}
CV.prototype.cvjson = function (csv, output, callback) {
  const stream = fs.createWriteStream(output, { flags: 'w' })
  stream.write(JSON.stringify(csv))
}

代码是可以精简的,是复制的,能用就没改。

再加一些配置,那么运行的时候,npm run XXX,就能实现将excel转成json了。

使用

1.html中使用
例如

<input label='名称'>
国际化写法:
<input :label="$t('名称')">

<div>名称</div>
国际化写法
<div>{{$t('名称')}}</div>

2.js中使用

this.$t('名称')
或者
this.$t(name) // name是另外定义的
或者
在一些公共方法中,有的时候还拿不到this
import i18n from '../assets/lang' // 国际化配置的路径
i18n.t('名称')

或者,一些特殊的,例如:删除某条表格的数据,您需要删除XXX吗?
可以用this.$t('您需要删除XXX吗?').replace('XXX', this.name)
需要注意的是英文配置的时候也是XXX:Do you want to delete XXX?

3.css中使用(伪类)
例如:

.dom::before {
content: '测试';
}
国际化写法
// 用data属性存放已经翻译好的文案
<div class='dom' data-suffix="测试"></div>
// 在css中读出data-suffix的值作为content的内容, 可以使用attr()来获取指定的属性
 .dom::before  {
  content: attr(data-suffix)
  }

样式处理

定义了一个全局变量,在动态class中使用

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

中科院高分区盘点:1区新刊,影响因子即将突破7分(含IEEE)

高分新刊——计算机领域 1区人工智能类SCI&EI 【出版社】IEEE 【自引率】4.30%&#xff08;低&#xff09; 【国人占比】13.40% 【期刊简介】IF:6.5-7.0&#xff0c;JCR1区&#xff0c;中科院3区 【检索情况】SCI&EI 双检&#xff0c;正刊 【参考周期】3-5个月左…

Hierarchical Fusion Model (2019 ACL)三种模态的层次融合

论文题目&#xff08;Title&#xff09;&#xff1a;Multi-Modal Sarcasm Detection in Twitter with Hierarchical Fusion Model 研究问题&#xff08;Question&#xff09;&#xff1a;主要研究了推特中由文本和图像组成的推文的多模态讽刺检测 研究动机&#xff08;Motiva…

二肽Phe-Pro,7669-65-0,FP

Substrate for skin fibroblast prolidase.皮肤成纤维细胞prolida酶的底物。 编号: 131185中文名称: 二肽Phe-Pro英文名: Phe-ProCAS号: 7669-65-0单字母: H2N-FP-OH三字母: H2N-Phe-Pro-COOH氨基酸个数: 2分子式: C14H18N2O3平均分子量: 262.3精确分子量: 262.13等电点(PI): 6…

【学习笔记02】vue指令学习

目录 一、常用的指令 &#xff08;一&#xff09;v-bind 1、绑定样式 2、$event &#xff08;二&#xff09;v-on 1、v-on修饰符 2、按键修饰符 3、案例&#xff1a;Todolist &#xff08;三&#xff09;v-model 1、 v-model和v-bind的区别 2、案例&#xff1a;数…

wy的leetcode刷题记录_Day60

wy的leetcode刷题记录_Day60 声明 本文章的所有题目信息都来源于leetcode 如有侵权请联系我删掉! 时间&#xff1a;2022-12-21 前言 这几天身体不舒服&#xff0c;现在重新开始更新。 目录wy的leetcode刷题记录_Day60声明前言1753. 移除石子的最大得分题目介绍思路代码收获…

Java 异常(Exceptions)

目录 1、什么是异常&#xff1f; 2、捕获并处理异常 try-with-resources 语句 3、通过方法抛出异常 自定义异常 1、什么是异常&#xff1f; 定义&#xff1a;异常是在程序执行过程中发生的一种事件&#xff0c;它会中断程序指令的正常流程。 当方法中发生错误时&#xff0…

2022年我国止血药行业市场规模不断增长 激活凝血因子活性药是主流产品

根据观研报告网发布的《中国止血药市场现状深度研究与发展前景分析报告&#xff08;2022-2029年&#xff09;》显示&#xff0c;止血药主要是指凡能够制止体内外出血的药物&#xff0c;主要适用于各部位出血病症&#xff0c;如咯血、衄血、吐血、尿血、便血、崩漏、紫癜及创伤出…

记录一次使用 Ubuntu 编译 Wakaama 踩坑过程

1. 背景 公司项目需要使用 LwM2M 协议&#xff0c;由于是个相对冷门的小众协议&#xff0c;客户端模拟器几乎没有&#xff0c;只有 Eclipse Wakaama 相对来说功能齐全、易用&#xff0c;但是这个软件没有编译好的程序包&#xff0c;只能从 Github 拉取源码手动编译运行。 不知道…

操作系统期末知识点复习

操作系统知识点总结 参考用书&#xff1a;计算机操作系统&#xff08;第四版&#xff09;汤小丹等著 1、必考知识点 第一章 操作系统引论 操作系统的概念及特征操作系统的运行环境 第二章 进程的描述与控制 进程状态与转换同步与互斥的基本概念信号量信号量的基本应用生产者消…

Nacos的配置中心的了解

目录 1. 为何需要配置中心 2. nacos的配置中心 2.1 配置示例 2.2 多环境配置 2.3 GROUP 2.4 namespace 1. 为何需要配置中心 没有配置中心的情况下会出现什么情况&#xff1a; 如果没有配置中心&#xff0c;则各个服务的配置文件分散在各个项目中&#xff0c;不方便维护…

不用光盘重装系统如何操作

​光盘重装系统是之前十分常用的系统安装方法,随着科技的飞速发展,现如今重装系统的方法五花八门,一键重装系统以及U盘重装系统等方法的出现取代了光盘重装系统,这里就来介绍一下不用光盘重装系统操作方法。 工具/原料&#xff1a; 系统版本&#xff1a;windows10系统 品牌型…

Kotlin协程笔记:CoroutineScope管理协程

CoroutineScope 是实现协程结构化并发的关键。使用 CoroutineScope&#xff0c;可以批量管理同一个作用域下面所有的协程。 CoroutineScope 与 结构化并发 launch、async 被定义成了 CoroutineScope 扩展函数。在调用 launch 之前&#xff0c;必须先获取 CoroutineScope。 pub…

高级又高效的属性表编辑技术,你值得拥有!

当你要按关键词选择内容,无从下手? 当你要修改字段的部分内容,不知所措? 当你要提取出字段的某些内容,毫无头绪? 当你要按照位数来提取字符内容,力不从心? 当你要为字段补充一些新的内容,目瞪口呆? 当你要把一个字段分割成多个字段,抓耳挠腮? ...... 属性表的…

CUDA ~ WarpReduce

又是一篇关于cuda的 要好好学学哦, CUDA 编程进阶分享&#xff0c;一些 warp 的使用 如何实现一个高效的Softmax CUDA kernel&#xff1f;多少还是有些细节没有理解&#xff0c;恰好最近要做一个类似的 ReduceScale Kernel&#xff0c;原理机制还是比较相似的&#xff0c;所以…

CSS -- 10. 移动WEB开发之rem布局

文章目录移动WEB开发之rem布局1 rem基础2 媒体查询2.1 什么是媒体查询2.2 语法规范2.3 mediatype 查询类型2.4 关键字2.5 媒体特性2.6 案例&#xff1a;根据页面宽度改变背景颜色2.7 媒体查询rem实现元素动态大小变化2.8 针对不同的屏幕尺寸引入不同的样式文件3 Less基础3.1 维…

8000字详解Thread Pool Executor

摘要&#xff1a;Java是如何实现和管理线程池的?本文分享自华为云社区《JUC线程池: ThreadPoolExecutor详解》&#xff0c;作者&#xff1a;龙哥手记 。 带着大厂的面试问题去理解 提示 请带着这些问题继续后文&#xff0c;会很大程度上帮助你更好的理解相关知识点。pdai …

数据泄露成数据安全最大风险,企业如何预防呢?

据《中国政企机构数据安全风险分析报告》显示&#xff0c;2022年1月——2022年10月&#xff0c;安全内参共收录全球政企机构重大数据安全报道180起&#xff0c;其中数据泄露相关安全事件高达93起&#xff0c;占51.7%。与近三年平均每月公开报道频次相比&#xff0c;2022年相较前…

如何在3DMAX中不使用Maxscript或插件破碎物体对象?

在3DMAX中破碎物体我们通常会借助Maxscript或者插件&#xff0c;其实&#xff0c;不借助任何其他工具&#xff0c;3DMAX也可以实现对物体的破碎&#xff0c;下面就给大家介绍一种方法&#xff1a; 1.首先&#xff0c;创建一个破碎对象&#xff0c;比如一个石块&#xff08;或者…

AI趋势下,小布助手的进化论

“要构建人工智能等高精尖产业的新增长引擎”&#xff0c;随着人工智能在未来全球科技经济中的重要作用愈加凸显&#xff0c;当前产业已然获得了有史以来最强的政策建构力量。 随着政策的利好&#xff0c;中国人工智能进入一个前所未有的快速发展阶段。企查查数据显示&#xf…

疫情下的在线教学数据观

由于新型冠状病毒感染的肺炎疫情影响&#xff0c;剧烈增长的市场需求助推了在线教育的发展&#xff0c;同时也暴露了一些问题。 最近我们被客户要求撰写关于疫情的研究报告&#xff0c;包括一些图形和统计输出。 在本文中&#xff0c;我们结合了对100多个高中学生进行的在线教…