Index: modules/contact/contact.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/contact/contact.admin.inc,v
retrieving revision 1.16
diff -u -p -r1.16 contact.admin.inc
--- modules/contact/contact.admin.inc	26 Sep 2009 00:13:18 -0000	1.16
+++ modules/contact/contact.admin.inc	8 Oct 2009 16:43:43 -0000
@@ -20,7 +20,7 @@ function contact_admin_categories() {
   // Loop through the categories and add them to the table.
   foreach ($result as $record) {
     $rows[] = array(
-      $record->category,
+      t($record->category),
       $record->recipients,
       ($record->selected ? t('Yes') : t('No')),
       l(t('edit'), 'admin/structure/contact/edit/' . $record->cid),
Index: modules/contact/contact.pages.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/contact/contact.pages.inc,v
retrieving revision 1.26
diff -u -p -r1.26 contact.pages.inc
--- modules/contact/contact.pages.inc	29 Sep 2009 15:31:14 -0000	1.26
+++ modules/contact/contact.pages.inc	8 Oct 2009 16:43:43 -0000
@@ -38,6 +38,9 @@ function contact_site_form() {
   $categories = db_query("SELECT cid, category FROM {contact} ORDER BY weight, category")->fetchAllKeyed();
   $default_category = (int) db_query("SELECT cid FROM {contact} WHERE selected = 1")->fetchField();
 
+  // Translate the category names.
+  $categories = array_map('t', $categories);
+
   // If there is more than one category available and no default category has been selected,
   // prepend a default placeholder value.
   if (!$default_category) {
