http://www.mediawiki.org/wiki/Special:Code/MediaWiki/66458
Revision: 66458 Author: siebrand Date: 2010-05-14 23:40:14 +0000 (Fri, 14 May 2010) Log Message: ----------- * check if there is a portal namespace. If not, add some helpful information on how to get this page working. * check if CLDR is installed, and if not, don't die. Modified Paths: -------------- trunk/extensions/Translate/SpecialSupportedLanguages.php trunk/extensions/Translate/Translate.i18n.php trunk/extensions/Translate/groups/mediawiki-defines.txt Modified: trunk/extensions/Translate/SpecialSupportedLanguages.php =================================================================== --- trunk/extensions/Translate/SpecialSupportedLanguages.php 2010-05-14 23:19:38 UTC (rev 66457) +++ trunk/extensions/Translate/SpecialSupportedLanguages.php 2010-05-14 23:40:14 UTC (rev 66458) @@ -13,13 +13,24 @@ public function execute( $par ) { global $wgLang, $wgOut; + if( !defined( 'NS_PORTAL' ) ) { + $wgOut->showErrorPage( 'supportedlanguages-noportal-title', 'supportedlanguages-noportal' ); + return; + } + $this->outputHeader(); $this->setHeaders(); - $locals = LanguageNames::getNames( $wgLang->getCode(), - LanguageNames::FALLBACK_NORMAL, - LanguageNames::LIST_MW_AND_CLDR - ); + // Check if CLDR extension has been installed. + $cldrInstalled = class_exists( 'LanguageNames' ); + + if( $cldrInstalled ) { + $locals = LanguageNames::getNames( $wgLang->getCode(), + LanguageNames::FALLBACK_NORMAL, + LanguageNames::LIST_MW_AND_CLDR + ); + } + $natives = Language::getLanguageNames( false ); ksort( $natives ); @@ -69,12 +80,23 @@ foreach ( array_keys( $users ) as $code ) { $portalTitle = Title::makeTitleSafe( NS_PORTAL, $code ); + + // If CLDR is installed, add localised header and link title. + if( $cldrInstalled ) { + $headerText = wfMsg( 'supportedlanguages-portallink', $code, $locals[$code], $natives[$code] ); + $portalText .= ' ' . $locals[$code]; + } else { + // No CLDR, so a less localised header and link title. + $headerText = wfMsg( 'supportedlanguages-portallink-nocldr', $code, $natives[$code] ); + $portalText .= ' ' . $natives[$code]; + } + $portalLink = $skin->link( $portalTitle, - wfMsg( 'supportedlanguages-portallink', $code, $locals[$code], $natives[$code] ), + $headerText, array( 'id' => $code, - 'title' => $portalText . ' ' . $locals[$code] + 'title' => $portalText ), array(), array( 'known', 'noclasses' ) Modified: trunk/extensions/Translate/Translate.i18n.php =================================================================== --- trunk/extensions/Translate/Translate.i18n.php 2010-05-14 23:19:38 UTC (rev 66457) +++ trunk/extensions/Translate/Translate.i18n.php 2010-05-14 23:40:14 UTC (rev 66458) @@ -226,7 +226,11 @@ If you translate to a language and your name is not included, please add your name to the list of translators on the [[:Category:Languages|portal]] for that language. See the menu bar for a link to the portal for the language of your preference.', 'supportedlanguages-portallink' => '[$1] $2 - $3', + 'supportedlanguages-portallink-nocldr' => '[$1] $2', 'supportedlanguages-translators' => '{{PLURAL:$2|Translator|Translators}}: $1', + 'supportedlanguages-noportal-title' => 'No portal namespace defined', + 'supportedlanguages-noportal' => 'The wiki administrator has not defined NS_PORTAL, so this page does not work. +On this page a list of language portal will appears for all portals corresponding with a defined language code and a subpage called "translators" containing the template [[:{{ns:template}}:User|User]] taking a user name as parameter.', 'translate-save' => 'Save ($1)', Modified: trunk/extensions/Translate/groups/mediawiki-defines.txt =================================================================== --- trunk/extensions/Translate/groups/mediawiki-defines.txt 2010-05-14 23:19:38 UTC (rev 66457) +++ trunk/extensions/Translate/groups/mediawiki-defines.txt 2010-05-14 23:40:14 UTC (rev 66458) @@ -1157,7 +1157,7 @@ descmsg = translate-desc file = Translate/Translate.i18n.php aliasfile = Translate/Translate.alias.php -optional = translate-page-paging-links, translate-languagestats-groups, supportedlanguages-portallink +optional = translate-page-paging-links, translate-languagestats-groups, supportedlanguages-portallink, supportedlanguages-portallink-nocldr Translate - Page Translation _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs