vue-i18n 快速替换

使用 vue-i18n 的时候 需要进行繁琐的替换
如:
<div>XXX yyy ZzZ</div>
替换为:
<div>{ {$t("xxx_yyy_zzz")}}</div>

然后在 js 文件中增加条目
xxx_yyy_zzz: "XXX yyy ZzZ",

查找 tag 里面的文本也很繁琐

使用 WebStormIDEA 等 IDE 配合正则表达式可以很快的完成这个操作

全局替换
在这里插入图片描述

使用方法

类似(?<=>)(\w+)(?=<) 的正则表达式, 可以匹配到标签中的文本

如:
<div>XXX yyy ZzZ</div> 中的 XXX yyy ZzZ

参考 https://blog.csdn.net/MAIMIHO/article/details/109024705 中的正则替换

XXX yyy ZzZ 会被替换为 { {$t("xxx_yyy_zzz")}}xxx_yyy_zzz: "XXX yyy ZzZ",

这样将前面一部分直接通过替换完成, 后面一部分复制到 js 文件中就可以了

正则表达式示例

// 匹配 <div>XXX</div>
(?<=>)(\w+)(?=<)

{
   
   {\$t("\L$1")}}\L$1: "\E$1",

// 匹配 <div>XXX yyy</div>
(?<=>)(\w+) (\w+)(?=<)

{
   
   {\$t("\L$1_\L$2")}}\L$1_\L$2: "\E$1 \E$2",

// 匹配 <div>XXX yyy ZzZ</div>
(?<=>)(\w+) (\w+) (\w+)(?=<)

{
   
   {\$t("\L$1_\L$2_\L$3")}}\L$1_\L$2_\L$3: "\E$1 \E$2 \E$3",

// 匹配剩下的
(?<=">)[^{\n](.*)[^}](?=</)

(?<=>)(\s*\w[\w\s]*[^}])(?=<)

猜你喜欢

转载自blog.csdn.net/MAIMIHO/article/details/109025281
今日推荐