diff --git a/i18n/en.json b/i18n/en.json index 25ade838..03046e47 100644 --- a/i18n/en.json +++ b/i18n/en.json @@ -20,7 +20,7 @@ "ext-uls-display-settings-font-settings": "Font settings", "ext-uls-display-settings-ui-language": "Display language", "ext-uls-display-settings-anon-label": "Display language:", -"ext-uls-display-settings-anon-same-as-content": "English (same as content)", +"ext-uls-display-settings-anon-same-as-content": "$1 (same as content)", "ext-uls-display-settings-anon-log-in-cta": "[[Special:UserLogin|Log in]] to select a different language for menus.", "ext-uls-webfonts-select-for": "Select font for $1", "ext-uls-webfonts-select-for-ui-info": "Font used for user interface", diff --git a/i18n/fi.json b/i18n/fi.json index b06e327f..0e2c1473 100644 --- a/i18n/fi.json +++ b/i18n/fi.json @@ -20,7 +20,7 @@ "ext-uls-display-settings-font-settings": "Kirjasinasetukset", "ext-uls-display-settings-ui-language": "K\u00e4ytt\u00f6liittym\u00e4n kieli", "ext-uls-display-settings-anon-label": "K\u00e4ytt\u00f6liittym\u00e4n kieli:", - "ext-uls-display-settings-anon-same-as-content": "suomi (sama kuin sis\u00e4ll\u00f6n)", + "ext-uls-display-settings-anon-same-as-content": "$1 (sama kuin sis\u00e4ll\u00f6n)", "ext-uls-display-settings-anon-log-in-cta": "[[Special:UserLogin|Kirjaudu sis\u00e4\u00e4n]], jos haluat valita eri kielen valikoille.", "ext-uls-webfonts-select-for": "Kirjasin kielelle $1", "ext-uls-webfonts-select-for-ui-info": "K\u00e4ytt\u00f6liittym\u00e4n kirjasin", @@ -45,4 +45,4 @@ "ext-uls-input-disable-notification": "Sy\u00f6tt\u00f6tavat ovat poistettu k\u00e4yt\u00f6st\u00e4.", "ext-uls-input-disable-notification-undo": "Kumoa", "ext-uls-language-settings-preferences-link": "Lis\u00e4\u00e4 kieliasetuksia" -} \ No newline at end of file +} diff --git a/resources/js/ext.uls.displaysettings.js b/resources/js/ext.uls.displaysettings.js index 5ad9bdb5..3b7e6583 100644 --- a/resources/js/ext.uls.displaysettings.js +++ b/resources/js/ext.uls.displaysettings.js @@ -134,7 +134,7 @@ SUGGESTED_LANGUAGES_NUMBER = 3, anonsAllowed = mw.config.get( 'wgULSAnonCanChangeLanguage' ), languagesForButtons, $languages, suggestedLanguages, - lang, i, language, $button; + lang, i, language, $button, autonym; // Don't let anonymous users change interface language if ( !anonsAllowed && mw.user.isAnon() ) { @@ -144,6 +144,7 @@ }; $loginCta = $( '
' ) .attr( 'id', 'uls-display-settings-anon-log-in-cta' ); + autonym = $.uls.data.getAutonym( this.contentLanguage ); this.$template.find( '.uls-display-settings-language-tab' ) .empty() @@ -153,7 +154,7 @@ .addClass( 'uls-display-settings-anon-label' ) .html( $.i18n( 'ext-uls-display-settings-anon-label' ) + ' ' ), $( '' ) - .text( $.i18n( 'ext-uls-display-settings-anon-same-as-content' ) ) + .text( $.i18n( 'ext-uls-display-settings-anon-same-as-content', autonym ) ) ), $loginCta ); diff --git a/tests/browser/features/persistent_settings.feature b/tests/browser/features/persistent_settings.feature index a75b3729..b13e46ea 100644 --- a/tests/browser/features/persistent_settings.feature +++ b/tests/browser/features/persistent_settings.feature @@ -12,3 +12,10 @@ Feature: Persistent settings And I apply the changes And I visit a random page Then the selected interface font must be "OpenDyslexic" + + Scenario: Discarding a live preview of a font keeps the previous font + When I open "Fonts" panel of language settings + And I select "OpenDyslexic" font for the interface language for the live preview + And I close the panel to discard the changes + And I visit a random page + Then the selected interface font must be "system" diff --git a/tests/browser/features/step_definitions/common_steps.rb b/tests/browser/features/step_definitions/common_steps.rb index 4e427b0c..1f9a992f 100644 --- a/tests/browser/features/step_definitions/common_steps.rb +++ b/tests/browser/features/step_definitions/common_steps.rb @@ -12,12 +12,33 @@ Given(/^I am logged in$/) do loggedin.should be_true end +Given(/^I set "(.*?)" as the interface language$/) do |language| + code = language_to_code(language) + visit(ULSPage, :using_params => {:extra => "setlang=#{code}"}) + # And check it took effect + actual = @browser.execute_script( "return jQuery( 'html' ).attr( 'lang' )" ) + actual.should == code +end + +Given(/^I temporarily use "(.*?)" as the interface language$/) do |language| + code = language_to_code(language) + visit(ULSPage, :using_params => {:extra => "uselang=#{code}"}) +end + +Given(/^the content language is "(.*?)"$/) do |language| + code = language_to_code(language) + actual = @browser.execute_script( "return mw.config.get( 'wgContentLanguage' )" ) + actual.should == code +end + def language_to_code(language) case language when 'German' 'de' when 'English' 'en' + when 'Finnish' + 'fi' else pending end diff --git a/tests/browser/features/step_definitions/panel_steps.rb b/tests/browser/features/step_definitions/panel_steps.rb index e2365146..3caf222d 100644 --- a/tests/browser/features/step_definitions/panel_steps.rb +++ b/tests/browser/features/step_definitions/panel_steps.rb @@ -1,15 +1,5 @@ -Given(/^I set "(.*?)" as the interface language$/) do |language| - code = language_to_code(language) - visit(ULSPage, :using_params => {:setlang => "#{code}"}) - # And check it took effect - actual = @browser.execute_script( "return jQuery( 'html' ).attr( 'lang' )" ) - actual.should == code -end - -Given(/^the content language is "(.*?)"$/) do |language| - code = language_to_code(language) - actual = @browser.execute_script( "return mw.config.get( 'wgContentLanguage' )" ) - actual.should == code +Then(/^I see "(.*?)" as the name of the content language$/) do |text| + @browser.span(:text => "#{text}").should be_visible end Given(/^I inspect current fonts$/) do diff --git a/tests/browser/features/support/pages/panel_page.rb b/tests/browser/features/support/pages/panel_page.rb index 5828647d..fb159a46 100644 --- a/tests/browser/features/support/pages/panel_page.rb +++ b/tests/browser/features/support/pages/panel_page.rb @@ -2,7 +2,7 @@ class ULSPage include PageObject include URL - page_url URL.url('?setlang=<%=params[:setlang]%>') + page_url URL.url('?<%=params[:extra]%>') div(:panel_display, id: 'display-settings-block') div(:panel_input, id: 'input-settings-block') diff --git a/tests/browser/features/uls_settings_panel.feature b/tests/browser/features/uls_settings_panel.feature index a6da8015..abe3ee16 100644 --- a/tests/browser/features/uls_settings_panel.feature +++ b/tests/browser/features/uls_settings_panel.feature @@ -51,3 +51,15 @@ Feature: ULS settings panel And I click X And I open "Language" panel of language settings Then the panel is in English + + Scenario: The name of site content language is correct when translation language is different + + This feature is a bit hard to test. In most cases content language matches + the language of translation. In addition this only applies to anonymous + users in wikis where language changing for anonymous users is disabled. So + to test this we create a somewhat artificial test case by setting the wiki + interface language to a non-default value. + + Given I temporarily use "Finnish" as the interface language + When I open "Language" panel of language settings + Then I see "English (sama kuin sisällön)" as the name of the content language