--- help.admin.inc	Sun Nov 25 12:11:18 2007
+++ help.admin.inc	Thu Sep  3 14:01:44 2009
@@ -23,8 +23,14 @@
   $output = '';
   if (module_hook($name, 'help')) {
     $module = drupal_parse_info_file(drupal_get_path('module', $name) .'/'. $name .'.info');
-    drupal_set_title($module['name']);
 
+    $name_tr = help_name_translation();
+    
+    if($module[$name_tr] == "")
+        $name_tr = 'name';
+
+    drupal_set_title($module[$name_tr]);
+
     $temp = module_invoke($name, 'help', "admin/help#$name", drupal_help_arg());
     if (empty($temp)) {
       $output .= t("No help is available for module %module.", array('%module' => $module['name']));
@@ -49,10 +55,15 @@
   $empty_arg = drupal_help_arg();
   $module_info = module_rebuild_cache();
 
+  $name_tr = help_name_translation();
+
   $modules = array();
   foreach (module_implements('help', TRUE) as $module) {
     if (module_invoke($module, 'help', "admin/help#$module", $empty_arg)) {
-      $modules[$module] = $module_info[$module]->info['name'];
+        if($module_info[$module]->info[$name_tr] == "")
+            $modules[$module] = $module_info[$module]->info['name'];
+        else
+            $modules[$module] = $module_info[$module]->info[$name_tr];
     }
   }
   asort($modules);
@@ -73,4 +84,14 @@
 
   return $output;
 }
+function help_name_translation()
+{
+  // If the page is in English, it defines the $name_lan as default value.
+  global $language;
 
+  if($language->prefix == 'en')
+    return 'name';
+  else
+    return 'name_'.$language->prefix;
+}
+
