echart的canvas如何在不用i18n的情况下做全局国际化?-灵析社区

我爱了你呢

公司一个比较大的老项目,vue2,需要做国际化,目前的方案是劫持dom然后做一个映射表进行替换(类似于浏览器自带的翻译)。但是,由于存在大量echart图表,绘制出来的是canvas,就无法获取到dom中的文字。想问一下如何在尽量少入侵代码的情况下,完成echart的国际化?(项目中没有使用i18n,图表涉及的文件近百个,也不好再重新修改,入侵性过大) 想着能不能再echart初始化的时候判断环境然后调用配置表呢

阅读量:181

点赞量:0

问AI
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240917/5f278949cba6d0375ec0ffed3b7e80e5.png) // 保存原始的 fillText 方法 const fillTextOld = CanvasRenderingContext2D.prototype.fillText; // 定义新的 fillText 方法 const fillTextNew = function(text, x, y, maxWidth) { // 修改文字内容 const modifiedText = text.replace('Mon', '周一').replace('Tue', '星期二'); // 调用原始的 fillText 方法 return fillTextOld.call(this, modifiedText, x, y, maxWidth); }; // 覆盖原型上的 fillText 方法 CanvasRenderingContext2D.prototype.fillText = fillTextNew;