240 - 《简繁转换的 3 个方案》

发布于 2023年1月7日

这周看到了几次繁简体转换的案例,于是研究了下。

繁简体转换有多种方法,有比较重的,有比较轻的,有跑在 Node 里的,有跑在 Browser 里的,有甚至直接一行 CSS 就能完成转换的。

1、例行先问下 chatgpt,他给的答案是 opencc,这应该是最准确的方案。但缺点是重,需安装 npm 包,然后还有 node-gyp 编译,我本地还编译失败了。

import { OpenCC } from 'opencc';
const converter: OpenCC = new OpenCC('s2t.json');
await converter.convertPromise('汉字');

opencc 还有一些非官网的其他实现,比如 purejs 的,wasm 的等等,但看下来都感觉比较重,那有没有轻量点的方案呢?问了 chatgpt 之后,告诉我可以尝试用自定义的字词映射表。

2、这周翻 antgroup.com 代码时也是看到了相似的字词表映射方案,优点是轻,2000+ 的映射表只要 50K+(gzip 前),缺点是覆盖面窄,比如不支持一些生僻字。

const TongWen = {
  '\u00b7': '\u2027',  
  '\u2015': '\u2500',  
  '\u2016': '\u2225',
  // 这里省略 2000+ 行的字映射表
  // 可以在 https://github.com/tongwentang/tongwen-core/tree/master/dictionaries 找到
};
const words = {  
  '\u8054\u7cfb': '\u806f\u7e6b',  
  '\u5173\u7cfb': '\u95dc\u4fc2',  
};  
function toTrad(itxt: string) {  
  let newItxt = itxt;  
 

内容预览已结束

此内容需要会员权限。请先登录以查看完整内容。

OSZAR »