Introduce a Language::getHtmlLang method which returns the Bcp47 formatted language...
authorDaniel Friesen <dantman@users.mediawiki.org>
Sun, 11 Dec 2011 18:46:18 +0000 (18:46 +0000)
committerDaniel Friesen <dantman@users.mediawiki.org>
Sun, 11 Dec 2011 18:46:18 +0000 (18:46 +0000)
includes/OutputPage.php
includes/Skin.php
includes/SkinTemplate.php
languages/Language.php

index 8c3d647..565b9ba 100644 (file)
@@ -2244,7 +2244,7 @@ class OutputPage extends ContextSource {
                                'cols' => $this->getUser()->getOption( 'cols' ),
                                'rows' => $this->getUser()->getOption( 'rows' ),
                                'readonly' => 'readonly',
-                               'lang' => $pageLang->getCode(),
+                               'lang' => $pageLang->getHtmlCode(),
                                'dir' => $pageLang->getDir(),
                        );
                        $this->addHTML( Html::element( 'textarea', $params, $source ) );
@@ -2381,7 +2381,7 @@ $templates
                        $this->addModuleStyles( 'mediawiki.legacy.wikiprintable' );
                }
 
-               $ret = Html::htmlHeader( array( 'lang' => $this->getLanguage()->getCode(), 'dir' => $userdir, 'class' => 'client-nojs' ) );
+               $ret = Html::htmlHeader( array( 'lang' => $this->getLanguage()->getHtmlCode(), 'dir' => $userdir, 'class' => 'client-nojs' ) );
 
                if ( $this->getHTMLTitle() == '' ) {
                        $this->setHTMLTitle( $this->msg( 'pagetitle', $this->getPageTitle() ) );
index eb890b2..0d93384 100644 (file)
@@ -775,7 +775,7 @@ abstract class Skin extends ContextSource {
                if ( $forContent ) {
                        $msg = $msgObj->inContentLanguage()->text();
                        if ( $this->getLanguage()->getCode() !== $wgContLang->getCode() ) {
-                               $msg = Html::rawElement( 'span', array( 'lang' => $wgContLang->getCode(), 'dir' => $wgContLang->getDir() ), $msg );
+                               $msg = Html::rawElement( 'span', array( 'lang' => $wgContLang->getHtmlCode(), 'dir' => $wgContLang->getDir() ), $msg );
                        }
                        return $msg;
                } else {
@@ -1392,7 +1392,7 @@ abstract class Skin extends ContextSource {
                }
 
                $notice = Html::rawElement( 'div', array( 'id' => 'localNotice',
-                       'lang' => $wgContLang->getCode(), 'dir' => $wgContLang->getDir() ), $notice );
+                       'lang' => $wgContLang->getHtmlCode(), 'dir' => $wgContLang->getDir() ), $notice );
                wfProfileOut( __METHOD__ );
                return $notice;
        }
index 56413fd..cd2b387 100644 (file)
@@ -288,9 +288,9 @@ class SkinTemplate extends Skin {
                $tpl->setRef( 'logopath', $wgLogo );
                $tpl->setRef( 'sitename', $wgSitename );
 
-               $contentlang = $wgContLang->getCode();
+               $contentlang = $wgContLang->getHtmlCode();
                $contentdir  = $wgContLang->getDir();
-               $userlang = $this->getLanguage()->getCode();
+               $userlang = $this->getLanguage()->getHtmlCode();
                $userdir  = $this->getLanguage()->getDir();
 
                $tpl->set( 'lang', $userlang );
@@ -420,7 +420,7 @@ class SkinTemplate extends Skin {
                        in_array( $request->getVal( 'action', 'view' ), array( 'view', 'historysubmit' ) ) &&
                        ( $title->exists() || $title->getNamespace() == NS_MEDIAWIKI ) ) {
                        $pageLang = $title->getPageLanguage();
-                       $realBodyAttribs = array( 'lang' => $pageLang->getCode(), 'dir' => $pageLang->getDir(),
+                       $realBodyAttribs = array( 'lang' => $pageLang->getHtmlCode(), 'dir' => $pageLang->getDir(),
                                'class' => 'mw-content-'.$pageLang->getDir() );
                        $out->mBodytext = Html::rawElement( 'div', $realBodyAttribs, $out->mBodytext );
                }
index d2edcef..c094927 100644 (file)
@@ -3449,6 +3449,14 @@ class Language {
                return $this->mCode;
        }
 
+       /**
+        * Get the code in Bcp47 format which we can use
+        * inside of html lang="" tags.
+        */
+       function getHtmlCode() {
+               return wfBcp47( $this->getCode() );
+       }
+
        /**
         * @param $code string
         */