Index: translation.admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/translation/translation.admin.inc,v
retrieving revision 1.5
diff -u -p -r1.5 translation.admin.inc
--- translation.admin.inc	3 Jan 2011 17:59:54 -0000	1.5
+++ translation.admin.inc	17 Jan 2011 17:34:29 -0000
@@ -10,8 +10,6 @@
  * The entity translation settings form.
  */
 function translation_admin_form($form, $form_state) {
-  $options = array();
-
   $form['locale_field_language_fallback'] = array(
     '#type' => 'checkbox',
     '#title' => t('Enable language fallback'),
@@ -19,12 +17,12 @@ function translation_admin_form($form, $
     '#default_value' => variable_get('locale_field_language_fallback', TRUE),
   );
 
+  $options = array();
   foreach (entity_get_info() as $entity_type => $info) {
     if ($info['fieldable']) {
       $options[$entity_type] = $info['label'];
     }
   }
-
   $form['translation_entity_types'] = array(
     '#type' => 'checkboxes',
     '#title' => t('Translatable entity types'),
@@ -32,6 +30,8 @@ function translation_admin_form($form, $
     '#options' => $options,
     '#default_value' => variable_get('translation_entity_types', array()),
   );
+  // @see system_settings_form()
+  $form['array_filter'] = array('#type' => 'value', '#value' => TRUE);
 
   $form = system_settings_form($form);
 
Index: translation.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/translation/translation.install,v
retrieving revision 1.4
diff -u -p -r1.4 translation.install
--- translation.install	11 Jan 2011 14:32:17 -0000	1.4
+++ translation.install	17 Jan 2011 17:28:23 -0000
@@ -16,9 +16,6 @@ function translation_install() {
     ->fields(array('weight' => 1))
     ->condition('name', 'translation')
     ->execute();
-
-  // Enable translation for nodes.
-  variable_set('translation_entity_types', array('node' => 'node'));
 }
 
 /**
@@ -28,6 +25,7 @@ function translation_uninstall() {
   variable_del('locale_field_language_fallback');
   variable_del('translation_edit_form_info');
   variable_del('translation_entity_types');
+  variable_del('translation_installation_done');
 
   foreach (node_type_get_types() as $type => $object) {
     variable_del("translation_node_metadata_$type");
Index: translation.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/translation/translation.module,v
retrieving revision 1.12
diff -u -p -r1.12 translation.module
--- translation.module	3 Oct 2010 16:36:14 -0000	1.12
+++ translation.module	17 Jan 2011 17:35:21 -0000
@@ -6,7 +6,12 @@
  * Allow any fieldable entity to be translated.
  */
 
-module_load_include('inc', 'translation', 'includes/translation.node');
+/**
+ * Implements hook_init().
+ */
+function translation_init() {
+  module_load_include('inc', 'translation', 'includes/translation.node');
+}
 
 /**
  * Implements hook_language_type_info_alter().
@@ -120,8 +125,6 @@ function translation_enabled($entity_typ
  * Implements hook_menu().
  */
 function translation_menu() {
-  $items = array();
-
   // Create tabs for all possible entity types.
   foreach (entity_get_info() as $entity_type => $info) {
     // Menu is rebuilt while determining base paths so we might not have them
@@ -187,7 +190,7 @@ function translation_menu() {
     'page arguments' => array('translation_admin_form'),
     'access arguments' => array('administer entity translation'),
     'file' => 'translation.admin.inc',
-   );
+  );
 
   return $items;
 }
@@ -543,3 +546,30 @@ function translation_edit_form_info($for
 function translation_access($entity_type, $translation) {
   return $translation['status'] || user_access('translate any entity') || user_access("translate $entity_type entities");
 }
+
+/**
+ * Implements hook_page_build().
+ */
+function translation_page_build() {
+  if (!variable_get('translation_installation_done', FALSE)) {
+    $tasks = array();
+    $languages = language_list('enabled');
+    if (count($languages[1]) < 2) {
+      $tasks['language'] = t('Add another <a href="@languages-url">language</a>.', array(
+        '@languages-url' => url('admin/config/regional/language'),
+      ));
+    }
+    $entity_types = variable_get('translation_entity_types', array());
+    if (empty($entity_types)) {
+      $tasks['entity_types'] = t('Enable <a href="@translation-url">entity types</a> for translation.', array(
+        '@translation-url' => url('admin/config/regional/translation'),
+      ));
+    }
+    if (!empty($tasks)) {
+      drupal_set_message(theme('item_list', array('items' => $tasks)), 'warning');
+    }
+    else {
+      variable_set('translation_installation_done', 1);
+    }
+  }
+}
