Rails 3 I18n接近

时间:2011-01-14 15:53:43

标签: ruby-on-rails-3 internationalization

我是Rails的新手,我需要在应用程序中实现国际化。 直到现在我查看了r18n-rails,globalize3和gettext_i18n_rails。

我必须将模板文本与一些数据库数据(一些类别作为示例)国际化。

我喜欢gettext_i18n_rails与模板文本一起使用的方式,但它没有为DB数据提供任何解决方案(或者它是什么?)。从另一方面来看,r18n-rails和globalize3似乎可以完成DB数据的工作,但不能用于模板。起初我想把它们组合起来(globalize或r18n + gettext_i18n_rails),但这可能是一个好主意,特别是如果这将是一个大项目。

所以我的问题是:

考虑到模板文本+ DB文本+项目大小,Rails 3的最佳I18n方法是什么?

1 个答案:

答案 0 :(得分:5)

Rails 3中的最佳方法是使用内置机制the I18n gem。 我不确定我是否了解DB数据的问题。如果您在数据库中定义类别,只需向它们添加一个i18n键,然后在模型中返回已翻译的标题。

e.g。

class Category
  # with a column that holds the i18n_lookup_key (maybe you think of a better name)
  ...

  def translated_title
    I18n.translate(i18n_lookup_key)
  end

end

然后您可以使用translated_title方法显示类别的标题。

如果您对Rails中的I18n有更多疑问,我们只是在我们的博客上做了一系列:

Internationalization (I18n) API in Ruby on Rails 3 (Part I)

  • 国际化的定义&定位
  • i18n机制如何在Rails中运行
  • 关于i18n机制的设置/配置
  • 使用带插值的I18n
  • 使用带复数的I18n

Internationalization (I18n) API in Ruby on Rails 3 (Part II)

  • 时间/日期的本地化
  • 使用视图进行翻译
  • 翻译ActiveRecord错误
  • 资源文件的组织
  • 从域名设置区域设置
  • 从网址参数设置区域设置

Part 3 is coming out next week, with a PDF including all the topics.