Index: views.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/views.module,v
retrieving revision 1.328
diff -u -p -r1.328 views.module
--- views.module	30 Jan 2009 01:26:55 -0000	1.328
+++ views.module	19 Feb 2009 23:16:01 -0000
@@ -1038,6 +1038,7 @@ function drupal_build_form($form_id, &$f
 function views_views_query_substitutions($view) {
   global $language;
   return array(
+    '***CURRENT_VERSION***' => VERSION,
     '***CURRENT_TIME***' => time(),
     '***CURRENT_LANGUAGE***' => $language->language,
     '***DEFAULT_LANGUAGE***' => language_default('language'),
@@ -1159,4 +1160,4 @@ function views_views_exportables($op = '
 function views_microtime() {
   list($usec, $sec) = explode(' ', microtime());
   return (float)$sec + (float)$usec;
-}
\ No newline at end of file
+}
Index: includes/handlers.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/includes/handlers.inc,v
retrieving revision 1.105
diff -u -p -r1.105 handlers.inc
--- includes/handlers.inc	30 Jan 2009 00:01:41 -0000	1.105
+++ includes/handlers.inc	19 Feb 2009 23:16:02 -0000
@@ -1322,6 +1322,8 @@ function book_views_api() { return views
 
 function comment_views_api() { return views_views_api(); }
 
+function locale_views_api() { return views_views_api(); }
+
 function node_views_api() { return views_views_api(); }
 
 function poll_views_api() { return views_views_api(); }
Index: modules/locale/views_handler_argument_locale_group.inc
===================================================================
RCS file: modules/locale/views_handler_argument_locale_group.inc
diff -N modules/locale/views_handler_argument_locale_group.inc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/locale/views_handler_argument_locale_group.inc	19 Feb 2009 23:16:03 -0000
@@ -0,0 +1,35 @@
+<?php
+// $Id: views_handler_argument_node_language.inc,v 1.1 2008/09/30 22:07:15 merlinofchaos Exp $
+
+/**
+ * Argument handler to accept a language.
+ */
+class views_handler_argument_locale_group extends views_handler_argument {
+  function construct() {
+    parent::construct('group');
+  }
+
+  /**
+   * Override the behavior of summary_name(). Get the user friendly version
+   * of the group.
+   */
+  function summary_name($data) {
+    return $this->locale_group($data->{$this->name_alias});
+  }
+
+  /**
+   * Override the behavior of title(). Get the user friendly version
+   * of the language.
+   */
+  function title() {
+    return $this->locale_group($this->argument);
+  }
+
+  function locale_group($group) {
+    $groups = module_invoke_all('locale', 'groups');
+    // Sort the list.
+    asort($groups);
+    return isset($groups[$group]) ? $groups[$group] : t('Unknown group');
+  }
+}
+
Index: modules/locale/views_handler_argument_locale_language.inc
===================================================================
RCS file: modules/locale/views_handler_argument_locale_language.inc
diff -N modules/locale/views_handler_argument_locale_language.inc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/locale/views_handler_argument_locale_language.inc	19 Feb 2009 23:16:03 -0000
@@ -0,0 +1,33 @@
+<?php
+// $Id: views_handler_argument_node_language.inc,v 1.1 2008/09/30 22:07:15 merlinofchaos Exp $
+
+/**
+ * Argument handler to accept a language.
+ */
+class views_handler_argument_locale_language extends views_handler_argument {
+  function construct() {
+    parent::construct('language');
+  }
+
+  /**
+   * Override the behavior of summary_name(). Get the user friendly version
+   * of the language.
+   */
+  function summary_name($data) {
+    return $this->locale_language($data->{$this->name_alias});
+  }
+
+  /**
+   * Override the behavior of title(). Get the user friendly version
+   * of the language.
+   */
+  function title() {
+    return $this->locale_language($this->argument);
+  }
+
+  function locale_language($langcode) {
+    $languages = locale_language_list();
+    return isset($languages[$langcode]) ? $languages[$langcode] : t('Unknown language');
+  }
+}
+
Index: modules/locale/views_handler_field_locale_group.inc
===================================================================
RCS file: modules/locale/views_handler_field_locale_group.inc
diff -N modules/locale/views_handler_field_locale_group.inc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/locale/views_handler_field_locale_group.inc	19 Feb 2009 23:16:03 -0000
@@ -0,0 +1,14 @@
+<?php
+// $Id: views_handler_field_node_language.inc,v 1.2 2008/10/28 17:46:14 merlinofchaos Exp $
+
+/**
+ * Field handler to translate a group into its readable form.
+ */
+class views_handler_field_locale_group extends views_handler_field {
+  function render($values) {
+    $groups = module_invoke_all('locale', 'groups');
+    // Sort the list.
+    asort($groups);
+    return isset($groups[$values->{$this->field_alias}]) ? $groups[$values->{$this->field_alias}] : '';
+  }
+}
Index: modules/locale/views_handler_field_locale_language.inc
===================================================================
RCS file: modules/locale/views_handler_field_locale_language.inc
diff -N modules/locale/views_handler_field_locale_language.inc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/locale/views_handler_field_locale_language.inc	19 Feb 2009 23:16:03 -0000
@@ -0,0 +1,12 @@
+<?php
+// $Id: views_handler_field_node_language.inc,v 1.2 2008/10/28 17:46:14 merlinofchaos Exp $
+
+/**
+ * Field handler to translate a language into its readable form.
+ */
+class views_handler_field_locale_language extends views_handler_field {
+  function render($values) {
+    $languages = language_list();
+    return isset($languages[$values->{$this->field_alias}]) ? $languages[$values->{$this->field_alias}]->name : '';
+  }
+}
Index: modules/locale/views_handler_field_locale_link_edit.inc
===================================================================
RCS file: modules/locale/views_handler_field_locale_link_edit.inc
diff -N modules/locale/views_handler_field_locale_link_edit.inc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/locale/views_handler_field_locale_link_edit.inc	19 Feb 2009 23:16:03 -0000
@@ -0,0 +1,45 @@
+<?php
+// $Id: views_handler_field_node_link_edit.inc,v 1.1 2008/09/03 19:21:29 merlinofchaos Exp $
+
+/**
+ * Field handler to present a link to edit a translation.
+ */
+class views_handler_field_locale_link_edit extends views_handler_field {
+  function construct() {
+    parent::construct();
+    $this->additional_fields['lid'] = 'lid';
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    $options['text'] = array('default' => '', 'translatable' => TRUE);
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['text'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Text to display'),
+      '#default_value' => $this->options['text'],
+    );
+  }
+
+  function query() {
+    $this->ensure_my_table();
+    $this->add_additional_fields();
+  }
+
+  function render($values) {
+    // Ensure user has access to edit translations.
+    if (!user_access('translate interface')) {
+      return;
+    }
+
+    $text = !empty($this->options['text']) ? $this->options['text'] : t('edit');
+    return l($text, 'admin/build/translate/edit/' . $values->{$this->aliases['lid']}, array('query' => drupal_get_destination()));
+  }
+}
+
Index: modules/locale/views_handler_filter_locale_group.inc
===================================================================
RCS file: modules/locale/views_handler_filter_locale_group.inc
diff -N modules/locale/views_handler_filter_locale_group.inc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/locale/views_handler_filter_locale_group.inc	19 Feb 2009 23:16:03 -0000
@@ -0,0 +1,18 @@
+<?php
+// $Id: views_handler_filter_node_language.inc,v 1.1 2008/09/30 22:07:15 merlinofchaos Exp $
+
+/**
+ * Filter by locale group.
+ */
+class views_handler_filter_locale_group extends views_handler_filter_in_operator {
+  function get_value_options() {
+    if (!isset($this->value_options)) {
+      $this->value_title = t('Group');
+      $groups = module_invoke_all('locale', 'groups');
+      // Sort the list.
+      asort($groups);
+      $this->value_options = $groups;
+    }
+  }
+}
+
Index: modules/locale/views_handler_filter_locale_language.inc
===================================================================
RCS file: modules/locale/views_handler_filter_locale_language.inc
diff -N modules/locale/views_handler_filter_locale_language.inc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/locale/views_handler_filter_locale_language.inc	19 Feb 2009 23:16:03 -0000
@@ -0,0 +1,17 @@
+<?php
+// $Id: views_handler_filter_node_language.inc,v 1.1 2008/09/30 22:07:15 merlinofchaos Exp $
+
+/**
+ * Filter by language.
+ */
+class views_handler_filter_locale_language extends views_handler_filter_in_operator {
+  function get_value_options() {
+    if (!isset($this->value_options)) {
+      $this->value_title = t('Language');
+      $languages = array('***CURRENT_LANGUAGE***' => t("Current user's language"), '***DEFAULT_LANGUAGE***' => t("Default site language"), '***NO_LANGUAGE***' => t('No language'));
+      $languages = array_merge($languages, locale_language_list());
+      $this->value_options = $languages;
+    }
+  }
+}
+
Index: modules/locale/views_handler_filter_locale_version.inc
===================================================================
RCS file: modules/locale/views_handler_filter_locale_version.inc
diff -N modules/locale/views_handler_filter_locale_version.inc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/locale/views_handler_filter_locale_version.inc	19 Feb 2009 23:16:03 -0000
@@ -0,0 +1,22 @@
+<?php
+// $Id: views_handler_filter_node_language.inc,v 1.1 2008/09/30 22:07:15 merlinofchaos Exp $
+
+/**
+ * Filter by version.
+ */
+class views_handler_filter_locale_version extends views_handler_filter_in_operator {
+  function get_value_options() {
+    if (!isset($this->value_options)) {
+      $this->value_title = t('Version');
+      // Enable filtering by the current installed Drupal version.
+      $versions = array('***CURRENT_VERSION***' => t('Current installed version'));
+      $result = db_query('SELECT DISTINCT(version) FROM {locales_source} ORDER BY  version');
+      while ($row = db_fetch_array($result)) {
+        if (!empty($row['version'])) {
+          $versions[$row['version']] = $row['version'];
+        }
+      }
+      $this->value_options = $versions;
+    }
+  }
+}
