From af1e11838ce63646f648352d2f3388a03869a689 Mon Sep 17 00:00:00 2001 From: decabeza Date: Fri, 10 Apr 2020 12:17:27 +0200 Subject: [PATCH] Fix custom translations with options --- config/initializers/i18n_translation.rb | 6 ++++- .../information_texts_spec.rb | 22 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/config/initializers/i18n_translation.rb b/config/initializers/i18n_translation.rb index fc4490dcb..1b567065f 100644 --- a/config/initializers/i18n_translation.rb +++ b/config/initializers/i18n_translation.rb @@ -12,7 +12,11 @@ module ActionView i18_content = I18nContent.find_by(key: key) translation = I18nContentTranslation.find_by(i18n_content_id: i18_content&.id, locale: current_locale)&.value - translation.presence || translate(key, options) + if translation.present? + translation % options + else + translate(key, options) + end end end end diff --git a/spec/features/site_customization/information_texts_spec.rb b/spec/features/site_customization/information_texts_spec.rb index d24263b50..002128722 100644 --- a/spec/features/site_customization/information_texts_spec.rb +++ b/spec/features/site_customization/information_texts_spec.rb @@ -30,4 +30,26 @@ describe "Custom information texts" do expect(page).not_to have_content "Help about proposals" end end + + scenario "Show custom text with options", :js do + admin = create(:administrator) + user = create(:user, username: "Rachel") + create(:budget_investment, author_id: user.id) + + intro_key = "mailers.budget_investment_created.intro" + create(:i18n_content, key: intro_key, value_en: "Hi %{author}") + + login_as(admin.user) + visit admin_site_customization_information_texts_path(tab: "mailers") + + expect(page).to have_content "Hi %{author}" + + fill_in "contents[content_#{intro_key}]values[value_en]", with: "Custom hi to %{author}" + click_button "Save" + + visit admin_system_email_view_path("budget_investment_created") + + expect(page).to have_content "Custom hi to Rachel" + expect(page).not_to have_content "%{author}" + end end