Commafy support for convertNumber
[lhc/web/wiklou.git] / includes / resourceloader / ResourceLoaderLanguageDataModule.php
index b823f1d..0f8e54c 100644 (file)
  */
 class ResourceLoaderLanguageDataModule extends ResourceLoaderModule {
 
+       protected $language;
+       protected $targets = array( 'desktop', 'mobile' );
        /**
-        * Get the grammer forms for the site content language.
+        * Get the grammar forms for the site content language.
         *
         * @return array
         */
        protected function getSiteLangGrammarForms() {
-               global $wgContLang;
-               return $wgContLang->getGrammarForms();
+               return $this->language->getGrammarForms();
+       }
+
+       /**
+        * Get the plural forms for the site content language.
+        *
+        * @return array
+        */
+       protected function getPluralRules() {
+               return $this->language->getPluralRules();
+       }
+
+       /**
+        * Get the digit groupin Pattern for the site content language.
+        *
+        * @return array
+        */
+       protected function getDigitGroupingPattern() {
+               return $this->language->digitGroupingPattern();
+       }
+
+       /**
+        * Get the digit transform table for the content language
+        *
+        * @return array
+        */
+       protected function getDigitTransformTable() {
+               return $this->language->digitTransformTable();
+       }
+
+       /**
+        * Get seperator transform table required for converting
+        * the . and , sign to appropriate forms in site content language.
+        *
+        * @return array
+        */
+       protected function getSeparatorTransformTable() {
+               return $this->language->separatorTransformTable();
+       }
+
+
+       /**
+        * Get all the dynamic data for the content language to an array
+        *
+        * @return array
+        */
+       protected function getData() {
+               return array(
+                       'digitTransformTable' => $this->getDigitTransformTable(),
+                       'separatorTransformTable' => $this->getSeparatorTransformTable(),
+                       'grammarForms' => $this->getSiteLangGrammarForms(),
+                       'pluralRules' => $this->getPluralRules(),
+                       'digitGroupingPattern' => $this->getDigitGroupingPattern(),
+               );
        }
 
        /**
         * @param $context ResourceLoaderContext
-        * @return string: Javascript code
+        * @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 +108,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 ) {