最近接了一个香港那边的项目,需要全站繁体中文,详细分析了一下目前的源代码及项目需求, 发现只要转换页面的简体文字及用户搜索关键字繁体转换就好了,两个难题,不是很难,只是有一些小坑在这里记录一下.
源文件繁体化
这个比较简单, 写个脚本批量处理就 OK 了,按理来说,现在应该有造好的轮子了, 找一下果然发现了一个不错的转换软件: ConvertZ
软件不但支持批量转换,而且速度也是杠杠的,几百个文件几秒钟就转好了;更赞的是,还支持设置编码,而且编码支持还蛮多的,可惜自己用的都是 UTF-8 没有其它问题(除了把 iconfont 的一个图标转成其它的乱码 orz...就一个).
有些页面上需要数据库的数据, 没办法, 导出 sql 文件, 再用软件转一下还是很方便的, 数据量不大.
搜索转换
页面是繁体化了,但是用户输入是繁体,相对应的资源却是简体的……
资源是没办法改的了,只能把用户输入转换成繁体的了.
找了个轮子 opencc,以及 PHP 的扩展 opencc4PHP(两者都可以在 Github 上找到)
安装方法项目 README 上写的很清楚了,这里不再赘述,小坑记录一下:
- 安装前请详细安装文档每一句话,好像是个人项目,所以 README 比较简洁, 如果直接按要求编译到系统可以会出现一现依赖问题, 根据自己的系统灵活选择吧, 下面是我用的 Ubuntu 和 Centos(都是 64 位);
- 安装 doxygen 依赖,这货编译安装也是很多问题, 不想折腾的话, Centos 请直接到 findrpm 那里找 rpm 包安装,Ubuntu 直接 apt-get 可以安装, 这样可以省事好多;
- 如果安装完之后 opencc --version 报错,提示
libopencc.so.2: cannot open shared object file: No such file or directory
解决方法:
# 找到libopencc.so.2
$ sudo find / -name libopencc.so.2
/usr/lib/libopencc.so.2
...
# 把libopencc.so.2做个软接到/usr/lib64/目录下就好了
$ sudo ln -s /usr/lib/libopencc.so.2 /usr/lib64/libopencc.so.2
最后, 按照文档需要的地方用函数就好了!