在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支持的基本方法。您可以根據需要擴展和自定義這些步驟。