[ruby on rails]多言語切り替え、i 18 n翻訳使用、ローカルタイムゾーン設定
一、多言語切り替えapp/controllers/application_controller.rbに追加:
gem “rails-i18n” gem “devise-i18n”
実は、翻訳ファイルの名前はeventsです.yml、zh-TW.yml、en.ymlは何でも構いません.重要なのは、YAML構造の第1層がlocaleの名前、すなわちzh-CNに対応することです.Railsはconfig/localesの下のすべてのYAML語彙ファイルをロードします.
三、ローカルタイムゾーンはアプリケーションに設定.rbに追加
before_action :set_locale
def set_locale
if params[:locale] && I18n.available_locales.include?( params[:locale].to_sym )
session[:locale] = params[:locale]
end
I18n.locale = session[:locale] || I18n.default_locale
end
アプリ/views/layouts/application.html.Erbに追加: controller_name, :action => action_name, :locale => "zh-CN" %>
controller_name, :action => action_name, :locale => "en" %>
二、i 18 nを用いてアプリケーションに翻訳する.rbに追加class Application < Rails::Application
config.i18n.default_locale = "zh-CN"
end
config/localesの下にzh-CNを新規作成する.ymlは、model翻訳の場合はactiverecordattributesの下にModel名とフィールド名を追加します.zh-CN:
hello: ~ %{name} :
event_list:
admin:
event_list:
activerecord:
attributes:
event:
name:
event:
status:
draft:
public:
private:
viewでの使用
よく使われるgemもありますgem “rails-i18n” gem “devise-i18n”
実は、翻訳ファイルの名前はeventsです.yml、zh-TW.yml、en.ymlは何でも構いません.重要なのは、YAML構造の第1層がlocaleの名前、すなわちzh-CNに対応することです.Railsはconfig/localesの下のすべてのYAML語彙ファイルをロードします.
三、ローカルタイムゾーンはアプリケーションに設定.rbに追加
class Application < Rails::Application
config.time_zone = "Beijing"
end
これはティムです.nowが表示する時間は北京時間に設定し、データ在庫の時間はまだ8時間差で、データベース時間もローカルに変更するにはアプリケーションが必要です.rbに追加config.active_record.default_timezone = :local