搞了老半天的drupal 6.x tincymce 3.x 中文化

ㄚ琪琪的家最近在换血中,ㄚ琪很习惯用wordpress的tinymce的编辑功能,也查到了drupal也是可以用tinymce的,依据所见即所得编辑器 + 图片上传 (tinymce + img_assist)做设定,也不知怎么搞的一直没有中文介面出现:

搞了一堆的中文语言包,有旧的也有新的,头壳已经乱的不知要弄哪一种语言包了?

TinyMCE的网站上就有这两种跟中文有关的语言包,照规定放了也不见中文出现,又找了一堆很多有爱心的网友释出的语言包也是无效。

后来只好静下心来看TinyMCE的手册及程式码了,定制 – 创建一个语言包,这一篇有提到中文化必须注意的几个档案:

/tinymce/jscripts/tiny_mce/langs/en.js
/tinymce/jscripts/tiny_mce/plugins/<plugin>/langs/en.js
/tinymce/jscripts/tiny_mce/themes/advanced/langs/en.js

我回到我的安装目录,我竟然发现我乱搞之下有这么多的js档:en.js、tw.js、zh.js、zh-tw.js、zh_tw_utf8.js。

因为我的Ubuntu是utf-8的环境,所以我猜这个zh_tw_utf8.js应该是我要下手的一个档案,而且在drupal的编辑 tinymce 设定档中,语言的选单也有三个关于中文的选项:

虽然我不知道我是怎么搞出这三个选项的,没有纪录操作步骤,是很伤脑筋的不好习惯,不过这个zh_tw_utf8跟我的安装目录中的zh_tw_utf8.js应该是有对应的(我的直觉),打开zh_tw_utf8.js一看:

这个数位应用坊做的这个js档,是用tinyMCE.addToLang开头这几行写的,而我看其他几个en.js、zh.js及tw.js,像tw.js:

他们都是用tinyMCE.addI18n开头的,很好奇这之间的差异,TinyMCE:Migration guide,这篇维基百科解决了我的疑惑,原来这是TinyMCE 2.x 跟 3.x 之间的差异:

Language file format:

  • Old: tinyMCE.addToLang(‘pluginName’,{ stringName: ‘string_value’, … stringName_n: ‘stringValue_n’});
  • New: tinyMCE.addI18n(‘en.pluginName’,{ stringName: ‘string_value’, … stringName_n: ‘stringValue_n’});

我记得我是用Version: 3.2.0.2的,所以这个zh_tw_utf8.js是旧的,我只好把它抛弃,并想办法试试tw.js改成zh_tw_utf8.js,不过仍然不行,在重看一次原始码:

tinyMCE.addI18n({tw

如果tw是配tw.js的话,那么zh_tw_utf8.js应该要配zh_tw_utf8才对,所以将zh_tw_utf8.js再改成像这样:

由于我的drupal tinymce的theme是用advanced的,看到上面非中文化的画面不是有avvanced.###的吗,所以在/tinymce/jscripts/tiny_mce/themes/advanced/langs里的js也要这样改,最后再回去drupal的编辑画面看:

看到中文了没,总算成功了,呼,接下来我就可以在我的ㄚ琪琪的家快乐的写ADODB的翻译手册了!