国际化(i18n)是rails2.2引入的新的特征,这一节我们演示如何使用他使你的网站自动具有多种语言。
当用户注册的时候,我们想使他们可以选择使用哪种语言,在此,我们让他们可以选择english 还是 wookieespeak。
我们使用Restful Authentication plugin来作为我们的用户管理模块。然后,在他的注册页面,我们添加一个field到User模型,叫做language,而且有一个dropdown field让用户可以选择他们喜欢的语言。
具体步骤如下:
ruby script/plugin install git://github.com/technoweenie/restful-authentication.git
ruby script/generate authenticated user sessions
第一步是安装插件,
第二步是生成文件,user是model的名称,这一步也会创建两个controller, 一个users,一个sessions。
搞定,现在我们可以打开注册页面了,
http://127.0.0.1:3000/signup (为什么有这个route呢,自己去看config/routes.rb把)
我们需要给我们的user模型增加一个字段叫做lang,然后往user的new view中增加一个select box,让用户注册新用户的时候,可以选择语言。
首先在后台,ruby script/generate migration add_lang_col, 添加一个migration, 然后编辑这个migration:
然后在后台运行, rake db:migration, 在数据库中的users表中添加这个字段。
然后就要编辑new.html.erb, 添加如下代码:
搞定,现在刷新我们的http://127.0.0.1:3000/signup, 就可以看到selectbox了。
2. 下面我们将要具体实现多语言的内部逻辑了
首先如果你使用的rails2.2 以上的版本,去config目录下面找locales文件夹,我们的网站要支持的各种语言的文件都将放在这里。每一种语言的文本都会存储在一个ymal文件中,现在已经有了一个en.ymal文件范本了。
要支持多种语言,我们首先要复制我们要翻译的语言到en.yml 文件。
下面就要创建wk版本yaml文件了:
当用户注册的时候,我们想使他们可以选择使用哪种语言,在此,我们让他们可以选择english 还是 wookieespeak。
我们使用Restful Authentication plugin来作为我们的用户管理模块。然后,在他的注册页面,我们添加一个field到User模型,叫做language,而且有一个dropdown field让用户可以选择他们喜欢的语言。
具体步骤如下:
ruby script/plugin install git://github.com/technoweenie/restful-authentication.git
ruby script/generate authenticated user sessions
第一步是安装插件,
第二步是生成文件,user是model的名称,这一步也会创建两个controller, 一个users,一个sessions。
搞定,现在我们可以打开注册页面了,
http://127.0.0.1:3000/signup (为什么有这个route呢,自己去看config/routes.rb把)
我们需要给我们的user模型增加一个字段叫做lang,然后往user的new view中增加一个select box,让用户注册新用户的时候,可以选择语言。
首先在后台,ruby script/generate migration add_lang_col, 添加一个migration, 然后编辑这个migration:
def self.up
add_column :users, :lang, :string
end
def self.down
remove_column :users, :lang
end
然后在后台运行, rake db:migration, 在数据库中的users表中添加这个字段。
然后就要编辑new.html.erb, 添加如下代码:
<p><%= f.label :lang, "Language" %>
<%= f.select :lang, [['English', 'en'], ['Wookieespeak', 'wk']] %></p>
搞定,现在刷新我们的http://127.0.0.1:3000/signup, 就可以看到selectbox了。
2. 下面我们将要具体实现多语言的内部逻辑了
首先如果你使用的rails2.2 以上的版本,去config目录下面找locales文件夹,我们的网站要支持的各种语言的文件都将放在这里。每一种语言的文本都会存储在一个ymal文件中,现在已经有了一个en.ymal文件范本了。
要支持多种语言,我们首先要复制我们要翻译的语言到en.yml 文件。
en:
welcome:
title: "Welcome"
paragraph: "Thank you for visiting our store."
products:
title: "Products"
releaser: "Released"
下面就要创建wk版本yaml文件了:
welcome:
title: "Wyah"
paragraph: "Wyaaaa, ruh, ruh, huwaa, muaa."
products:
title: "Mauhwaa"
released: "Ruhha"