User:Amire80/allMessages.js
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
( function () {
'use strict';
var $allMessagesTable, keys, label, $hideDifferents, labelKey, i18n,
$directTranslateLink, targetIcon;
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) !== 'Allmessages' ) {
return;
}
mw.log( 'Processing Allmessages' );
$allMessagesTable = $( '#mw-allmessagestable' );
$hideDifferents = $( '<a>' );
targetIcon = '🎯';
labelKey = 'hide-differents-hide-differents-label';
i18n = {
"en": {
"hide-differents-hide-differents-label": "Hide differents"
},
"he": {
"hide-differents-hide-differents-label": "הסתרת שונות"
},
"ru": {
"hide-differents-hide-differents-label": "Спрятать разные"
}
};
keys = i18n[ $( 'html' ).prop( 'lang' ) ];
if ( !keys ) {
keys = i18n.en;
}
label = keys[ labelKey ];
$hideDifferents
.prop( 'href', '#' )
.text( label )
.on( 'click', function () {
var $defaults, $actuals;
$defaults = $( 'td.am_default' );
$actuals = $( 'td.am_actual' );
$defaults.each( function ( i, defaultElement ) {
var $default, $actual;
$default = $( defaultElement );
$actual = $( $actuals.get( i ) );
if ( $default.text() !== $actual.text() ) {
$actual.parent().remove();
$default.parent().remove();
}
} );
} );
$allMessagesTable.after( $hideDifferents );
$allMessagesTable.find( 'tbody' ).each( function ( i, tbody ) {
var $td = $( tbody ).find( 'tr' ).first().find( 'td' ).first(),
$links = $td.find( 'a' );
$directTranslateLink = $( '<a>' )
.text( targetIcon )
.prop( {
'href': 'https://translatewiki.net/wiki/MediaWiki:' +
$links.first().text() +
'/' + mw.config.get( 'wgContentLanguage' )
} );
$links.last().after( $directTranslateLink );
} );
} )();