在Ruby on Rails中进行国际化(i18n)支持非常简单。以下是一些关键步骤来帮助您实现i18n支持:
在您的Gemfile中添加以下代码以安装i18n gem:
gem 'i18n'
然后运行bundle install
以安装gem。
在config/initializers/i18n.rb
文件中配置您的应用程序的默认语言和区域设置。例如:
I18n.default_locale = :en
这将把默认语言设置为英语。您可以添加更多的语言选项,只需在数组中添加相应的语言代码即可。
在config/locales
目录下为每个支持的语言创建一个YAML文件。例如,对于英语和美国英语,您可以创建以下文件:
config/locales/en.yml
config/locales/en_US.yml
在这些文件中,您可以定义键值对,其中键是您的应用程序中的特定文本字符串,值是相应的翻译。例如:
# config/locales/en.yml
en:
welcome: "Welcome to our website!"
# config/locales/en_US.yml
en_US:
welcome: "Welcome to our website!"
使用I18n.t
方法在您的应用程序中获取翻译后的字符串。例如,在视图中:
<p><%= I18n.t('welcome') %></p>
在控制器中:
def show
@message = I18n.t('welcome')
end
您可以为用户提供切换语言的选项。为此,请在视图中添加一个下拉列表,其中包含所有支持的语言。然后,使用JavaScript或Rails UJS在用户选择新语言时更新I18n.locale
。例如:
<%= select_tag :locale, options_for_select([:en, :en_US], params[:locale]) %>
并在JavaScript中添加以下代码:
document.addEventListener('DOMContentLoaded', function() {
var localeSelect = document.querySelector('select[name="locale"]');
localeSelect.addEventListener('change', function() {
var selectedLocale = this.value;
window.location.href = window.location.pathname + '?locale=' + selectedLocale;
});
});
这样,当用户选择不同的语言时,应用程序将自动切换到相应的翻译。
这就是在Ruby on Rails中实现i18n支持的基本方法。您可以根据需要扩展和自定义这些步骤。