From: Daniel Friesen Date: Sun, 11 Dec 2011 18:46:18 +0000 (+0000) Subject: Introduce a Language::getHtmlLang method which returns the Bcp47 formatted language... X-Git-Tag: 1.31.0-rc.0~26079 X-Git-Url: http://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/exercices/supprimer.php?a=commitdiff_plain;h=c5337f852236767439614a7e52a83b17b943a203;p=lhc%2Fweb%2Fwiklou.git Introduce a Language::getHtmlLang method which returns the Bcp47 formatted language code and update code around core to output lang tags using this method instead of getCode so that we properly output things like lang="en-CA" instead of lang="en-ca" --- diff --git a/includes/OutputPage.php b/includes/OutputPage.php index 8c3d647a53..565b9bac86 100644 --- a/includes/OutputPage.php +++ b/includes/OutputPage.php @@ -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() ) ); diff --git a/includes/Skin.php b/includes/Skin.php index eb890b2772..0d9338449a 100644 --- a/includes/Skin.php +++ b/includes/Skin.php @@ -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; } diff --git a/includes/SkinTemplate.php b/includes/SkinTemplate.php index 56413fd269..cd2b387193 100644 --- a/includes/SkinTemplate.php +++ b/includes/SkinTemplate.php @@ -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 ); } diff --git a/languages/Language.php b/languages/Language.php index d2edcefd52..c094927cf6 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -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 */