(bug 49738) Use correct name for wiki content language

Happens when anonymous user cannot change language, and the
language of the translation differs from the content language.

Change-Id: Ie4f15f1813eec992cfe060baf9cd7dcb5f8a0d95
This commit is contained in:
Niklas Laxström
2013-08-30 12:18:55 +03:00
parent b90208affc
commit 34146ea023
7 changed files with 42 additions and 18 deletions

View File

@@ -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",

View File

@@ -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"
}
}

View File

@@ -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 = $( '<p>' )
.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' ) + '&#160;' ),
$( '<span>' )
.text( $.i18n( 'ext-uls-display-settings-anon-same-as-content' ) )
.text( $.i18n( 'ext-uls-display-settings-anon-same-as-content', autonym ) )
),
$loginCta
);

View File

@@ -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

View File

@@ -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

View File

@@ -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')

View File

@@ -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