当前位置: 首页 > news >正文

i18n的替换处理

i18n的替换处理

背景描述

在开发的过程中,需要对项目文件的中文使用i18n进行多语言处理。在特定的页面,中文会有特定的处理,例如: 存在5台设备,其中 5 是一个变量,同时具有特定的样式,那么这个时候应该如何加i18n?

代码示例

<span>存在 <span style="color: red;">{{deviceNum}}</span> 台设备</span>

假如直接把”存在“存在json中,而后把”台设备“存在json中,随便一想最后得到的翻译会非常混乱,导致语义不符。

解决方案

首先,我们需要使用i18n的传参机制,使得这一整句话会一起翻译,这样就不会出现翻译语义不符的情况。而后,由于其中的变量存在特定的样式,因此我们需要以变量为切割点,将整个i18n语句拆分成前后两个内容,随后进行拼接即可。(需要注意的是:变量作为切割点,当i18n的变量不传参的情况下,其内容是不会被替换的,如果不理解请看后续的代码,而后进行切割即可)

// test.json
{
    "text": "存在{num}台设备"
}

// html(或.vue)
// 原先:<span>存在 <span style="color: red;">{{deviceNum}}</span> 台设备</span>
// 目前:
<span>$t('test.text').split(/{\s*num\s*}/)[0]</span> // '存在'
<span style="color: red;">{{deviceNum}}</span>
<span>$t('test.text').split(/{\s*num\s*}/)[1]</span> // '台设备'
// 假如翻译的是exist 5 devices,前面第一项就是"exist",第二项就是"devices",大家可以举一反三。
http://www.dtcms.com/a/67006.html

相关文章:

  • 【从零开始学习计算机科学】数据库系统(十一)云数据库、NoSQL 与 NewSQL
  • 智能化水利监管:无人机视频在违章行为识别中的应用
  • 基于java(springboot+mybatis)汽车信息管理系统设计和实现以及文档
  • 5秒学会excel中序号列自动增加,不是拖动,图解加说明,解决序号自增多了手拖太累
  • 手写一些常见算法
  • 网络安全演练有哪些形式
  • 前端面试:如何减少项目里面 if-else?
  • 开源操作系统复习3
  • 基于docker+python+paddleocr构建自己本地化ocr服务
  • Unity基于C#+UGUI解决方案,制作每日签到系统(本地存储签到数据)
  • c++进阶--AVL树
  • Golang | 每日一练 (5)
  • RISC-V汇编学习(四)—— RISCV QEMU平台搭建(基于芯来平台)
  • 天气app:简易高效,纯净无广,随时随地掌握天气动态!
  • 元类(metaclass)如何控制类的创建过程
  • SpringBoot为什么流行以及能解决什么问题?
  • 使用DMA进行ADC数据读取与USART数据发送与接收
  • 图的存储--十字链表与邻接多重表
  • 01-虚拟系统配置
  • MySQL时间溢出原理、影响与解决方案
  • Android子线程更新View的方法原理
  • 苹果iOS 18.4将强制升级HomeKit架构,旧版设备或无法使用
  • 4-001:MySQL 中的索引数量是否越多越好?为什么?
  • 设计模式学习笔记——命令模式
  • Vue3实战学习(Vue3快速搭建后台管理系统(网页头部、侧边导航栏、主体数据展示区的设计与实现)(超详细))(9)
  • LOWORD(wParam) 与 HIWORD(wParam) 详解
  • 【C语言】编译和链接详解
  • 贪心算法和遗传算法优劣对比——c#
  • CentOS8+Zabbix7.2.4解决中文显示问题
  • 压缩空气储能仿真simulink模型