I18n,自动使你的网站具有多种语言

国际化(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:

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"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值