CRM-15832 - crmResource - Fix handling of domains
authorTim Otten <totten@civicrm.org>
Sat, 17 Jan 2015 12:10:39 +0000 (04:10 -0800)
committerTim Otten <totten@civicrm.org>
Mon, 19 Jan 2015 06:17:36 +0000 (22:17 -0800)
Civi/Angular/Manager.php
Civi/Angular/Page/Modules.php
js/Common.js
js/angular-crmResource/all.js
js/angular-crmResource/byModule.js

index 4e1afd2b0a89fd9f4354aa9f158c640a455a0ee8..a93c8790baefceee4e4556be5b08ee7fbb162d4f 100644 (file)
@@ -181,12 +181,15 @@ class Manager {
    *   Translated strings: array(string $orig => string $translated).
    */
   public function getTranslatedStrings($name) {
+    $module = $this->getModule($name);
     $result = array();
     $strings = $this->getStrings($name);
     foreach ($strings as $string) {
       // TODO: should we pass translation domain based on $module[ext] or $module[tsDomain]?
       // It doesn't look like client side really supports the domain right now...
-      $translated = ts($string);
+      $translated = ts($string, array(
+        'domain' => array($module['ext'], NULL),
+      ));
       if ($translated != $string) {
         $result[$string] = $translated;
       }
index 5f517e5a8b4604f69cd68f1dd004529520707731..8141b77e540bad1e802591632680536c734b0bce 100644 (file)
@@ -36,6 +36,7 @@ class Modules extends \CRM_Core_Page {
     foreach ($moduleNames as $moduleName) {
       if (isset($modules[$moduleName])) {
         $result[$moduleName] = array();
+        $result[$moduleName]['domain'] = $modules[$moduleName]['ext'];
         $result[$moduleName]['js'] = $angular->getScriptUrls($moduleName);
         $result[$moduleName]['css'] = $angular->getStyleUrls($moduleName);
         $result[$moduleName]['partials'] = $angular->getPartials($moduleName);
index 61dbbbe11e93274a4f933df85fa51d93380d7342..4d2ae26f9ddbcf591b580e23a5a23088d97f32af 100644 (file)
@@ -1017,6 +1017,12 @@ CRM.strings = CRM.strings || {};
     };
   };
 
+  CRM.addStrings = function(domain, strings) {
+    var bucket = (domain == 'civicrm' ? 'strings' : 'strings::' + domain);
+    CRM[bucket] = CRM[bucket] || {};
+    _.extend(CRM[bucket], strings);
+  };
+
   /**
    * @see https://wiki.civicrm.org/confluence/display/CRMDOC/Notification+Reference
    */
index ccab58ca13b1cac06d25f99c6aae69556b933525..7c3632fc2a744184848197d3e98fbe5954c827a1 100644 (file)
@@ -41,7 +41,7 @@
             angular.extend(templates, module.partials);
           }
           if (module.strings) {
-            angular.extend(CRM.strings, module.strings);
+            CRM.addStrings(module.domain, module.strings);
           }
         });
         notify();
index 9514b2ffdb80a3a0b2dd6531593f9dccc469ba34..c27ad8e57f792b434b48ef576ccb90f80a0c76a0 100644 (file)
@@ -59,7 +59,7 @@
           angular.extend(templates, this.data.partials);
         }
         if (this.data.strings) {
-          angular.extend(CRM.strings, this.data.strings);
+          CRM.addStrings(this.data.domain, this.data.strings);
         }
         angular.forEach(this.deferreds, function(deferred) {
           deferred.resolve(module.data);