byterat

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  54 随笔 :: 0 文章 :: 15 评论 :: 0 Trackbacks

Ruby on Rails是一个很不错的web开发框架,不过由于目前其本身对国际化的支持较差,所以需要一些辅助的东西来解决国际化问题。

我最先使用的是一个叫localization的插件,这个插件的使用说明在Ruby on Rails官方的wiki上面有,这个插件使用比较简单,不过功能比较弱。

目前使用的是Ruby-GetText,这个插件功能强大,基于GNU的gettext,详细的使用说明在 http://manuals.rubyonrails.com/read/chapter/105 上面有写,我大概提一下要点:

首先要是Ruby on Rails支持UTF-8,通过将如下代码添加到environment.rb中:

$KCODE = ‘u’
require ‘jcode’

接着是安装Ruby-GetText,运行gem install gettext就可以了,如果是Windows平台就选2,否则选1。接着就是在项目根目录下面创建po目录,里面添加你需要Locale的名字作为子目录,比如en, zh_CN等。需要国际化的字符串都以_(”")来书写,比如想国际化“编辑”这个标签,就可以在视图的rhtml中使用_(”Edit”),这样在显示的时候会自动根据Locale来替换成相应的值。

接着在项目的rakefile里面如下内容:

desc “Create mo-files for L10n”
task :makemo do
  GetText.create_mofiles(true, “po”, “locale”)
end

需要注意的是在上面给出的链接的那篇文章里面,还需要添加updatepo这样一个目标,不过这个目标在我这不起作用,总是出错,我的办法是下载那篇文章附带的代码: http://www.digitale-wertschoepfung.de/artikel/gettext/using-gettext-with-rails.tgz 。在里面的script目录下面有一个localize文件,把它拷贝到你的项目的script目录下面,然后运行ruby ./script/localize {文本域的名字}就可以从controllers, views中更新po数据,用Unicode编辑器(比如UltraEdit)修改各个po文件,然后运行rake makemo就可以了。关于如果修改application.rb及其他controller的代码,查看给出的链接。此时重新启动server,就可以查看效果了。

posted on 2006-10-24 09:53 比特鼠 阅读(1162) 评论(2)  编辑  收藏 所属分类: Ruby on Rails

评论

# re: Ruby on Rails的国际化,本地化问题的解决(转载) 2006-10-24 10:00 冰川
恩,不错啊!  回复  更多评论
  

# re: Ruby on Rails的国际化,本地化问题的解决(转载) 2007-05-26 00:34 jialno
$KCODE = ‘u’
require ‘jcode’

我试过还是不行...  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: