? .svn
? views-translation.diff
? css/.svn
? docs/.svn
? handlers/.svn
? help/.svn
? help/images/.new.views2-ad
? help/images/.svn
? images/.svn
? includes/.svn
? js/.svn
? modules/.svn
? modules/translation
? modules/comment/.svn
? modules/node/.svn
? modules/profile/.svn
? modules/search/.svn
? modules/statistics/.svn
? modules/system/.svn
? modules/taxonomy/.svn
? modules/upload/.svn
? modules/user/.svn
? plugins/.svn
? po/.svn
? theme/.svn
? translations/.svn
? translations/views.fr.po
? views_export/.svn
Index: views.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/views.module,v
retrieving revision 1.310
diff -u -p -r1.310 views.module
--- views.module	24 Sep 2008 22:28:50 -0000	1.310
+++ views.module	27 Sep 2008 17:03:27 -0000
@@ -971,6 +971,7 @@ function views_views_query_substitutions
   return array(
     '***CURRENT_TIME***' => time(),
     '***CURRENT_LANGUAGE***' => $language->language,
+    '***DEFAULT_LANGUAGE***' => language_default('language'),
     '***NO_LANGUAGE***' => '',
   );
 }
Index: includes/handlers.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/includes/handlers.inc,v
retrieving revision 1.94
diff -u -p -r1.94 handlers.inc
--- includes/handlers.inc	22 Sep 2008 18:13:51 -0000	1.94
+++ includes/handlers.inc	27 Sep 2008 17:03:30 -0000
@@ -1304,6 +1304,8 @@ function system_views_api() { return vie
 
 function taxonomy_views_api() { return views_views_api(); }
 
+function translation_views_api() { return views_views_api(); }
+
 function upload_views_api() { return views_views_api(); }
 
 function user_views_api() { return views_views_api(); }
Index: modules/node.views.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/modules/node.views.inc,v
retrieving revision 1.85
diff -u -p -r1.85 node.views.inc
--- modules/node.views.inc	11 Sep 2008 22:47:42 -0000	1.85
+++ modules/node.views.inc	27 Sep 2008 17:03:32 -0000
@@ -261,24 +261,6 @@ function node_views_data() {
     ),
   );
 
-  // Language field if translation module enabled
-  if (module_exists('translation')) {
-    $data['node']['language'] = array(
-      'title' => t('Language'),
-      'help' => t('The language the content is in.'),
-      'field' => array(
-        'handler' => 'views_handler_field_node_language',
-        'click sortable' => TRUE,
-      ),
-      'filter' => array(
-        'handler' => 'views_handler_filter_node_language',
-      ),
-      'argument' => array(
-        'handler' => 'views_handler_argument_node_language',
-      ),
-    );
-  }
-
   // Bogus fields for aliasing purposes.
 
   $data['node']['created_fulldate'] = array(
@@ -542,9 +524,6 @@ function node_views_handlers() {
       'views_handler_field_node' => array(
         'parent' => 'views_handler_field',
       ),
-      'views_handler_field_node_language' => array(
-        'parent' => 'views_handler_field_node',
-      ),
       'views_handler_field_node_type' => array(
         'parent' => 'views_handler_field_node',
       ),
@@ -580,9 +559,6 @@ function node_views_handlers() {
       'views_handler_argument_node_vid' => array(
         'parent' => 'views_handler_argument_numeric',
       ),
-      'views_handler_argument_node_language' => array(
-        'parent' => 'views_handler_argument',
-      ),
       'views_handler_argument_node_created_fulldate' => array(
         // put several handlers in the same file
         'file' => 'views_handler_argument_dates_various.inc',
@@ -618,9 +594,6 @@ function node_views_handlers() {
       'views_handler_filter_node_type' => array(
         'parent' => 'views_handler_filter_in_operator',
       ),
-      'views_handler_filter_node_language' => array(
-        'parent' => 'views_handler_filter_in_operator',
-      ),
       'views_handler_filter_history_user_timestamp' => array(
         'parent' => 'views_handler_filter',
       ),
Index: modules/translation.views.inc
===================================================================
RCS file: modules/translation.views.inc
diff -N modules/translation.views.inc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/translation.views.inc	27 Sep 2008 17:03:32 -0000
@@ -0,0 +1,159 @@
+<?php
+// $Id:$
+
+/**
+ * @file
+ *
+ * Provide views data and handlers for translation.module
+ */
+
+/**
+ * @defgroup views_translation_module taxonomy.module handlers
+ *
+ * @{
+ */
+
+/**
+ * Implementation of hook_views_data_alter().
+ *
+ * Add translation information to the node table.
+ */
+function translation_views_data_alter(&$data) {
+
+  // Joins
+  $data['node']['table']['join']['node'] = array(
+	  'left_field' => 'tnid',
+	  'field' => 'tnid',
+  );
+
+  // Language field
+  $data['node']['language'] = array(
+    'group' => t('Node translation'),
+    'title' => t('Language'),
+    'help' => t('The language the content is in.'),
+    'field' => array(
+      'handler' => 'views_handler_field_node_language',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_node_language_current',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_node_language',
+    ),
+  );
+
+  // The translation ID (nid of the "source" translation)
+  $data['node']['tnid'] = array(
+    'group' => t('Node translation'),
+    'title' => t('Translation set node ID'),
+    'help' => t('The ID of the translation set the content belongs to.'),
+    'field' => array(
+      'handler' => 'views_handler_field_node',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_node_tnid',
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_node_tnid',
+      'parent' => 'views_handler_argument_numeric', // make sure parent is included
+      'name field' => 'title', // the field to display in the summary.
+      'numeric' => TRUE,
+      'validate type' => 'tnid',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'relationship' => array(
+      'title' => t('Source translation'),
+      'help' => t('The source that this content was translated from.'),
+      'base' => 'node',
+      'base field' => 'tnid',
+      'handler' => 'views_handler_relationship_translation',
+      'label' => t('Source translation'),
+    ),
+  );
+
+  // The source translation.
+  $data['node']['translation'] = array(
+    'group' => t('Node translation'),
+    'title' => t('Translations'),
+    'help' => t('Versions of content in different languages.'),
+    'relationship' => array(
+      'title' => t('Translations'),
+      'help' => t('Versions of content in different languages.'),
+      'base' => 'node',
+      'base field' => 'tnid',
+      'relationship table' => 'node',
+      'relationship field' => 'tnid',
+      'handler' => 'views_handler_relationship_translation',
+      'label' => t('Translations'),
+    ),
+  );
+
+  // Translation status
+  $data['node']['translate'] = array(
+    'group' => t('Node translation'),
+    'title' => t('Translation status'),
+    'help' => t('The translation status of the node--whether or not the translation needs to be updated.'),
+    'field' => array(
+      'handler' => 'views_handler_field_boolean',
+      'click sortable' => TRUE,
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_boolean_operator',
+      'label' => t('Published'),
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+}
+
+/**
+ * Implementation of hook_views_handlers() to register all of the basic handlers
+ * views uses.
+ */
+function translation_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'views') . '/modules/translation',
+    ),
+    'handlers' => array(
+      // field handlers
+      'views_handler_field_node_language' => array(
+        'parent' => 'views_handler_field_node',
+      ),
+      'views_handler_field_node_tnid' => array(
+        'parent' => 'views_handler_field_node',
+      ),
+      'views_handler_field_node_translation_link' => array(
+        'parent' => 'views_handler_field',
+      ),
+      // argument handlers
+      'views_handler_argument_node_language' => array(
+        'parent' => 'views_handler_argument',
+      ),
+      'views_handler_argument_node_tnid' => array(
+        'parent' => 'views_handler_argument',
+      ),
+
+      // filters
+      'views_handler_filter_node_language' => array(
+        'parent' => 'views_handler_filter_in_operator',
+      ),
+
+      // relationships
+      'views_handler_relationship_translation' => array(
+        'parent' => 'views_handler_relationship',
+      ),
+
+    ),
+  );
+}
+
+/**
+ * @}
+ */
