Manual:Hooks/PageContentLanguage
From Linux Web Expert
PageContentLanguage | |
---|---|
<translate> Available from <tvar name=1><translate> version <tvar (r90742, codereview)</tvar></translate> Allows changing the page content language and consequently all features depending on that (writing direction, LanguageConverter, ...). | |
<translate> Define function:</translate> | public static function onPageContentLanguage( Title $title, mixed &$pageLang, Language|StubUserLang $userLang ) { ... }
|
<translate> Attach hook:</translate> | <translate> In <tvar name=1>extension.json</tvar>:</translate>
{
"Hooks": {
"PageContentLanguage": "MediaWiki\\Extension\\MyExtension\\Hooks::onPageContentLanguage"
}
}
|
<translate> Called from:</translate> | <translate> File(s):</translate> ContentHandler.php |
<translate> Interface:</translate> | PageContentLanguageHook.php |
<translate> For more information about attaching hooks, see <tvar name=1>Manual:Hooks </tvar>.</translate>
<translate> For examples of extensions using this hook, see <tvar name=cat>Category:PageContentLanguage extensions</tvar>.</translate>
Details
- $title: the Title object
- &$pageLang: Language of the page. You should assign a Language object to it, but because other hooks can modify the value, the type can be anything, like a string.
- $userLang: Language or StubUserLang object; the user interface language
It was added in Title.php but is in content/ContentHandler.php since MediaWiki 1.21 .
Example
For example, if you want to mark all pages in the namespace with index 200 (and its talk page 201) as being in French, use:
static function onPageContentLanguage( Title $title, &$pageLang, $userLang ) {
if ( $title->inNamespaces( 200, 201 ) ) {
$pageLang = Language::factory( 'fr' );
}
}