Index: includes/common.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/common.inc,v
retrieving revision 1.990
diff -u -p -r1.990 common.inc
--- includes/common.inc	16 Sep 2009 15:28:00 -0000	1.990
+++ includes/common.inc	17 Sep 2009 16:57:30 -0000
@@ -1319,6 +1319,45 @@ function t($string, array $args = array(
 }
 
 /**
+ * Translate custom objects invoking the appropriate hook.
+ *
+ * @param $type
+ *   The object type.
+ * @param $object
+ *   The object to translate passed by reference.
+ * @param $options
+ *   An associative array of additional options, with the following keys:
+ *     - 'langcode' (default to the current language) The language code to
+ *       translate to a language other than what is used to display the page.
+ *     - 'source' (default to the default site language code) The source 
+ *       language the object's strings are entered in.
+ *
+ * @return
+ *   The translated object.
+ */
+function ot($type, &$object, $options = array()) {
+  static $translate;
+
+  if (!isset($translate)) {
+    // If we have just one language enabled objects don't need to be translated.
+    $translate = variable_get('language_count', 1) > 1;
+  }
+
+  if ($translate) {
+    if (empty($options['langcode'])) {
+      global $language;
+      $options['langcode'] = isset($language->language) ? $language->language : 'en';
+    }
+    if (!isset($options['source'])) {
+      $options['source'] = language_default('language');
+    }
+    drupal_alter("translate_$type", $object, $options);
+  }
+
+  return $object;
+}
+
+/**
  * @defgroup validation Input validation
  * @{
  * Functions to validate user input.
Index: modules/field/field.info.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/field/field.info.inc,v
retrieving revision 1.18
diff -u -p -r1.18 field.info.inc
--- modules/field/field.info.inc	7 Sep 2009 15:49:00 -0000	1.18
+++ modules/field/field.info.inc	17 Sep 2009 16:05:20 -0000
@@ -299,7 +299,8 @@ function _field_info_prepare_instance($i
     }
   }
 
-  return $instance;
+  // Let external modules translate strings.
+  return  ot('field_instance', $instance);
 }
 
 /**
