Rails框架技术讲座:使用工具gettext--将Rails框架应用软件中文化
Posted by cnruby Mon, 15 May 2006 19:21:00 GMT
Rails框架技术讲座:使用工具gettext--将Rails框架应用软件中文化
目录
(一)系统环境:
- Ruby 语言 1.8.4版本, 点击这里Ruby1.8.4
- Rails 框架 1.1.2版本
- Windows XP 或者 Windows 2000操作系统
- 需要一个浏览器,如FireFox1.5.0.1。
- Notepad2 开发编辑工具,安装方法请单击这里
- SQLite 3.3.3
下载 sqlite-3_3_3.zip sqlitedll-3_3_3.zip
解压它们,得到文件sqlite3.exe和sqlite3.dll;
复制它们到目录[RUBY_HOME]/bin下面; - SQLite-Ruby 1.1.0
如下命令安装该模块是针对SQLite 3.x版本:
gem install sqlite3-ruby -r -y - SQLite 3.x的可视化工具:SQLite Database Browser
解压它,我们得到软件SQLite Database Browser 1.2.1.exe
(二)前提条件:
- 我们的工作目录为d:\works_rails。
- 你的电脑一定要连接互联网。
- 需要国际化工具gettext 和Ruby-GetText 1.5.0
安装方法:
get install gettext -r
首先选择2. gettext 1.5.0 (mswin32),就是输入2。
图03
(三)目的:
- 利用国际化工具gettext/Ruby-GetText 1.5.0,将Rails框架应用软件中文化。在这里,我们的代码没有让用户可以自己选择希望显示的语言。
- 我们创建项目的完整代码 i18n_gettext.zip 。
(四)解决方案:
- 创建一个名称为 i18n_gettext 项目,其命令如下:
rails i18n_gettext
图01
- 创建数据库配置文件和生成自己数据库程序,其方法如下:
cd i18n_gettext
图02
notepad2 config\database.yml
notepad2 db\create_db.rb
图04
图05
图06
- 运行生成自己的数据库程序,其命令如下:
ruby db\create_db.rb
图20
图07
- 使用Rails框架代码架构自动生成器命令如下:
ruby script\generate scaffold lesson admin
图08
- 增加文件application.rb的代码,其中第四行和第十一行参数要调整。其目的在于,我们确定我们软件使用什么语言。在这个文件中,我们定义该软件项目文字区域(textdomain):i18n_gettext。这一点是很重要。它必须和后面谈到文件.po的文件名相同。
notepad2 app\controllers\application.rb
图09
图10
- 我们要把所有文件D:\works_rails\i18n_gettext\*\*.rb,D:\works_rails\i18n_gettext\*\*.rhtml 需要翻译的文字写成为规定格式为:
_('原文')
例如,我们修改文件D:\works_rails\i18n_gettext\app\views\admin\list.rhtml
_('Show')
原来的形式为
‘Show’
notepad2 app\views\admin\list.rhtml
图11
图12
- 修改文件D:\works_rails\i18n_gettext\Rakefile,增加二个命令updatepo和makemo:
notepad2 Rakefile
图13
图14
- 创建几个需要国际化的目录:
mkdir po\de
mkdir po\en
mkdir po\zh
tree po
图15
- 通过下面的命令,自动地把Rails框架应用软件所有需要翻译的内容形成一个文件:
rake updatepo
图16
- 借助于工具poEdit(使用说明单击这里),很方便地生成了一个中文的po文件i18n_gettext.po。通过下面的命令,把po文件自动变成一个gettext/Ruby-GetText可以理解的mo文件:
rake makemo
图17
- 启动网络服务器WEBrick,在DOS-Shell中输入如下命令:
ruby script\server
图18
打开网络浏览器Firefox,其网址如下:
http://localhost:3000/admin/index
图19
(四)视听教学:
(五)必须注意的问题:
- 什么是Ruby-GetText
Ruby-GetText软件包是一个Gettext接口的Ruby语言实现。 - 什么是Gettext
Gettext是一个把应用软件用户界面翻译成不同的语言的很好通用工具。
(六)参考资料:
- 介绍工具gettext:
http://manuals.rubyonrails.com/read/chapter/105 - 工具gettext使用手册(英文):
http://www.gnu.org/software/gettext/manual/html_node/gettext.html#SEC_Top - Ruby-GetText-Packages首页:
http://gettext.rubyforge.org/




![Validate my RSS feed [Valid RSS]](/blog1/files/valid-rss.png)




