diff --git a/faq.admin.inc b/faq.admin.inc
index 72cccac..ded18f2 100644
--- a/faq.admin.inc
+++ b/faq.admin.inc
@@ -499,7 +499,7 @@ function faq_order_settings_form($form, $form_state, $category = NULL) {
         if (!faq_taxonomy_term_count_nodes($term->tid)) {
           continue;
         }
-        $options[$term->tid] = faq_tt("taxonomy:term:$term->tid:name", $term->name);
+        $options[$term->tid] = faq_tt($term, 'name');
         $form['choose_cat']['faq_category'] = array(
           '#type' => 'select',
           '#title' => t('Choose a category'),
diff --git a/faq.module b/faq.module
index 7682926..f43c76e 100644
--- a/faq.module
+++ b/faq.module
@@ -544,7 +544,7 @@ function faq_page($tid = 0, $faq_display = '', $category_display = '') {
       if ($term = taxonomy_term_load($tid)) {
         $title = variable_get('faq_title', 'Frequently Asked Questions');
         if (arg(0) == 'faq-page' && is_numeric(arg(1))) {
-          drupal_set_title($title . ($title ? ' - ' : '') . faq_tt("taxonomy:term:$term->tid:name", $term->name));
+          drupal_set_title($title . ($title ? ' - ' : '') . faq_tt($term, 'name'));
         }
         _display_faq_by_category($faq_display, $category_display, $term, 0, $output, $output_answers);
         return theme('faq_page', array('content' => $output, 'answers' => $output_answers));
@@ -837,7 +837,7 @@ function faq_block_view($delta) {
           $block['subject'] = t('FAQ Categories');
           $items = array();
           foreach ($terms as $name => $tid) {
-            $items[] = l(faq_tt("taxonomy:term:$tid:name", $name), 'faq-page/' . $tid);
+            $items[] = l(faq_tt($tid, 'name'), 'faq-page/' . $tid);
           }
           $list_style = variable_get('faq_category_listing', 'ul');
           $block['content'] = theme('item_list', array('items' => $items, 'title' => NULL, 'type' => $list_style));
@@ -885,7 +885,7 @@ function _get_indented_faq_terms($vid, $tid) {
       $desc = '';
       if (!empty($term->description)) {
         $desc = '<div class="faq-qa-description">';
-        $desc .= check_markup(faq_tt("taxonomy:term:$term->tid:description", $term->description)) . "</div>";
+        $desc .= check_markup(faq_tt($term, 'description')) . "</div>";
       }
 
       // See if this term has any nodes itself, should it be a link?
@@ -915,14 +915,14 @@ function _get_indented_faq_terms($vid, $tid) {
           if ($hide_child_terms) {
             $count = $tree_count;
           }
-          $cur_item = $term_image . l(faq_tt("taxonomy:term:$term->tid:name", $term->name), $path) . " ($count) " . $desc;
+          $cur_item = $term_image . l(faq_tt($term, 'name'), $path) . " ($count) " . $desc;
         }
         else {
-          $cur_item = $term_image . l(faq_tt("taxonomy:term:$term->tid:name", $term->name), $path) . $desc;
+          $cur_item = $term_image . l(faq_tt($term, 'name'), $path) . $desc;
         }
       }
       else {
-        $cur_item = $term_image . check_plain(faq_tt("taxonomy:term:$term->tid:name", $term->name)) . $desc;
+        $cur_item = $term_image . check_plain(faq_tt($term, 'name')) . $desc;
       }
       if (!empty($term_image)) {
         $cur_item .= '<div class="clear-block"></div>';
@@ -1287,8 +1287,8 @@ function faq_view_child_category_headers($term) {
         $term_image = taxonomy_image_display($child_term->tid, array('class' => 'faq-tax-image'));
       }
 
-      $term_vars['link'] = l(faq_tt("taxonomy:term:$child_term->tid:name", $child_term->name), "faq-page/$child_term->tid");
-      $term_vars['description'] = check_markup(faq_tt("taxonomy:term:$child_term->tid:description", $child_term->description));
+      $term_vars['link'] = l(faq_tt($child_term, 'name'), "faq-page/$child_term->tid");
+      $term_vars['description'] = check_markup(faq_tt($child_term, 'description'));
       $term_vars['count'] = $term_node_count;
       $term_vars['term_image'] = $term_image;
       $child_categories[] = $term_vars;
@@ -1442,10 +1442,10 @@ function faq_set_breadcrumb($term = NULL) {
   $breadcrumb = array();
   if (variable_get('faq_custom_breadcrumbs', TRUE)) {
     if (module_exists("taxonomy") && $term) {
-      $breadcrumb[] = l(faq_tt("taxonomy:term:$term->tid:name", $term->name), 'faq-page/' . $term->tid);
+      $breadcrumb[] = l(faq_tt($term, 'name'), 'faq-page/' . $term->tid);
       while ($parents = taxonomy_get_parents($term->tid)) {
         $term = array_shift($parents);
-        $breadcrumb[] = l(faq_tt("taxonomy:term:$term->tid:name", $term->name), 'faq-page/' . $term->tid);
+        $breadcrumb[] = l(faq_tt($term, 'name'), 'faq-page/' . $term->tid);
       }
     }
     $breadcrumb[] = l(variable_get('faq_title', 'Frequently Asked Questions'), 'faq-page');
@@ -1478,10 +1478,25 @@ function faq_preprocess_page(&$variables) {
 }
 
 /**
- * Helper function for when i18ntaxonomy module is not installed.
+ * Helper function for when i18n_taxonomy module is not installed.
+ *
+ * $term A term object or tid
+ * $property The term property (eg, name or description)
  */
-function faq_tt($string_id, $default, $language = NULL) {
-  return function_exists('tt') ? tt($string_id, $default, $language) : $default;
+function faq_tt($term, $property) {
+  if (!is_object($term)) {
+    $term = taxonomy_term_load($term);
+  }
+
+  if (!$term) {
+    return NULL;
+  }
+
+  if (module_exists('i18n_taxonomy')) {
+    $term = i18n_taxonomy_localize_terms($term);
+  }
+
+  return $term->$property;
 }
 
 /**
diff --git a/includes/faq.hide_answer.inc b/includes/faq.hide_answer.inc
index 19b6564..d1bf806 100644
--- a/includes/faq.hide_answer.inc
+++ b/includes/faq.hide_answer.inc
@@ -92,16 +92,16 @@ function template_preprocess_faq_category_hide_answer(&$variables) {
 
   // Configure header.
   $variables['category_depth'] = $term->depth;
-  $variables['category_name'] = check_plain(faq_tt("taxonomy:term:$term->tid:name", $term->name));
+  $variables['category_name'] = check_plain(faq_tt($term, 'name'));
   if ($category_display == 'hide_qa') {
-    $variables['header_title'] = l(faq_tt("taxonomy:term:$term->tid:name", $term->name), "faq/$term->tid");
+    $variables['header_title'] = l(faq_tt($term, 'name'), "faq/$term->tid");
   }
   else {
-    $variables['header_title'] = check_plain(faq_tt("taxonomy:term:$term->tid:name", $term->name));
+    $variables['header_title'] = check_plain(faq_tt($term, 'name'));
   }
 
   // Configure category description.
-  $variables['description'] = check_markup(faq_tt("taxonomy:term:$term->tid:description", $term->description));
+  $variables['description'] = check_markup(faq_tt($term, 'description'));
 
   // Get list of sub-categories if necessary.
   $child_categories = array();
diff --git a/includes/faq.new_page.inc b/includes/faq.new_page.inc
index ca289e4..5e9a3e4 100644
--- a/includes/faq.new_page.inc
+++ b/includes/faq.new_page.inc
@@ -84,14 +84,14 @@ function template_preprocess_faq_category_new_page(&$variables) {
   // Configure header.
   $variables['category_depth'] = $term->depth;
   if ($category_display == 'hide_qa') {
-    $variables['header_title'] = l(faq_tt("taxonomy:term:$term->tid:name", $term->name), "faq/$term->tid");
+    $variables['header_title'] = l(faq_tt($term, 'name'), "faq/$term->tid");
   }
   else {
-    $variables['header_title'] = check_plain(faq_tt("taxonomy:term:$term->tid:name", $term->name));
+    $variables['header_title'] = check_plain(faq_tt($term, 'name'));
   }
 
   // Configure category description.
-  $variables['description'] = check_markup(faq_tt("taxonomy:term:$term->tid:description", $term->description));
+  $variables['description'] = check_markup(faq_tt($term, 'description'));
 
   // Get list of sub-categories if necessary.
   $child_categories = array();
diff --git a/includes/faq.questions_inline.inc b/includes/faq.questions_inline.inc
index ea327dd..f89399b 100644
--- a/includes/faq.questions_inline.inc
+++ b/includes/faq.questions_inline.inc
@@ -115,14 +115,14 @@ function template_preprocess_faq_category_questions_inline(&$variables) {
   // Configure header.
   $variables['category_depth'] = $term->depth;
   if ($category_display == 'hide_qa') {
-    $variables['header_title'] = l(faq_tt("taxonomy:term:$term->tid:name", $term->name), "faq/$term->tid");
+    $variables['header_title'] = l(faq_tt($term, 'name'), "faq/$term->tid");
   }
   else {
-    $variables['header_title'] = check_plain(faq_tt("taxonomy:term:$term->tid:name", $term->name));
+    $variables['header_title'] = check_plain(faq_tt($term, 'name'));
   }
 
   // Configure category description.
-  $variables['description'] = check_markup(faq_tt("taxonomy:term:$term->tid:description", $term->description));
+  $variables['description'] = check_markup(faq_tt($term, 'description'));
 
   // Get list of sub-categories if necessary.
   $child_categories = array();
diff --git a/includes/faq.questions_top.inc b/includes/faq.questions_top.inc
index 784482b..b51d1d6 100644
--- a/includes/faq.questions_top.inc
+++ b/includes/faq.questions_top.inc
@@ -76,7 +76,7 @@ function template_preprocess_faq_category_questions_top(&$variables) {
   $show_term_page_children = variable_get('faq_show_term_page_children', FALSE);
   $group_questions_top = variable_get('faq_group_questions_top', FALSE);
   $default_sorting = variable_get('faq_default_sorting', 'DESC');
-  
+
   // Configure labels.
   $variables['question_label'] = '';
   $variables['answer_label'] = '';
@@ -124,16 +124,16 @@ function template_preprocess_faq_category_questions_top(&$variables) {
 
   // Configure header.
   $variables['category_depth'] = $term->depth;
-  $variables['category_name'] = check_plain(faq_tt("taxonomy:term:$term->tid:name", $term->name));
+  $variables['category_name'] = check_plain(faq_tt($term, 'name'));
   if ($category_display == 'hide_qa') {
-    $variables['header_title'] = l(faq_tt("taxonomy:term:$term->tid:name", $term->name), "faq/$term->tid");
+    $variables['header_title'] = l(faq_tt($term, 'name'), "faq/$term->tid");
   }
   else {
-    $variables['header_title'] = check_plain(faq_tt("taxonomy:term:$term->tid:name", $term->name));
+    $variables['header_title'] = check_plain(faq_tt($term, 'name'));
   }
 
   // Configure category description.
-  $variables['description'] = check_markup(faq_tt("taxonomy:term:$term->tid:description", $term->description));
+  $variables['description'] = check_markup(faq_tt($term, 'description'));
 
   // Get list of sub-categories if necessary.
   $child_categories = array();
@@ -282,7 +282,7 @@ function template_preprocess_faq_category_questions_top_answers(&$variables) {
   }
   $variables['use_teaser'] = $teaser;
   $variables['nodes'] = $nodes;
-  $variables['category_name'] = check_plain(faq_tt("taxonomy:term:$term->tid:name", $term->name));
+  $variables['category_name'] = check_plain(faq_tt($term, 'name'));
   $variables['category_depth'] = $term->depth;
   $variables['display_header'] = FALSE;
   $variables['answer_category_name'] = variable_get('faq_answer_category_name', FALSE);
