? .bzr
? 1000760-check_plain-title-multiple-string.patch
? 1008358-locale-strings.patch
? 1011004-validate-query.patch
? 452384-201009161131+1000_90.patch
? 696538-area_handlers-doxygen.patch
? 776830-render-pager-got-lost.patch
? 975400_0.patch
? 991202-nl2br_option-3.patch
? i18n_22.patch
? reroll.patch
Index: views.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/views.module,v
retrieving revision 1.332.2.39
diff -u -p -r1.332.2.39 views.module
--- views.module	4 Jan 2011 20:29:56 -0000	1.332.2.39
+++ views.module	18 Jan 2011 20:35:49 -0000
@@ -133,7 +133,7 @@ function views_theme($existing, $type, $
  *   The existing cache of theme hooks to test against.
  * @param $path
  *   The path to search.
- * 
+ *
  * @see drupal_find_theme_templates
  */
 function _views_find_module_templates($cache, $path) {
@@ -787,7 +787,7 @@ function views_get_handler($table, $fiel
       $data[$field][$key]['override handler'] = $override;
     }
 
-    $handler = _views_prepare_handler($data[$field][$key], $data, $field);
+    $handler = _views_prepare_handler($data[$field][$key], $data, $field, $key);
   }
 
   if ($handler) {
@@ -801,7 +801,7 @@ function views_get_handler($table, $fiel
     'table' => $table,
     'field' => $field,
   );
-  return _views_create_handler($broken);
+  return _views_create_handler($broken, 'handler', $type);
 }
 
 /**
@@ -1196,7 +1196,7 @@ function views_exposed_form_submit(&$for
   $exclude = array('q', 'submit', 'form_build_id', 'form_id', 'form_token', 'exposed_form_plugin', '');
   $exposed_form_plugin = $form_state['exposed_form_plugin'];
   $exposed_form_plugin->exposed_form_submit($form, $form_state, $exclude);
-  
+
   foreach ($form_state['values'] as $key => $value) {
     if (!in_array($key, $exclude)) {
       $form_state['view']->exposed_raw_input[$key] = $value;
Index: includes/admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/includes/admin.inc,v
retrieving revision 1.154.2.55
diff -u -p -r1.154.2.55 admin.inc
--- includes/admin.inc	10 Jan 2011 23:07:43 -0000	1.154.2.55
+++ includes/admin.inc	18 Jan 2011 20:35:52 -0000
@@ -1151,7 +1151,7 @@ function template_preprocess_views_ui_ed
   // Special fields if this is the default display.
   $vars['default'] = ($display->id == 'default');
   $vars['details_class'] = views_ui_item_css('details');
-  
+
   foreach (array('human_name', 'tag', 'description') as $property) {
     if (!empty($view->changed_sections[$property])) {
       $vars['details_changed'][$property] = TRUE;
@@ -2345,7 +2345,7 @@ function views_ui_edit_details_form(&$fo
         '#default_value' => $view->human_name,
       );
       break;
-    
+
     case 'tag':
       $form['tag'] = array(
         '#type' => 'textfield',
@@ -2355,7 +2355,7 @@ function views_ui_edit_details_form(&$fo
         '#autocomplete_path' => 'admin/views/ajax/autocomplete/tag',
       );
       break;
-    
+
     case 'description':
       $form['description'] = array(
         '#type' => 'textfield',
Index: includes/base.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/includes/base.inc,v
retrieving revision 1.2.2.9
diff -u -p -r1.2.2.9 base.inc
--- includes/base.inc	10 Dec 2010 07:26:04 -0000	1.2.2.9
+++ includes/base.inc	18 Jan 2011 20:35:52 -0000
@@ -88,6 +88,18 @@ class views_object {
     if (!empty($this->view)) {
       // Ensure we have a localization plugin.
       $this->view->init_localization();
+
+      // Set up default localization keys. Handlers and such set this for us
+      if (empty($localization_keys) && isset($this->localization_keys)) {
+        $localization_keys = $this->localization_keys;
+      }
+      // but plugins don't because there isn't a common init() these days.
+      else if (!empty($this->is_plugin)) {
+        if ($this->plugin_type != 'display') {
+          $localization_keys = array($this->view->current_display);
+          $localization_keys[] = $this->plugin_type;
+        }
+      }
     }
 
     foreach ($options as $key => $value) {
@@ -111,9 +123,9 @@ class views_object {
 
         $this->unpack_options($storage[$key], $value, isset($definition[$key]['contains']) ? $definition[$key]['contains'] : array(), $all, FALSE, array_merge($localization_keys, array($key)));
       }
-     // Don't localize strings during editing. When editing, we need to work with
-     // the original data, not the translated version.
-     else if (empty($this->view->editing) && !empty($definition[$key]['translatable']) && !empty($value) || !empty($definition['contains'][$key]['translatable']) && !empty($value)) {
+      // Don't localize strings during editing. When editing, we need to work with
+      // the original data, not the translated version.
+      else if (empty($this->view->editing) && !empty($definition[$key]['translatable']) && !empty($value) || !empty($definition['contains'][$key]['translatable']) && !empty($value)) {
         if (!empty($this->view) && $this->view->is_translatable()) {
           // Allow other modules to make changes to the string before it's
           // sent for translation.
@@ -130,7 +142,7 @@ class views_object {
         else {
           $storage[$key] = t($value);
         }
-     }
+      }
       else if ($all || !empty($definition[$key])) {
         $storage[$key] = $value;
       }
Index: includes/handlers.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/includes/handlers.inc,v
retrieving revision 1.109.2.23
diff -u -p -r1.109.2.23 handlers.inc
--- includes/handlers.inc	1 Jan 2011 22:49:46 -0000	1.109.2.23
+++ includes/handlers.inc	18 Jan 2011 20:35:53 -0000
@@ -8,7 +8,7 @@
 /**
  * Instantiate and construct a new handler
  */
-function _views_create_handler($definition, $type = 'handler') {
+function _views_create_handler($definition, $type = 'handler', $handler_type = NULL) {
 //  vpr('Instantiating handler ' . $definition['handler']);
   if (empty($definition['handler'])) {
     return;
@@ -33,6 +33,15 @@ function _views_create_handler($definiti
   }
 
   $handler->set_definition($definition);
+  if ($type == 'handler') {
+    $handler->is_handler = TRUE;
+    $handler->handler_type = $handler_type;
+  }
+  else {
+    $handler->is_plugin = TRUE;
+    $handler->plugin_type = $type;
+  }
+
   // let the handler have something like a constructor.
   $handler->construct();
 
@@ -97,7 +106,7 @@ function views_include_handler($handler,
 /**
  * Prepare a handler's data by checking defaults and such.
  */
-function _views_prepare_handler($definition, $data, $field) {
+function _views_prepare_handler($definition, $data, $field, $type) {
   foreach (array('group', 'title', 'title short', 'help', 'real field') as $key) {
     if (!isset($definition[$key])) {
       // First check the field level
@@ -111,7 +120,7 @@ function _views_prepare_handler($definit
     }
   }
 
-  return _views_create_handler($definition);
+  return _views_create_handler($definition, 'handler', $type);
 }
 
 /**
@@ -250,6 +259,21 @@ class views_handler extends views_object
    */
   function init(&$view, $options) {
     $this->view = &$view;
+    $display_id = $this->view->current_display;
+    // Check to see if this handler type is defaulted. Note that
+    // we have to do a lookup because the type is singular but the
+    // option is stored as the plural.
+    $types = views_object_types();
+    $plural = $types[$this->handler_type]['plural'];
+    if ($this->view->display_handler->is_defaulted($plural)) {
+
+    $this->localization_keys = array(
+      $display_id,
+      $this->handler_type,
+      $options['table'],
+      $options['field']
+    );
+
     $this->unpack_options($this->options, $options);
 
     // This exist on most handlers, but not all. So they are still optional.
Index: includes/view.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/includes/view.inc,v
retrieving revision 1.151.2.51
diff -u -p -r1.151.2.51 view.inc
--- includes/view.inc	4 Jan 2011 21:24:31 -0000	1.151.2.51
+++ includes/view.inc	18 Jan 2011 20:35:54 -0000
@@ -219,6 +219,7 @@ class view extends views_db_object {
       }
       $this->display[$id]->handler = views_get_plugin('display', $this->display[$id]->display_plugin);
       if (!empty($this->display[$id]->handler)) {
+        $this->display[$id]->handler->localization_keys = array($id);
         // Initialize the new display handler with data.
         $this->display[$id]->handler->init($this, $this->display[$id]);
         // If this is NOT the default display handler, let it know which is
Index: plugins/views_plugin_display.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/plugins/views_plugin_display.inc,v
retrieving revision 1.20.2.55
diff -u -p -r1.20.2.55 views_plugin_display.inc
--- plugins/views_plugin_display.inc	10 Jan 2011 22:40:49 -0000	1.20.2.55
+++ plugins/views_plugin_display.inc	18 Jan 2011 20:35:57 -0000
@@ -678,6 +678,9 @@ class views_plugin_display extends views
         $plugin->init($this->view, $this->display, $options);
       }
       else {
+        $display_id = $this->is_defaulted($option_name ? $this->display->id : 'default';
+        $plugin->localization_keys = array($display_id, $type);
+
         if (!isset($this->base_field)) {
           $views_data = views_fetch_data($this->view->base_table);
           $this->view->base_field = $views_data['table']['base']['field'];
Index: plugins/views_plugin_localization_core.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/plugins/Attic/views_plugin_localization_core.inc,v
retrieving revision 1.1.2.1
diff -u -p -r1.1.2.1 views_plugin_localization_core.inc
--- plugins/views_plugin_localization_core.inc	1 Dec 2010 00:02:06 -0000	1.1.2.1
+++ plugins/views_plugin_localization_core.inc	18 Jan 2011 20:35:57 -0000
@@ -23,7 +23,7 @@ class views_plugin_localization_core ext
    *   view name, display_id, and a property, e.g., 'header'.
    */
   function translate_string($string, $keys = array()) {
-    return t($string); 
+    return t($string);
   }
 
   /**
@@ -46,7 +46,9 @@ class views_plugin_localization_core ext
       $languages = language_list();
       $cached_language = $language;
       unset($languages['en']);
-      $language = current($languages);
+      if (!empty($languages)) {
+        $language = current($languages);
+      }
     }
 
     t($string);
