環境

  • rails: rails 5.2.3

方法

Gem Errgent を使用して実現する

確認

config/environments/development.rb の以下を編集して確認する

config.consider_all_requests_local = false

実際のコード

例. エラーコード 404, 500 ロケール毎に静的エラーページを生成する
=> 生成されるファイル 例. public/404.ja.html

desc 'Generate Error Pages'
task generate_error_pages: :environment do
  I18n.available_locales.each do |locale|
    I18n.locale = locale

    renderer = Errgent::Renderer.new(
      codes: [404, 500]
      layout: 'layouts/error_page', # where to find your layout by default
      output: "public/%s.#{locale}.html" # where to put generated pages by default, %s is the replacement for @code
    )

    renderer.render
  end

  I18n.locale = I18n.default_locale
end