webpack ——自定义Loader,将i18n英文单词首字母转大写
问题
在客户要求下要将项目中中英文切换,英文要以英文单词首字母大写为准。可是前期开发人员并没有规范。 多以这种:
"headerFontColor":"top font MAV Mac /MAC(V)",
存在,可是emmmmm…一个一个修改,必si。
方法 1
去看了vue-i18n 官网,找到formatter可实现。
实践:
// 实现自定义格式
class CustomFormatter {constructor (options) {}// 英文处理upperCase(text) {return text.replace(/\b([\w|']+)\b/g, function(result) {let lowText = result.toLowerCase()return lowText.replace(lowText.charAt(0), lowText.charAt(0).toUpperCase());});}interpolate (message, values) {// 返回插值数组return [ this.upperCase(message)]}
}
const i18n = new VueI18n({locale:utils.getCookie('language')?utils.getCookie('language'):'zh',formatter: new CustomFormatter(),messages:messages,
});
方法 2
使用loader。
- 创建文件夹rules 管理自定义的loader
- 在rules创建文件夹diy-loader,并在diy-loader文件夹创建index.js(编写处理文件代码)
// 获取loader 中Options 配置
let loaderUtil = require('loader-utils')function upperCase(text) {return text.replace(/\b([\w|']+)\b/g, function(result) {let lowText = result.toLowerCase()return lowText.replace(lowText.charAt(0), lowText.charAt(0).toUpperCase());});
}function upperCaseByJson(jsonData) {let keys = Object.keys(jsonData)for (let item in jsonData) {if (jsonData[item] instanceof Object) {upperCaseByJson(jsonData[item])} else {jsonData[item] = upperCase(jsonData[item])}}
}module.exports = function (source) {const options = loaderUtil.getOptions(this) || {}let sourceJson, startVal,startTime = new Date().getTime()console.log('自定义loader source', startTime)// loader 中test 校验的文件 数据(source)if (source && source.split('=').length >= 2 ) {startVal = source.split('=')[0]sourceJson = JSON.parse(source.split('=')[1])upperCaseByJson(sourceJson)}console.log('自定义loader source',new Date().getTime() - startTime )source = startVal + '=' + JSON.stringify(sourceJson)return source
}
3.在 webpack.config.js 加载自定义loader
resolveLoader: {modules: [path.resolve(__dirname,'./rules'),'node_modules' // npm 加载的loader]},module: { // 处理对应模块rules: [// 处理自定义{test: /\.en\.json$/,loader:'diy-loader',include: [path.resolve(__dirname,'./src/assets/i18n')]}]
测试。
webpack ——自定义Loader,将i18n英文单词首字母转大写相关推荐
- python将变量a全部变成大写字母_每天一个Python知识点:只用一招就将所有的英文单词首字母变成大写...
摘要: 将英文单词首字母变成大写是一个古老的话题,很常用,也很简单.不过如何用更简单的方式批量完成这个工作,则有很多学问,不想来看看吗! 将英文单词首字母变成大写是非常常用的文本操作,使用capita ...
- Python将所有的英文单词首字母变成大写
将英文单词首字母变成大写是非常常用的文本操作,使用capitalize方法可以将一个英文单词的首字母变成大写. 将英文单词首字母变成大写是非常常用的文本操作,使用capitalize方法可以将一个英文 ...
- 《Word中设置英文单词首字母不自动变为大写》
Word中设置英文单词首字母不自动变为大写:选项->校对->自动更正选项->自动更正->句首字母大写的勾选取消.
- C++ 编程中常用的英文单词(首字母是O、P、R开头)
学习编程不一定需要英语水平很高,能记住认识一些常用的英文单词也可以,有看不明白的文档资料也可以使用翻译工具,编写代码时大部分好用的IDE都是有代码提示的.本文主要介绍C++语言编程中常用的英语单词. ...
- C++ 编程中常用的英文单词(首字母是G、H、I开头)
学习编程不一定需要英语水平很高,能记住认识一些常用的英文单词也可以,有看不明白的文档资料也可以使用翻译工具,编写代码时大部分好用的IDE都是有代码提示的.本文主要介绍C++语言编程中常用的英语单词. ...
- Java编程之英文单词首字母大写
一.题目 输入一段英文句子,将每个单词的首字母大写再输出.示例: 输入:I am very glad to see you. 输出:I Am Very Glad To See You. 二.实验代码 ...
- Java 首字母转大写,StringUtils.capitalize
================================ ©Copyright 蕃薯耀 2022-08-31 蕃薯耀的博客_CSDN博客-蕃薯耀分享,java,js领域博主 一.首 ...
- C语言程序——首字母变大写
[问题描述]首字母变大写:输入一个英文句子,将每个单词的第一个字母改成大写字母. [输入形式]一个长度不超过100的英文句子 [输出形式]按照要求改写后的英文句子,每个单词的首字母大写 [样例输入]i ...
- 使用Python,将字符串的首字母变为大写,其余都变为小写
利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字. 思路:使用capitalize()函数将字符串的首字母转为大写,其余变为小写 L1 = ['AdmIn','an ...
- 1165: 零起点学算法72——首字母变大写
1165: 零起点学算法72--首字母变大写 Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lld Submitted: 705 ...
最新文章
- iredmail 邮件服务器搭建
- python好找工作吗2017-记2017年年底,几次Python后端面试
- 拓展小知识(一)——使用 CSS 和 JS 加载阿里小图标
- 涨姿势 | 服务重启后,为什么发生抖动?
- python绘图函数教程_OpenCV中的绘图函数
- opc服务器组态文件已写保护_远程组态软件不仅方便了PLC无线远程监控,也大大降低了工程成本...
- ios中解决图片渲染问题
- Jsoup的简易使用示例
- CVPR2020 | 虚拟举办,这29个教程Tutorial 不容错过!
- Spark源码分析之BlockManager
- Bash Shell 注释多行的几种方法(转)
- matlab计算macd_matlab计算MACD指标
- 20190829:(leetcode习题)环形链表
- # 20155224 第十一周 课堂练习《计算后缀表达式的值》
- Mysql生产环境表更新方案_生产环境中,数据库升级维护的最佳解决方案flyway
- laravel 图片上传 intervention/image
- 在玩图像分类和图像分割?来挑战基于 TensorFlow 的图像注解生成!
- Atitit.实现继承的原理and方法java javascript .net c# php ...
- 少儿编程家长疑问解答
- 第四章——数据库安全性