From acb83faa0af84a133a875fb1b889815e567d0807 Mon Sep 17 00:00:00 2001 From: Brian Wolff Date: Sat, 14 Dec 2013 11:48:46 -0700 Subject: [PATCH] Make SVG language selector "use default lang" actually work Also have ImagePage check that the given language is actually valid, before trying to transform with that language. Change-Id: I62b8035b70f5cb3388f4c2a844f3bc1c7c92d01e --- includes/ImagePage.php | 9 +++++++-- includes/media/SVG.php | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/includes/ImagePage.php b/includes/ImagePage.php index c73d72c9c8..997a948f68 100644 --- a/includes/ImagePage.php +++ b/includes/ImagePage.php @@ -316,7 +316,12 @@ class ImagePage extends Article { $renderLang = $request->getVal( 'lang' ); if ( !is_null( $renderLang ) ) { - $params['lang'] = $renderLang; + $handler = $this->displayImg->getHandler(); + if ( $handler && $handler->validateParam( 'lang', $renderLang ) ) { + $params['lang'] = $renderLang; + } else { + $renderLang = null; + } } $width_orig = $this->displayImg->getWidth( $page ); @@ -1002,7 +1007,7 @@ EOT if ( !$haveDefaultLang ) { // Its hard to know if the content is really in the default language, or // if its just unmarked content that could be in any language. - $opts = Xml::option( wfMessage( 'img-lang-default' )->text(), '', $defaultLang === $curLang ) . $opts; + $opts = Xml::option( wfMessage( 'img-lang-default' )->text(), $defaultLang, $defaultLang === $curLang ) . $opts; } if ( !$haveCurrentLang && $defaultLang !== $curLang ) { $name = Language::fetchLanguageName( $curLang, $this->getContext()->getLanguage()->getCode() ); diff --git a/includes/media/SVG.php b/includes/media/SVG.php index ecc4ef8e67..ce7fcbb489 100644 --- a/includes/media/SVG.php +++ b/includes/media/SVG.php @@ -432,7 +432,7 @@ class SvgHandler extends ImageHandler { return ( $value > 0 ); } elseif ( $name == 'lang' ) { // Validate $code - if ( !Language::isValidBuiltinCode( $value ) ) { + if ( $value === '' || !Language::isValidBuiltinCode( $value ) ) { wfDebug( "Invalid user language code\n" ); return false; -- 2.20.1