summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/Translate/resources/js/ext.translate.hooks.js
blob: 7b2628fa664b5313ebe8f719d49b29d9bb6d5603 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/*!
 * JavaScript hook framework for Translate (since MediaWiki code doesn't
 * yet have one. See hooks.txt in Translate directory for how to use hooks.
 *
 * @author Harry Burt
 * @license GPL-2.0+
 * @since 2012-08-22
 */

( function ( mw ) {
	'use strict';

	var registry = {};

	mw.translateHooks = {
		add: function ( name, func ) {
			if ( !registry[ name ] ) {
				registry[ name ] = [];
			}
			registry[ name ].push( func );
		},

		run: function ( /* infinite list of parameters */ ) {
			var args, name, length, i;

			args = Array.prototype.slice.call( arguments );
			name = args.shift();

			if ( registry[ name ] ) {
				length = registry[ name ].length;

				for ( i = 0; i < length; i++ ) {
					registry[ name ][ i ].apply( null, args );
				}
			}
		}
	};
}( mediaWiki ) );