? views2_simple_translatables.patch
Index: includes/base.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/includes/base.inc,v
retrieving revision 1.3
diff -u -p -r1.3 base.inc
--- includes/base.inc	25 Jun 2009 22:15:39 -0000	1.3
+++ includes/base.inc	6 Feb 2010 01:35:49 -0000
@@ -95,6 +95,12 @@ class views_object {
       }
       else if (!empty($definition[$key]['translatable']) && !empty($value)) {
         $storage[$key] = t($value);
+
+        // Store translatable properties in an array for export.
+        $this->view->translatables = isset($this->view->translatables) ? $this->view->translatables : array();
+        if (!in_array($value, $this->view->translatables, TRUE)) {
+          $this->view->translatables[] = $value;
+        }
       }
       else {
         $storage[$key] = $value;
Index: includes/view.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/includes/view.inc,v
retrieving revision 1.167.2.2
diff -u -p -r1.167.2.2 view.inc
--- includes/view.inc	18 Nov 2009 02:26:16 -0000	1.167.2.2
+++ includes/view.inc	6 Feb 2010 01:35:50 -0000
@@ -1483,6 +1483,16 @@ class view extends views_db_object {
       }
     }
 
+    // Export translatable properties.
+    // Special handling for display titles.
+    $this->translatables = isset($this->translatables) ? $this->translatables : array();
+    foreach ($this->display as $id => $display) {
+      if (!empty($display->handler) && isset($display->display_title) && !in_array($display->display_title, $this->translatables)) {
+        $this->translatables[] = $display->display_title;
+      }
+    }
+    $output .= !empty($this->translatables) ? $this->export_translatables($indent) : '';
+
     return $output;
   }
 
@@ -1780,6 +1790,26 @@ class views_db_object {
   }
 
   /**
+   * Export an array of translatable strings.
+   *
+   * @param $indent
+   *   An optional indentation for prettifying nested code.
+   */
+  function export_translatables($indent = '') {
+    $output = '';
+    if (!empty($this->translatables)) {
+      $this->translatables = array_unique($this->translatables);
+      sort($this->translatables);
+      $output = $indent . '$translatables[\'' . $this->name . '\'] = array(' . "\n";
+      foreach ($this->translatables as $string) {
+        $output .= $indent . "  t('" . str_replace("'", "\'", $string) . "'),\n";
+      }
+      $output .= $indent . ");\n";
+    }
+    return $output;
+  }
+
+  /**
    * Add a new display handler to the view, automatically creating an id.
    *
    * @param $type
