之前在页面中使用简体转繁体的功能一般是使用JS对页面进行字典替换,这样可以解决大部分问题,但要进行精确的转换,才发现简繁体的转换是个复杂的过程。幸好有个非常棒的繁体转简体开源项目OpenCC可以很好的工作。

OpenCC 特性

  • 嚴格區分「一簡對多繁」和「一簡對多異」。
  • 完全兼容異體字,可以實現動態替換。
  • 嚴格審校一簡對多繁詞條,原則爲「能分則不合」。
  • 支持中國大陸、臺灣、香港異體字和地區習慣用詞轉換,如「裏」「裡」、「鼠標」「滑鼠」。
  • 詞庫和函數庫完全分離,可以自由修改、導入、擴展。
  • 支持C、C++、Python、PHP、Java、Ruby、Node.js and Android。
  • 兼容Windows、Linux、Mac平臺。

OpenCC 的 Golang 库

目前有较好的几个 golang 库推荐

处于性能考虑,个人使用第一个项目,下面是其使用的例子。

我在Mac 里安装OpenCC

1
2
brew install opencc
go get github.com/stevenyao/go-opencc

OpenCC 预设置

s2t.jsont2s.jsons2tw.jsontw2s.jsons2hk.jsonhk2s.jsons2twp.jsontw2sp.jsont2tw.jsont2hk.json

具体实例

go-opencc 实现简体转繁体示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package main

import (
	"fmt"
	"github.com/stevenyao/go-opencc"
)

const (
	input = "中国鼠标软件打印机后台湾"
	config_s2t = "/usr/local/Cellar/opencc/1.0.5/share/opencc/s2t.json"
)

func main() {
	fmt.Println("Test Converter class:")
	c := opencc.NewConverter(config_s2t)
	defer c.Close()
	output := c.Convert(input)
	fmt.Println(output)
}

运行后输出:

1
2
Test Converter class:
中國鼠標軟件打印機後臺灣

opencc 源码安装

apt-get install openccgo get github.com/stevenyao/go-opencc
1
2
3
4
5
# github.com/stevenyao/go-opencc
opencc.c:5:10: fatal error: opencc/opencc.h: No such file or directory
 #include "opencc/opencc.h"
          ^~~~~~~~~~~~~~~~~
compilation terminated.
apt-get remove opencc
1
2
3
4
5
6
7
git clone https://github.com/BYVoid/OpenCC.git
apt-get install cmake
apt-get install doxygen

cd OpenCC
make
make install

成功安装 opencc

1
2
3
4
$ opencc --version

Open Chinese Convert (OpenCC) Command Line Tool
Version: 1.0.5

本文网址: https://pylist.com/topic/191.html 转摘请注明来源