diff --git a/workbench_moderation.admin.inc b/workbench_moderation.admin.inc
index 003cd5c..7121c47 100644
--- a/workbench_moderation.admin.inc
+++ b/workbench_moderation.admin.inc
@@ -150,6 +150,10 @@ function workbench_moderation_admin_states_form_submit($form, &$form_state) {
         'weight' => $info['weight'],
       );
       workbench_moderation_state_save($state);
+      if (module_exists('i18n_string')) {
+        i18n_string_update(array('workbench_moderation', 'moderation_state', $info['name'], 'label'), $info['label']);
+        i18n_string_update(array('workbench_moderation', 'moderation_state', $info['name'], 'description'), $info['description']);
+      }
     }
   }
 
diff --git a/workbench_moderation.module b/workbench_moderation.module
index 6c7d5ed..e5b805a 100644
--- a/workbench_moderation.module
+++ b/workbench_moderation.module
@@ -1264,7 +1264,12 @@ function workbench_moderation_state_labels() {
   if (!isset($labels)) {
     $labels = array();
     foreach (workbench_moderation_states() as $machine_name => $state) {
-      $labels[$machine_name] = $state->label;
+      if (module_exists('i18n_string')) {
+        $labels[$machine_name] = i18n_string_translate(array('workbench_moderation', 'moderation_state', $machine_name, 'label'), $state->label);
+      }
+      else {
+        $labels[$machine_name] = $state->label;
+      }
     }
   }
 
@@ -1272,6 +1277,37 @@ function workbench_moderation_state_labels() {
 }
 
 /**
+ * Implements hook_i18n_string_info().
+ */
+function workbench_moderation_i18n_string_info() {
+  $groups['workbench_moderation'] = array(
+    'title' => t('Workbench moderation'),
+    'description' => t('Translatable workbench moderation states: label.'),
+    // This group doesn't have strings with format.
+    'format' => FALSE,
+    // This group can list all strings.
+    'list' => TRUE,
+  );
+  return $groups;
+}
+
+/**
+ * Implements hook_i18n_string_list().
+ */
+function workbench_moderation_i18n_string_list($group) {
+  $strings = array();
+
+  if ($group == 'workbench_moderation') {
+    foreach (workbench_moderation_states() as $state) {
+      $strings['workbench_moderation']['moderation_state'][$state->name]['label'] = $state->label;
+      $strings['workbench_moderation']['moderation_state'][$state->name]['description'] = $state->description;
+    }
+  }
+
+  return $strings;
+}
+
+/**
  * Get the label for a state based on its machine name.
  *
  * @param type $machine_name

