Jump to content

Manual:Hooks/MessageCacheFetchOverrides

From mediawiki.org
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
MessageCacheFetchOverrides
Available from version 1.41.0 (Gerrit change 884416)
Allows changing message keys to customize them before the translation is accessed
Define function:
public static function onMessageCacheFetchOverrides( array &$keys ) { ... }
Attach hook: In extension.json:
{
	"Hooks": {
		"MessageCacheFetchOverrides": "MediaWiki\\Extension\\MyExtension\\Hooks::onMessageCacheFetchOverrides"
	}
}
Called from: File(s): Language/MessageCache.php
Interface: MessageCacheFetchOverridesHook.php

For more information about attaching hooks, see Manual:Hooks .
For examples of extensions using this hook, see Category:MessageCacheFetchOverrides extensions.

Details

Both the input and output keys must have an initial lowercase character. No spaces can be used in the keys; any spaces must be converted to underscores.

  • &$keys - Array of message keys mapped to their replacement.

Values may be either a string or a callable that returns a string. Callables are provided two arguments: the message key, an instance of MessageCache. Before MediaWiki 1.44, there were two extra arguments: a Language object, and a boolean indicating if the value should be loaded from the database.

// Since MediaWiki 1.44
function ( string $key, MessageCache $cache ): string { ... }
// Previous versions
function ( string $key, MessageCache $cache, Language $language, bool $useDB ): string { ... }

To prevent ambiguity between message keys that can also be interpreted as a callable (strtotime, for example), all string values are interpreted as a message key. To use a callable defined as a string, use Closure::fromCallable.

See also