J'écrirai ce que j'ai fait lorsque j'ai essayé de soutenir l'anglais dans l'application Web que je développe.
Gemfile
gem 'rails-i18n'
Installation
bundle
config/application.rb
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]
#Langue correspondante. Cette fois en japonais(ja)Et anglais(en)Seulement
config.i18n.available_locales = %i(ja en)
#Définir s'il faut faire une erreur lorsqu'une langue autre que les langues prises en charge ci-dessus est spécifiée
config.i18n.enforce_available_locales = true
#Langage par défaut
config.i18n.default_locale = :ja
controller
controller/application_controller.rb
before_action :set_locale
def set_locale
I18n.locale = locale
end
def locale
@locale ||= params[:locale] ||= I18n.default_locale
end
def default_url_options(options={})
options.merge(locale: locale)
end
routes.rb
routes.rb
scope '(:locale)', locale: /#{I18n.available_locales.map(&:to_s).join('|')}/ do
root "posts#index"
resources :posts
end
La partie entourée par la portée est la page qui prend en charge plusieurs langues.
Créez en.yml et ja.yml. Pour les phrases que vous souhaitez multilingues
views
<%= t(:hello) %>
Écrire. N'hésitez pas à changer bonjour
ja.yml
ja:
hello:Bonjour
#Tous les modèles commencent à partir d'activerecord.
#Cela permettra à l'utilisateur.model_name.human / User.human_attribute_name({attr_name})Accessible avec.
activerecord:
models:
user: 'Informations de l'utilisateur'
attributes:
user:
name: 'Nom'
mail: 'adresse mail'
url: 'page Web'
en.yml
en:
hello: "hello"
#Tous les modèles commencent à partir d'activerecord.
#Cela permettra à l'utilisateur.model_name.human / User.human_attribute_name({attr_name})Accessible avec.
activerecord:
models:
user: 'User'
attributes:
user:
name: 'Name'
mail: 'Email'
url: 'URL'
Je vais le faire comme ça.
référence http://alfa.hatenablog.jp/entry/2013/12/03/221308
Recommended Posts