Merge "Remove duplication of Langauge digitTransformTable in javascript."
authorKrinkle <ttijhof@wikimedia.org>
Sun, 17 Jun 2012 22:09:55 +0000 (22:09 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Sun, 17 Jun 2012 22:09:55 +0000 (22:09 +0000)
includes/resourceloader/ResourceLoaderLanguageDataModule.php
resources/mediawiki.language/languages/ar.js
resources/mediawiki.language/languages/nl.js [deleted file]
resources/mediawiki.language/languages/pt-br.js [deleted file]
resources/mediawiki.language/languages/pt.js [deleted file]
resources/mediawiki.language/mediawiki.language.js

index b823f1d..a36aaec 100644 (file)
  */
 class ResourceLoaderLanguageDataModule extends ResourceLoaderModule {
 
+       protected $language;
        /**
         * Get the grammer forms for the site content language.
         *
         * @return array
         */
        protected function getSiteLangGrammarForms() {
-               global $wgContLang;
-               return $wgContLang->getGrammarForms();
+               return $this->language->getGrammarForms();
+       }
+
+       /**
+        * Get the digit transform table for the content language
+        * Seperator transform table also required here to convert
+        * the . and , sign to appropriate forms in content language.
+        *
+        * @return array
+        */
+       protected function getDigitTransformTable() {
+               $digitTransformTable = $this->language->digitTransformTable();
+               $separatorTransformTable = $this->language->separatorTransformTable();
+               if ( $digitTransformTable ) {
+                       array_merge( $digitTransformTable, (array)$separatorTransformTable );
+               } else {
+                       return $separatorTransformTable;
+               }
+               return $digitTransformTable;
+       }
+
+       /**
+        * Get all the dynamic data for the content language to an array
+        *
+        * @return array
+        */
+       protected function getData() {
+               return array( 'grammarForms' => $this->getSiteLangGrammarForms(),
+                               'digitTransformTable' => $this->getDigitTransformTable()
+                       );
        }
 
        /**
@@ -42,13 +71,10 @@ class ResourceLoaderLanguageDataModule extends ResourceLoaderModule {
         * @return string: Javascript code
         */
        public function getScript( ResourceLoaderContext $context ) {
-               global $wgContLang;
-
+               $this->language = Language::factory( $context ->getLanguage() );
                return Xml::encodeJsCall( 'mw.language.setData', array(
-                       $wgContLang->getCode(),
-                       array(
-                               'grammarForms' => $this->getSiteLangGrammarForms()
-                       )
+                       $this->language->getCode(),
+                       $this->getData()
                ) );
        }
 
@@ -57,11 +83,12 @@ class ResourceLoaderLanguageDataModule extends ResourceLoaderModule {
         * @return array|int|Mixed
         */
        public function getModifiedTime( ResourceLoaderContext $context ) {
+               $this->language = Language::factory( $context ->getLanguage() );
                $cache = wfGetCache( CACHE_ANYTHING );
                $key = wfMemcKey( 'resourceloader', 'langdatamodule', 'changeinfo' );
 
-               $forms = $this->getSiteLangGrammarForms();
-               $hash = md5( serialize( $forms ) );
+               $data = $this->getData();
+               $hash = md5( serialize( $data ) );
 
                $result = $cache->get( $key );
                if ( is_array( $result ) && $result['hash'] === $hash ) {
index 7d9e114..d21df7e 100644 (file)
@@ -22,17 +22,3 @@ mediaWiki.language.convertPlural = function( count, forms ) {
        return forms[5];
 };
 
-mediaWiki.language.digitTransformTable = {
-    '0': '٠', // &#x0660;
-    '1': '١', // &#x0661;
-    '2': '٢', // &#x0662;
-    '3': '٣', // &#x0663;
-    '4': '٤', // &#x0664;
-    '5': '٥', // &#x0665;
-    '6': '٦', // &#x0666;
-    '7': '٧', // &#x0667;
-    '8': '٨', // &#x0668;
-    '9': '٩', // &#x0669;
-    '.': '٫', // &#x066b; wrong table ?
-    ',': '٬' // &#x066c;
-};
diff --git a/resources/mediawiki.language/languages/nl.js b/resources/mediawiki.language/languages/nl.js
deleted file mode 100644 (file)
index a2b22f4..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * Dutch (Nederlands) language functions
- */
-
-mediaWiki.language.digitTransformTable = {
-    '.' : ',',
-    ',' : '.'
-};
diff --git a/resources/mediawiki.language/languages/pt-br.js b/resources/mediawiki.language/languages/pt-br.js
deleted file mode 100644 (file)
index 2457e24..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * Brazilian Portugese (Portuguêsi do Brasil) language functions
- */
-
-mediaWiki.language.digitTransformTable = {
-    '.' : ',',
-    ',' : ' '
-};
diff --git a/resources/mediawiki.language/languages/pt.js b/resources/mediawiki.language/languages/pt.js
deleted file mode 100644 (file)
index 1b8fc72..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * Portugese language functions
- */
-
-mediaWiki.language.digitTransformTable = {
-    '.' : ',',
-    ',' : ' '
-};
index 87a6a8f..78a6309 100644 (file)
@@ -26,7 +26,7 @@ var language = {
                        }
                        // Restore the count into a Number ( if it got converted earlier )
                        var count = mw.language.convertNumber( template.title, true );
-                       // Do convertPlural call 
+                       // Do convertPlural call
                        return mw.language.convertPlural( parseInt( count, 10 ), template.parameters );
                }
                // Could not process plural return first form or nothing
@@ -99,7 +99,7 @@ var language = {
         * Provides an alternative text depending on specified gender.
         * Usage {{gender:[gender|user object]|masculine|feminine|neutral}}.
         * If second or third parameter are not specified, masculine is used.
-        * 
+        *
         * These details may be overriden per language.
         *
         * @param gender string male, female, or anything else for neutral.
@@ -132,7 +132,7 @@ var language = {
         * @return {String}
         */
        convertGrammar: function ( word, form ) {
-               var grammarForms = mw.language.getData( mw.config.get( 'wgContentLanguage' ), 'grammarForms' );
+               var grammarForms = mw.language.getData( mw.config.get( 'wgUserLanguage' ), 'grammarForms' );
                if ( grammarForms && grammarForms[form] ) {
                        return grammarForms[form][word] || word;
                }
@@ -140,7 +140,7 @@ var language = {
        },
 
        // Digit Transform Table, populated by language classes where applicable
-       'digitTransformTable': null
+       'digitTransformTable': mw.language.getData( mw.config.get( 'wgUserLanguage' ), 'digitTransformTable' )
 };
 
 $.extend( mw.language, language );