跳转至主要内容
Ruby on Rails i18n

Ruby on Rails 的 i18n:基于约定(Convention-Based)的翻译管理

Ruby on Rails 包含一个内置的 I18n API,该 API 使用 YAML 语言环境文件来管理翻译。该框架遵循“约定优于配置”的原则,支持视图中的延迟查找、自动复数规则以及插值功能。Rails 开箱即用地提供了针对日期、数字和货币的语言环境感知辅助方法,其备用机制可确保在翻译缺失时实现优雅降级。

Ruby on Rails 的国际化 (i18n) 功能

config/locales 目录下的 YAML 语言环境文件,采用嵌套键结构
用于翻译和支持区域设置的格式化的 I18n.t() 和 I18n.l() API
内置复数形式生成功能,支持“one/other”规则及自定义复数后端
在翻译字符串中使用 % {variable} 语法进行变量插值
在视图中使用 t('.key') 进行懒加载以实现自动作用域解析
用于优雅处理缺失翻译的备用区域设置链
使用 route_translator 或类似 gem 翻译路由和 URL 助手
用于基于数据库的多语言内容的 ActiveRecord 模型翻译
支持区域设置的日期、时间、数字和货币格式化辅助函数

Rails 国际化实践

在 YAML 语言环境文件中定义翻译,在控制器和视图中使用带插值的 t() 函数,并在 ERB 模板中渲染本地化内容。

# config/locales/en.yml
en:
  welcome: "Welcome to %{app_name}"
  items:
    one: "%{count} item"
    other: "%{count} items"

# app/controllers/home_controller.rb
class HomeController < ApplicationController
  def index
    @welcome = t('welcome', app_name: 'My App')
    @items = t('items', count: 5)
  end
end

# app/views/home/index.html.erb
<h1><%= @welcome %></h1>
<p><%= @items %></p>

立即开始 Rails 本地化

借助人工智能驱动的工作流、CLI 同步以及 50 毫秒内的 CDN 交付,管理您的 Rails YAML 翻译。