今天来看看Rails对于不同locale的支持,我们使用Globalize插件
ruby script/plugin install \
http://svn.globalize-rails.org/svn/globalize/globalize/trunk
然后我们生成migration文件
ruby script/generate globalize
然后运行
rake db:migrate
然后我们需要在config/environment.rb里设置语言和默认locale
include Globalize
Locale.set_base_language 'en-US'
Locale.set 'en-US'
然后我们允许用户选择locale
class AccountsController < ApplicationController
def login
authentication....
session[:user] = user.id
session[:locale] = user.locale
redirect_to (go_url || home_url)
end
def logout
@session[:user] = nil
redirect_to home_url
end
def change_locale
session[:locale] = params[:locale] unless params[:locale].blank?
end
end
然后我们给ApplicationController添加一个before_filter
before_filter :set_locale
def set_locale
Locale.set session[:locale] unless session[:locale].blank?
true
end
我们来看看Globalize的一些helper方法,t()为translations,/()为printf-looking,如
<% unless params[:search].blank? %>
<p><%= "Found %d products." / @products.size %></p>
<% end %>
<%= link_to "Remove".t, :action => 'remove', :id => item.product_id %>
对于时间和货币使用loc()方法
<%= Time.now.loc "%H:%M %Z" %>
Globalize甚至可以翻译Model
class Product < ActiveRecord::Base
translates :name, :description
end
需要注意的是我们的Rails程序需要一致使用utf8编码
1,config/environment.rb
$KCODE ='u'
require 'jcode'
2,config/database.yml
对MySQL
encoding: utf8
对PostgreSQL
encoding: unicode
3,ApplicationController
after_filter :set_charset
def set_charset
unless @headers["Content-Type"] =~ /charset/i
@headers["Content-Type"] ||= ""
@headers["Content-Type"] += "; charset=utf-8"
end
end
更多细节参考
http://www.globalize-rails.org
分享到:
相关推荐
**Ruby for Rails** Ruby是一种面向对象的动态编程语言,它以其简洁、优雅的语法和强大的元编程能力而闻名。在Web开发领域,Ruby与Rails框架的结合,即Ruby on Rails(RoR),开创了Web应用的新纪元。Ruby on Rails...
《Ruby on Rails for Dummies》是一本专门为初学者设计的Ruby on Rails教程,它旨在帮助新手快速理解并掌握这个强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby编程语言构建的一个开源Web应用程序框架,它...
Ruby for Rails 英文原版, pdf格式 <br>本书是一部专门为Rails实践而写的经典Ruby著作,由四部分组成,共17章。第一部分讲述Ruby和Rails的编程环境。第二部分和第三部分与 Rails紧密联系,着重对Ruby这门语言...
Rails for Zombies是一份面向初学者的教程,通过学习本教程,用户能够掌握创建Ruby on Rails应用程序的基本知识。 Rails for Zombies教程中的"Deep in the CRUD"部分深入讲解了CRUD(创建Create、读取Retrieve、...
[Pragmatic Bookshelf] Crafting Rails Applications Expert Practices for Everyday Rails Development (E-Book) ☆ 图书概要:☆ Rails 3 is a huge step forward. You can now easily extend the framework, ...
《Rails 101 入门电子书》是一本非常适合初学者直接入门的书籍,它由xdite编写并出版于2014年6月10日。本书主要针对的是希望学习Ruby on Rails框架的读者,特别是那些想要从零开始掌握这项技术的新手。 #### 二、...
Rails 3.1 和 Cucumber-Rails 1.2.0 是两个在Web开发领域非常重要的工具,尤其对于Ruby on Rails框架的测试和自动化流程。本文将深入探讨这两个组件,以及它们如何协同工作来增强软件开发的效率和质量。 首先,...
《Rails101_by_rails4.0》是一本专注于Rails 4.0.0版本和Ruby 2.0.0版本的自学教程书籍,它定位于中文读者,旨在成为学习Rails框架的参考教材。Rails(Ruby on Rails)是一个采用Ruby语言编写的开源Web应用框架,它...
ruby on rails for eclipse开发插件
《Rails之道》详细讨论了Rails的程序代码并通过分析Rails中的代码片段来深入解释它的功能,同时,《Rails之道》部分章节也摘录了一些API文档中的内容,使读者能够快速地找到对应的API文档、相关的示例代码以及深入的...
Ruby on Rails,通常简称为Rails,是一个基于Ruby编程语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式。这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何...
### Agile Web Development with Rails for Rails 3.2 #### 核心知识点概览 - **Rails 3.2概述** - **敏捷开发方法论** - **Model-View-Controller (MVC) 模式** - **Ruby on Rails基础与高级特性** - **面向对象...
“Rbuy for Rails源代码”这一标题表明我们关注的是一个名为“Rbuy”的项目,它是为Rails框架开发的一个特定组件或应用。Rails是Ruby on Rails的简称,是一个基于Ruby语言的开源Web应用程序框架,遵循MVC(模型-视图...
从给定的文件信息来看,我们正在探讨的是一本关于Ruby on Rails的书籍,书名为《Simply Rails2》,作者是Patrick Lenz。本书旨在为初学者提供深入理解Ruby on Rails框架的指南,从基础概念到高级主题均有涵盖,是...
Rails之道.pdf 高清 带书签