---
# System prepended metadata

title: Rails Guides/I18n
tags: [Rails Guides]

---

---
title: Rails Guides/I18n
description: Ruby on Rails 官方指南
tags: Rails Guides
---

# Rails Internationalization (I18n) API
> https://guides.rubyonrails.org/i18n.html

隨 Ruby on Rails (Rails 2.2 開始)附帶的 Ruby I18n( internationalization 的速記) gem，提供了一個易於使用且可擴展的框架，用於將您的 application 翻譯英語以外的單一自定義語言或多國語系支援。

"國際化(internationalization)" 的過程通常意味著從您的 applicationn 中提取所有字串和其他特定於語言環境的元素(例如日期或貨幣格式)。
"本地化(localization)" 的過程意味著為這些字串和元素進行翻譯。

因此，在國際化 Rails 應用程序的過程中，您必須：
:heavy_check_mark: 確保您支援 i18n
:heavy_check_mark: 告訴 Rails 哪裡可以找到語言環境字典
:heavy_check_mark: 告訴 Rails 如何設置、保留和切換語言環境

在本地化的過程中，您可能需要做以下三件事：
:heavy_check_mark: 替換或補充 Rails 的默認語言環境 - 例如日期和時間格式、月份名稱、Active Record Model 名稱等
:heavy_check_mark: 將 application 中的字串取出編成間字典 - 例如 flash message、view 當中的靜態文字等
:heavy_check_mark: 將生成的字典存儲在某處

本指南將引導您了解 I18n API，並包含有關如何從一開始就國際化 Rails application 的教程。

:heavy_check_mark: I18n 如何在 Ruby on Rails 中運作
:heavy_check_mark: 將 I18n 正確使用到 RESTful application 中的方式
:heavy_check_mark: 如何使用 I18n 翻譯 Active Record errors 或 Action Mailer subjects
:heavy_check_mark: 可以進一步完成 application 翻譯過程的其他工具

:::warning
Ruby I18n 框架為您提供了 Rails application 國際化/本地化的所有必要手段。您還可以使用各種可用的 gem 來添加其他功能或特性。有關更多信息，請參閱 [rails-i18n gem](https://github.com/svenfuchs/rails-i18n)。
:::

## 1. Ruby on Rails 中的 I18n 如何運作
> https://guides.rubyonrails.org/i18n.html#how-i18n-in-ruby-on-rails-works

國際化是一個複雜的問題。自然語言在很多方面(例如在複數規則上)不同，以至於很難提供一次解決所有問題的工具。為此，Rails I18n API 側重於：
- 提供對英語和類似語言的開箱即用支援
- 使其他語言的客製化和擴展變得容易

作為此解決方案的一部分，Rails 框架中的每個靜態字符串 - 例如Active Record 驗證消息、時間和日期格式 - 已國際化。 Rails 應用程序的本地化意味著以所需語言為這些字符串定義翻譯值。
As part of this solution, every static string in the Rails framework - e.g. Active Record validation messages, time and date formats - has been internationalized. Localization of a Rails application means defining translated values for these strings in desired languages.

To localize store and update content in your application (e.g. translate blog posts), see the Translating model content section.
