存档Ruby

Ruby on Rails的国际化,本地化问题的解决

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,就可以查看效果了。

留言

Rails Login Engine和User Engine的使用

Rails Login Engine和User Engine提供了基本的用户登录,用户管理相关的功能,可以直接在应用程序中使用。

安装:

ruby script/plugin install http://svn.rails-engines.org/engines/trunk/

ruby script/plugin install http://svn.rails-engines.org/login_engine/trunk/

ruby script/plugin install http://svn.rails-engines.org/user_engine/trunk/

上面3个命令就分别安装好了所需的Engine。

相关的文档在:http://api.rails-engines.org/engines/

http://api.rails-engines.org/login_engine/

http://api.rails-engines.org/user_engine/

按照文档里面写的一步一步来就OK了。

留言

Ruby on Rails有用的插件

文件上传(FileColumn)
网页:http://www.kanthak.net/opensource/file_column/
安装:http://opensvn.csie.org/rails_file_column/plugins/file_column

主题支持(Theme Support)
安装:http://mattmccray.com/svn/rails/plugins/theme_support
动态的树型结构(LiveTree)
网页:http://www.epiphyte.ca/code/live_tree.html
下载:http://www.epiphyte.ca/downloads/live_tree/live_tree-0.1.2.zip

国际化插件(Globalize)
网页:http://wiki.globalize-rails.org/
安装:http://svn.globalize-rails.org/svn/globalize/globalize/trunk

本地化(Localization)
网页:http://mir.aculo.us/articles/2005/10/03/ruby-on-rails-i18n-revisited
安装:http://dev.rubyonrails.org/svn/rails/plugins/localization/

文件上传进度显示(Rails Upload Progress)
网页:http://wiki.rubyonrails.com/rails/pages/Upload+Progress+Bar
Demo:http://sean.treadway.info/demo/upload/

Rails引擎(Rails Engine)
网页:http://rails-engines.org/
安装:http://svn.rails-engines.org/
包括LoginEngine, UserEngine,WikiEngine

索引搜索(Indexed Search)
网页:http://lance.langwell-ball.com/pages/indexed-search
安装:http://langwell-ball.com/svn/indexed-search/

Ajax Scaffold生成器(Ajax Scaffold Generator)
网页:http://ajaxscaffold.height1percent.com/
安装:gem install ajax_scaffold_generator

留言

Ruby Kick Start

首先当然是下载Ruby了,在Perl Kick Start里面有写地址。

另外的一个是编辑器:一个是基于Eclipse平台的:RadRails;另外一个是之前提到过的Komodo,Komodo是商用的,不过可以试用21天。个人觉得Komodo要好一些,它也提供了其他语言的支持,包括Perl,Python,Ruby,TCL等。

留言