EE-Forum.org的WP多语言版本改造

引子——被“樯”逼出的故事

为方便英文内容,需要一个全英文站点。本打算在国外平台上创建博客,这半年多我已创建过两个,不久竟然都被“樯”了(应该和我去创建博客没关系吧, 相应的平台网站整体性被“樯”)。其中一个被“樯”几个月后,又可从国内访问了。这样的遭遇并不仅是最近这两次,更早以前我还试过。这么被折腾几次,恢复 了也不敢继续用,因为是长期工作角度的考虑,真被它玩不起。无奈还是考虑放在自己的网站上。本打算在ee-forum.org下另装一套英文wp,但发现 有些多语言支持插件描述的功能相当不错,就起了直接改造ee-forum.org支持多语言的念头。

方案选择

在WP的插件库中搜寻,发现不少多语言支持的方案(可用multilingual, language等关键字搜索)。大约浏览了多个类似功能插件的介绍,其中有一款看似不错,但是收费,而本站解决方案全部采用的是免费的wp资源。通过阅读插件描述,发现©xili的几款插件(其插件主页,竟然也被“樯”了!),思路简洁合理,它完全基 于wp本身的数据结构(参见:WP标签和分类的数据结构和使用特点)和多语言支持(基于.mo)拓展出可实时切换的多语言支持功能,且有较多的下载数,和好评数。特别是,最近正紧跟wp3.0,3.1进行更新。此外,它看来是有实力的专业的机构(我并没有去特意了解)所提供,xili系列还有许多其它插件。于是我选择了 xili所称“多语言三部曲”即:xili-language, xili-dictionary, xili-tidy-tags。当然,这有个前提,即所采用的主题界面信息使用_e(), __()方式,支持语言翻译。

实施

做此工作没有找到其他可借鉴的信息,也走过一些弯路,这里只简要报告成功的过程,希望它对有类似需要的朋友有所帮助。

  • 从后台安装xili-language, xili-dictionary, xili-tidy-tags,启用之。
  • 进入xili-language设置,已发现了两个语言:zh_CN, en_US(另外还有en_EN相当于默认的后台语言吧。这个方案可添加N种语言,但我只需要2种),所以几乎无需更改什么设置。
  • 为已有的文章(posts)、页面等设置语言(此方案会根据文章或页面的语言来决定整个界面语言)。
  • 更新各语言的.mo:这是关键的第二步。打开xili-dictionary,导入当前主题的词语、当前分类词语、网站信息,导入后形成了巨大的 词汇表,其目的是为每个语言形成完整的互相对应的词语,在xili-dictionary的界面上可以完成这一工作,但我采用导入后,分别导出生成新的 po(我的方案是两种:zh_CN.po, zh_US.po),然后用PoEdit分别进行翻译,然后编译成mo上传(这个方案绕开了xili-dictionary的词汇表管理,似乎有缺点,也 有方便之处)。
    这一过程完成后,多语言界面就生效了。
  • 标签改造:这是其多语言改造的第三步。打开Tidy Tags,它将自动所有当前标签的表,然后将其按语言分组,这样,使用其附带的Tags cluds小工具,就可以显示不同语言的标签云了。(我还没发现标签自动对译捆绑的方法,或者是因为有些功能还没研究透彻:-))
  • 其它问题:这些琐碎的问题占了大部分工作时间。有些细致的设置,比链接的按语言分类、对边栏标题的支持等。其中,边栏小工具的标题,我是手工添加到mo中的。有几款插件不支持,只好淘汰了。

小结

环境:Linux/MySQL/WordPress 3.1 (zh_CN), UTF-8, Mimbo 3.0 theme

完成的多语言功能要点:

  • 形成了简体中文(zh_ch)和英语(en_us)两种语言版本,并可随时动态添加更多语种。
  • 按浏览器语言自动选择进入主页的语言。
  • 按文章/页面的语言自动选择界面语言。
  • 不同主页的语言界面信息全部是本语言,本语言的文章(posts)被优先显示。
  • 整个分类系统(及说明)有完整的多语言版,且通过分类索引时,只出现该语言的内容(自动添加例如?lang=en_us这样的参数)。
  • 在使用标签时,应当只选与post/page设置同语言或跨语言组的。
  • 在导航菜单可添加语言版本选择菜单。

还遗留一些小问题,例如:

  • 如何控制在某一语言界面中完全不显示其它语言的文章、页面。这涉及到较多方面。
  • 标签如何实现像分类那样的完全对应。
  • 文章、页面的语言对应版本之间可设置链接,但尚不知如何简单切换。
  • 等等。

其中有些是我对这个方案的细节了解运用不够,这套插件本身也有不少可改进的空间。还有些似乎与使用的汉化版有某种关系:这样的多语言方案,其实由纯 的原语版本做起更好,更纯粹。换言之,有这种灵活的多语言方案,就不应该用那种死板的“汉化”改造方式,这一点,也是我们设计企业应用方案时的一个基本考 虑。

3条回应 to “EE-Forum.org的WP多语言版本改造”

  1. linlis Says:

    不错的插件,谢谢推荐,之前我是用的WPML,它现在收费了。正想换一个插件试试看,回头试试看你推荐的这个

  2. dever Says:

    xili-tidy-tags 这插件有什么作用?请教

    • eefadmin Says:

      将标签按不同语言分组,包括中性组(用于各种语言)。这样你才可避免在例如英文文章显示中文的标签


留下评论