diff --git a/modules/locale/views_handler_field_locale_language.inc b/modules/locale/views_handler_field_locale_language.inc
index 8038e2b..7712d5b 100644
--- a/modules/locale/views_handler_field_locale_language.inc
+++ b/modules/locale/views_handler_field_locale_language.inc
@@ -11,26 +11,54 @@
  * @ingroup views_field_handlers
  */
 class views_handler_field_locale_language extends views_handler_field {
+  function init(&$view, &$options) {
+    parent::init($view, $options);
+
+    // Convert old language display information new format.
+    // @todo Remove for next major version.
+    if (isset($this->options['native_language'])) {
+      $this->options['language_display'] = 'native';
+      unset($this->options['language_display']);
+    }
+  }
+
   function option_definition() {
     $options = parent::option_definition();
-    $options['native_language'] = array('default' => FALSE, 'bool' => TRUE);
+    $options['language_display'] = array('default' => 'name');
 
     return $options;
   }
 
   function options_form(&$form, &$form_state) {
     parent::options_form($form, $form_state);
-    $form['native_language'] = array(
-      '#title' => t('Native language'),
-      '#type' => 'checkbox',
-      '#default_value' => $this->options['native_language'],
-      '#description' => t('If enabled, the native name of the language will be displayed'),
+    $form['language_display'] = array(
+      '#title' => t('Language display'),
+      '#type' => 'radios',
+      '#options' => array(
+        'name' => t('Language name in English'),
+        'native' => t('Native language name'),
+        'langcode' => t('Language code'),
+      ),
+      '#default_value' => $this->options['language_display'],
+      '#description' => t('The type of language information will be displayed'),
     );
   }
 
   function render($values) {
-    $languages = locale_language_list(empty($this->options['native_language']) ? 'name' : 'native');
     $value = $this->get_value($values);
-    return isset($languages[$value]) ? $languages[$value] : '';
+
+    if (!isset($this->options['language_display'])) {
+      $this->options['language_display'] = 'name';
+    }
+
+    if ($this->options['language_display'] == 'langcode') {
+      $value = check_plain($value);
+    }
+    else {
+      $languages = views_language_list($this->options['language_display']);
+      $value = isset($languages[$value]) ? $languages[$value] : '';
+    }
+
+    return isset($value) ? $value : '';
   }
 }
diff --git a/modules/locale/views_handler_field_node_language.inc b/modules/locale/views_handler_field_node_language.inc
index 467605b..f45277e 100644
--- a/modules/locale/views_handler_field_node_language.inc
+++ b/modules/locale/views_handler_field_node_language.inc
@@ -11,27 +11,54 @@
  * @ingroup views_field_handlers
  */
 class views_handler_field_node_language extends views_handler_field_node {
+  function init(&$view, &$options) {
+    parent::init($view, $options);
+
+    // Convert old language display information new format.
+    // @todo Remove for next major version.
+    if (isset($this->options['native_language'])) {
+      $this->options['language_display'] = 'native';
+      unset($this->options['language_display']);
+    }
+  }
+
   function option_definition() {
     $options = parent::option_definition();
-    $options['native_language'] = array('default' => FALSE, 'bool' => TRUE);
+    $options['language_display'] = array('default' => 'name');
 
     return $options;
   }
 
   function options_form(&$form, &$form_state) {
     parent::options_form($form, $form_state);
-    $form['native_language'] = array(
-      '#title' => t('Native language'),
-      '#type' => 'checkbox',
-      '#default_value' => $this->options['native_language'],
-      '#description' => t('If enabled, the native name of the language will be displayed'),
+    $form['language_display'] = array(
+      '#title' => t('Language display'),
+      '#type' => 'radios',
+      '#options' => array(
+        'name' => t('Language name in English'),
+        'native' => t('Native language name'),
+        'langcode' => t('Language code'),
+      ),
+      '#default_value' => $this->options['language_display'],
+      '#description' => t('The type of language information will be displayed'),
     );
   }
 
   function render($values) {
-    $languages = views_language_list(empty($this->options['native_language']) ? 'name' : 'native');
     $value = $this->get_value($values);
-    $value = isset($languages[$value]) ? $languages[$value] : '';
+
+    if (!isset($this->options['language_display'])) {
+      $this->options['language_display'] = 'name';
+    }
+
+    if ($this->options['language_display'] == 'langcode') {
+      $value = check_plain($value);
+    }
+    else {
+      $languages = views_language_list($this->options['language_display']);
+      $value = isset($languages[$value]) ? $languages[$value] : '';
+    }
+
     return $this->render_link($value, $values);
   }
 }
