`
hideto
  • 浏览: 2678353 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

每天一剂Rails良药之Adding Support for Localization

    博客分类:
  • Ruby
阅读更多
今天来看看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 for Rails** Ruby是一种面向对象的动态编程语言,它以其简洁、优雅的语法和强大的元编程能力而闻名。在Web开发领域,Ruby与Rails框架的结合,即Ruby on Rails(RoR),开创了Web应用的新纪元。Ruby on Rails...

    ruby on rails for dummies

    《Ruby on Rails for Dummies》是一本专门为初学者设计的Ruby on Rails教程,它旨在帮助新手快速理解并掌握这个强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby编程语言构建的一个开源Web应用程序框架,它...

    Ruby for Rails

    Ruby for Rails 英文原版, pdf格式 &lt;br&gt;本书是一部专门为Rails实践而写的经典Ruby著作,由四部分组成,共17章。第一部分讲述Ruby和Rails的编程环境。第二部分和第三部分与 Rails紧密联系,着重对Ruby这门语言...

    Rails for Zombies

    Rails for Zombies是一份面向初学者的教程,通过学习本教程,用户能够掌握创建Ruby on Rails应用程序的基本知识。 Rails for Zombies教程中的"Deep in the CRUD"部分深入讲解了CRUD(创建Create、读取Retrieve、...

    [Rails] Crafting Rails Applications (英文版)

    [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 入门电子书

    《Rails 101 入门电子书》是一本非常适合初学者直接入门的书籍,它由xdite编写并出版于2014年6月10日。本书主要针对的是希望学习Ruby on Rails框架的读者,特别是那些想要从零开始掌握这项技术的新手。 #### 二、...

    关于rails 3.1 cucumber-rails 1.2.0

    Rails 3.1 和 Cucumber-Rails 1.2.0 是两个在Web开发领域非常重要的工具,尤其对于Ruby on Rails框架的测试和自动化流程。本文将深入探讨这两个组件,以及它们如何协同工作来增强软件开发的效率和质量。 首先,...

    Rails101_by_rails4.0

    《Rails101_by_rails4.0》是一本专注于Rails 4.0.0版本和Ruby 2.0.0版本的自学教程书籍,它定位于中文读者,旨在成为学习Rails框架的参考教材。Rails(Ruby on Rails)是一个采用Ruby语言编写的开源Web应用框架,它...

    ruby on rails for eclipse开发插件

    ruby on rails for eclipse开发插件

    Rails之道.pdf(最新版)

    《Rails之道》详细讨论了Rails的程序代码并通过分析Rails中的代码片段来深入解释它的功能,同时,《Rails之道》部分章节也摘录了一些API文档中的内容,使读者能够快速地找到对应的API文档、相关的示例代码以及深入的...

    Rails项目源代码

    Ruby on Rails,通常简称为Rails,是一个基于Ruby编程语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式。这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何...

    Agile Web Development with Rails for Rails 3.2

    ### Agile Web Development with Rails for Rails 3.2 #### 核心知识点概览 - **Rails 3.2概述** - **敏捷开发方法论** - **Model-View-Controller (MVC) 模式** - **Ruby on Rails基础与高级特性** - **面向对象...

    Rbuy for Rails源代码

    “Rbuy for Rails源代码”这一标题表明我们关注的是一个名为“Rbuy”的项目,它是为Rails框架开发的一个特定组件或应用。Rails是Ruby on Rails的简称,是一个基于Ruby语言的开源Web应用程序框架,遵循MVC(模型-视图...

    rails2-sample

    从给定的文件信息来看,我们正在探讨的是一本关于Ruby on Rails的书籍,书名为《Simply Rails2》,作者是Patrick Lenz。本书旨在为初学者提供深入理解Ruby on Rails框架的指南,从基础概念到高级主题均有涵盖,是...

    Rails之道.pdf 高清 带书签

    Rails之道.pdf 高清 带书签

Global site tag (gtag.js) - Google Analytics