Index: modules/contact/contact.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/contact/contact.admin.inc,v
retrieving revision 1.18
diff -u -p -r1.18 contact.admin.inc
--- modules/contact/contact.admin.inc	9 Oct 2009 02:34:07 -0000	1.18
+++ modules/contact/contact.admin.inc	12 Oct 2009 22:12:59 -0000
@@ -19,7 +19,14 @@ function contact_category_list() {
   $rows = array();
 
   // Get all the contact categories from the database.
-  $categories = db_query('SELECT cid, category, recipients, selected FROM {contact} ORDER BY weight, category')->fetchAll();
+  $categories = db_select('contact', 'c')
+    ->addTag('translatable')
+    ->addTag('contact')
+    ->fields('c', array('cid', 'category', 'recipients', 'selected'))
+    ->orderBy('weight')
+    ->orderBy('category')
+    ->execute()
+    ->fetchAll();
 
   // Loop through the categories and add them to the table.
   foreach ($categories as $category) {
Index: modules/contact/contact.install
===================================================================
RCS file: /cvs/drupal/drupal/modules/contact/contact.install,v
retrieving revision 1.19
diff -u -p -r1.19 contact.install
--- modules/contact/contact.install	9 Oct 2009 02:54:10 -0000	1.19
+++ modules/contact/contact.install	12 Oct 2009 22:12:59 -0000
@@ -25,6 +25,7 @@ function contact_schema() {
         'not null' => TRUE,
         'default' => '',
         'description' => 'Category name.',
+        'translatable' => TRUE,
       ),
       'recipients' => array(
         'type' => 'text',
Index: modules/contact/contact.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/contact/contact.module,v
retrieving revision 1.134
diff -u -p -r1.134 contact.module
--- modules/contact/contact.module	11 Oct 2009 18:34:10 -0000	1.134
+++ modules/contact/contact.module	12 Oct 2009 22:12:59 -0000
@@ -154,7 +154,14 @@ function _contact_personal_tab_access(st
  *   An array with the contact category's data.
  */
 function contact_load($cid) {
-  return db_query("SELECT * FROM {contact} WHERE cid = :cid", array(':cid' => $cid))->fetchAssoc();
+  return db_select('contact', 'c')
+    ->addTag('translatable')
+    ->addTag('contact')
+    ->fields('c')
+    ->condition('cid', $cid)
+    ->execute()
+    ->fetchAssoc();
+  //return db_query("SELECT * FROM {contact} WHERE cid = :cid", array(':cid' => $cid))->fetchAssoc();
 }
 
 /**
Index: modules/contact/contact.pages.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/contact/contact.pages.inc,v
retrieving revision 1.32
diff -u -p -r1.32 contact.pages.inc
--- modules/contact/contact.pages.inc	11 Oct 2009 18:34:10 -0000	1.32
+++ modules/contact/contact.pages.inc	12 Oct 2009 22:12:59 -0000
@@ -24,7 +24,14 @@ function contact_site_form($form, &$form
   }
 
   // Get an array of the categories and the current default category.
-  $categories = db_query("SELECT cid, category FROM {contact} ORDER BY weight, category")->fetchAllKeyed();
+  $categories = db_select('contact', 'c')
+    ->addTag('translatable')
+    ->addTag('contact')
+    ->fields('c', array('cid', 'category'))
+    ->orderBy('weight')
+    ->orderBy('category')
+    ->execute()
+    ->fetchAllKeyed();
   $default_category = db_query("SELECT cid FROM {contact} WHERE selected = 1")->fetchField();
 
   // If there are no categories, do not display the form.
