From 79bc3d58456a850a7f2d99a2c0e15ff1618c1a0e Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 29 Jan 2018 00:22:20 +0100 Subject: [PATCH] Add direction tags to HTML e-mails for RTL languages (#6373) --- app/helpers/application_helper.rb | 10 +++++++++- app/mailers/application_mailer.rb | 1 + app/mailers/user_mailer.rb | 1 + app/views/layouts/mailer.html.haml | 2 +- app/views/notification_mailer/_status.html.haml | 5 +++-- 5 files changed, 15 insertions(+), 4 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 8ed5c8bda..bab4615a1 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -22,10 +22,18 @@ module ApplicationHelper end def add_rtl_body_class(other_classes) - other_classes = "#{other_classes} rtl" if [:ar, :fa, :he].include?(I18n.locale) + other_classes = "#{other_classes} rtl" if locale_direction == 'rtl' other_classes end + def locale_direction + if [:ar, :fa, :he].include?(I18n.locale) + 'rtl' + else + 'ltr' + end + end + def favicon_path env_suffix = Rails.env.production? ? '' : '-dev' "/favicon#{env_suffix}.ico" diff --git a/app/mailers/application_mailer.rb b/app/mailers/application_mailer.rb index 683b60c86..bf161b9be 100644 --- a/app/mailers/application_mailer.rb +++ b/app/mailers/application_mailer.rb @@ -3,6 +3,7 @@ class ApplicationMailer < ActionMailer::Base layout 'mailer' + helper :application helper :instance helper :mailer diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb index 4104f6cd2..2fc9caba3 100644 --- a/app/mailers/user_mailer.rb +++ b/app/mailers/user_mailer.rb @@ -3,6 +3,7 @@ class UserMailer < Devise::Mailer layout 'mailer' + helper :application helper :instance add_template_helper RoutingHelper diff --git a/app/views/layouts/mailer.html.haml b/app/views/layouts/mailer.html.haml index 6687546fb..e401df10f 100644 --- a/app/views/layouts/mailer.html.haml +++ b/app/views/layouts/mailer.html.haml @@ -7,7 +7,7 @@ %title/ = stylesheet_pack_tag 'mailer' - %body + %body{ dir: locale_direction } %table.email-table{ cellspacing: 0, cellpadding: 0 } %tbody %tr diff --git a/app/views/notification_mailer/_status.html.haml b/app/views/notification_mailer/_status.html.haml index 727e914dc..f82ada146 100644 --- a/app/views/notification_mailer/_status.html.haml +++ b/app/views/notification_mailer/_status.html.haml @@ -1,6 +1,6 @@ - i ||= 0 -%table.email-table{ cellspacing: 0, cellpadding: 0 } +%table.email-table{ cellspacing: 0, cellpadding: 0, dir: 'ltr' } %tbody %tr %td.email-body @@ -24,7 +24,8 @@ %bdi= display_name(status.account) = "@#{status.account.acct}" - = Formatter.instance.format(status) + %div{ dir: rtl_status?(status) ? 'rtl' : 'ltr' } + = Formatter.instance.format(status) %p.status-footer = link_to l(status.created_at), web_url("statuses/#{status.id}")