--- nodewords.module	2009-02-07 09:09:09.000000000 +0100
+++ /var/www/erlendmultilang.realradios.com/sites/all/modules/contrib/nodewords/nodewords.module	2009-03-02 21:06:32.000000000 +0100
@@ -399,7 +399,11 @@ function nodewords_get($type = NULL, $id
     }
     foreach ($ids as $id) {
       $term = taxonomy_get_term($id);
-      if ($term) {
+      // If localization is enabled
+      if (module_exists('i18ntaxonomy') && is_numeric($term->tid) && i18ntaxonomy_vocabulary($term->vid) == I18N_TAXONOMY_LOCALIZE) {
+        $term->name = tt("taxonomy:term:$term->tid:name", $term->name);
+      }
+			if ($term) {
         $terms[] = $term->name;
       }
     }
@@ -421,13 +425,13 @@ function nodewords_get($type = NULL, $id
 /**
  * Update or insert tags in the table
  */
-function _nodewords_set($type, $id, $tags) {
+function _nodewords_set($type, $id, $tags, $language_code = '') {
   foreach ($tags as $name => $content) {
     if (empty($content)) {
-      _nodewords_delete_tag($type, $id, $name);
+      _nodewords_delete_tag($type, $id, $name, $language_code);
     }
     else {
-      _nodewords_update_tag($type, $id, $name, $content);
+      _nodewords_update_tag($type, $id, $name, $content, $language_code);
     }
   }
 }
@@ -435,17 +439,18 @@ function _nodewords_set($type, $id, $tag
 /**
  * Delete tags from table
  */
-function _nodewords_delete($type, $id) {
-  return db_query("DELETE FROM {nodewords} WHERE type = '%s' AND id = '%s'", $type, $id);
+function _nodewords_delete($type, $id, $language_code = '') {
+  return db_query("DELETE FROM {nodewords} WHERE type = '%s' AND id = '%s' AND language_code = '%s'", $type, $id, $language_code);
 }
 
 /**
  * Load tags from table
  */
-function _nodewords_load($type, $id) {
+function _nodewords_load($type, $id, $language_code = '') {
   $tags = array();
 
-  $result = db_query("SELECT * FROM {nodewords} WHERE type = '%s' AND id = '%s'", $type, $id);
+  $language_code = (empty($language_code)) ? _nodewords_language() : $language_code;
+  $result = db_query("SELECT * FROM {nodewords} WHERE type = '%s' AND id = '%s' AND language = '%s'", $type, $id, $language_code);
   while ($row = db_fetch_object($result)) {
     $tags[$row->name] = $row->content;
   }
@@ -458,23 +463,35 @@ function _nodewords_load($type, $id) {
 }
 
 /**
+ * Returns the current language code
+ */
+function _nodewords_language() {
+  if (module_exists('locale')) {
+    global $language;
+    $language_code = $language->language;
+  }
+  // Intentionally returns empty variable if locale is not installed
+  return $language_code;
+}
+
+/**
  * Set one tag
  */
-function _nodewords_update_tag($type, $id, $name, $content) {
-  $result = db_query("SELECT * FROM {nodewords} WHERE type = '%s' AND id = '%s' AND name = '%s'", $type, $id, $name);
+function _nodewords_update_tag($type, $id, $name, $content, $language_code = '') {
+  $language_code = (empty($language_code)) ? _nodewords_language() : $language_code;
+  $result = db_query("SELECT * FROM {nodewords} WHERE type = '%s' AND id = '%s' AND name = '%s' AND language = '%s'", $type, $id, $name, $language_code);
   if (db_result($result) == FALSE) {
-    db_query("INSERT INTO {nodewords} (type, id, name, content) VALUES ('%s', '%s', '%s', '%s')", $type, $id, $name, $content);
+    db_query("INSERT INTO {nodewords} (type, id, name, content, language) VALUES ('%s', '%s', '%s', '%s', '%s')", $type, $id, $name, $content, $language_code);
   }
   else {
-    db_query("UPDATE {nodewords} SET content = '%s' WHERE type = '%s' AND id = '%s' AND name = '%s'", $content, $type, $id, $name);
+    db_query("UPDATE {nodewords} SET content = '%s' WHERE type = '%s' AND id = '%s' AND name = '%s' AND language = '%s'", $content, $type, $id, $name, $language_code);
   }
 }
 
 /**
  * Delete one tag
  */
-function _nodewords_delete_tag($type, $id, $name) {
-  db_query("DELETE FROM {nodewords} WHERE type = '%s' and id = '%s' AND name = '%s'", $type, $id, $name);
+function _nodewords_delete_tag($type, $id, $name, $language_code = '') {
+  $language_code = (empty($language_code)) ? _nodewords_language() : $language_code;
+  db_query("DELETE FROM {nodewords} WHERE type = '%s' and id = '%s' AND name = '%s' AND language = '%s'", $type, $id, $name, $language_code);
 }
 
 /**
