element-plus语言
element-plus修改语言报错
无法找到模块“element-plus/dist/locale/zh-cn.mjs”的声明文件
问题原因
element-plus官方语言默认为英语

如果按照element官网示例引入/修改 element 语言,ts 会报错,并且引入的 zhCn 没有代码提示

解决方法
1. 如果只是不希望出现报错
在 .d.ts 文件中(如:vite在 vite-env.d.ts 文件)添加代码:
// 一行代码搞定,很轻松
declare module "element-plus/dist/locale/zh-cn.mjs";
2. 如果希望还能出现代码提示
直接上结论
// 官网引入地址修改为 import zhCn from "element-plus/es/locale/lang/zh-cn"; // 还可以根据项目需要修改文本
问题解决过程
-
起初是想将
el-pagination分页器中的"共 10 条"修改为"共 10 条数据"方法有很多,第一时间就想到用伪元素
::after加上但是想到如果别的地方不只是简单地添加文本,而是修改,伪元素就不可行
所以还是直接修改element语言包里面的配置
-
按照element官方文档提示确实能够修改,但是有两个问题
- 引入报错,虽然不影响编译,但是看着难受
- 没有代码提示,需要
log出来才能看到里面的数据结构
-
我不相信
element团队在开发时没有代码提示,于是好奇心驱使下,想去看看element源码是怎么写的,在volar的帮助下找到了这个文件node_modules/element-plus/es/components/pagination/src/components/total2.mjs里面有一段 render 函数是这样的

// toDisplayString即template语法中的{{}} <span>{{value}}</span> === toDisplayString(value) // unref(val): 如果对象是ref对象,val.value,如果不是,取val很明显,这里就是total文本渲染的地方 这里 unref 包裹了一个 t 函数,我们可以看到 t 是由一个 useLocale 函数构造出来的 locale 这个单词在之前的引入语言包路径中出现过,所以这个函数应该和语言有关 -
继续顺藤摸瓜看看声明
useLocale所在的文件
这里引入了英语的语言包,没有报错而且有代码提示!
然后在English的同级目录下看到了
en.d.ts这也解释了为什么没有报错和有代码提示
-
可以看到,这里有很多种语言包,当然也有中文的,所以我们引入这里的中文包就可以了
import zhCn from "element-plus/es/locale/lang/zh-cn";
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

