summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'MLEB/Translate/resources/js/ext.translate.special.translate.js')
-rw-r--r--MLEB/Translate/resources/js/ext.translate.special.translate.js73
1 files changed, 43 insertions, 30 deletions
diff --git a/MLEB/Translate/resources/js/ext.translate.special.translate.js b/MLEB/Translate/resources/js/ext.translate.special.translate.js
index 63cac603..1b80061a 100644
--- a/MLEB/Translate/resources/js/ext.translate.special.translate.js
+++ b/MLEB/Translate/resources/js/ext.translate.special.translate.js
@@ -70,8 +70,8 @@
uri.extend( params );
// Support removing keys from the query
- $.each( params, function ( key, val ) {
- if ( val === null ) {
+ Object.keys( params ).forEach( function ( key ) {
+ if ( params[ key ] === null ) {
delete uri.query[ key ];
}
} );
@@ -143,18 +143,18 @@
/**
* Updates all group specific stuff on the page.
*
- * @param {Object} state Information about current group and language.
- * @param {string} state.group Message group id.
- * @param {string} state.language Language.
+ * @param {Object} stateInfo Information about current group and language.
+ * @param {string} stateInfo.group Message group id.
+ * @param {string} stateInfo.language Language.
*/
- function updateGroupInformation( state ) {
+ function updateGroupInformation( stateInfo ) {
var props = 'id|priority|prioritylangs|priorityforce|description';
- mw.translate.recentGroups.append( state.group );
+ mw.translate.recentGroups.append( stateInfo.group );
- mw.translate.getMessageGroup( state.group, props ).done( function ( group ) {
+ mw.translate.getMessageGroup( stateInfo.group, props ).done( function ( group ) {
updateDescription( group );
- updateGroupWarning( group, state.language );
+ updateGroupWarning( group, stateInfo.language );
} );
}
@@ -179,37 +179,50 @@
}
function updateGroupWarning( group, language ) {
- var preferredLanguages, headerMessage, languagesMessage,
+ var $preferredLanguages, headerMessage, languagesMessage,
$groupWarning = $( '.tux-editor-header .group-warning' );
- if ( isPriorityLanguage( language, group.prioritylangs ) ) {
+ if ( !group.prioritylangs || isPriorityLanguage( language, group.prioritylangs ) ) {
return;
}
// Make a comma-separated list of preferred languages
- preferredLanguages = $.map( group.prioritylangs, function ( lang ) {
+ $preferredLanguages = $( '<span>' );
+ group.prioritylangs.forEach( function ( languageCode, index ) {
// bidi isolation for language names
- return '<bdi>' + $.uls.data.getAutonym( lang ) + '</bdi>';
- } ).join( ', ' );
+ $preferredLanguages.append(
+ $( '<bdi>' ).text( $.uls.data.getAutonym( languageCode ) )
+ );
- headerMessage = mw.message(
- group.priorityforce ?
- 'tpt-discouraged-language-force-header' :
- 'tpt-discouraged-language-header',
- $.uls.data.getAutonym( language )
- ).parse();
+ // Add comma between languages
+ if ( index + 1 !== group.prioritylangs.length ) {
+ $preferredLanguages.append( ', ' );
+ }
+ } );
- languagesMessage = mw.message(
- group.priorityforce ?
- 'tpt-discouraged-language-force-content' :
+ if ( group.priorityforce ) {
+ headerMessage = mw.message(
+ 'tpt-discouraged-language-force-header',
+ $.uls.data.getAutonym( language )
+ );
+ languagesMessage = mw.message(
+ 'tpt-discouraged-language-force-content',
+ $preferredLanguages
+ );
+ } else {
+ headerMessage = mw.message(
+ 'tpt-discouraged-language-header',
+ $.uls.data.getAutonym( language )
+ );
+ languagesMessage = mw.message(
'tpt-discouraged-language-content',
- preferredLanguages
- ).parse();
+ $preferredLanguages
+ );
+ }
$groupWarning.append(
- $( '<p>' ).append( $( '<strong>' ).text( headerMessage ) ),
- // html because of the <bdi> and because it's parsed
- $( '<p>' ).html( languagesMessage )
+ $( '<p>' ).append( $( '<strong>' ).text( headerMessage.text() ) ),
+ $( '<p>' ).append( languagesMessage.parseDom() )
);
}
@@ -388,11 +401,11 @@
} );
$( '#tux-option-optional' ).on( 'change', function () {
- var uri = new mw.Uri( window.location.href ),
+ var currentUri = new mw.Uri( window.location.href ),
checked = $( this ).prop( 'checked' );
mw.translate.changeUrl( { optional: checked ? 1 : 0 } );
- mw.translate.changeFilter( uri.query.filter );
+ mw.translate.changeFilter( currentUri.query.filter );
} );
} );