diff --git a/includes/webform_localization.i18n.inc b/includes/webform_localization.i18n.inc
index e4339b7..4e4a60e 100644
--- a/includes/webform_localization.i18n.inc
+++ b/includes/webform_localization.i18n.inc
@@ -28,6 +28,8 @@
  */
 function _webform_localization_translate_component(&$element, $component) {
   if (isset($component['extra']['translated_strings']) && is_array($component['extra']['translated_strings'])) {
+    $node = !empty($component['nid']) ? node_load($component['nid']) : NULL;
+
     foreach ($component['extra']['translated_strings'] as $name) {
       $name_list = explode(':', $name);
       $current_element = &$element;
@@ -55,7 +57,8 @@ function _webform_localization_translate_component(&$element, $component) {
         // If property is array, we extract the key from the property.
         list ($property, $key) = explode('-', $property);
         if (isset($current_element['#' . $property][$key])) {
-          $current_element['#' . $property][$key] = i18n_string($name, $current_element['#' . $property][$key], array('sanitize' => FALSE));
+          $text = i18n_string($name, $current_element['#' . $property][$key], array('sanitize' => FALSE));
+          $current_element['#' . $property][$key] = webform_replace_tokens($text, $node);
         }
       }
       else {
@@ -64,11 +67,13 @@ function _webform_localization_translate_component(&$element, $component) {
           $option_group = str_replace('/-', '', $name_list[4]);
           // If it's a element.
           if (isset($name_list[5])) {
-            $current_element['#' . $property][$option_group][$name_list[5]] = i18n_string($name, $current_element['#' . $property][$option_group][$name_list[5]]);
+            $text = i18n_string($name, $current_element['#' . $property][$option_group][$name_list[5]]);
+            $current_element['#' . $property][$option_group][$name_list[5]] = webform_replace_tokens($text, $node);
           }
           else {
             // If it's a option group we translate the key.
-            $translated_option_group = i18n_string($name, $option_group);
+            $text = i18n_string($name, $option_group);
+            $translated_option_group = webform_replace_tokens($text, $node);
             if ($translated_option_group != $option_group) {
               _webform_localization_array_key_replace($current_element['#' . $property], $option_group, $translated_option_group);
             }
@@ -78,11 +83,12 @@ function _webform_localization_translate_component(&$element, $component) {
           // Else we can treat the property as string.
           if (isset($current_element['#' . $property])) {
             if ($property == 'markup' && $current_element['#type'] == 'markup') {
-              $current_element['#' . $property] = i18n_string($name, $current_element['#' . $property], array('format' => $current_element['#format']));
+              $text = i18n_string($name, $current_element['#' . $property], array('format' => $current_element['#format']));
             }
             else {
-              $current_element['#' . $property] = i18n_string($name, $current_element['#' . $property]);
+              $text = i18n_string($name, $current_element['#' . $property]);
             }
+            $current_element['#' . $property] = webform_replace_tokens($text, $node);
           }
         }
       }
