added fallback code display on the translation statistics.
authorShinjiman <shinjiman@users.mediawiki.org>
Sat, 23 May 2009 18:02:34 +0000 (18:02 +0000)
committerShinjiman <shinjiman@users.mediawiki.org>
Sat, 23 May 2009 18:02:34 +0000 (18:02 +0000)
maintenance/language/languages.inc
maintenance/language/transstat.php

index 6159e84..9846429 100644 (file)
@@ -14,6 +14,7 @@ class languages {
 
        protected $mRawMessages; # Raw list of the messages in each language
        protected $mMessages; # Messages in each language (except for English), divided to groups
+       protected $mFallback; # Fallback language in each language
        protected $mGeneralMessages; # General messages in English, divided to groups
        protected $mIgnoredMessages; # All the messages which should be exist only in the English file
        protected $mOptionalMessages; # All the messages which may be translated or not, depending on the language
@@ -76,6 +77,7 @@ class languages {
         */
        protected function loadFile( $code ) {
                if ( isset( $this->mRawMessages[$code] ) &&
+                       isset( $this->mFallback[$code] ) &&
                        isset( $this->mNamespaceNames[$code] ) &&
                        isset( $this->mNamespaceAliases[$code] ) &&
                        isset( $this->mMagicWords[$code] ) &&
@@ -83,6 +85,7 @@ class languages {
                        return;
                }
                $this->mRawMessages[$code] = array();
+               $this->mFallback[$code] = '';
                $this->mNamespaceNames[$code] = array();
                $this->mNamespaceAliases[$code] = array();
                $this->mMagicWords[$code] = array();
@@ -93,6 +96,9 @@ class languages {
                        if ( isset( $messages ) ) {
                                $this->mRawMessages[$code] = $messages;
                        }
+                       if ( isset( $fallback ) ) {
+                               $this->mFallback[$code] = $fallback;
+                       }
                        if ( isset( $namespaceNames ) ) {
                                $this->mNamespaceNames[$code] = $namespaceNames;
                        }
@@ -206,6 +212,18 @@ class languages {
                return $this->mGeneralMessages;
        }
 
+       /**
+        * Get fallback language code for a specific language.
+        *
+        * @param $code The language code.
+        *
+        * @return Fallback code.
+        */
+       public function getFallback( $code ) {
+               $this->loadFile( $code );
+               return $this->mFallback[$code];
+       }
+
        /**
         * Get namespace names for a specific language.
         *
index 81c12ff..c6175f4 100644 (file)
@@ -71,6 +71,7 @@ $output->heading();
 $output->blockstart();
 $output->element( 'Language', true );
 $output->element( 'Code', true );
+$output->element( 'Fallback', true );
 $output->element( 'Translated', true );
 $output->element( '%', true );
 $output->element( 'Obsolete', true );
@@ -90,6 +91,7 @@ foreach ( $wgLanguages->getLanguages() as $code ) {
 
        # Calculate the numbers
        $language = $wgContLang->getLanguageName( $code );
+       $fallback = $wgLanguages->getFallback( $code );
        $messages = $wgLanguages->getMessages( $code );
        $messagesNumber = count( $messages['translated'] );
        $requiredMessagesNumber = count( $messages['required'] );
@@ -108,6 +110,7 @@ foreach ( $wgLanguages->getLanguages() as $code ) {
        $output->blockstart();
        $output->element( "$language" );
        $output->element( "$code" );
+       $output->element( "$fallback" );
        $output->element( "$requiredMessagesNumber/$wgRequiredMessagesNumber" );
        $output->element( $requiredMessagesPercent );
        $output->element( "$obsoleteMessagesNumber/$messagesNumber" );