Extension messages translation is now possible.
authorRotem Liss <rotem@users.mediawiki.org>
Fri, 30 Jun 2006 20:46:54 +0000 (20:46 +0000)
committerRotem Liss <rotem@users.mediawiki.org>
Fri, 30 Jun 2006 20:46:54 +0000 (20:46 +0000)
RELEASE-NOTES
includes/MessageCache.php

index 60d5f64..f1ca72e 100644 (file)
@@ -615,6 +615,7 @@ Some default configuration options have changed:
 * (bug 6497) Use $wgMetaNamespaceTalk for Esperanto if set
 * (bug 6498) Use localized forms for image size in Special:Undelete
 * (bug 6485) Update to Indonesian translation (id) #24
+* Extension messages translation is now possible.
 
 
 == Compatibility ==
index 1e6fe8b..e5035c5 100644 (file)
@@ -322,7 +322,8 @@ class MessageCache {
                # Add them to the cache
                foreach ( $this->mExtensionMessages as $key => $value ) {
                        $uckey = $wgLang->ucfirst( $key );
-                       if ( !array_key_exists( $uckey, $this->mCache ) ) {
+                       if ( !array_key_exists( $uckey, $this->mCache ) &&
+                        ( isset( $this->mExtensionMessages[$key][$wgLang->getCode()] ) || isset( $this->mExtensionMessages[$key]['en'] ) )  ) {
                                $this->mCache[$uckey] = false;
                        }
                }
@@ -435,7 +436,11 @@ class MessageCache {
                }
                # Try the extension array
                if( $message === false && array_key_exists( $key, $this->mExtensionMessages ) ) {
-                       $message = $this->mExtensionMessages[$key];
+                       if ( isset( $this->mExtensionMessages[$key][$langcode] ) ) {
+                               $message = $this->mExtensionMessages[$key][$langcode];
+                       } elseif ( isset( $this->mExtensionMessages[$key]['en'] ) ) {
+                               $message = $this->mExtensionMessages[$key]['en'];
+                       }
                }
 
                # Try the array in the language object
@@ -540,19 +545,21 @@ class MessageCache {
         *
         * @param mixed $key
         * @param mixed $value
+        * @param string $lang The messages language, English by default
         */
-       function addMessage( $key, $value ) {
-               $this->mExtensionMessages[$key] = $value;
+       function addMessage( $key, $value, $lang = 'en' ) {
+               $this->mExtensionMessages[$key][$lang] = $value;
        }
 
        /**
         * Add an associative array of message to the cache
         *
         * @param array $messages An associative array of key => values to be added
+        * @param string $lang The messages language, English by default
         */
-       function addMessages( $messages ) {
+       function addMessages( $messages, $lang = 'en' ) {
                foreach ( $messages as $key => $value ) {
-                       $this->addMessage( $key, $value );
+                       $this->addMessage( $key, $value, $lang );
                }
        }