Merge "Show input methods for selected language correctly"
This commit is contained in:
@@ -95,7 +95,6 @@
|
|||||||
this.$template.find( '.enabled-only' ).addClass( 'hide' );
|
this.$template.find( '.enabled-only' ).addClass( 'hide' );
|
||||||
}
|
}
|
||||||
this.prepareLanguages();
|
this.prepareLanguages();
|
||||||
this.prepareInputmethods( $.ime.preferences.getLanguage() );
|
|
||||||
this.prepareToggleButton();
|
this.prepareToggleButton();
|
||||||
this.$template.i18n();
|
this.$template.i18n();
|
||||||
this.listen();
|
this.listen();
|
||||||
@@ -196,7 +195,7 @@
|
|||||||
prepareLanguages: function () {
|
prepareLanguages: function () {
|
||||||
var inputSettings = this,
|
var inputSettings = this,
|
||||||
SUGGESTED_LANGUAGES_NUMBER = 3,
|
SUGGESTED_LANGUAGES_NUMBER = 3,
|
||||||
firstLanguage = this.contentLanguage,
|
currentLanguage = this.contentLanguage,
|
||||||
selectedImeLanguage = $.ime.preferences.getLanguage(),
|
selectedImeLanguage = $.ime.preferences.getLanguage(),
|
||||||
languagesForButtons, $languages, suggestedLanguages,
|
languagesForButtons, $languages, suggestedLanguages,
|
||||||
lang, i, language, $button, $caret;
|
lang, i, language, $button, $caret;
|
||||||
@@ -216,21 +215,21 @@
|
|||||||
// after selecting a different language
|
// after selecting a different language
|
||||||
$languages.empty();
|
$languages.empty();
|
||||||
|
|
||||||
// UI language must always be present
|
|
||||||
if ( this.imeLanguage !== this.contentLanguage &&
|
|
||||||
$.uls.data.languages[this.imeLanguage]
|
|
||||||
) {
|
|
||||||
languagesForButtons.push( this.imeLanguage );
|
|
||||||
firstLanguage = this.imeLanguage;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Selected IME language may be different, and it must
|
// Selected IME language may be different, and it must
|
||||||
// be present, too
|
// be present, too
|
||||||
if ( $.inArray( selectedImeLanguage, languagesForButtons ) === -1 &&
|
if ( $.inArray( selectedImeLanguage, languagesForButtons ) === -1 &&
|
||||||
$.uls.data.languages[selectedImeLanguage]
|
$.uls.data.languages[selectedImeLanguage]
|
||||||
) {
|
) {
|
||||||
languagesForButtons.push( selectedImeLanguage );
|
languagesForButtons.push( selectedImeLanguage );
|
||||||
firstLanguage = selectedImeLanguage;
|
currentLanguage = selectedImeLanguage;
|
||||||
|
}
|
||||||
|
|
||||||
|
// UI language must always be present
|
||||||
|
if ( this.imeLanguage !== this.contentLanguage &&
|
||||||
|
$.uls.data.languages[this.imeLanguage]
|
||||||
|
) {
|
||||||
|
languagesForButtons.push( this.imeLanguage );
|
||||||
|
currentLanguage = this.imeLanguage;
|
||||||
}
|
}
|
||||||
|
|
||||||
for ( lang in suggestedLanguages ) {
|
for ( lang in suggestedLanguages ) {
|
||||||
@@ -251,7 +250,10 @@
|
|||||||
return function () {
|
return function () {
|
||||||
var selectedLanguage = button.data( 'language' ) || inputSettings.imeLanguage;
|
var selectedLanguage = button.data( 'language' ) || inputSettings.imeLanguage;
|
||||||
|
|
||||||
inputSettings.enableApplyButton();
|
if ( selectedLanguage !== inputSettings.imeLanguage ) {
|
||||||
|
inputSettings.enableApplyButton();
|
||||||
|
}
|
||||||
|
|
||||||
$.ime.preferences.setLanguage( selectedLanguage );
|
$.ime.preferences.setLanguage( selectedLanguage );
|
||||||
$( '.uls-ui-languages .button' ).removeClass( 'down' );
|
$( '.uls-ui-languages .button' ).removeClass( 'down' );
|
||||||
button.addClass( 'down' );
|
button.addClass( 'down' );
|
||||||
@@ -270,16 +272,16 @@
|
|||||||
dir: $.uls.data.getDir( language )
|
dir: $.uls.data.getDir( language )
|
||||||
} );
|
} );
|
||||||
|
|
||||||
if ( language === firstLanguage ) {
|
|
||||||
$button.addClass( 'down' );
|
|
||||||
}
|
|
||||||
|
|
||||||
$button.data( 'language', language );
|
$button.data( 'language', language );
|
||||||
$caret = $( '<span>' ).addClass( 'uls-input-settings-caret' );
|
$caret = $( '<span>' ).addClass( 'uls-input-settings-caret' );
|
||||||
|
|
||||||
$languages.append( $button, $caret );
|
$languages.append( $button, $caret );
|
||||||
|
|
||||||
$button.on( 'click', buttonHandler( $button ) );
|
$button.on( 'click', buttonHandler( $button ) );
|
||||||
|
|
||||||
|
if ( language === currentLanguage ) {
|
||||||
|
$button.click();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.prepareMoreLanguages();
|
this.prepareMoreLanguages();
|
||||||
@@ -333,7 +335,6 @@
|
|||||||
inputSettings.imeLanguage = langCode;
|
inputSettings.imeLanguage = langCode;
|
||||||
inputSettings.$parent.show();
|
inputSettings.$parent.show();
|
||||||
inputSettings.prepareLanguages();
|
inputSettings.prepareLanguages();
|
||||||
inputSettings.prepareInputmethods( langCode );
|
|
||||||
},
|
},
|
||||||
languages: mw.ime.getLanguagesWithIME(),
|
languages: mw.ime.getLanguagesWithIME(),
|
||||||
lazyload: false
|
lazyload: false
|
||||||
|
|||||||
Reference in New Issue
Block a user