mirror of
https://github.com/discourse/discourse.git
synced 2025-02-06 19:38:24 +00:00
a16faa27cd
When searching for site texts for admin using the english version of the text, previously we would show the english version in the results _even if_ there was another locale translated version available when a locale was selected from the dropdown. This commit adds a "Only show results in selected locale" checkbox option which will instead make it so the results shown are in the target locale, making it easier for translators to tell when there is actually translations vs. missing tranlsations.
120 lines
4.4 KiB
Ruby
120 lines
4.4 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
describe "Admin Site Texts Page", type: :system do
|
|
fab!(:admin)
|
|
|
|
let(:site_texts_page) { PageObjects::Pages::AdminSiteTexts.new }
|
|
|
|
before { sign_in(admin) }
|
|
|
|
it "can search for client text using the default locale" do
|
|
site_texts_page.visit
|
|
site_texts_page.search("skip to main content")
|
|
expect(site_texts_page).to have_translation_key("js.skip_to_main_content")
|
|
expect(site_texts_page).to have_translation_value(I18n.t("js.skip_to_main_content"))
|
|
|
|
site_texts_page.visit
|
|
site_texts_page.search("js.skip_to_main_content")
|
|
expect(site_texts_page).to have_translation_key("js.skip_to_main_content")
|
|
expect(site_texts_page).to have_translation_value(I18n.t("js.skip_to_main_content"))
|
|
end
|
|
|
|
it "can search for server text using the default locale" do
|
|
site_texts_page.visit
|
|
site_texts_page.search("Something went wrong updating theme")
|
|
expect(site_texts_page).to have_translation_key("themes.other_error")
|
|
expect(site_texts_page).to have_translation_value(I18n.t("themes.other_error"))
|
|
|
|
site_texts_page.visit
|
|
site_texts_page.search("themes.other_error")
|
|
expect(site_texts_page).to have_translation_key("themes.other_error")
|
|
expect(site_texts_page).to have_translation_value(I18n.t("themes.other_error"))
|
|
end
|
|
|
|
it "can search for text using the selected locale" do
|
|
site_texts_page.visit
|
|
site_texts_page.select_locale("it")
|
|
site_texts_page.search("Passa al contenuto principale")
|
|
expect(site_texts_page).to have_translation_key("js.skip_to_main_content")
|
|
expect(site_texts_page).to have_translation_value(
|
|
I18n.t("js.skip_to_main_content", locale: "it"),
|
|
)
|
|
|
|
site_texts_page.visit
|
|
site_texts_page.select_locale("it")
|
|
site_texts_page.search("js.skip_to_main_content")
|
|
expect(site_texts_page).to have_translation_key("js.skip_to_main_content")
|
|
expect(site_texts_page).to have_translation_value(
|
|
I18n.t("js.skip_to_main_content", locale: "it"),
|
|
)
|
|
end
|
|
|
|
it "can show only overridden translations" do
|
|
site_texts_page.visit
|
|
site_texts_page.search("skip")
|
|
site_texts_page.toggle_only_show_overridden
|
|
expect(page).to have_css(".site-text", count: 0)
|
|
|
|
TranslationOverride.create!(
|
|
locale: "en",
|
|
translation_key: "js.skip_to_main_content",
|
|
value: "Overridden skip text",
|
|
original_translation: I18n.t("js.skip_to_main_content"),
|
|
)
|
|
I18n.reload!
|
|
|
|
site_texts_page.visit
|
|
site_texts_page.search("skip")
|
|
site_texts_page.toggle_only_show_overridden
|
|
expect(page).to have_css(".site-text", count: 1)
|
|
expect(site_texts_page).to have_translation_key("js.skip_to_main_content")
|
|
end
|
|
|
|
it "can show only outddated translations" do
|
|
site_texts_page.visit
|
|
site_texts_page.search("skip")
|
|
site_texts_page.toggle_only_show_outdated
|
|
expect(page).to have_css(".site-text", count: 0)
|
|
|
|
TranslationOverride.create!(
|
|
locale: "en",
|
|
translation_key: "js.skip_to_main_content",
|
|
value: "Overridden skip text",
|
|
original_translation: I18n.t("js.skip_to_main_content"),
|
|
status: "outdated",
|
|
)
|
|
I18n.reload!
|
|
|
|
site_texts_page.visit
|
|
site_texts_page.search("skip")
|
|
site_texts_page.toggle_only_show_outdated
|
|
expect(page).to have_css(".site-text", count: 1)
|
|
expect(site_texts_page).to have_translation_key("js.skip_to_main_content")
|
|
end
|
|
|
|
it "can show results in the selected locale" do
|
|
site_texts_page.visit
|
|
site_texts_page.search("skip to main content")
|
|
expect(site_texts_page).to have_translation_key("js.skip_to_main_content")
|
|
expect(site_texts_page).to have_translation_value(I18n.t("js.skip_to_main_content"))
|
|
|
|
site_texts_page.toggle_only_show_results_in_selected_locale
|
|
site_texts_page.select_locale("it")
|
|
expect(site_texts_page).to have_translation_key("js.skip_to_main_content")
|
|
expect(site_texts_page).to have_translation_value(
|
|
I18n.t("js.skip_to_main_content", locale: "it"),
|
|
)
|
|
end
|
|
|
|
it "can edit a translation string" do
|
|
site_texts_page.visit
|
|
site_texts_page.search("skip to main content")
|
|
site_texts_page.edit_translation("js.skip_to_main_content")
|
|
site_texts_page.override_translation("Some overridden value")
|
|
site_texts_page.visit
|
|
site_texts_page.search("js.skip_to_main_content")
|
|
expect(site_texts_page).to have_translation_value("Some overridden value")
|
|
expect(TranslationOverride.exists?(translation_key: "js.skip_to_main_content")).to eq(true)
|
|
end
|
|
end
|