diff --git a/commerce_flat_rate.i18n.inc b/commerce_flat_rate.i18n.inc
new file mode 100644
index 0000000..cb32224
--- /dev/null
+++ b/commerce_flat_rate.i18n.inc
@@ -0,0 +1,33 @@
+<?php
+
+/**
+ * Implements hook_i18n_object_info().
+ */
+function commerce_flat_rate_i18n_object_info() {
+  $info['commerce_flat_rate'] = array(
+    'key' => 'name',
+    'class' => 'i18n_string_object_wrapper',
+    'string translation' => array(
+      'textgroup' => 'commerce_flat_rate',
+      'type' => 'name',
+      'properties' => array(
+        'title' => t('Title'),
+        'display_title' => t('Display title'),
+      ),
+    ),
+  );
+  return $info;
+}
+
+/**
+ * Implements hook_i18n_string_info().
+ */
+function commerce_flat_rate_i18n_string_info() {
+  $groups['commerce_flat_rate'] = array(
+    'title' => t('Commerce flat rate'),
+    'description' => t("Commerce flate rate shipping services' titles and display titles."),
+    'format' => FALSE, // This group doesn't have strings with format
+    'list' => FALSE, // This group cannot list all strings
+  );
+  return $groups;
+}
diff --git a/commerce_flat_rate.module b/commerce_flat_rate.module
index 1dd8f6a..928c226 100644
--- a/commerce_flat_rate.module
+++ b/commerce_flat_rate.module
@@ -114,6 +114,7 @@ function commerce_flat_rate_commerce_shipping_method_info() {
  * Implements hook_commerce_shipping_service_info().
  */
 function commerce_flat_rate_commerce_shipping_service_info() {
+  global $language;
   $services = array();
 
   // Look for flat rate services currently defined in the database.
@@ -155,6 +156,7 @@ function commerce_flat_rate_commerce_shipping_service_info() {
         $base_rate['data'] = commerce_price_component_add($base_rate, $tax_rate['price_component'], $component, TRUE);
       }
 
+      $service = i18n_object('commerce_flat_rate', $service)->translate($language->language);
       // Add the full service array to our return value.
       $services[$name] = array(
         'title' => $service['title'],
diff --git a/includes/commerce_flat_rate.admin.inc b/includes/commerce_flat_rate.admin.inc
index 40f18f2..b431385 100644
--- a/includes/commerce_flat_rate.admin.inc
+++ b/includes/commerce_flat_rate.admin.inc
@@ -218,6 +218,15 @@ function commerce_flat_rate_service_form_submit($form, &$form_state) {
   unset($shipping_service['base_rate']);
   $op = commerce_flat_rate_service_save($shipping_service);
 
+  if (module_exists('i18n_string')) {
+    $object = new stdclass;
+    $object->title = $shipping_service['title'];
+    $object->display_title = $shipping_service['display_title'];
+    // Prefix with shipping method machine name.
+    $object->name = $shipping_service['name'];
+    i18n_string_object_update('commerce_flat_rate', $object);
+  }
+
   if (!$op) {
     drupal_set_message(t('The flat rate service failed to save properly. Please review the form and try again.'), 'error');
     $form_state['rebuild'] = TRUE;
