From 07dc087494f3f954d3ecec01398bdde3eec5f948 Mon Sep 17 00:00:00 2001 From: Robin Pepermans Date: Thu, 22 Sep 2011 20:31:23 +0000 Subject: Re-do r96798 ("LanguageConverter now depends on the page content language"), without the change in WikiPage which caused an infinite loop (see bug 31098) --- includes/SkinTemplate.php | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'includes/SkinTemplate.php') diff --git a/includes/SkinTemplate.php b/includes/SkinTemplate.php index ea6274dd9722..b4f299aba008 100644 --- a/includes/SkinTemplate.php +++ b/includes/SkinTemplate.php @@ -1011,16 +1011,21 @@ class SkinTemplate extends Skin { array( &$this, &$content_navigation ) ); } + $pageLang = $title->getPageLanguage(); + // Gets list of language variants - $variants = $wgContLang->getVariants(); + $variants = $pageLang->getVariants(); // Checks that language conversion is enabled and variants exist - if( !$wgDisableLangConversion && count( $variants ) > 1 ) { - // Gets preferred variant - $preferred = $wgContLang->getPreferredVariant(); + // And if it is not in the special namespace + if( !$wgDisableLangConversion && count( $variants ) > 1 + && $title->getNamespace() != NS_SPECIAL ) { + // Gets preferred variant (note that user preference is + // only possible for wiki content language variant) + $preferred = $pageLang->getPreferredVariant(); // Loops over each variant foreach( $variants as $code ) { // Gets variant name from language code - $varname = $wgContLang->getVariantname( $code ); + $varname = $pageLang->getVariantname( $code ); // Checks if the variant is marked as disabled if( $varname == 'disable' ) { // Skips this variant -- cgit v1.2.3