Ruby 面试题
目录

Ruby on Rails 中如何进行国际化 (I18n)?

· 约 3 分钟读完 · 第 158 / 199 章

推荐答案

在 Ruby on Rails 中进行国际化 (I18n) 的步骤如下:

  1. 配置默认语言: 在 config/application.rb 文件中设置默认语言:

  2. 创建翻译文件: 在 config/locales 目录下创建 YAML 文件,例如 en.yml 和 zh-CN.yml,并在文件中定义翻译内容:

  3. 在视图中使用翻译: 在视图中使用 t 方法来获取翻译内容:

  4. 切换语言: 在控制器中通过 I18n.locale 来切换语言:

  5. 在 URL 中传递语言参数: 在路由中设置语言参数:

本题详细解读

1. 配置默认语言

Rails 默认使用 :en 作为默认语言。你可以在 config/application.rb 中通过 config.i18n.default_locale 来设置默认语言。例如,设置为中文:

2. 创建翻译文件

Rails 的国际化功能依赖于 YAML 文件来存储翻译内容。这些文件通常放在 config/locales 目录下。每个文件对应一种语言,文件名为语言代码,例如 en.yml 对应英文,zh-CN.yml 对应简体中文。

3. 在视图中使用翻译

在视图中,你可以使用 t 方法来获取翻译内容。t 方法接受一个键值作为参数,并返回对应的翻译内容。例如:

如果当前语言是英文,则输出 "Hello";如果是中文,则输出 "你好"。

4. 切换语言

为了支持多语言切换,你可以在控制器中使用 I18n.with_locale 方法来临时切换语言。通常,你可以通过 URL 参数来传递语言代码,并在控制器中根据参数来设置当前语言。

5. 在 URL 中传递语言参数

为了让用户能够通过 URL 切换语言,你可以在路由中设置语言参数。例如:

这样,用户可以通过 /en/posts 或 /zh-CN/posts 来访问不同语言的内容。