Они взламывают его в JavaScript - посмотрите этот фрагмент кода внизу Медијавики: Vector.js :
//to be able to switch the language variant (overrides the default buttons with more visible ones)
function tabWorkaround() {
if(mw.config.get('wgUserVariant') == 'sr') {
var tab_urls = {};
tab_urls[0] = document.getElementById('ca-varlang-0').getElementsByTagName('a')[0].href; //Ћирилица
tab_urls[1] = document.getElementById('ca-varlang-1').getElementsByTagName('a')[0].href; //Latinica
$('#p-variants').remove();
mw.util.addPortletLink('p-namespaces', tab_urls[0], 'Ћирилица');
mw.util.addPortletLink('p-namespaces', tab_urls[1], 'Latinica');
}
}
$(document).ready(tabWorkaround);
Вероятно, было бы чище сделать это с MediaWikiкрюк, хотяСледующий код не протестирован, но должен работать, если я не допустил глупых ошибок:
// show language variants as tabs in Vector skin
function tabWorkaround( &$skintemplate, &$links ) {
$links['namespaces'] += $links['variants'];
$links['variants'] = array();
return true;
}
$wgHooks['SkinTemplateNavigation::Universal'][] = 'tabWorkaround';
(В MW 1.17 этот хук вызывается только из векторного стиля. В MW 1.18 это повлияет навсе скины. Если вы не хотите этого, вы можете проверить $skintemplate->skinname == 'vector'
.)