' ).addClass( 'tux-untranslated' ),
$info: $( '' ).addClass( 'tux-statsbar-info hide' )
};
this.update();
this.$statsBar.append( [
// Append needs an array instead of an object
this.elements.$proofread,
this.elements.$translated,
this.elements.$fuzzy,
this.elements.$untranslated,
this.elements.$info
] );
this.$container.append( this.$statsBar );
this.listen();
},
update: function () {
var proofread, translated, fuzzy, untranslated,
stats = this.getStatsForGroup( this.group );
proofread = 100 * stats.proofread / stats.total;
// Proofread messages are also translated, so remove those for
// the bar showing only translated count.
translated = stats.translated - stats.proofread;
translated = 100 * translated / stats.total;
fuzzy = 100 * stats.fuzzy / stats.total;
untranslated = 100 - proofread - translated - fuzzy;
this.elements.$proofread[ 0 ].style.width = proofread + '%';
this.elements.$translated[ 0 ].style.width = translated + '%';
this.elements.$fuzzy[ 0 ].style.width = fuzzy + '%';
this.elements.$untranslated[ 0 ].style.width = untranslated + '%';
translated = !translated ? 0 : translated + proofread;
proofread = !proofread ? 0 : proofread;
if ( fuzzy ) {
this.elements.$info
.text( mw.msg( 'translate-statsbar-tooltip-with-fuzzy',
translated.toFixed(), proofread.toFixed(),
fuzzy.toFixed() ) );
} else {
this.elements.$info
.text( mw.msg( 'translate-statsbar-tooltip',
translated.toFixed(), proofread.toFixed() ) );
}
},
getStatsForGroup: function ( group ) {
var i,
languageStats = mw.translate.languagestats[ this.language ];
for ( i = 0; i < languageStats.length; i++ ) {
if ( languageStats[ i ].group === group ) {
return languageStats[ i ];
}
}
return {
proofread: 0,
total: 0,
fuzzy: 0,
translated: 0
};
}
};
/*
* languagestatsbar PLUGIN DEFINITION
*/
$.fn.languagestatsbar = function ( options ) {
return this.each( function () {
var $this = $( this ),
data = $this.data( 'languagestatsbar' );
if ( !data ) {
$this.data( 'languagestatsbar', ( data = new LanguageStatsBar( this, options ) ) );
}
} );
};
$.fn.languagestatsbar.Constructor = LanguageStatsBar;
mw.translate = mw.translate || {};
}() );