From 5f130925732b0b1fb5bc48e126ba69a7f813add8 Mon Sep 17 00:00:00 2001
From: OnkelTem <OnkelTem@239962.no-reply.drupal.org>
Date: Sat, 11 Aug 2012 15:06:26 +0400
Subject: [PATCH] Issue #1723810 by OnkeTem: Reworking langauge handlers for
 locale and node.

---
 .../views_handler_argument_locale_language.inc     |   11 ++++++++++-
 .../locale/views_handler_field_locale_language.inc |   11 ++++++++++-
 .../locale/views_handler_field_node_language.inc   |   10 +++++++++-
 .../views_handler_filter_locale_language.inc       |    2 +-
 .../locale/views_handler_filter_node_language.inc  |    2 +-
 .../node/views_handler_argument_node_language.inc  |   10 +++++++++-
 6 files changed, 40 insertions(+), 6 deletions(-)

diff --git a/modules/locale/views_handler_argument_locale_language.inc b/modules/locale/views_handler_argument_locale_language.inc
index 316d4b1..b97ad91 100644
--- a/modules/locale/views_handler_argument_locale_language.inc
+++ b/modules/locale/views_handler_argument_locale_language.inc
@@ -33,6 +33,15 @@ class views_handler_argument_locale_language extends views_handler_argument {
 
   function locale_language($langcode) {
     $languages = views_language_list();
-    return isset($languages[$langcode]) ? $languages[$langcode] : t('Unknown language');
+    if ($langcode == LANGUAGE_NONE) {
+      $language = t('Language neutral');
+    }
+    elseif (isset($languages[$langcode])) {
+      $language = t($languages[$langcode]);
+    }
+    else {
+      $language = t('Undefined language (@langcode)', array('@langcode' => $langcode));
+    }
+    return $language;
   }
 }
diff --git a/modules/locale/views_handler_field_locale_language.inc b/modules/locale/views_handler_field_locale_language.inc
index 8038e2b..8076003 100644
--- a/modules/locale/views_handler_field_locale_language.inc
+++ b/modules/locale/views_handler_field_locale_language.inc
@@ -31,6 +31,15 @@ class views_handler_field_locale_language extends views_handler_field {
   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 ($value == LANGUAGE_NONE) {
+      $value = t('Language neutral');
+    }
+    elseif (isset($languages[$value])) {
+      $value = t($languages[$value]);
+    }
+    else {
+      $value = t('Undefined language (@langcode)', array('@langcode' => $value));
+    }
+    return $value;
   }
 }
diff --git a/modules/locale/views_handler_field_node_language.inc b/modules/locale/views_handler_field_node_language.inc
index 467605b..112ea74 100644
--- a/modules/locale/views_handler_field_node_language.inc
+++ b/modules/locale/views_handler_field_node_language.inc
@@ -31,7 +31,15 @@ class views_handler_field_node_language extends views_handler_field_node {
   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 ($value == LANGUAGE_NONE) {
+      $value = t('Language neutral');
+    }
+    elseif (isset($languages[$value])) {
+      $value = t($languages[$value]);
+    }
+    else {
+      $value = t('Undefined language (@langcode)', array('@langcode' => $value));
+    }
     return $this->render_link($value, $values);
   }
 }
diff --git a/modules/locale/views_handler_filter_locale_language.inc b/modules/locale/views_handler_filter_locale_language.inc
index eee12a6..45c550e 100644
--- a/modules/locale/views_handler_filter_locale_language.inc
+++ b/modules/locale/views_handler_filter_locale_language.inc
@@ -17,7 +17,7 @@ class views_handler_filter_locale_language extends views_handler_filter_in_opera
       $languages = array(
         '***CURRENT_LANGUAGE***' => t("Current user's language"),
         '***DEFAULT_LANGUAGE***' => t("Default site language"),
-        LANGUAGE_NONE => t('No language')
+        LANGUAGE_NONE => t('Language neutral')
       );
       $languages = array_merge($languages, views_language_list());
       $this->value_options = $languages;
diff --git a/modules/locale/views_handler_filter_node_language.inc b/modules/locale/views_handler_filter_node_language.inc
index 7592577..c865f33 100644
--- a/modules/locale/views_handler_filter_node_language.inc
+++ b/modules/locale/views_handler_filter_node_language.inc
@@ -17,7 +17,7 @@ class views_handler_filter_node_language extends views_handler_filter_in_operato
       $languages = array(
         '***CURRENT_LANGUAGE***' => t("Current user's language"),
         '***DEFAULT_LANGUAGE***' => t("Default site language"),
-        LANGUAGE_NONE => t('No language')
+        LANGUAGE_NONE => t('Language neutral')
       );
       $languages = array_merge($languages, views_language_list());
       $this->value_options = $languages;
diff --git a/modules/node/views_handler_argument_node_language.inc b/modules/node/views_handler_argument_node_language.inc
index 170388a..faa1657 100644
--- a/modules/node/views_handler_argument_node_language.inc
+++ b/modules/node/views_handler_argument_node_language.inc
@@ -31,6 +31,14 @@ class views_handler_argument_node_language extends views_handler_argument {
 
   function node_language($langcode) {
     $languages = views_language_list();
-    return isset($languages[$langcode]) ? $languages[$langcode] : t('Unknown language');
+    if ($langcode == LANGUAGE_NONE) {
+      $language = t('Language neutral');
+    }
+    elseif (isset($languages[$langcode])) {
+      $language = t($languages[$langcode]);
+    }
+    else {
+      $language = t('Undefined language (@langcode)', array('@langcode' => $langcode));
+    }
   }
 }
-- 
1.7.9.5

