From 5fe603ac288d4432be77cfa851e86ad66fd48d53 Mon Sep 17 00:00:00 2001 From: Hitoshi Nakashima Date: Fri, 19 Jan 2018 05:22:10 +0900 Subject: Add locale selector to email preview (#31596) - Add set_locale to detect suitable locale - Make feature compatible with Rails 5.x --- railties/lib/rails/mailers_controller.rb | 12 ++++++-- .../rails/templates/rails/mailers/email.html.erb | 35 +++++++++++++++------- 2 files changed, 35 insertions(+), 12 deletions(-) (limited to 'railties/lib') diff --git a/railties/lib/rails/mailers_controller.rb b/railties/lib/rails/mailers_controller.rb index 66636e5d6b..0b0e802358 100644 --- a/railties/lib/rails/mailers_controller.rb +++ b/railties/lib/rails/mailers_controller.rb @@ -6,9 +6,9 @@ class Rails::MailersController < Rails::ApplicationController # :nodoc: prepend_view_path ActionDispatch::DebugExceptions::RESCUES_TEMPLATE_PATH before_action :require_local!, unless: :show_previews? - before_action :find_preview, only: :preview + before_action :find_preview, :set_locale, only: :preview - helper_method :part_query + helper_method :part_query, :locale_query def index @previews = ActionMailer::Preview.all @@ -84,4 +84,12 @@ class Rails::MailersController < Rails::ApplicationController # :nodoc: def part_query(mime_type) request.query_parameters.merge(part: mime_type).to_query end + + def locale_query(locale) + request.query_parameters.merge(locale: locale).to_query + end + + def set_locale + I18n.locale = params[:locale] || I18n.default_locale + end end diff --git a/railties/lib/rails/templates/rails/mailers/email.html.erb b/railties/lib/rails/templates/rails/mailers/email.html.erb index 89c1129f90..44c400a7e6 100644 --- a/railties/lib/rails/templates/rails/mailers/email.html.erb +++ b/railties/lib/rails/templates/rails/mailers/email.html.erb @@ -96,10 +96,22 @@ <% end %> <% if @email.multipart? %> +
Format:
- + + + +
+ <% end %> + + <% if I18n.available_locales.count > 1 %> +
Locale:
+
+
<% end %> @@ -116,15 +128,18 @@ <% end %> -- cgit v1.2.3