--- similarterms.module.old	2007-09-08 05:40:10.000000000 +0800
+++ similarterms.module	2007-10-25 23:35:54.000000000 +0800
@@ -77,18 +77,41 @@ function similarterms_list($vid = NULL, 
     if (!empty($terms)) {
       //past events
       $pasts = array();
-      $result = db_query(
-      'SELECT n.nid, n.title, COUNT(n.nid) AS ncount
-        FROM {node} n
-        INNER JOIN {term_node} tn ON n.nid = tn.nid
-        WHERE tn.tid IN (%s)
-          AND n.nid != %d
-          AND n.status = 1
-          AND n.moderate = 0
-        GROUP BY n.nid, n.title, n.created
-        ORDER BY ncount DESC, n.created DESC
-        LIMIT %d'
-        , $terms, $nid, $count);
+
+      if (function_exists('i18n_get_lang')) {
+        $lang = i18n_get_lang();
+        $result = db_query(
+        'SELECT n.nid, n.title, COUNT(n.nid) AS ncount FROM (
+           SELECT n.nid, n.title, n.created, i18n.language
+            FROM {node} n
+             LEFT OUTER JOIN {i18n_node} i18n ON n.nid = i18n.nid
+            INNER JOIN {term_node} tn ON n.nid = tn.nid
+            WHERE tn.tid IN (%s)
+              AND n.nid != %d
+              AND n.status = 1
+              AND n.moderate = 0 
+           )as n
+          WHERE n.language = \'%s\' or n.language IS NULL
+          GROUP BY n.nid, n.title, n.created
+          ORDER BY ncount DESC, n.created DESC
+          LIMIT %d'
+          , $terms, $nid, $lang, $count);
+      }
+      else {
+        $result = db_query(
+        'SELECT n.nid, n.title, COUNT(n.nid) AS ncount
+          FROM {node} n
+          INNER JOIN {term_node} tn ON n.nid = tn.nid
+          WHERE tn.tid IN (%s)
+            AND n.nid != %d
+            AND n.status = 1
+            AND n.moderate = 0
+          GROUP BY n.nid, n.title, n.created
+          ORDER BY ncount DESC, n.created DESC
+          LIMIT %d'
+          , $terms, $nid, $count);
+      }
+
       while ($r = db_fetch_object($result)) {
         $nodes[] = $r;
       }
