mirror of
https://github.com/discourse/discourse.git
synced 2026-03-04 01:15:08 +08:00
This adds a language dropdown to the welcome banner admin config area, so text from languages beyond the current selection can also be configured. I also fixed the issue described here: https://meta.discourse.org/t/welcome-header-text-site-name-gives-error-the-following-interpolation-key-is-invalid-site-name/392604/, where we were over-promising which variables were available. These are now described per field and are accurate to what's available. I've also added some specs. Before: <img width="600" alt="image" src="https://github.com/user-attachments/assets/aefe5dc2-d833-4a63-b0d0-ae4a743128ab" /> After: <img width="450" alt="image" src="https://github.com/user-attachments/assets/bc3c6556-8b24-47a7-812f-b5050f5f81d6" /> --------- Co-authored-by: Martin Brennan <martin@discourse.org>
63 lines
1.8 KiB
Ruby
63 lines
1.8 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
describe "Admin Welcome Banner Config", type: :system do
|
|
fab!(:admin)
|
|
let(:config_page) { PageObjects::Pages::AdminWelcomeBannerConfig.new }
|
|
|
|
before do
|
|
sign_in(admin)
|
|
SiteSetting.allow_user_locale = true
|
|
end
|
|
|
|
after do
|
|
TranslationOverride.delete_all
|
|
I18n.reload!
|
|
end
|
|
|
|
describe "locale selector" do
|
|
it "displays a locale selector" do
|
|
config_page.visit
|
|
expect(config_page).to have_locale_selector
|
|
end
|
|
|
|
it "switches between locales and loads appropriate translations" do
|
|
TranslationOverride.upsert!(
|
|
"fr",
|
|
"js.welcome_banner.header.new_members",
|
|
"Bienvenue %{preferred_display_name}!",
|
|
)
|
|
TranslationOverride.upsert!("fr", "js.welcome_banner.search_placeholder", "Rechercher")
|
|
|
|
config_page.visit
|
|
|
|
expect(config_page.header_new_members_value).to eq("Welcome, %{preferred_display_name}!")
|
|
expect(config_page.search_placeholder_value).to eq("Search")
|
|
|
|
config_page.select_locale("fr")
|
|
|
|
expect(config_page.header_new_members_value).to eq("Bienvenue %{preferred_display_name}!")
|
|
expect(config_page.search_placeholder_value).to eq("Rechercher")
|
|
end
|
|
|
|
it "saves translations to the selected locale" do
|
|
config_page.visit
|
|
|
|
config_page.select_locale("fr")
|
|
|
|
config_page.fill_header_new_members("Bonjour %{preferred_display_name}!")
|
|
config_page.submit
|
|
|
|
expect(config_page).to have_saved_message
|
|
|
|
french_override =
|
|
TranslationOverride.find_by(
|
|
locale: "fr",
|
|
translation_key: "js.welcome_banner.header.new_members",
|
|
)
|
|
expect(french_override.value).to eq("Bonjour %{preferred_display_name}!")
|
|
|
|
config_page.visit
|
|
expect(config_page.header_new_members_value).to eq("Welcome, %{preferred_display_name}!")
|
|
end
|
|
end
|
|
end
|