道喜技术日记 .^. 天天红玉世界

Rails Ruby MacOSX 。。。创新来自于刻苦的实践和勤奋的思考... www.hhtong.com


Rails框架国际化插件的新动向

  本文介绍两款比较新的而且非常容易使用的Rails框架国际化插件。这是Rails框架中文软件必不可少的工具。

  软件的国际化是软件开发的一个重要工作,尤其是我们中文,框架大部分是英文,没有现成的方法马上可以直接进入中文软件的开发。Rails框架本身也没有相关的软件包,要进行Rails框架软件的国际化,就需要依靠第三方Rails框架的插件,开始使用比较多的有:Gettext ,相关资料 [ 1 ],和 Globalize 。二者功能比较强大,同时也带来安装和使用的复杂性。

  随着Rails框架发展,使用她的人也越来越多,他们是来自不同国家的,所以Rails框架的国际化也一直有新的插件出现。下面介绍两款非常类似的这方面的插件:mod-i18nGibberish [ 2 ] 。前者是基于插件Localize 基础上改进的,它的好处是利用Rails框架路由技术,使得一个网络应用软件同时实现多语言更为方便,并且是在香港的国人提交了这个插件,希望能够看到更多的国人开发出好的Rails插件。要是能够像后面的插件也能够在Console下操作就更好了。而插件Gibberish和Localize都是可以在Console下进行操作的。对于Rails开发而言,Rails Console是很重要的工具,可以说是必不可少的方法。

  无论是mod-i18n和Gibberish都有一个共同特点,就是安装和使用极为方便。安装过程都是标准的Rails框架插件的方法,一步到位。其使用一般需要三个步骤:

  • 创建一个存放译文文件的目录,mod-i18n在目录#{RAILS_ROOT}/config/lang下而Gibberish在#{RAILS_ROOT}/lang下;
  • 创建一个基于yml语言的译文文件,该文件存储关键词和相关语言文字,两者相同;
  • 修改Ruby语言代码,两者思路相同,显示不同;

  下面看看两者在Ruby语言的代码:

mod-i18n在.rb文件和和.rhtml文件中写法如下:

p _("hello")
<%= _("hello") %>

Gibberish在.rb文件和和.rhtml文件中写法如下:

p "No TRANSLATION: hello"[:hello]
<%= "No TRANSLATION: hello"[:hello] %>

注意,其中hello是译文文件中的关键词。关于插件mod-i18n有两点要说明:一是安装链接有问题,正确的是

http://mod-i18n.googlecode.com/svn/trunk/plugins/i18n/

二是在该插件中说明了对于两种文件使用不同的方法。我想,在文件.rb和文件.rhtml中可以使用相同的方法调用关键词,更为简单一些。

  关于更多关于Rails框架的国际化相关内容,请看资料:Rails框架国际化比较 [ 3 ]