? localizer.patch
Index: localizer.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/localizer/Attic/localizer.inc,v
retrieving revision 1.1.2.1
diff -u -p -r1.1.2.1 localizer.inc
--- localizer.inc	12 Apr 2007 03:16:48 -0000	1.1.2.1
+++ localizer.inc	15 Apr 2007 15:21:30 -0000
@@ -47,14 +47,6 @@ function localizer_get_object_definition
         'switch_uicontent' => 'switch_uicontent',
       );
       return;
-    
-    case 'block~old':
-      $object = array(
-        'table' => 'localizerblock',
-        'key' => 'blid',
-        'locale' => 'locale',
-      );
-      return;
   }
 }
 
Index: localizer.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/localizer/localizer.module,v
retrieving revision 1.8.2.2
diff -u -p -r1.8.2.2 localizer.module
--- localizer.module	14 Apr 2007 17:26:01 -0000	1.8.2.2
+++ localizer.module	15 Apr 2007 15:47:02 -0000
@@ -992,6 +992,9 @@ function localizer_get_contentlocales($f
 
 /**
  * Check if a node locale is specified
+ * 
+ * @todo How? Where? When? Why?
+ *   This function is called from localizer_get_defaultcontentlocale() only.
  */
 function localizer_isset_contentlocale() {
   global $user;
Index: modules/localizerblock.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/localizer/modules/localizerblock.module,v
retrieving revision 1.4.2.1
diff -u -p -r1.4.2.1 localizerblock.module
--- modules/localizerblock.module	12 Apr 2007 03:16:31 -0000	1.4.2.1
+++ modules/localizerblock.module	15 Apr 2007 15:18:23 -0000
@@ -39,7 +39,9 @@ function localizerblock_form_alter($form
           localizer_filter_form($form_id, $form);
           
           // Re-route submit callback
-          array_shift($form['#submit']);
+          if (is_array($form['#submit'])) {
+            array_shift($form['#submit']);
+          }
           $form['#submit']['localizerblock_form_submit'] = array('block');
         }
       }
Index: modules/localizermenu.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/localizer/modules/localizermenu.module,v
retrieving revision 1.6.2.1
diff -u -p -r1.6.2.1 localizermenu.module
--- modules/localizermenu.module	12 Apr 2007 03:16:31 -0000	1.6.2.1
+++ modules/localizermenu.module	15 Apr 2007 15:43:13 -0000
@@ -148,7 +148,9 @@ function localizermenu_form_alter($form_
 
           if (localizer_get_defaultuilocale() != localizer_get_adminlocale()) {
             // Re-route submit callback
-            array_shift($form['#submit']);
+            if (is_array($form['#submit'])) {
+              array_shift($form['#submit']);
+            }
             $form['#submit']['localizermenu_form_submit'] = array('menu');
 
             // Translate fields
@@ -168,7 +170,9 @@ function localizermenu_form_alter($form_
 
           if (localizer_get_defaultuilocale() != localizer_get_adminlocale()) {
             // Re-route submit callback
-            array_shift($form['#submit']);
+            if (is_array($form['#submit'])) {
+              array_shift($form['#submit']);
+            }
             $form['#submit']['localizermenu_form_submit'] = array('menu_item');
 
             // Translate fields
@@ -203,7 +207,7 @@ function localizermenu_form_submit($form
       'object_key' => $form['mid'],
       'locale' => localizer_get_adminlocale(),
     );
-    foreach ($variables as $name => $value) {
+    foreach ($variables as $name) {
       if (array_key_exists($name, $form)) {
         $translation['object_field'] = $name;
         $translation['translation'] = $form[$name];
Index: modules/localizertaxonomy.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/localizer/modules/localizertaxonomy.module,v
retrieving revision 1.5.2.1
diff -u -p -r1.5.2.1 localizertaxonomy.module
--- modules/localizertaxonomy.module	12 Apr 2007 03:16:31 -0000	1.5.2.1
+++ modules/localizertaxonomy.module	15 Apr 2007 15:19:07 -0000
@@ -37,7 +37,9 @@ function localizertaxonomy_form_alter($f
           $vid = $form['vid']['#value'];
 
           // Re-route submit callback
-          array_shift($form['#submit']);
+          if (is_array($form['#submit'])) {
+            array_shift($form['#submit']);
+          }
           $form['#submit']['localizertaxonomy_form_submit'] = array('taxonomy_vocabulary', $vid);
 
           // Translate fields
@@ -59,7 +61,9 @@ function localizertaxonomy_form_alter($f
           $tid = $form['tid']['#value'];
 
           // Re-route submit callback
-          array_shift($form['#submit']);
+          if (is_array($form['#submit'])) {
+            array_shift($form['#submit']);
+          }
           $form['#submit']['localizertaxonomy_form_submit'] = array('taxonomy_term', $tid);
 
           // Translate fields
@@ -99,7 +103,7 @@ function localizertaxonomy_form_submit($
       'object_key' => $object_key,
       'locale' => localizer_get_adminlocale(),
     );
-    foreach ($variables as $name => $value) {
+    foreach ($variables as $name) {
       if (array_key_exists($name, $form)) {
         $translation['object_field'] = $name;
         $translation['translation'] = $form[$name];
Index: modules/localizervariable.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/localizer/modules/localizervariable.module,v
retrieving revision 1.3.2.1
diff -u -p -r1.3.2.1 localizervariable.module
--- modules/localizervariable.module	12 Apr 2007 03:16:32 -0000	1.3.2.1
+++ modules/localizervariable.module	15 Apr 2007 15:49:50 -0000
@@ -26,8 +26,8 @@ function localizervariable_menu() {
 
     $variables = localizer_find('translation', "object_name='variable' AND locale='". localizer_get_uilocale() ."'");
     foreach ($variables as $variable) {
-      if (array_key_exists($variable['object_key'], $conf)) {
-        $conf[$variable['object_key']] = $variable['translation'];
+      if (array_key_exists($variable['object_field'], $conf)) {
+        $conf[$variable['object_field']] = $variable['translation'];
       }
     }
     $processed = TRUE;
@@ -77,14 +77,13 @@ function localizervariable_form_alter($f
 
     if (localizer_get_defaultuilocale() != localizer_get_adminlocale()) {
       // Re-route submit callback
-      unset($form['#submit'][$form_id .'_submit']);
-//      if (is_array($form['#submit'])) {
-//        array_shift($form['#submit']);
-//      }
+      if (is_array($form['#submit'])) {
+        array_shift($form['#submit']);
+      }
       $form['#submit']['localizervariable_form_submit'] = array();
 
       // Translate fields
-      $items = localizer_find('translation', "object_name='variable' AND locale='". localizer_get_adminlocale() ."'");
+      $items = localizer_find('translation', "object_name='variable' AND object_key = '$form_id' AND locale='". localizer_get_adminlocale() ."'");
       localizer_replace_form_values($form, $items);
 
       // Filter out untranslated fields
@@ -101,12 +100,12 @@ function localizervariable_form_submit($
   if ($variables) {
     $translation = array(
       'object_name' => 'variable',
-      'object_field' => 'value',
+      'object_key' => $form_id,
       'locale' => localizer_get_adminlocale(),
     );
-    foreach ($variables as $name => $value) {
+    foreach ($variables as $name) {
       if (array_key_exists($name, $form)) {
-        $translation['object_key'] = $name;
+        $translation['object_field'] = $name;
         $translation['translation'] = $form[$name];
         localizer_save('translation', $translation);
       }
