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

Reply via email to