_binary From 94584b0b5b763f105442b1f699c11e0f126e0b61 Mon Sep 17 00:00:00 2001
From: Chris Pollett <chris@pollett.org>
Date: Thu, 16 May 2013 12:10:31 -0700
Subject: [PATCH 01/13] Further work on exact phrase match, a=chris

---
 lib/index_dictionary.php          |   1 -
 lib/index_shard.php               |   5 +-
 lib/phrase_parser.php             |  86 +++++++++-----------------
 lib/processors/text_processor.php |   4 +-
 lib/suffix_tree.php               |  60 +++++++++++-------
 lib/utility.php                   | 124 ++++++++++++++++++++++++++++++++++++++
 models/phrase_model.php           |  21 +++++--
 tests/phrase_parser_test.php      |   6 ++
 8 files changed, 219 insertions(+), 88 deletions(-)

diff --git a/lib/index_dictionary.php b/lib/index_dictionary.php
index 31cd2ee..d43efc5 100644
--- a/lib/index_dictionary.php
+++ b/lib/index_dictionary.php
@@ -359,7 +359,6 @@ class IndexDictionary implements CrawlConstants
         $out_len = 0;
         $segment_size = self::SEGMENT_SIZE;
 
-
         while($remaining_a > 0 || $remaining_b > 0 ||
             $offset_a < $read_size_a || $offset_b < $read_size_b) {
             if($offset_a >= $read_size_a && $remaining_a > 0) {
diff --git a/lib/index_shard.php b/lib/index_shard.php
index 92d7f13..bc637b7 100644
--- a/lib/index_shard.php
+++ b/lib/index_shard.php
@@ -402,9 +402,12 @@ class IndexShard extends PersistentStructure implements
         $doc_offset = $this->docids_len >> 4;
         foreach($word_lists as $word => $position_list) {
             $occurrences = count($position_list);
-            $word_id = crawlHash($word, true);
             if(isset($position_list["cond_max"])) { //for now
+                $word_id = crawlHashPath($word,
+                    $position_list["cond_max"], true);
                 unset($position_list["cond_max"]);
+            } else {
+                $word_id = crawlHash($word, true);
             }
             $store = packPosting($doc_offset, $position_list);
             if(!isset($this->words[$word_id])) {
diff --git a/lib/phrase_parser.php b/lib/phrase_parser.php
index 01bed47..282d081 100755
--- a/lib/phrase_parser.php
+++ b/lib/phrase_parser.php
@@ -128,80 +128,54 @@ class PhraseParser
         if($index_name == NULL || $num <= 1) {
             return $terms;
         }
-        $whole_phrase = implode(" ", $terms);
+        if(count($terms) > MAX_QUERY_TERMS) {
+            $first_terms = array_slice($terms, 0, MAX_QUERY_TERMS);
+            $whole_phrase = implode(" ", $first_terms);
+        } else {
+            $whole_phrase = implode(" ", $terms);
+        }
         if($exact_match) {
             return array($whole_phrase);
         }
-        $count_whole_phrase = self::numDocsTerm(crawlHash($whole_phrase, true),
-            $index_name);
-        if($count_whole_phrase >= MIN_RESULTS_TO_GROUP
+        $count_whole_phrase = self::numDocsTerm($whole_phrase, $index_name);
+
+        if($count_whole_phrase >= 10
             || $num > MAX_QUERY_TERMS / 2) {
             return array($whole_phrase);
         }
         if($index_name != 'feed' && intval($index_name) < 1367767529) {
             return $terms; //old style index before max phrase extraction
         }
-
-        $out_phrases = array();
-        $first = true;
-        foreach($terms as $term) {
-            if($first) {
-                $first = false;
-                $last = $term;
-                $previous = $term;
-                continue;
-            }
-            if(strcmp($term, $last) < 0) {
-                $pre_phrase = $term.' * '.$last;
-            } else {
-                $pre_phrase = $last.' * '.$term;
-            }
-            $num_pre_phrase = self::numDocsTerm(crawlHash($pre_phrase, true),
-                $index_name, true);
-            if($num_pre_phrase == 0) {
-                if(self::numDocsTerm(crawlHash($previous, true),
-                    $index_name, true) <  3 * MIN_RESULTS_TO_GROUP &&
-                    self::numDocsTerm(crawlHash($term, true),
-                    $index_name, true) <  3 * MIN_RESULTS_TO_GROUP) {
-                    $pre_phrase = $previous;
-                }
-
-            }
-            $previous = $term;
-            $out_phrases[] = $pre_phrase;
-        }
-        if(strpos($pre_phrase, "*") == 0)  {
-            $out_phrases[] = $term;
-        }
-        return array_merge($out_phrases);
+        return $terms;
     }
 
     /**
      *
      */
-    static function numDocsTerm($word_key, $index_name, $raw = false)
+    static function numDocsTerm($term_or_phrase, $index_name)
     {
-        if($raw == false) {
-            //get rid of out modfied base64 encoding
-            $hash = str_replace("_", "/", $word_key);
-            $hash = str_replace("-", "+" , $hash);
-            $hash .= "=";
-            $word_key = base64_decode($hash);
-        }
         $index = IndexManager::getIndex($index_name);
-        if($index->dictionary) {
-            $dictionary_info =
-                $index->dictionary->getWordInfo($word_key, true);
-        } else {
-            return 0;
+        if(!$index->dictionary) {
+            return false;
         }
-        $num_generations = count($dictionary_info);
+        $pos = -1;
         $total_num_docs = 0;
-        for($i = 0; $i < $num_generations; $i++) {
-            list(, , , $num_docs) =
-                $dictionary_info[$i];
-            $total_num_docs += $num_docs;
-        }
+        do {
+            $pos++;
+            $hash = crawlHashPath($term_or_phrase, $pos, true);
+            $dictionary_info =
+                $index->dictionary->getWordInfo($hash, true);
+
+            $num_generations = count($dictionary_info);
+
+            for($i = 0; $i < $num_generations; $i++) {
+                list(, , , $num_docs) =
+                    $dictionary_info[$i];
+                $total_num_docs += $num_docs;
+            }
+            $pos = strpos($term_or_phrase, " ", $pos);
+        } while($pos !== false || !isset($term_or_phrase[$pos + 1]));
+
         return $total_num_docs;
     }
 
diff --git a/lib/processors/text_processor.php b/lib/processors/text_processor.php
index 801d300..500354a 100755
--- a/lib/processors/text_processor.php
+++ b/lib/processors/text_processor.php
@@ -82,8 +82,8 @@ class TextProcessor extends PageProcessor
             $summary[self::LANG] = self::calculateLang(
                 $summary[self::DESCRIPTION]);
             $summary[self::LINKS] = self::extractHttpHttpsUrls($page);
-            $summary[self::PAGE] = "<html><body><pre>".
-                strip_tags($page)."</pre></body></html>";
+            $summary[self::PAGE] = "<html><body><div><p>&nbsp;</p><pre>".
+                strip_tags($page)."</pre></div></body></html>";
         }
         return $summary;
     }
diff --git a/lib/suffix_tree.php b/lib/suffix_tree.php
index 3300f63..a27ec90 100644
--- a/lib/suffix_tree.php
+++ b/lib/suffix_tree.php
@@ -45,11 +45,14 @@
 class SuffixTree
 {
     /**
+     * The root node of the suffix trees
      * @var array
      */
     var $root;
 
     /**
+     * Index of last node added to the suffix tree in the array used to
+     * hold the suffix tree data structures
      * @var int
      */
     var $last_added;
@@ -85,27 +88,34 @@ class SuffixTree
     var $active_len;
 
     /**
+     * Number of elements in $this->text. i.e., count($this->text)
      * @var int
      */
     var $size;
 
     /**
+     * The sequence of terms, one array entry per term, that a suffix tree is
+     * to be made from
      * @var array
      */
     var $text;
 
     /**
+     * Used to hold the suffix tree data structure (represented as a sequence
+     * of nodes)
      * @var array
      */
     var $tree;
 
     /**
-     *
+     *  Upper bound on the length of any path in the tree
      */
     const INFTY = 2000000000;
 
     /**
+     * Initializes a suffix tree based on the supplied array of terms.
      *
+     * @param array $text a sequence of terms to build the suffix tree for
      */
     function __construct($text)
     {
@@ -137,6 +147,14 @@ class SuffixTree
     }
 
     /**
+     * Makes a new node for the suffix tree structure. This node
+     * is inserted at the end of the tree so far. A node is associative
+     * array consisting of the fields "start" whose value
+     * is the starting location in $this->text for this node, 
+     * "end" location in $this->text up to which this node is
+     * responsible, "sym_link" is a link to an isomorphic subtree for the
+     * purposes of building the suffix tree, and "next" is an array of
+     * next children in the tree.
      *
      */
     function makeNode($start, $end = self::INFTY)
@@ -151,7 +169,10 @@ class SuffixTree
     }
 
     /**
+     * The number of elements out of $this->text that this node is currently
+     * responsible for
      *
+     * @param array &$node the node to compute the length of
      */
     function edgeLength(&$node)
     {
@@ -246,7 +267,6 @@ class SuffixTree
     {
         $start = $this->tree[$index]["start"];
         $end = $this->tree[$index]["end"];
-        $cond_max = "";
         if($start >= 0 && $end >= 0) {
             $tmp_terms = array_slice($this->text, $start, $end - $start);
             if($path != "") {
@@ -254,15 +274,10 @@ class SuffixTree
                 $out_path = $path;
                 if($len > MAX_QUERY_TERMS) {
                     $out_array = array_slice($this->text, $begin, 
-                            MAX_QUERY_TERMS -1);
-                    $out_path = implode(" ", $out_array)." * ";
+                            MAX_QUERY_TERMS);
+                    $out_path = implode(" ", $out_array);
                 }
                 $maximal[$out_path][] = $begin;
-                if($begin != $start - 1) {
-                    $first_last = $this->text[$begin]." * ".
-                        $this->text[$start - 1];
-                    $maximal[$first_last][] =  $begin;
-                }
             }
             $tmp = implode(" ", $tmp_terms);
             $num = count($tmp_terms);
@@ -270,30 +285,31 @@ class SuffixTree
                 $len = $num;
                 $path = $tmp;
             } else {
-                $cond_max = $path;
+                if($len > 1 && $len < MAX_QUERY_TERMS) {
+                    $cond_max = strlen($path) + 1;
+                }
                 $path .= " ".$tmp;
                 $len += $num;
+                if(isset($cond_max)) {
+                    $out_path = $path;
+                    if($len > MAX_QUERY_TERMS) {
+                        $out_array = array_slice($this->text, $begin,
+                            MAX_QUERY_TERMS);
+                        $out_path = implode(" ", $out_array);
+                    }
+                    $maximal[$out_path]["cond_max"] = $cond_max;
+                }
             }
         }
         if($end == self::INFTY) {
-            $cond_flag = true;
             $begin = $this->size - $len;
             $out_path = $path;
             if($len > MAX_QUERY_TERMS) {
                 $out_array = array_slice($this->text, $begin,
-                    MAX_QUERY_TERMS - 1);
-                $out_path = implode(" ", $out_array). " *";
-                $cond_flag = false;
+                    MAX_QUERY_TERMS);
+                $out_path = implode(" ", $out_array);
             }
             $maximal[$out_path][] = $begin;
-            if($cond_max != "" && $cond_flag) {
-                $maximal[$out_path]["cond_max"] = $cond_max;
-            }
-            if($len != 1) {
-                $first_last = $this->text[$begin]." * ".
-                    $this->text[$this->size-1];
-                $maximal[$first_last][] =  $begin;
-            }
             return;
         }
         foreach($this->tree[$index]["next"] as $sub_index) {
diff --git a/lib/utility.php b/lib/utility.php
index 6b57e51..812495a 100755
--- a/lib/utility.php
+++ b/lib/utility.php
@@ -654,6 +654,130 @@ function crawlHash($string, $raw = false)
 }
 
 /**
+ *
+ */
+function allCrawlHashPaths($string, $raw = false)
+{
+    $pos = -1;
+    $hashes = array();
+    do {
+        $old_pos = $pos;
+        $hash = crawlHashPath($string, $pos + 1, $raw);
+        $hashes[] = $hash;
+        $pos = mb_strpos($string, " ", $pos + 1);
+
+    } while($pos > 0 && $old_pos != $pos);
+
+    if(count($hashes) == 1) {
+        return $hashes[0];
+    }
+    return $hashes;
+}
+
+/**
+ *
+ */
+function crawlHashPath($string, $path_start = 0, $raw = false)
+{
+
+    if($path_start > 0) {
+        $string_parts = explode(" ", substr($string, $path_start));
+        $num_parts = count($string_parts);
+    }
+    if($path_start == 0 || $num_parts == 0) {
+        $hash = crawlHash($string, true);
+        if(!$raw) {
+            $hash = base64Hash($hash);
+        }
+        return $hash;
+    }
+    $front = substr($string, 0, $path_start);
+    //Top five bytes what a normal crawlHash would be
+    $front_hash = substr(crawlHash($front, true), 0, 5);
+
+    //Low 3 bytes encode paths
+    $path_ints = array();
+    foreach($string_parts as $part) {
+        $path_ints[] = unpackInt(substr(md5($part, true), 0, 4));
+    }
+    $num_parts = count($path_ints);
+    switch($num_parts)
+    {
+        case 1: // 1 22 bit number
+            $bit_mask = (1 << 22) - 1;
+            $out_int = ($path_ints[0] & $bit_mask);
+        break;
+        case 2: // 2 11 bit numbers
+            $bit_mask = (1 << 11) - 1;
+            $out_int = (((1 << 11) + ($path_ints[0] & $bit_mask)) << 11)
+                + ($path_ints[1] & $bit_mask);
+        break;
+        case 3: // 3 7 bit numbers
+            $bit_mask = (1 << 7) - 1;
+            $out_int = (((((1 << 9) + ($path_ints[0] & $bit_mask)) << 7)
+                + ($path_ints[1] & $bit_mask)) << 7)
+                + ($path_ints[2] & $bit_mask);
+        break;
+        case 4: // 4 5 bit numbers
+            $bit_mask = (1 << 5) - 1;
+            $out_int = (((((((3 << 7) + ($path_ints[0] & $bit_mask)) << 5)
+                + ($path_ints[1] & $bit_mask)) << 5)
+                + ($path_ints[2] & $bit_mask)) << 5)
+                + ($path_ints[3] & $bit_mask);
+        break;
+        case 5: // 5 4 bit numbers
+            $bit_mask = (1 << 4) - 1;
+            $out_int = (((((( (((13 << 4) + ($path_ints[0] & $bit_mask)) << 4)
+                + ($path_ints[1] & $bit_mask)) << 4)
+                + ($path_ints[2] & $bit_mask)) << 4)
+                + ($path_ints[3] & $bit_mask)) << 4)
+                + ($path_ints[4] & $bit_mask);
+        break;
+        case 6: // 6 3 bit numbers
+            $bit_mask = (1 << 3) - 1;
+            $out_int = (((((((((((7 << 6) + ($path_ints[0] & $bit_mask)) << 3)
+                + ($path_ints[1] & $bit_mask)) << 3)
+                + ($path_ints[2] & $bit_mask)) << 3)
+                + ($path_ints[3] & $bit_mask)) << 3)
+                + ($path_ints[4] & $bit_mask)) << 3)
+                + ($path_ints[5] & $bit_mask);
+        break;
+        case 7:
+        case 8:
+        case 9: // 9 2 bit numbers
+            $bit_mask = (1 << 2) - 1;
+            $out_int = 60;
+            if(!isset($path_ints[7])) {
+                $path_ints[7] = 0;
+            }
+            if(!isset($path_ints[8])) {
+                $path_ints[8] = 0;
+            }
+            for($i = 0; $i < 9; $i++) {
+                $out_int <<= 2;
+                $out_int += ($path_ints[$i] & $bit_mask);
+            }
+        break;
+        default: // 19 1 bit numbers
+            $bit_mask = 1;
+            $out_int = 62;
+            for($i = 0; $i < 19; $i++) {
+                $out_int <<= 1;
+                if(!isset($path_ints[$i])) {
+                    $path_ints[$i] = 0;
+                }
+                $out_int += ($path_ints[$i] & $bit_mask);
+            }
+    }
+    $hash = $front_hash . substr(packInt($out_int), 1);
+    if(!$raw) {
+        $hash = base64Hash($hash);
+            // common variant of base64 safe for urls and paths
+    }
+    return $hash;
+}
+
+/**
  * Converts a crawl hash number to something closer to base64 coded but
  * so doesn't get confused in urls or DBs
  *
diff --git a/models/phrase_model.php b/models/phrase_model.php
index 7a17ba8..39de391 100755
--- a/models/phrase_model.php
+++ b/models/phrase_model.php
@@ -552,9 +552,9 @@ class PhraseModel extends ParallelModel
             }
         }
         if(isset($words) && count($words) == 1 &&
-            count($disallow_phrases) < 1) {
+            count($disallow_phrases) < 1) {;
             $phrase_string = $words[0];
-            $phrase_hash = crawlHash($phrase_string);
+            $phrase_hash = allCrawlHashPaths($phrase_string);
             $word_struct = array("KEYS" => array($phrase_hash),
                 "QUOTE_POSITIONS" => NULL, "DISALLOW_KEYS" => array(),
                 "WEIGHT" => $weight, "INDEX_NAME" => $index_name
@@ -565,12 +565,10 @@ class PhraseModel extends ParallelModel
             $hashes = array();
             $i = 0;
             foreach($words as $word) {
-                $hashes[] = crawlHash($word);
+                $word_keys[] = allCrawlHashPaths($word);
             }
 
-            if(count($hashes) > 0) {
-                $word_keys = array_slice($hashes, 0, MAX_QUERY_TERMS);
-            } else {
+            if(count($word_keys) == 0) {
                 $word_keys = NULL;
                 $word_struct = NULL;
             }
@@ -1313,6 +1311,17 @@ class PhraseModel extends ParallelModel
                         || $distinct_word_keys[$i] == $doc_iterate_group_hash) {
                         $word_iterators[$i] = new DocIterator(
                             $index_name, $filter, $to_retrieve);
+                    } else if(is_array($distinct_word_keys[$i])) {
+                        //can happen if exact phrase search suffix approach used
+                        $distinct_keys = $distinct_word_keys[$i];
+                        $tmp_word_iterators =array();
+                        foreach($distinct_keys as $distinct_key) {
+                            $tmp_word_iterators[] =
+                                new WordIterator($distinct_key,
+                                $index_name, false, $filter, $to_retrieve);
+                        }
+                        $word_iterators[$i] = new DisjointIterator(
+                            $tmp_word_iterators);
                     } else {
                         $word_iterators[$i] =
                             new WordIterator($distinct_word_keys[$i],
diff --git a/tests/phrase_parser_test.php b/tests/phrase_parser_test.php
index 1678e62..b6facc4 100644
--- a/tests/phrase_parser_test.php
+++ b/tests/phrase_parser_test.php
@@ -68,6 +68,12 @@ class PhraseParserTest extends UnitTest
      */
     function extractPhrasesTestCase()
     {
+$phrase_string = <<< EOD
+This is a dog. This is not a cat. This is not a donkey.
+EOD;
+        $word_lists = PhraseParser::extractPhrasesInLists($phrase_string,
+            "en-US");
+print_r($word_lists); exit();
         $phrase_string = <<< EOD
 Dr. T.Y Lin's home page. J. R. R. Tolkien
 EOD;
-- 
1.7.11.msysgit.1


From 583c6a539f376967e1693155e66c2da4f17affd2 Mon Sep 17 00:00:00 2001
From: Akshat Kukreti <akshatkukreti@gmail.com>
Date: Fri, 17 May 2013 08:17:42 -0700
Subject: [PATCH 02/13] BTree code added

---
 lib/btree.php      | 717 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 lib/btree_node.php |  87 +++++++
 2 files changed, 804 insertions(+)
 create mode 100644 lib/btree.php
 create mode 100644 lib/btree_node.php

diff --git a/lib/btree.php b/lib/btree.php
new file mode 100644
index 0000000..b7dde33
--- /dev/null
+++ b/lib/btree.php
@@ -0,0 +1,717 @@
+<?php
+
+/**
+ *  SeekQuarry/Yioop --
+ *  Open Source Pure PHP Search Engine, Crawler, and Indexer
+ *
+ *  Copyright (C) 2009 - 2013  Chris Pollett chris@pollett.org
+ *
+ *  LICENSE:
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ *  END LICENSE
+ *
+ * @author Chris Pollett chris@pollett.org
+ * @package seek_quarry
+ * @subpackage bin
+ * @license http://www.gnu.org/licenses/ GPL3
+ * @link http://www.seekquarry.com/
+ * @copyright 2009 - 2013
+ * @filesource
+ */
+
+
+/**
+ * Load Node class
+ */
+require_once(BASE_DIR."/lib/btree_node.php");
+
+/**
+ * Determines the minimum and maximum number of keys and child nodes, for nodes 
+ * other than root node
+ */
+define('MIN_DEGREE', 501);
+
+/**
+ * Minimum number of keys for nodes other than root node
+ */
+define('MIN_KEYS', MIN_DEGREE - 1);
+
+/**
+ * Maximum number of keys for nodes other than root node
+ */
+define('MAX_KEYS', 2 * MIN_DEGREE - 1);
+
+/**
+ * This class implements the B-Tree data structure for storing int key based 
+ * key-value pairs.
+ * Based on the algorithms in Introduction To Algorithms, Second Edition by
+ * T.H. Cormen, C.E. Leiserson, R.L. Rivest, and C. Stein. Second Edition, 2001
+ * The MIT Press
+ *
+ *  @author Akshat Kukreti
+ *  @package seek_quarry
+ */
+class BTree
+{
+    /**
+     * Storage for root node of the B-Tree
+     * @var object
+     */
+    var $root;
+
+    /**
+     * Counter for node Ids
+     * @var int
+     */
+    var $id_count;
+
+    /**
+     * Directory for storing the B-Tree files
+     * @var string
+     */
+    var $dir;
+
+    /**
+     * Creates/Loads B-Tree
+     * @param string $dir is the directory for storing the B-Tree files
+     */
+    function __construct($dir)
+    {
+        $this->dir = $dir;
+        if(!is_dir($this->dir)) {
+            mkdir($this->dir);
+            chmod($this->dir, 0777);
+        }
+        $root_file = $this->dir."/root.txt";
+        if(file_exists($root_file)) {
+            $this->root = unserialize(file_get_contents($root_file));
+            $this->id_count = unserialize(file_get_contents($this->dir.
+                "/count.txt"));
+        } else {
+            $this->root = new Node();
+            $this->root->id = "root";
+            $this->id_count = 1;
+        }
+    }
+
+    /**
+     * Reads node from file saved on disk
+     * @param int $id is the Id of the node to be read
+     * @return object $node is the node
+     */
+    function readNode($id)
+    {
+        $node_file = $this->dir."/$id.txt";
+        if(file_exists($node_file)) {
+            $node = unserialize(file_get_contents($node_file));
+            return $node;
+        } else {
+            exit("Could not read node $id from disk");
+        }
+    }
+
+    /**
+     * Writes node to disk
+     * @param object $node is the node to be written to disk
+     */
+    function writeNode($node)
+    {
+        $node_file = $this->dir."/$node->id.txt";
+        $contents = serialize($node);
+        file_put_contents($node_file, $contents);
+        chmod($node_file, 0777);
+    }
+
+    /**
+     * Deletes file associated with given node from disk
+     * @param int $id is the id of the node whose file is to be deleted
+     */
+    function deleteNodeFile($id)
+    {
+        $node_file = $this->dir."/$id.txt";
+        if(file_exists($node_file)) {
+            unlink($node_file);
+        } else exit("Could not delete node $id from disk");
+    }
+
+    /**
+     * Saves value of node id counter
+     * @param int $count is the id counter
+     */
+    function saveNodeCount()
+    {
+        $count_file = $this->dir."/count.txt";
+        $node_count = serialize($this->id_count);
+        file_put_contents($count_file, $node_count);
+    }
+
+    /**
+     * Deletes the node id count file
+     */
+    function deleteCount()
+    {
+        unlink($this->dir."/count.txt");
+    }
+
+    /**
+     * Returns key-value pair in the B-Tree based on key
+     * @param int $key is the key for whicht the key-value pair is to be 
+     * found
+     * @return array key-value pair associated with $key or null if the 
+     * key-value pair is not found in the tree.
+     */
+    function findValue($key)
+    {
+        list($node, $flag, $pos) = $this->search($this->root, $key);
+        if($pos !== null) {
+            if($flag == 1)
+                return $node->keys[$pos];
+            else return null;
+        } else return null;
+    }
+
+    /**
+     * Searches for key-value pair for a given key in a node. If key value pair 
+     * is not found in the node, recursively searches in the root node of the 
+     * sub-tree till the pair is found. Search stops at leaf nodes.
+     * @param object $node is the B-Tree node from where the search starts
+     * @param int $key is the key for which the key-value pair is to be 
+     * searched
+     */
+    function search($node, $key)
+    {
+        $flag = -1;
+        if(empty($node->keys)) {
+            return array($node, $flag, null);
+        } else {
+            list($flag, $pos) = $this->binarySearch($node->keys, $key);
+            if($flag == 1) {
+                return array($node, $flag, $pos);
+            }
+            if($node->is_leaf == true) {
+                return array($node, $flag, $pos);
+            } else {
+                $next_id = $node->links[$pos];
+                $next_node = $this->readNode($next_id);
+                return $this->search($next_node, $key);
+            }
+        }
+    }
+
+    /**
+     * Inserts a key-value pair in the B-Tree
+     * @param array $pair is the key-value pair to be inserted
+     */
+    function insert($pair)
+    {
+        $node = $this->root;
+        if(empty($node->keys)) {
+            $node->keys = array($pair);
+            $node->count = count($node->keys);
+            $this->writeNode($node);
+            $this->saveNodeCount();
+        } else if($node->count == MAX_KEYS) {
+            $temp = $this->createEmptyParentNode();
+            $this->root = $temp;
+            $this->swap($temp->id, $node->id);
+            $temp->links[0] = $node->id;
+            $this->bTreeSplitChild($temp, 0, $node);
+            $this->insertNodeNotFull($temp, $pair);
+        } else {
+            $this->insertNodeNotFull($node, $pair);
+        }
+    }
+
+    /**
+     * Inserts a key-value pair in a leaf node that is not full. Searches for
+     * the appropriate leaf node, splitting full nodes before descending 
+     * down the tree recursively.
+     * @param object $node is the node from where the search for the leaf node
+     * begins
+     * @param array $pair is the key-value pair
+     */
+    function insertNodeNotFull($node, $pair)
+    {
+        $key = $pair[0];
+        $i = $node->count - 1;
+        list($flag, $pos) = $this->binarySearch($node->keys, $key);
+        if($node->is_leaf == true) {
+            if($flag == 1) {
+                $node->keys[$pos] = $pair;
+                $this->writeNode($node);
+            } else {
+                while($i >= 0 && $node->keys[$i][0] > $key) {
+                    $node->keys[$i + 1] = $node->keys[$i];
+                    $i -= 1;
+                }
+                $node->keys[$i + 1] = $pair;
+                $node->count = count($node->keys);
+                $this->writeNode($node);
+            }
+        } else {
+            if($flag == 1) {
+                $node->keys[$pos] = $pair;
+                $this->writeNode($node);
+            } else {
+                while($i >= 0 && $node->keys[$i][0] > $key) {
+                    $i -= 1;
+                }
+                $i += 1;
+                $next_node = $this->readNode($node->links[$i]);
+                if($next_node->count == MAX_KEYS) {
+                    $this->bTreeSplitChild($node, $i, $next_node);
+                    if($key > $node->keys[$i][0]) {
+                        $i += 1;
+                        $next_node = $this->readNode($node->links[$i]);
+                    }
+                }
+                $this->insertNodeNotFull($next_node, $pair);
+            }
+        }
+    }
+
+    /**
+     * Splits a full node into two child node. The median key-value pair is 
+     * added to the parent node of the node being split.
+     * @param object $parent is the parent node
+     * @paran int $i is the link to child node
+     * @param object $child is the child node
+     */
+    function bTreeSplitChild($parent, $i, $child)
+    {
+        $this->id_count += 1;
+        $temp = new Node();
+        $temp->id = $this->id_count;
+        $this->saveNodeCount();
+        $temp->is_leaf = $child->is_leaf;
+        $temp->count = MIN_DEGREE - 1;
+        for($j = 0;$j < MIN_DEGREE - 1;$j++) {
+            $temp->keys[$j] = $child->keys[MIN_DEGREE + $j];
+        }
+        if($child->is_leaf == false) {
+            for($j = 0;$j < MIN_DEGREE;$j++) {
+                $temp->links[$j] = $child->links[MIN_DEGREE + $j];
+            }
+        }
+        for($j = $parent->count;$j > $i;$j--) {
+            $parent->links[$j + 1] = $parent->links[$j];
+        }
+        $parent->links[$j + 1] = $temp->id;
+        for($j = $parent->count - 1;$j >= $i;$j--) {
+            $parent->keys[$j + 1] = $parent->keys[$j];
+        }
+        $parent->keys[$j + 1] = $child->keys[MIN_DEGREE - 1];
+        $parent->count = count($parent->keys);
+        $child->keys = array_slice($child->keys, 0, MIN_DEGREE - 1);
+        if($child->is_leaf == false) {
+            $child->links = array_slice($child->links, 0, MIN_DEGREE);
+        }
+        $child->count = count($child->keys);
+        $this->writeNode($child);
+        $this->writeNode($temp);
+        $this->writeNode($parent);
+    }
+
+    /**
+     * Swaps value of two variables
+     * @param $x is the first variable
+     * @param $y is the second variable
+     */
+    function swap(&$x, &$y)
+    {
+        $temp = $x;
+        $x = $y;
+        $y = $temp;
+    }
+
+    /**
+     * Creates an empty non-leaf node
+     * @return object $node is the non-leaf node
+     */
+    function createEmptyParentNode()
+    {
+        $this->id_count += 1;
+        $temp = new Node();
+        $temp->id = $this->id_count;
+        $this->saveNodeCount();
+        $temp->is_leaf = false;
+        return $temp;
+    }
+
+    /**
+     * Performs binary search for a integer key on an array of integer key based
+     * key-value pairs
+     * @param array $keys is an array containing key-value pairs
+     * @param int $key is the key
+     * @return array containing flag indicating it the value was found or not,
+     * and the position equal to, or nearest to the position of the key being 
+     * searched
+     */
+    function binarySearch($keys, $key)
+    {
+        $low = 0;
+        $high = count($keys) - 1;
+        $flag = -1;
+        while($high >= $low) {
+            $middle = (int)floor(($high + $low) / 2);
+            if($key == $keys[$middle][0]) {
+                $flag = 1;
+                return array($flag, $middle);
+            } else if($key > $keys[$middle][0]) {
+                $low = $middle + 1;
+            } else {
+                $high = $middle - 1;
+            }
+        }
+        return array($flag, $low);
+    }
+
+    /**
+     * Removes a key-value pair from the B-Tree
+     * @param int $key associated with the key-value pair to be deleted
+     */
+    function remove($key)
+    {
+        $this->delete($this->root, $key);
+    }
+
+    /**
+     * Deletes a key-value pair from the B-Tree starting at a node
+     * @param object $node is from where the key search starts
+     * @param int $key is the key to be deleted
+     */
+    function delete($node, $key)
+    {
+        list($flag, $pos) = $this->binarySearch($node->keys, $key);
+        if($flag == 1 && $node->is_leaf == true) {
+            $this->deleteFromLeaf($node, $pos);
+        } else if($flag == 1 && $node->is_leaf == false) {
+            $this->deleteFromNonLeaf($node, $pos);
+        } else if($flag !== 1 && $node->is_leaf == false) {
+            $sub_tree_root = $this->getDescendant($node, $pos);
+            $this->delete($sub_tree_root, $key);
+        }
+    }
+
+    /**
+     * Deletes key-value pair from a leaf node in a B-Tree
+     * @param object $node is the leaf node containing the key-value pair
+     * @param int $key is the key to be deleted
+     */
+    function deleteFromLeaf($node, $pos)
+    {
+        if($pos == $node->count - 1) {
+            array_pop($node->keys);
+            $node->count -= 1;
+            $this->writeNode($node);
+        } else {
+            for($i = $pos + 1;$i < $node->count;$i++) {
+                $node->keys[$i - 1] = $node->keys[$i];
+            }
+            $node->keys = array_slice($node->keys, 0, $node->count - 1);
+            $node->count -= 1;
+            $this->writeNode($node);
+        }
+        if($node == $this->root && $node->count == 0) {
+            $this->deleteNodeFile("root");
+            $this->deleteCount();
+        }
+    }
+
+    /**
+     * Deletes key-value pair from a non-leaf node in a B-Tree
+     * @param object $node is the non-leaf node containing the key-value pair
+     * @param int $key is the key to be deleted
+     */
+    function deleteFromNonLeaf($node, $pos)
+    {
+        $pred_id = $node->links[$pos];
+        $pred = $this->readNode($pred_id);
+        if($pred->count >= MIN_DEGREE) {
+            $pred_pair = $pred->keys[$pred->count - 1];
+            $pred_key = $pred_pair[0];
+            $this->delete($pred, $pred_key);
+            $node->keys[$pos] = $pred_pair;
+            $this->writeNode($node);
+        } else {
+            $next_id = $node->links[$pos + 1];
+            $next = $this->readNode($next_id);
+            if($next->count >= MIN_DEGREE) {
+                $next_pair = $next->keys[0];
+                $next_key = $next_pair[0];
+                $this->delete($next, $next_key);
+                $node->keys[$pos] = $next_pair;
+                $this->writeNode($node);
+            } else {
+                $node_pair = $node->keys[$pos];
+                $node_key = $node_pair[0];
+                $pred->keys[$pred->count] = $node_pair;
+                $pred->count += 1;
+                if($pos == $node->count - 1) {
+                    array_pop($node->keys);
+                    array_pop($node->links);
+                    $node->count -= 1;
+                } else {
+                    for($i = $pos + 1;$i < $node->count;$i++) {
+                        $node->keys[$i - 1] = $node->keys[$i];
+                    }
+                    $node->keys = array_slice($node->keys, 0, $node->count - 1);
+                    for($i = $pos + 2;$i <= $node->count;$i++) {
+                        $node->links[$i - 1] = $node->links[$i];
+                    }
+                    $node->links = array_slice($node->links, 0, $node->count);
+                    $node->count -= 1;
+                }
+                for($i = 0;$i < $next->count;$i++) {
+                    $pred->keys[$pred->count + $i] = $next->keys[$i];
+                }
+                if($next->is_leaf == false) {
+                    for($i = 0;$i <= $next->count;$i++) {
+                        $pred->links[$pred->count + $i] = $next->links[$i];
+                    }
+                }
+                $pred->count += $next->count;
+                $this->writeNode($pred);
+                $this->deleteNodeFile($next->id);
+                if($node == $this->root && $node->count == 0) {
+                    $old_id = $pred->id;
+                    $pred->id = "root";
+                    $this->root = $pred;
+                    $this->deleteNodeFile($old_id);
+                    $this->writeNode($this->root);
+                } else {
+                    $this->writeNode($node);
+                }
+                $this->delete($pred, $node_key);
+            }
+        }
+    }
+
+    /**
+     * If the key to be deleted is not found in an internal node, finds the root
+     * of the sub-tree that might contain the key to be deleted. If the node
+     * contains atleast MIN_DEGREE number of keys, the node is returned.
+     * Otherwise, the node is adjusted using one of its sibling nodes and the 
+     * parent node so that the resultant node has MIN_DEGREE keys. 
+     * @param object $parent is the parent node
+     * @param int pos is the link to the root of the sub-tree
+     * @return object $child is the child node to which the recursion will
+     * descend
+     */
+    function getDescendant($parent, $pos)
+    {
+        $child_id = $parent->links[$pos];
+        $child = $this->readNode($child_id);
+        if($child->count == MIN_DEGREE - 1) {
+            $siblings = $this->getSiblings($parent, $pos);
+            if($siblings[0] !== -1 && $siblings[1] !== -1) {
+                $pred_id = $siblings[0];
+                $pred = $this->readNode($pred_id);
+                if($pred->count >= MIN_DEGREE) {
+                    $this->adjustChildUsingLeftSiblingAndParent($parent, $child,
+                        $pred, $pos);
+                    return $child;
+                } else {
+                    $next_id = $siblings[1];
+                    $next = $this->readNode($next_id);
+                    if($next->count >= MIN_DEGREE) {
+                        $this->adjustChildUsingRightSiblingAndParent($parent, 
+                            $child, $next, $pos);
+                        return $child;
+                    } else {
+                        if($pred->count <= $next->count) {
+                            $this->mergeChildWithParentKeyAndRightSibling(
+                                $parent, $pred, $child, $pos - 1);
+                            return $pred;
+                        } else {
+                            $this->mergeChildWithParentKeyAndRightSibling(
+                                $parent, $child, $next, $pos);
+                            return $child;
+                        }
+                    }
+                }
+            } else if($siblings[0] !== -1) {
+                $pred_id = $siblings[0];
+                $pred = $this->readNode($pred_id);
+                if($pred->count >= MIN_DEGREE) {
+                    $this->adjustChildUsingLeftSiblingAndParent($parent, $child,
+                        $pred, $pos - 1);
+                    return $child;
+                } else {
+                    $this->mergeChildWithParentKeyAndRightSibling($parent, 
+                        $pred, $child, $pos - 1);
+                    return $pred;
+                }
+            } else {
+                $next_id = $siblings[1];
+                $next = $this->readNode($next_id);
+                if($next->count >= MIN_DEGREE) {
+                    $this->adjustChildUsingRightSiblingAndParent($parent,
+                        $child, $next, $pos);
+                    return $child;
+                } else {
+                    $this->mergeChildWithParentKeyAndRightSibling($parent, 
+                        $child, $next, $pos);
+                    return $child;
+                }
+            }
+        } else return $child;
+    }
+
+    /**
+     * Gives a child node an extra key by moving a key from the parent to the
+     * child node, and by moving a key from the child's left sibling to the 
+     * parent node
+     * @param object $parent is the parent node
+     * @param object $child is the child node
+     * @param object $pred is the $child's left sibling node
+     * @param $pos is the link from $parent to $child
+     */
+    function adjustChildUsingLeftSiblingAndParent(&$parent, &$child, &$pred, 
+        $pos)
+    {
+        $pred_pair = array_pop($pred->keys);
+        $pred_link = -1;
+        if($pred->is_leaf == false) {
+            $pred_link = array_pop($pred->links);
+        }
+        $pred->count -= 1;
+        $this->writeNode($pred);
+        $parent_pair = $parent->keys[$pos];
+        for($i = $child->count - 1;$i >= 0;$i--) {
+            $child->keys[$i + 1] = $child->keys[$i];
+        }
+        $child->keys[0] = $parent_pair;
+        if($child->is_leaf == false) {
+            for($i = $child->count;$i >= 0;$i--) {
+                $child->links[$i + 1] = $child->links[$i];
+            }
+            $child->links[0] = $pred_link;
+        }
+        $child->count += 1;
+        $this->writeNode($child);
+        $parent->keys[$pos] = $pred_pair;
+        $this->writeNode($parent);
+    }
+
+    /**
+     * Gives a child node an extra key by moving a key from the parent to the
+     * child node, and by moving a key from the child's right sibling to the 
+     * parent node
+     * @param object $parent is the parent node
+     * @param object $child is the child node
+     * @param object $pred is the $child's left sibling node
+     * @param $pos is the link from $parent to $child
+     */
+    function adjustChildUsingRightSiblingAndParent(&$parent, &$child, &$next,
+        $pos)
+    {
+        $next_pair = $next->keys[0];
+        $next_link = -1;
+        for($i = 1;$i < $next->count;$i++) {
+            $next->keys[$i - 1] = $next->keys[$i];
+        }
+        $next->keys = array_slice($next->keys, 0, $next->count - 1);
+        if($next->is_leaf == false) {
+            $next_link = $next->links[0];
+            for($i = 1;$i <= $next->count;$i++) {
+                $next->links[$i - 1] = $next->links[$i];
+            }
+            $next->links = array_slice($next->links, 0, $next->count);
+        }
+        $next->count -= 1;
+        $this->writeNode($next);
+        $parent_pair = $parent->keys[$pos];
+        $child->keys[$child->count] = $parent_pair;
+        $child->count += 1;
+        $child->links[$child->count] = $next_link;
+        $this->writeNode($child);
+        $parent->keys[$pos] = $next_pair;
+        $this->writeNode($parent);
+    }
+
+    /**
+     * Merges the child node with it's right sibling. The separating key in the
+     * parent node is added as the median key to the newly formed node
+     * @param object $parent is the parent node
+     * @param object $child is the child node
+     * @param object $next is the $child's right sibling node
+     * @param $pos is the link from $parent to $child
+     */
+    function mergeChildWithParentKeyAndRightSibling(&$parent, &$child, &$next, 
+        $pos)
+    {
+        $parent_pair = $parent->keys[$pos];
+        $child->keys[$child->count] = $parent_pair;
+        $child->count += 1;
+        for($i = 0;$i < $next->count;$i++) {
+            $child->keys[$child->count + $i] = $next->keys[$i];
+        }
+        if($next->is_leaf == false) {
+            for($i = 0;$i <= $next->count;$i++) {
+                $child->links[$child->count + $i] = $next->links[$i];
+            }
+        }
+        $child->count = count($child->keys);
+        $this->writeNode($child);
+        $this->deleteNodeFile($next->id);
+        if($pos == $parent->count - 1) {
+            array_pop($parent->keys);
+            array_pop($parent->links);
+            $parent->count -= 1;
+        } else {
+            for($i = $pos + 1;$i < $parent->count;$i++) {
+                $parent->keys[$i - 1] = $parent->keys[$i];
+            }
+            $parent->keys = array_slice($parent->keys, 0, $parent->count - 1);
+            for($i = $pos + 2;$i <= $parent->count;$i++) {
+                $parent->links[$i - 1] = $parent->links[$i];
+            }
+            $parent->links = array_slice($parent->links, 0, $parent->count);
+            $parent->count -= 1;
+        }
+        if($parent == $this->root && $parent->count == 0) {
+            $old_id = $child->id;
+            $child->id = "root";
+            $this->root = $child;
+            $this->deleteNodeFile($old_id);
+            $this->writeNode($this->root);
+        } else {
+            $this->writeNode($parent);
+        }
+    }
+
+    /**
+     * Gets the siblings ids based on link in parent node
+     * @param object $parent is the parent node
+     * @param int $pos is the link for which the siblings are to be found
+     */
+    function getSiblings($parent, $pos)
+    {
+        $siblings = array();
+        if($pos > 0 && $pos < $parent->count) {
+            $siblings[] = $parent->links[$pos - 1];
+            $siblings[] = $parent->links[$pos + 1];
+        } else if($pos == 0) {
+            $siblings[] = -1;
+            $siblings[] = $parent->links[$pos + 1];
+        } else {
+            $siblings[] = $parent->links[$pos - 1];
+            $siblings[] = -1;
+        }
+        return $siblings;
+    }
+}
\ No newline at end of file
diff --git a/lib/btree_node.php b/lib/btree_node.php
new file mode 100644
index 0000000..111fdc9
--- /dev/null
+++ b/lib/btree_node.php
@@ -0,0 +1,87 @@
+<?php
+
+/**
+ *  SeekQuarry/Yioop --
+ *  Open Source Pure PHP Search Engine, Crawler, and Indexer
+ *
+ *  Copyright (C) 2009 - 2013  Chris Pollett chris@pollett.org
+ *
+ *  LICENSE:
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ *  END LICENSE
+ *
+ * @author Chris Pollett chris@pollett.org
+ * @package seek_quarry
+ * @subpackage bin
+ * @license http://www.gnu.org/licenses/ GPL3
+ * @link http://www.seekquarry.com/
+ * @copyright 2009 - 2013
+ * @filesource
+ */
+
+/**
+ * This class implements B-Tree nodes used in the B-Tree implementation in 
+ * btree.php
+ * 
+ * @author Akshat Kukreti
+ * @package seek_quarry
+ */
+
+class Node
+{
+    /**
+     * Storage for id of a B-Tree node
+     * @var int
+     */
+    var $id;
+
+    /**
+     * Flag for checking if node is a leaf node or internal node
+     * @var boolean
+     */
+    var $is_leaf;
+
+    /**
+     * Storage for keeping track of node ids
+     * @var int
+     */
+    var $count;
+
+    /**
+     * Storage for key-value pairs in a B-Tree node
+     * @var array
+     */
+    var $keys;
+
+    /**
+     * Storage for links to child nodes in a B-Tree node
+     * @var array
+     */
+    var $links;
+
+    /**
+     * Creates and initializes an empty leaf node with id -1
+     * @var int
+     */
+    function __construct()
+    {
+        $this->id = -1;
+        $this->is_leaf = true;
+        $this->count = 0;
+        $this->keys = null;
+        $this->links = null;
+    }
+}
\ No newline at end of file
-- 
1.7.11.msysgit.1


From 2162908ae026e2c3cc524df287f2d9e841861394 Mon Sep 17 00:00:00 2001
From: Akshat Kukreti <akshatkukreti@gmail.com>
Date: Fri, 17 May 2013 08:20:42 -0700
Subject: [PATCH 03/13] local_config

---
 0 files changed
 create mode 100644 configs/New Text Document.txt

diff --git a/configs/New Text Document.txt b/configs/New Text Document.txt
new file mode 100644
index 0000000..e69de29
-- 
1.7.11.msysgit.1


From eb2f7e9b74eb6e775e4d2736a5f06d30f5ed835c Mon Sep 17 00:00:00 2001
From: Akshat Kukreti <akshatkukreti@gmail.com>
Date: Fri, 17 May 2013 11:15:25 -0700
Subject: [PATCH 04/13] btree code modified - minimum degree is now accepted
 as an argument

---
 lib/btree.php        | 80 +++++++++++++++++++++++++++-------------------------
 tests/btree_test.php | 53 ++++++++++++++++++++++++++++++++++
 2 files changed, 94 insertions(+), 39 deletions(-)
 create mode 100644 tests/btree_test.php

diff --git a/lib/btree.php b/lib/btree.php
index b7dde33..efdafb3 100644
--- a/lib/btree.php
+++ b/lib/btree.php
@@ -32,34 +32,23 @@
  * @filesource
  */
 
-
 /**
  * Load Node class
  */
-require_once(BASE_DIR."/lib/btree_node.php");
+require_once('btree_node.php');
 
 /**
- * Determines the minimum and maximum number of keys and child nodes, for nodes 
- * other than root node
+ * Default value of minimum degree. The minimum degree determines the minimum 
+ * and maximum number of keys and child nodes for nodes 
+ * other than root node.
  */
 define('MIN_DEGREE', 501);
 
 /**
- * Minimum number of keys for nodes other than root node
- */
-define('MIN_KEYS', MIN_DEGREE - 1);
-
-/**
- * Maximum number of keys for nodes other than root node
- */
-define('MAX_KEYS', 2 * MIN_DEGREE - 1);
-
-/**
  * This class implements the B-Tree data structure for storing int key based 
- * key-value pairs.
- * Based on the algorithms in Introduction To Algorithms, Second Edition by
- * T.H. Cormen, C.E. Leiserson, R.L. Rivest, and C. Stein. Second Edition, 2001
- * The MIT Press
+ * key-value pairs based on the algorithms in Introduction To Algorithms,
+ * by T.H. Cormen, C.E. Leiserson, R.L. Rivest, and C. Stein. Second 
+ * Edition, 2001, The MIT Press
  *
  *  @author Akshat Kukreti
  *  @package seek_quarry
@@ -67,6 +56,17 @@ define('MAX_KEYS', 2 * MIN_DEGREE - 1);
 class BTree
 {
     /**
+     * Minimum degree of the B-Tree. Used in determining the minimum/maximum
+     * keys and links a B-Tree node may have.
+     * minimum_keys = minimum_degree - 1
+     * minimum_links = minimum_keys + 1
+     * maximum_keys = 2 * minimum_degree - 1
+     * maximum_links = maximum_keys + 1
+     * @var int
+     */
+    var $min_degree;
+
+    /**
      * Storage for root node of the B-Tree
      * @var object
      */
@@ -85,12 +85,14 @@ class BTree
     var $dir;
 
     /**
-     * Creates/Loads B-Tree
+     * Creates/Loads B-Tree having specified directory and minimum_degree. The
+     * default minimum_degree is 501.
      * @param string $dir is the directory for storing the B-Tree files
      */
-    function __construct($dir)
+    function __construct($dir, $min_degree = MIN_DEGREE)
     {
         $this->dir = $dir;
+        $this->min_degree = $min_degree;
         if(!is_dir($this->dir)) {
             mkdir($this->dir);
             chmod($this->dir, 0777);
@@ -223,7 +225,7 @@ class BTree
             $node->count = count($node->keys);
             $this->writeNode($node);
             $this->saveNodeCount();
-        } else if($node->count == MAX_KEYS) {
+        } else if($node->count == 2 * $this->min_degree - 1) {
             $temp = $this->createEmptyParentNode();
             $this->root = $temp;
             $this->swap($temp->id, $node->id);
@@ -271,7 +273,7 @@ class BTree
                 }
                 $i += 1;
                 $next_node = $this->readNode($node->links[$i]);
-                if($next_node->count == MAX_KEYS) {
+                if($next_node->count == 2 * $this->min_degree - 1) {
                     $this->bTreeSplitChild($node, $i, $next_node);
                     if($key > $node->keys[$i][0]) {
                         $i += 1;
@@ -297,13 +299,13 @@ class BTree
         $temp->id = $this->id_count;
         $this->saveNodeCount();
         $temp->is_leaf = $child->is_leaf;
-        $temp->count = MIN_DEGREE - 1;
-        for($j = 0;$j < MIN_DEGREE - 1;$j++) {
-            $temp->keys[$j] = $child->keys[MIN_DEGREE + $j];
+        $temp->count = $this->min_degree - 1;
+        for($j = 0;$j < $this->min_degree - 1;$j++) {
+            $temp->keys[$j] = $child->keys[$this->min_degree + $j];
         }
         if($child->is_leaf == false) {
-            for($j = 0;$j < MIN_DEGREE;$j++) {
-                $temp->links[$j] = $child->links[MIN_DEGREE + $j];
+            for($j = 0;$j < $this->min_degree;$j++) {
+                $temp->links[$j] = $child->links[$this->min_degree + $j];
             }
         }
         for($j = $parent->count;$j > $i;$j--) {
@@ -313,11 +315,11 @@ class BTree
         for($j = $parent->count - 1;$j >= $i;$j--) {
             $parent->keys[$j + 1] = $parent->keys[$j];
         }
-        $parent->keys[$j + 1] = $child->keys[MIN_DEGREE - 1];
+        $parent->keys[$j + 1] = $child->keys[$this->min_degree - 1];
         $parent->count = count($parent->keys);
-        $child->keys = array_slice($child->keys, 0, MIN_DEGREE - 1);
+        $child->keys = array_slice($child->keys, 0, $this->min_degree - 1);
         if($child->is_leaf == false) {
-            $child->links = array_slice($child->links, 0, MIN_DEGREE);
+            $child->links = array_slice($child->links, 0, $this->min_degree);
         }
         $child->count = count($child->keys);
         $this->writeNode($child);
@@ -440,7 +442,7 @@ class BTree
     {
         $pred_id = $node->links[$pos];
         $pred = $this->readNode($pred_id);
-        if($pred->count >= MIN_DEGREE) {
+        if($pred->count >= $this->min_degree) {
             $pred_pair = $pred->keys[$pred->count - 1];
             $pred_key = $pred_pair[0];
             $this->delete($pred, $pred_key);
@@ -449,7 +451,7 @@ class BTree
         } else {
             $next_id = $node->links[$pos + 1];
             $next = $this->readNode($next_id);
-            if($next->count >= MIN_DEGREE) {
+            if($next->count >= $this->min_degree) {
                 $next_pair = $next->keys[0];
                 $next_key = $next_pair[0];
                 $this->delete($next, $next_key);
@@ -503,9 +505,9 @@ class BTree
     /**
      * If the key to be deleted is not found in an internal node, finds the root
      * of the sub-tree that might contain the key to be deleted. If the node
-     * contains atleast MIN_DEGREE number of keys, the node is returned.
+     * contains atleast $min_degree number of keys, the node is returned.
      * Otherwise, the node is adjusted using one of its sibling nodes and the 
-     * parent node so that the resultant node has MIN_DEGREE keys. 
+     * parent node so that the resultant node has $min_degree keys. 
      * @param object $parent is the parent node
      * @param int pos is the link to the root of the sub-tree
      * @return object $child is the child node to which the recursion will
@@ -515,19 +517,19 @@ class BTree
     {
         $child_id = $parent->links[$pos];
         $child = $this->readNode($child_id);
-        if($child->count == MIN_DEGREE - 1) {
+        if($child->count == $this->min_degree - 1) {
             $siblings = $this->getSiblings($parent, $pos);
             if($siblings[0] !== -1 && $siblings[1] !== -1) {
                 $pred_id = $siblings[0];
                 $pred = $this->readNode($pred_id);
-                if($pred->count >= MIN_DEGREE) {
+                if($pred->count >= $this->min_degree) {
                     $this->adjustChildUsingLeftSiblingAndParent($parent, $child,
                         $pred, $pos);
                     return $child;
                 } else {
                     $next_id = $siblings[1];
                     $next = $this->readNode($next_id);
-                    if($next->count >= MIN_DEGREE) {
+                    if($next->count >= $this->min_degree) {
                         $this->adjustChildUsingRightSiblingAndParent($parent, 
                             $child, $next, $pos);
                         return $child;
@@ -546,7 +548,7 @@ class BTree
             } else if($siblings[0] !== -1) {
                 $pred_id = $siblings[0];
                 $pred = $this->readNode($pred_id);
-                if($pred->count >= MIN_DEGREE) {
+                if($pred->count >= $this->min_degree) {
                     $this->adjustChildUsingLeftSiblingAndParent($parent, $child,
                         $pred, $pos - 1);
                     return $child;
@@ -558,7 +560,7 @@ class BTree
             } else {
                 $next_id = $siblings[1];
                 $next = $this->readNode($next_id);
-                if($next->count >= MIN_DEGREE) {
+                if($next->count >= $this->min_degree) {
                     $this->adjustChildUsingRightSiblingAndParent($parent,
                         $child, $next, $pos);
                     return $child;
diff --git a/tests/btree_test.php b/tests/btree_test.php
new file mode 100644
index 0000000..591c1fb
--- /dev/null
+++ b/tests/btree_test.php
@@ -0,0 +1,53 @@
+<?php
+
+/**
+ *  SeekQuarry/Yioop --
+ *  Open Source Pure PHP Search Engine, Crawler, and Indexer
+ *
+ *  Copyright (C) 2009 - 2013  Chris Pollett chris@pollett.org
+ *
+ *  LICENSE:
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ *  END LICENSE
+ *
+ * @author Chris Pollett chris@pollett.org
+ * @package seek_quarry
+ * @subpackage test
+ * @license http://www.gnu.org/licenses/ GPL3
+ * @link http://www.seekquarry.com/
+ * @copyright 2009 - 2013
+ * @filesource
+ */
+
+ if(!defined('BASE_DIR')) {echo "BAD REQUEST"; exit();}
+
+ /**
+  * Load BTree
+  */
+ require_once BASE_DIR."/lib/btree.php";
+
+ /**
+ * Used to test insert, lookup, and delete operations on the BTree.
+ *
+ * @author Akshat Kukreti
+ * @package seek_quarry
+ * @subpackage test
+ */
+
+ class BTreeTest extends UnitTest
+ {
+    
+ }
\ No newline at end of file
-- 
1.7.11.msysgit.1


From d3224779ace2570ca09d9c193ee157fb830ed8e2 Mon Sep 17 00:00:00 2001
From: Chris Pollett <chris@pollett.org>
Date: Fri, 17 May 2013 23:57:26 -0700
Subject: [PATCH 05/13] Add ability to control number of byte in a page
 summary, fix a bug in char encoding detection,
 a=chris

---
 bin/fetcher.php                              |  46 ++--
 bin/queue_server.php                         |  23 +-
 configs/config.php                           |   8 +-
 controllers/admin_controller.php             |  27 ++-
 controllers/search_controller.php            |   3 +-
 lib/crawl_constants.php                      |   1 +
 lib/fetch_url.php                            |  12 +-
 lib/index_bundle_iterators/word_iterator.php |  16 +-
 lib/index_dictionary.php                     |  14 +-
 lib/index_manager.php                        |  71 +++++-
 lib/indexing_plugins/recipe_plugin.php       |   4 +-
 lib/locale_functions.php                     |  10 +
 lib/phrase_parser.php                        |  34 +--
 lib/processors/epub_processor.php            |  10 +-
 lib/processors/html_processor.php            |  35 ++-
 lib/processors/page_processor.php            |  14 +-
 lib/processors/pptx_processor.php            |   7 +-
 lib/processors/rss_processor.php             |  10 +-
 lib/processors/svg_processor.php             |   5 +-
 lib/processors/text_processor.php            |   9 +-
 lib/processors/xlsx_processor.php            |   1 -
 lib/processors/xml_processor.php             |   5 +-
 lib/utility.php                              |  48 +++-
 locale/ar/configure.ini                      | 313 ++++++++++++-------------
 locale/bn/configure.ini                      | 313 ++++++++++++-------------
 locale/de/configure.ini                      | 313 ++++++++++++-------------
 locale/en-US/configure.ini                   | 335 ++++++++++++++-------------
 locale/en-US/statistics.txt                  |   2 +-
 locale/es/configure.ini                      | 313 ++++++++++++-------------
 locale/fa/configure.ini                      | 313 ++++++++++++-------------
 locale/fr-FR/configure.ini                   | 313 ++++++++++++-------------
 locale/he/configure.ini                      | 313 ++++++++++++-------------
 locale/hi/configure.ini                      | 313 ++++++++++++-------------
 locale/in-ID/configure.ini                   | 313 ++++++++++++-------------
 locale/it/configure.ini                      | 313 ++++++++++++-------------
 locale/ja/configure.ini                      | 313 ++++++++++++-------------
 locale/kn/configure.ini                      | 313 ++++++++++++-------------
 locale/ko/configure.ini                      | 313 ++++++++++++-------------
 locale/pl/configure.ini                      | 313 ++++++++++++-------------
 locale/pt/configure.ini                      | 313 ++++++++++++-------------
 locale/ru/configure.ini                      | 313 ++++++++++++-------------
 locale/te/configure.ini                      | 313 ++++++++++++-------------
 locale/th/configure.ini                      | 313 ++++++++++++-------------
 locale/tr/configure.ini                      | 313 ++++++++++++-------------
 locale/vi-VN/configure.ini                   | 313 ++++++++++++-------------
 locale/zh-CN/configure.ini                   | 313 ++++++++++++-------------
 models/crawl_model.php                       |   8 +-
 views/elements/pageoptions_element.php       |   7 +-
 48 files changed, 3774 insertions(+), 3564 deletions(-)
 mode change 100644 => 100755 models/locale_model.php

diff --git a/bin/fetcher.php b/bin/fetcher.php
index b073e6f..60d3bba 100755
--- a/bin/fetcher.php
+++ b/bin/fetcher.php
@@ -359,6 +359,13 @@ class Fetcher implements CrawlConstants
     var $page_range_request;
 
     /**
+     * Max number of chars to extract for description from a page to index.
+     * Only words in the description are indexed.
+     * @var int
+     */
+    var $max_description_len;
+
+    /**
      * An array to keep track of hosts which have had a lot of http errors
      * @var array
      */
@@ -390,25 +397,21 @@ class Fetcher implements CrawlConstants
     /**
      * Sets up the field variables so that crawling can begin
      *
-     * @param array $page_processors (mimetype => name of processor) pairs
-     * @param string $name_server URL or IP address of the queue server
-     * @param int $page_range_request maximum number of bytes to download from
-     *      a webpage; <=0 -- unlimited
      */
-    function __construct($page_processors, $name_server,
-        $page_range_request, $indexed_file_types)
+    function __construct()
     {
+        global $PAGE_PROCESSORS, $INDEXED_FILE_TYPES;
         $db_class = ucfirst(DBMS)."Manager";
         $this->db = new $db_class();
 
         // initially same only one queueserver and is same as name server
-        $this->name_server = $name_server;
-        $this->queue_servers = array($name_server);
+        $this->name_server = NAME_SERVER;
+        $this->queue_servers = array(NAME_SERVER);
         $this->current_server = 0;
-        $this->page_processors = $page_processors;
+        $this->page_processors = $PAGE_PROCESSORS;
 
-        $this->indexed_file_types = $indexed_file_types;
-        $this->all_file_types = $indexed_file_types;
+        $this->indexed_file_types = $INDEXED_FILE_TYPES;
+        $this->all_file_types = $INDEXED_FILE_TYPES;
         $this->restrict_sites_by_url = false;
         $this->allowed_sites = array();
         $this->disallowed_sites = array();
@@ -429,7 +432,8 @@ class Fetcher implements CrawlConstants
         $this->to_crawl = array();
         $this->to_crawl_again = array();
         $this->found_sites = array();
-        $this->page_range_request = $page_range_request;
+        $this->page_range_request = PAGE_RANGE_REQUEST;
+        $this->max_description_len = MAX_DESCRIPTION_LEN;
         $this->fetcher_num = false;
 
         $this->sum_seen_title_length = 0;
@@ -978,9 +982,10 @@ class Fetcher implements CrawlConstants
             "&robot_instance=".$prefix.ROBOT_INSTANCE."&machine_uri=".WEB_URI.
             "&crawl_time=".$this->crawl_time;
         $info_string = FetchUrl::getPage($request);
+        crawlLog("Making request: ");
+        crawlLog($request);
         if($info_string === false) {
-            crawlLog("The following request failed:");
-            crawlLog($request);
+            crawlLog("The request failed!!!!");
             return false;
         }
         $info_string = trim($info_string);
@@ -1242,10 +1247,12 @@ class Fetcher implements CrawlConstants
         if(isset($info[self::SCHEDULE_TIME])) {
               $this->schedule_time = $info[self::SCHEDULE_TIME];
         }
-
         if(isset($info[self::PAGE_RANGE_REQUEST])) {
             $this->page_range_request = $info[self::PAGE_RANGE_REQUEST];
         }
+        if(isset($info[self::MAX_DESCRIPTION_LEN])) {
+            $this->max_description_len = $info[self::MAX_DESCRIPTION_LEN];
+        }
     }
 
     /**
@@ -1453,9 +1460,11 @@ class Fetcher implements CrawlConstants
             if(!$handled) {
                 if(isset($this->plugin_processors[$page_processor])) {
                     $processor = new $page_processor(
-                        $this->plugin_processors[$page_processor]);
+                        $this->plugin_processors[$page_processor],
+                        $this->max_description_len);
                 } else {
-                    $processor = new $page_processor();
+                    $processor = new $page_processor(array(),
+                        $this->max_description_len);
                 }
             }
 
@@ -2462,8 +2471,7 @@ class Fetcher implements CrawlConstants
 /*
  *  Instantiate and runs the Fetcher
  */
-$fetcher =  new Fetcher($PAGE_PROCESSORS, NAME_SERVER,
-    PAGE_RANGE_REQUEST, $INDEXED_FILE_TYPES);
+$fetcher =  new Fetcher();
 $fetcher->start();
 
 ?>
diff --git a/bin/queue_server.php b/bin/queue_server.php
index 2774c87..d1a97e5 100755
--- a/bin/queue_server.php
+++ b/bin/queue_server.php
@@ -166,6 +166,12 @@ class QueueServer implements CrawlConstants, Join
      */
     var $page_range_request;
     /**
+     * Max number of chars to extract for description from a page to index.
+     * Only words in the description are indexed.
+     * @var int
+     */
+    var $max_description_len;
+    /**
      * Number of days between resets of the page url filter
      * If nonpositive, then never reset filter
      * @var int
@@ -298,15 +304,16 @@ class QueueServer implements CrawlConstants, Join
     var $server_name;
 
     /**
-     * holds the post processors selected in the crawl options page
+     *  Creates a Queue Server Daemon
      */
-
-    function __construct($indexed_file_types)
+    function __construct()
     {
+        global $INDEXED_FILE_TYPES;
+
         $db_class = ucfirst(DBMS)."Manager";
         $this->db = new $db_class();
-        $this->indexed_file_types = $indexed_file_types;
-        $this->all_file_types = $indexed_file_types;
+        $this->indexed_file_types = $INDEXED_FILE_TYPES;
+        $this->all_file_types = $INDEXED_FILE_TYPES;
         $this->most_recent_fetcher = "No Fetcher has spoken with me";
 
         //the next values will be set for real in startCrawl
@@ -326,6 +333,7 @@ class QueueServer implements CrawlConstants, Join
         $this->cache_pages = true;
         $this->page_recrawl_frequency = PAGE_RECRAWL_FREQUENCY;
         $this->page_range_request = PAGE_RANGE_REQUEST;
+        $this->max_description_len = MAX_DESCRIPTION_LEN;
         $this->server_type = self::BOTH;
         $this->indexing_plugins = array();
         $this->video_sources = array();
@@ -962,6 +970,7 @@ class QueueServer implements CrawlConstants, Join
             "crawl_index" => self::CRAWL_INDEX,
             "cache_pages" => self::CACHE_PAGES,
             "page_range_request" => self::PAGE_RANGE_REQUEST,
+            "max_description_len" => self::MAX_DESCRIPTION_LEN,
             "page_recrawl_frequency" => self::PAGE_RECRAWL_FREQUENCY,
             "indexed_file_types" => self::INDEXED_FILE_TYPES,
             "restrict_sites_by_url" => self::RESTRICT_SITES_BY_URL,
@@ -1126,6 +1135,7 @@ class QueueServer implements CrawlConstants, Join
         }
         $updatable_info = array(
             "page_range_request" => self::PAGE_RANGE_REQUEST,
+            "max_description_len" => self::MAX_DESCRIPTION_LEN,
             "page_recrawl_frequency" => self::PAGE_RECRAWL_FREQUENCY,
             "restrict_sites_by_url" => self::RESTRICT_SITES_BY_URL,
             "cache_pages" => self::CACHE_PAGES,
@@ -1874,6 +1884,7 @@ class QueueServer implements CrawlConstants, Join
         $sites[self::INDEXING_PLUGINS] =  $this->indexing_plugins;
         $sites[self::VIDEO_SOURCES] = $this->video_sources;
         $sites[self::PAGE_RANGE_REQUEST] = $this->page_range_request;
+        $sites[self::MAX_DESCRIPTION_LEN] = $this->max_description_len;
         $sites[self::POST_MAX_SIZE] = metricToInt(ini_get("post_max_size"));
         $sites[self::SITES] = array();
 
@@ -2266,4 +2277,4 @@ if(!defined("UNIT_TEST_MODE")) {
     $queue_server->start();
 }
 
-?>
\ No newline at end of file
+?>
diff --git a/configs/config.php b/configs/config.php
index 7f188ab..c685457 100644
--- a/configs/config.php
+++ b/configs/config.php
@@ -331,11 +331,17 @@ define('MAX_LINKS_WORD_TEXT', 100);
 define('MAX_URL_LENGTH', 512);
 
 /** request this many bytes out of a page -- this is the default value to
-    use if the user doesn't set this value in the page options GUI
+ *  use if the user doesn't set this value in the page options GUI
  */
 define('PAGE_RANGE_REQUEST', 50000);
 
 /**
+ * Max number of chars to extract for description from a page to index.
+ * Only words in the description are indexed.
+ */
+define('MAX_DESCRIPTION_LEN', 2000);
+
+/**
     Allow pages to be recrawled after this many days -- this is the
     default value to use if the user doesn't set this value in the page options
     GUI. What this controls is how often the page url filter is deleted.
diff --git a/controllers/admin_controller.php b/controllers/admin_controller.php
index d986ce3..1405b17 100755
--- a/controllers/admin_controller.php
+++ b/controllers/admin_controller.php
@@ -918,6 +918,10 @@ class AdminController extends Controller implements CrawlConstants
             (isset($seed_info['general']['page_range_request'])) ?
             intval($seed_info['general']['page_range_request']) :
             PAGE_RANGE_REQUEST;
+        $crawl_params[self::MAX_DESCRIPTION_LEN] =
+            (isset($seed_info['general']['max_description_len'])) ?
+            intval($seed_info['general']['max_description_len']) :
+            MAX_DESCRIPTION_LEN;
         $crawl_params[self::PAGE_RECRAWL_FREQUENCY] =
             (isset($seed_info['general']['page_recrawl_frequency'])) ?
             intval($seed_info['general']['page_recrawl_frequency']) :
@@ -1011,6 +1015,11 @@ class AdminController extends Controller implements CrawlConstants
                 $seed_info['general']['page_recrawl_frequency'] =
                 $seed_current['general']['page_recrawl_frequency'];
             }
+            if(isset(
+                $seed_current['general']['max_description_len'])) {
+                $seed_info['general']['max_description_len'] =
+                    $seed_current['general']['max_description_len'];
+            }
             $update_flag = true;
             $no_further_changes = true;
         } else if (isset($_REQUEST['load_option']) &&
@@ -1477,7 +1486,9 @@ class AdminController extends Controller implements CrawlConstants
         $data['SIZE_VALUES'] = array(10000=>10000, 50000=>50000,
             100000=>100000, 500000=>500000, 1000000=>1000000,
             5000000=>5000000, 10000000=>10000000);
-
+        $data['LEN_VALUES'] = array(2000=>2000, 10000=>10000, 50000=>50000,
+            100000=>100000, 500000=>500000, 1000000=>1000000,
+            5000000=>5000000, 10000000=>10000000);
         if(!isset($seed_info["indexed_file_types"]["extensions"])) {
             $seed_info["indexed_file_types"]["extensions"] =
                 $INDEXED_FILE_TYPES;
@@ -1493,7 +1504,7 @@ class AdminController extends Controller implements CrawlConstants
                     $timestamp, $machine_urls);
             }
             $copy_options = array("general" => array("page_recrawl_frequency",
-                "page_range_request", "cache_pages"),
+                "page_range_request", "max_description_len", "cache_pages"),
                 "indexed_file_types" => array("extensions"),
                 "indexing_plugins" => array("plugins"));
             foreach($copy_options as $main_option => $sub_options) {
@@ -1523,6 +1534,11 @@ class AdminController extends Controller implements CrawlConstants
                 $seed_info["general"]["page_range_request"] =
                     $_REQUEST["page_range_request"];
             }
+            if(isset($_REQUEST["max_description_len"]) &&
+                in_array($_REQUEST["max_description_len"],$data['LEN_VALUES'])){
+                $seed_info["general"]["max_description_len"] =
+                    $_REQUEST["max_description_len"];
+            }
            if(isset($_REQUEST["cache_pages"]) ) {
                 $seed_info["general"]["cache_pages"] = true;
            } else if(isset($_REQUEST['posted'])) {
@@ -1551,6 +1567,10 @@ class AdminController extends Controller implements CrawlConstants
             $seed_info["general"]["page_range_request"] = PAGE_RANGE_REQUEST;
         }
         $data['PAGE_SIZE'] = $seed_info["general"]["page_range_request"];
+        if(!isset($seed_info["general"]["max_description_len"])) {
+            $seed_info["general"]["max_description_len"] = MAX_DESCRIPTION_LEN;
+        }
+        $data['MAX_LEN'] = $seed_info["general"]["max_description_len"];
 
         $data['INDEXING_PLUGINS'] = array();
         $included_plugins = array();
@@ -1745,7 +1765,8 @@ class AdminController extends Controller implements CrawlConstants
                     }
                 }
             }
-            $page_processor = new $processor_name($plugin_processors);
+            $page_processor = new $processor_name($plugin_processors,
+                $seed_info["general"]["max_description_len"]);
             $doc_info = $page_processor->handle($_REQUEST['TESTPAGE'],
                 $site[self::URL]);
 
diff --git a/controllers/search_controller.php b/controllers/search_controller.php
index 54de66b..dcdd12e 100755
--- a/controllers/search_controller.php
+++ b/controllers/search_controller.php
@@ -1598,8 +1598,9 @@ class SearchController extends Controller implements CrawlConstants
         } else {
             $body_tags = "<frameset><frame><noscript><img><span><b><i><em>".
                 "<strong><h1><h2><h3><h4><h5><h6><p><div>".
-                "<a><table><tr><td><th><dt><dir><dl><dd>";
+                "<a><table><tr><td><th><dt><dir><dl><dd><pre>";
             $cache_file = strip_tags($cache_file, $body_tags);
+            $cache_file = wordwrap($cache_file, 80);
             $cache_file = "<html><head><title>Yioop! Cache</title></head>".
                 "<body>".$cache_file."</body></html>";
             $dom = new DOMDocument();
diff --git a/lib/crawl_constants.php b/lib/crawl_constants.php
index 140155c..18ebde8 100644
--- a/lib/crawl_constants.php
+++ b/lib/crawl_constants.php
@@ -221,6 +221,7 @@ interface CrawlConstants
     const END_ITERATOR = 'ct';
     const ACTIVE_CLASSIFIERS = 'cu';
     const ACTIVE_CLASSIFIERS_DATA = 'cv';
+    const MAX_DESCRIPTION_LEN = 'cw';
 
     const NEEDS_OFFSET_FLAG = 0x7FFFFFFF;
 }
diff --git a/lib/fetch_url.php b/lib/fetch_url.php
index 3673974..cceb260 100755
--- a/lib/fetch_url.php
+++ b/lib/fetch_url.php
@@ -233,9 +233,15 @@ class FetchUrl implements CrawlConstants
     }
 
     /**
-     *
-     * @param string $url
-     * @param bool $minimal
+     * Curl requests are typically done using cache data which is stored
+     * after ### at the end of urls if this is possible. To make this
+     * work. The http Host: with the url is added a header after the
+     * for the curl request. The job of this function is to do this replace
+     * @param string $url site to download with ip address at end potentially
+     *   afte ###
+     * @param bool $minimal don't try to do replacement, but do add an Expect
+     *      header
+     * @return array 3-tuple (orig url, url with replacement, http header array)
      */
     static function prepareUrlHeaders($url, $minimal = false)
     {
diff --git a/lib/index_bundle_iterators/word_iterator.php b/lib/index_bundle_iterators/word_iterator.php
index 98e4a0a..d8f807d 100644
--- a/lib/index_bundle_iterators/word_iterator.php
+++ b/lib/index_bundle_iterators/word_iterator.php
@@ -162,6 +162,11 @@ class WordIterator extends IndexBundleIterator
     function __construct($word_key, $index_name, $raw = false, &$filter = NULL,
         $results_per_block = IndexBundleIterator::RESULTS_PER_BLOCK)
     {
+        $mask = false;
+        if(is_array($word_key)) {
+            $mask = $word_key[1];
+            $word_key = $word_key[0];
+        }
         if($raw == false) {
             //get rid of out modfied base64 encoding
             $hash = str_replace("_", "/", $word_key);
@@ -211,15 +216,10 @@ class WordIterator extends IndexBundleIterator
             $this->using_feeds = false;
         }
         $this->num_docs = $this->feed_count;
-        $this->index_name =  $index_name;
-        $index = IndexManager::getIndex($index_name);
         $this->current_block_fresh = false;
-        if($index->dictionary) {
-            $this->dictionary_info =
-                $index->dictionary->getWordInfo($word_key, true);
-        } else {
-            $this->dictionary_info = false;
-        }
+        $this->index_name =  $index_name;
+        $this->dictionary_info = 
+            IndexManager::getWordInfo($index_name, $word_key, $mask);
         if ($this->dictionary_info === false) {
             $this->empty = true;
         } else {
diff --git a/lib/index_dictionary.php b/lib/index_dictionary.php
index d43efc5..5e72309 100644
--- a/lib/index_dictionary.php
+++ b/lib/index_dictionary.php
@@ -525,11 +525,13 @@ class IndexDictionary implements CrawlConstants
      *      generation, first offset, last offset, count or
      *      just a string of the word_info data if $extract is false
      */
-     function getWordInfo($word_id, $raw = false, $extract = true)
+     function getWordInfo($word_id, $raw = false, $extract = true,
+        $mask = false)
      {
         $info = array();
         foreach($this->active_tiers as $tier) {
-            $tier_info =$this->getWordInfoTier($word_id, $raw, $extract, $tier);
+            $tier_info =$this->getWordInfoTier($word_id, $raw, $extract, $tier,
+                $mask);
             if(is_array($tier_info)) {
                 $info = array_merge($info, $tier_info);
             }
@@ -561,7 +563,7 @@ class IndexDictionary implements CrawlConstants
       *      generation, first offset, last offset, count or
       *      just a string of the word_info data if $extract is false
       */
-     function getWordInfoTier($word_id, $raw, $extract, $tier)
+     function getWordInfoTier($word_id, $raw, $extract, $tier, $mask = false)
      {
         if(isset($this->fhs)) {
             $this->tier_fhs[$this->read_tier] = $this->fhs;
@@ -617,7 +619,7 @@ class IndexDictionary implements CrawlConstants
 
             if($word_string == false) {return false;}
             $id = substr($word_string, 0, $word_key_len);
-            $cmp = strcmp($word_id, $id);
+            $cmp = compareWordHashes($word_id, $id, $mask);
             if($cmp === 0) {
                 $found = true;
                 break;
@@ -664,7 +666,7 @@ class IndexDictionary implements CrawlConstants
                 $test_loc * $word_item_len, $word_item_len);
             if($word_string == "" ) break;
             $id = substr($word_string, 0, $word_key_len);
-            if(strcmp($word_id, $id) != 0 ) {
+            if(compareWordHashes($word_id, $id, $mask) != 0 ) {
                 $break_count++;
                 if($break_count > 1) {
                     break;
@@ -713,7 +715,7 @@ class IndexDictionary implements CrawlConstants
                 $test_loc * $word_item_len, $word_item_len);
             if($word_string == "" ) break;
             $id = substr($word_string, 0, $word_key_len);
-            if(strcmp($word_id, $id) != 0 ) {
+            if(compareWordHashes($word_id, $id, $mask) != 0 ) {
                 $break_count++;
                 if($break_count > 1) {
                     break;
diff --git a/lib/index_manager.php b/lib/index_manager.php
index 4481cc1..acfe490 100644
--- a/lib/index_manager.php
+++ b/lib/index_manager.php
@@ -41,6 +41,10 @@ require_once BASE_DIR."/lib/crawl_constants.php";
  */
 require_once BASE_DIR."/lib/index_archive_bundle.php";
 /**
+ * For crawlHash
+ */
+require_once BASE_DIR."/lib/utility.php";
+/**
  * Class used to manage open IndexArchiveBundle's while performing
  * a query. Ensures an easy place to obtain references to these bundles
  * and ensures only one object per bundle is instantiated in a Singleton-esque
@@ -54,6 +58,13 @@ require_once BASE_DIR."/lib/index_archive_bundle.php";
 class IndexManager implements CrawlConstants
 {
     /**
+     *
+     *  @var array
+     */
+    static $indexes = array();
+
+    static $dictionary = array();
+    /**
      *  Returns a reference to the managed copy of an IndexArchiveBundle object
      *  with a given timestamp or an IndexShard in the case where
      *  $index_name == "feed" (for handling news feeds)
@@ -63,12 +74,12 @@ class IndexManager implements CrawlConstants
      */
     static function getIndex($index_name)
     {
-        static $indexes = array();
-        if(!isset($indexes[$index_name])) {
+
+        if(!isset(self::$indexes[$index_name])) {
             if($index_name == "feed") {
                 $index_file = WORK_DIRECTORY."/feeds/index";
                 if(file_exists($index_file)) {
-                    $indexes[$index_name] = new IndexShard(
+                    self::$indexes[$index_name] = new IndexShard(
                         $index_file, 0, NUM_DOCS_PER_GENERATION, true);
                 } else {
                     return false;
@@ -81,12 +92,60 @@ class IndexManager implements CrawlConstants
                 if(!$tmp) {
                     return false;
                 }
-                $indexes[$index_name] = $tmp;
-                $indexes[$index_name]->setCurrentShard(0, true);
+                self::$indexes[$index_name] = $tmp;
+                self::$indexes[$index_name]->setCurrentShard(0, true);
             }
         }
-        return $indexes[$index_name];
+        return self::$indexes[$index_name];
+    }
+
+    /**
+     *
+     */
+    static function getWordInfo($index_name, $hash, $mask = false)
+    {
+        $index = IndexManager::getIndex($index_name);
+        if(!$index->dictionary) {
+            return false;
+        }
+        if(!isset(IndexManager::$dictionary[$index_name][$hash][$mask])) {
+            IndexManager::$dictionary[$index_name][$hash][$mask] =
+                $index->dictionary->getWordInfo($hash, true, true, $mask);
+        }
+        return IndexManager::$dictionary[$index_name][$hash][$mask];
     }
 
+    /**
+     *
+     */
+    static function numDocsTerm($term_or_phrase, $index_name)
+    {
+        $index = IndexManager::getIndex($index_name);
+        if(!$index->dictionary) {
+            return false;
+        }
+        $pos = -1;
+        $total_num_docs = 0;
+        $hashes = allCrawlHashPaths($term_or_phrase, true);
+        if(!is_array($hashes)) {
+            $hashes = array($hashes);
+        }
+        foreach($hashes as $hash) {
+            if(is_array($hash)) {
+                $dictionary_info = 
+                    IndexManager::getWordInfo($index_name, $hash[0],
+                        $hash[1]);
+            } else {
+                $dictionary_info = 
+                    IndexManager::getWordInfo($index_name, $hash);
+            }
+            $num_generations = count($dictionary_info);
+            for($i = 0; $i < $num_generations; $i++) {
+                list(, , , $num_docs) = $dictionary_info[$i];
+                $total_num_docs += $num_docs;
+            }
+        }
+        return $total_num_docs;
+    }
 }
 ?>
diff --git a/lib/indexing_plugins/recipe_plugin.php b/lib/indexing_plugins/recipe_plugin.php
index fab9d02..6e01968 100644
--- a/lib/indexing_plugins/recipe_plugin.php
+++ b/lib/indexing_plugins/recipe_plugin.php
@@ -514,8 +514,8 @@ class RecipePlugin extends IndexingPlugin implements CrawlConstants
     static function getAdditionalMetaWords()
     {
 
-        return array("recipe:" => HtmlProcessor::MAX_DESCRIPTION_LEN,
-            "ingredient:" => HtmlProcessor::MAX_DESCRIPTION_LEN);
+        return array("recipe:" => MAX_DESCRIPTION_LEN,
+            "ingredient:" => MAX_DESCRIPTION_LEN);
     }
 }
 
diff --git a/lib/locale_functions.php b/lib/locale_functions.php
index a36cd85..3efb3b2 100644
--- a/lib/locale_functions.php
+++ b/lib/locale_functions.php
@@ -203,6 +203,16 @@ function guessEncodingHtml($html, $return_loc_info = false)
     if($end_head) {
         $reg = "/charset(\s*)=(\s*)(\'|\")?((\w|\-)+)(\'|\")?/u";
         $is_match = preg_match($reg, $html, $match);
+        if(!$is_match) {
+            $reg = "charset(\s*)=(\s*)(\'|\")?((\w|\-)+)(\'|\")?";
+            mb_regex_encoding("UTF-8");
+            mb_ereg_search_init($html);
+            mb_ereg_search($reg);
+            $match = mb_ereg_search_getregs();
+            if(isset($match[0])) {
+                $is_match = true;
+            }
+        }
         if($is_match && isset($match[6])) {
             $len_c = strlen($match[0]);
             if(($match[6] == "'" || $match[6] == '"') &&
diff --git a/lib/phrase_parser.php b/lib/phrase_parser.php
index 282d081..4f7e8e6 100755
--- a/lib/phrase_parser.php
+++ b/lib/phrase_parser.php
@@ -137,8 +137,8 @@ class PhraseParser
         if($exact_match) {
             return array($whole_phrase);
         }
-        $count_whole_phrase = self::numDocsTerm($whole_phrase, $index_name);
-
+        $count_whole_phrase = IndexManager::numDocsTerm($whole_phrase,
+            $index_name);
         if($count_whole_phrase >= 10
             || $num > MAX_QUERY_TERMS / 2) {
             return array($whole_phrase);
@@ -150,36 +150,6 @@ class PhraseParser
     }
 
     /**
-     *
-     */
-    static function numDocsTerm($term_or_phrase, $index_name)
-    {
-        $index = IndexManager::getIndex($index_name);
-        if(!$index->dictionary) {
-            return false;
-        }
-        $pos = -1;
-        $total_num_docs = 0;
-        do {
-            $pos++;
-            $hash = crawlHashPath($term_or_phrase, $pos, true);
-            $dictionary_info =
-                $index->dictionary->getWordInfo($hash, true);
-
-            $num_generations = count($dictionary_info);
-
-            for($i = 0; $i < $num_generations; $i++) {
-                list(, , , $num_docs) =
-                    $dictionary_info[$i];
-                $total_num_docs += $num_docs;
-            }
-            $pos = strpos($term_or_phrase, " ", $pos);
-        } while($pos !== false || !isset($term_or_phrase[$pos + 1]));
-
-        return $total_num_docs;
-    }
-
-    /**
      * Extracts all phrases (sequences of adjacent words) from $string. Does
      * not extract terms within those phrase. Returns an associative array
      * of phrase => number of occurrences of phrase
diff --git a/lib/processors/epub_processor.php b/lib/processors/epub_processor.php
index e5f255c..f0c21b9 100644
--- a/lib/processors/epub_processor.php
+++ b/lib/processors/epub_processor.php
@@ -48,12 +48,6 @@ require_once BASE_DIR."/lib/processors/html_processor.php";
  */
 require_once BASE_DIR."/lib/url_parser.php";
 
-
-/**
- *  The maximum length of description
- */
-define('MAX_DESCRIPTION_LEN', 2000);
-
 /**
  * The constant represents the number of
  * child levels at which the data is present in
@@ -214,8 +208,8 @@ class EpubProcessor extends TextProcessor
         }
         $desc= $desc.$htmlcontent;
         //restrict the length of the description to maximum description length
-        if(strlen($desc) > MAX_DESCRIPTION_LEN) {
-            $desc = substr($desc, 0, MAX_DESCRIPTION_LEN);
+        if(strlen($desc) > self::$max_description_len) {
+            $desc = substr($desc, 0, self::$max_description_len);
         }
 
         $summary[self::TITLE] = $epub_title;
diff --git a/lib/processors/html_processor.php b/lib/processors/html_processor.php
index 96b0c2a..ae5f7b4 100755
--- a/lib/processors/html_processor.php
+++ b/lib/processors/html_processor.php
@@ -57,7 +57,9 @@ require_once BASE_DIR."/lib/locale_functions.php";
  */
 class HtmlProcessor extends TextProcessor
 {
-    const MAX_DESCRIPTION_LEN = 2000;
+    /**
+     *  Maximum number of characters in a title
+     */
     const MAX_TITLE_LEN = 100;
 
     /**
@@ -86,7 +88,8 @@ class HtmlProcessor extends TextProcessor
                 if($summary[self::TITLE] == "") {
                     $summary[self::TITLE] = self::crudeTitle($dom_page);
                 }
-                $summary[self::DESCRIPTION] = self::description($dom);
+                $summary[self::DESCRIPTION] = self::description($dom,
+                    $dom_page);
                 if(trim($summary[self::DESCRIPTION]) == "") {
                     $summary[self::DESCRIPTION] = self::crudeDescription(
                         $dom_page);
@@ -292,7 +295,7 @@ class HtmlProcessor extends TextProcessor
      *  Returns summary of body of a web page based on crude regex matching
      *      used as a fall back if dom parsing did not work.
      *
-     *  @param string $page to extract title from
+     *  @param string $page to extract description from
      *  @return string  a title of the page
      */
     static function crudeDescription($page)
@@ -302,7 +305,7 @@ class HtmlProcessor extends TextProcessor
         if($body == "") { return $body; }
         $body_parts = preg_split("/\s+/", $body);
         $body = implode(" ", $body_parts);
-        return mb_substr($body, 0, self::MAX_DESCRIPTION_LEN);
+        return mb_substr($body, 0, self::$max_description_len);
     }
 
     /**
@@ -310,9 +313,10 @@ class HtmlProcessor extends TextProcessor
      * object
      *
      * @param object $dom   a document object to extract a description from.
+     * @param string $page original page string to extract description from
      * @return string a description of the page
      */
-    static function description($dom) {
+    static function description($dom, $page) {
         $xpath = new DOMXPath($dom);
 
         $metas = $xpath->evaluate("/html//meta");
@@ -325,15 +329,26 @@ class HtmlProcessor extends TextProcessor
                 $description .= " .. ".$meta->getAttribute('content');
             }
         }
+        if(self::$max_description_len > 2 * MAX_DESCRIPTION_LEN) {
+            /* if don't need to summarize much, take meta description
+               from above code, then concatenate body of doc 
+               after stripping tags, return result
+             */
+            $description .= "\n".self::crudeDescription($page);
+            return $description;
+        }
 
         /*
           concatenate the contents of then additional dom elements up to
-          the limit of description length
+          the limit of description length. Choose tags in order of likely
+          importance to this doc
         */
         $page_parts = array("/html//p[1]",
             "/html//div[1]", "/html//p[2]", "/html//div[2]", "/html//p[3]",
             "/html//div[3]", "/html//p[4]", "/html//div[4]",
-            "/html//td", "/html//li", "/html//dt", "/html//dd", "/html//a");
+            "/html//td", "/html//li", "/html//dt", "/html//dd", 
+            "/html//pre", "/html//a", "/html//article",
+            "/html//section", "/html//cite");
 
         $para_data = array();
         $len = 0;
@@ -343,17 +358,17 @@ class HtmlProcessor extends TextProcessor
             foreach($doc_nodes as $node) {
                 if($part == "/html//a") {
                     $content = $node->getAttribute('href')." = ";
-                    $add_len  = min(self::MAX_DESCRIPTION_LEN / 2,
+                    $add_len  = min(self::$max_description_len / 2,
                         mb_strlen($content));
                     $para_data[$add_len][] = mb_substr($content, 0, $add_len);
                 }
-                $add_len  = min(self::MAX_DESCRIPTION_LEN / 2,
+                $add_len  = min(self::$max_description_len / 2,
                     mb_strlen($node->textContent));
                 $para_data[$add_len][] = mb_substr($node->textContent,
                     0, $add_len);
                 $len += $add_len;
 
-                if($len > self::MAX_DESCRIPTION_LEN) { break 2;}
+                if($len > self::$max_description_len) { break 2;}
                 if(in_array($part, array("/html//p[1]", "/html//div[1]",
                     "/html//div[2]", "/html//p[2]", "/html//p[3]",
                     "/html//div[3]", "/html//div[4]", "/html//p[4]"))) break;
diff --git a/lib/processors/page_processor.php b/lib/processors/page_processor.php
index 98ff05c..83b4ffb 100644
--- a/lib/processors/page_processor.php
+++ b/lib/processors/page_processor.php
@@ -57,6 +57,13 @@ abstract class PageProcessor implements CrawlConstants
     var $indexing_plugins;
 
     /**
+     * Max number of chars to extract for description from a page to index.
+     * Only words in the description are indexed.
+     * @var int
+     */
+    static $max_description_len;
+
+    /**
      *  Set-ups the any indexing plugins associated with this page
      *  processor
      *
@@ -64,8 +71,13 @@ abstract class PageProcessor implements CrawlConstants
      *      do further processing on the data handles by this page
      *      processor
      */
-    function __construct($plugins = array()){
+    function __construct($plugins = array(), $max_description_len = NULL) {
         $this->indexing_plugins = array_unique($plugins);
+        if($max_description_len != NULL) {
+            self::$max_description_len = $max_description_len;
+        } else {
+            self::$max_description_len = MAX_DESCRIPTION_LEN;
+        }
         foreach($plugins as $plugin) {
             $plugin_name = ucfirst($plugin);
             $plugin_instance_name = lcfirst($plugin);
diff --git a/lib/processors/pptx_processor.php b/lib/processors/pptx_processor.php
index 222078b..eabdab5 100644
--- a/lib/processors/pptx_processor.php
+++ b/lib/processors/pptx_processor.php
@@ -56,11 +56,6 @@ require_once BASE_DIR."/lib/utility.php";
  */
 class PptxProcessor extends TextProcessor
 {
-    /**
-     * Constant for maximum description length
-     * @var number
-     */
-    const MAX_DESCRIPTION_LEN = 2000;
 
     /**
      *  Used to extract the title, description and links from
@@ -110,7 +105,7 @@ class PptxProcessor extends TextProcessor
                     $desc=self::description($dom);
 
                     if(strlen($summary[self::DESCRIPTION])
-                        < self::MAX_DESCRIPTION_LEN) {
+                        < self::$max_description_len) {
                             $summary[self::DESCRIPTION]=
                                 $summary[self::DESCRIPTION].$desc;
                     }
diff --git a/lib/processors/rss_processor.php b/lib/processors/rss_processor.php
index f850a90..f6df249 100644
--- a/lib/processors/rss_processor.php
+++ b/lib/processors/rss_processor.php
@@ -53,12 +53,6 @@ require_once BASE_DIR."/lib/url_parser.php";
 class RssProcessor extends TextProcessor
 {
     /**
-     * Max number of chars to extract for description
-     */
-    const MAX_DESCRIPTION_LEN = 2000;
-
-
-    /**
      *  Used to extract the title, description and links from
      *  a string consisting of rss or atom news feed data.
      *
@@ -200,7 +194,7 @@ class RssProcessor extends TextProcessor
             $doc_nodes = $xpath->evaluate($part);
             foreach($doc_nodes as $node) {
                 $description .= " ".$node->textContent;
-                if(strlen($description) > self::MAX_DESCRIPTION_LEN) { break 2;}
+                if(strlen($description) > self::$max_description_len) {break 2;}
             }
         }
         $description = mb_ereg_replace("(\s)+", " ",  $description);
@@ -310,4 +304,4 @@ class RssProcessor extends TextProcessor
 
 }
 
-?>
\ No newline at end of file
+?>
diff --git a/lib/processors/svg_processor.php b/lib/processors/svg_processor.php
index 0cb7899..90a9fa8 100644
--- a/lib/processors/svg_processor.php
+++ b/lib/processors/svg_processor.php
@@ -63,7 +63,6 @@ require_once BASE_DIR."/lib/utility.php";
  */
 class SvgProcessor extends TextProcessor
 {
-    const MAX_DESCRIPTION_LEN = 2000;
     const MAX_THUMB_LEN = 5000;
 
 
@@ -203,7 +202,7 @@ class SvgProcessor extends TextProcessor
             $doc_nodes = $xpath->evaluate($part);
             foreach($doc_nodes as $node) {
                 $description .= " ".$node->textContent;
-                if(strlen($description) > self::MAX_DESCRIPTION_LEN) { break 2;}
+                if(strlen($description) > self::$max_description_len){ break 2;}
             }
         }
         $description = mb_ereg_replace("(\s)+", " ",  $description);
@@ -213,4 +212,4 @@ class SvgProcessor extends TextProcessor
 
 }
 
-?>
\ No newline at end of file
+?>
diff --git a/lib/processors/text_processor.php b/lib/processors/text_processor.php
index 500354a..689377a 100755
--- a/lib/processors/text_processor.php
+++ b/lib/processors/text_processor.php
@@ -55,11 +55,6 @@ require_once BASE_DIR."/lib/url_parser.php";
 class TextProcessor extends PageProcessor
 {
     /**
-     * Max number of chars to extract for description
-     */
-    const MAX_DESCRIPTION_LEN = 2000;
-
-    /**
      * Computes a summary based on a text string of a document
      *
      * @param string $page text string of a document
@@ -78,11 +73,11 @@ class TextProcessor extends PageProcessor
         if(is_string($page)) {
             $summary[self::TITLE] = "";
             $summary[self::DESCRIPTION] = mb_substr($page, 0,
-                self::MAX_DESCRIPTION_LEN);
+                self::$max_description_len);
             $summary[self::LANG] = self::calculateLang(
                 $summary[self::DESCRIPTION]);
             $summary[self::LINKS] = self::extractHttpHttpsUrls($page);
-            $summary[self::PAGE] = "<html><body><div><p>&nbsp;</p><pre>".
+            $summary[self::PAGE] = "<html><body><div><pre>".
                 strip_tags($page)."</pre></div></body></html>";
         }
         return $summary;
diff --git a/lib/processors/xlsx_processor.php b/lib/processors/xlsx_processor.php
index fc82240..a7ba978 100644
--- a/lib/processors/xlsx_processor.php
+++ b/lib/processors/xlsx_processor.php
@@ -53,7 +53,6 @@ require_once BASE_DIR."/lib/url_parser.php";
 
 class XlsxProcessor extends TextProcessor
 {
-    const MAX_DESCRIPTION_LEN = 2000;
 
     /**
      *  Used to extract the title, description and links from
diff --git a/lib/processors/xml_processor.php b/lib/processors/xml_processor.php
index f4233c5..83840d8 100644
--- a/lib/processors/xml_processor.php
+++ b/lib/processors/xml_processor.php
@@ -64,9 +64,6 @@ require_once BASE_DIR."/lib/url_parser.php";
  */
 class XmlProcessor extends TextProcessor
 {
-    const MAX_DESCRIPTION_LEN = 2000;
-
-
     /**
      *  Used to extract the title, description and links from
      *  a string consisting of rss news feed data.
@@ -128,4 +125,4 @@ class XmlProcessor extends TextProcessor
 
 }
 
-?>
\ No newline at end of file
+?>
diff --git a/lib/utility.php b/lib/utility.php
index 812495a..91e7659 100755
--- a/lib/utility.php
+++ b/lib/utility.php
@@ -660,27 +660,44 @@ function allCrawlHashPaths($string, $raw = false)
 {
     $pos = -1;
     $hashes = array();
+    $zero = "*";
+    $masks = array(2047, 127, 31, 15, 7, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
+    $num_spaces = substr_count($string, " ");
+    $num = MAX_QUERY_TERMS - $num_spaces - 1;
+
+    $j = 0;
     do {
         $old_pos = $pos;
-        $hash = crawlHashPath($string, $pos + 1, $raw);
-        $hashes[] = $hash;
+        $path_string = $string;
+        for($i = 0; $i < $num; $i++) {
+            $hash = crawlHashPath($path_string, $pos + 1, $raw);
+            if($i > 0 && $j > 0) {
+                $hashes[] = array($hash, $masks[$i]);
+            } else {
+                $hashes[] = $hash;
+            }
+            if($j == 0) {break; }
+            $path_string .= " ".$zero;
+        }
         $pos = mb_strpos($string, " ", $pos + 1);
-
+        $j++;
     } while($pos > 0 && $old_pos != $pos);
 
+
     if(count($hashes) == 1) {
         return $hashes[0];
     }
     return $hashes;
 }
 
+
 /**
  *
  */
 function crawlHashPath($string, $path_start = 0, $raw = false)
 {
 
-    if($path_start > 0) {
+    if($path_start > 0 ) {
         $string_parts = explode(" ", substr($string, $path_start));
         $num_parts = count($string_parts);
     }
@@ -698,7 +715,11 @@ function crawlHashPath($string, $path_start = 0, $raw = false)
     //Low 3 bytes encode paths
     $path_ints = array();
     foreach($string_parts as $part) {
-        $path_ints[] = unpackInt(substr(md5($part, true), 0, 4));
+        if($part == "*") {
+            $path_ints[] = 0;
+        } else {
+            $path_ints[] = unpackInt(substr(md5($part, true), 0, 4));
+        }
     }
     $num_parts = count($path_ints);
     switch($num_parts)
@@ -777,6 +798,23 @@ function crawlHashPath($string, $path_start = 0, $raw = false)
     return $hash;
 }
 
+    /**
+     *
+     */
+    function compareWordHashes($id1, $id2, $mask)
+    {
+        if($mask === false) {
+            return strcmp($id1, $id2);
+        }
+        $cmp = strcmp(substr($id1, 0, 4), substr($id2, 0, 4));
+        if($cmp !== 0) {
+            return $cmp;
+        }
+        $id1 = packInt((unpackInt($id1) & $mask));
+        $id2 = packInt((unpackInt($id2) & $mask));
+        return strcmp($id1, $id2);
+    }
+
 /**
  * Converts a crawl hash number to something closer to base64 coded but
  * so doesn't get confused in urls or DBs
diff --git a/locale/ar/configure.ini b/locale/ar/configure.ini
index c53aa04..d4e5cd7 100755
--- a/locale/ar/configure.ini
+++ b/locale/ar/configure.ini
@@ -154,346 +154,346 @@ admin_controller_starting_new_crawl = "بدء تشغيل تتبع الارتبا
 ; admin_controller.php line: 868
 admin_controller_no_description = "لا يوجد وصف لتتبع الارتباطات"
 ;
-; admin_controller.php line: 981
+; admin_controller.php line: 985
 admin_controller_use_below = "استخدام الخيارات الموجودة بالأسفل"
 ;
-; admin_controller.php line: 982
+; admin_controller.php line: 986
 admin_controller_use_defaults = "استخدام يوب! افتراضيات "
 ;
-; admin_controller.php line: 984
+; admin_controller.php line: 988
 admin_controller_use_below = "استخدام الخيارات الموجودة بالأسفل"
 ;
-; admin_controller.php line: 988
+; admin_controller.php line: 992
 admin_controller_previous_crawl = "تتبع الارتباطات السابقة:"
 ;
-; admin_controller.php line: 1075
+; admin_controller.php line: 1084
 admin_controller_breadth_first = "اتساع الأولى"
 ;
-; admin_controller.php line: 1077
+; admin_controller.php line: 1086
 admin_controller_page_importance = "أهمية الصفحة"
 ;
-; admin_controller.php line: 1143
+; admin_controller.php line: 1152
 admin_controller_urls_injected = "محددات مواقع المعلومات حقن!"
 ;
-; admin_controller.php line: 1154
+; admin_controller.php line: 1163
 admin_controller_update_seed_info = "تحديث معلومات الموقع البذور!"
 ;
-; admin_controller.php line: 1246
+; admin_controller.php line: 1255
 admin_controller_select_crawl = "حدد تتبع الارتباطات"
 ;
-; admin_controller.php line: 1247
+; admin_controller.php line: 1256
 admin_controller_default_crawl = "تتبع الارتباطات الافتراضية"
 ;
-; admin_controller.php line: 1249
+; admin_controller.php line: 1258
 admin_controller_select_crawl = "حدد تتبع الارتباطات"
 ;
-; admin_controller.php line: 1251
+; admin_controller.php line: 1260
 admin_controller_default_crawl = "تتبع الارتباطات الافتراضية"
 ;
-; admin_controller.php line: 1278
+; admin_controller.php line: 1287
 admin_controller_unnamed = "لم يكشف عن اسمه الزحف"
 ;
-; admin_controller.php line: 1283
+; admin_controller.php line: 1292
 admin_controller_mix_created = "الزحف ميكس إنشاؤها!"
 ;
-; admin_controller.php line: 1292
+; admin_controller.php line: 1301
 admin_controller_set_index = "وضع الزحف لاستخدامها كمؤشر"
 ;
-; admin_controller.php line: 1302
+; admin_controller.php line: 1311
 admin_controller_mix_doesnt_exists = "ميكسحذف لاتوجد لا!"
 ;
-; admin_controller.php line: 1310
+; admin_controller.php line: 1319
 admin_controller_mix_deleted = "الزحف ميكس حذف!"
 ;
-; admin_controller.php line: 1346
+; admin_controller.php line: 1355
 editmix_element_add_crawls = "إضافة عمليات تتبع الارتباطات"
 ;
-; admin_controller.php line: 1348
+; admin_controller.php line: 1357
 editmix_element_num_results = "عدد من النتائج"
 ;
-; admin_controller.php line: 1349
+; admin_controller.php line: 1358
 editmix_element_del_grp = "حذف المجموعة"
 ;
-; admin_controller.php line: 1350
+; admin_controller.php line: 1359
 editmix_element_weight = "الوزن"
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1360
 editmix_element_name = "الاسم"
 ;
-; admin_controller.php line: 1352
+; admin_controller.php line: 1361
 editmix_add_keywords = "الكلمات الأساسية"
 ;
-; admin_controller.php line: 1353
+; admin_controller.php line: 1362
 editmix_element_actions = "إجراءات"
 ;
-; admin_controller.php line: 1354
+; admin_controller.php line: 1363
 editmix_add_query = "إضافة استعلام"
 ;
-; admin_controller.php line: 1355
+; admin_controller.php line: 1364
 editmix_element_delete = "حذف"
 ;
-; admin_controller.php line: 1407
+; admin_controller.php line: 1416
 admin_controller_mix_saved = "الزحف ميكس التغييرات المحفوظة!"
 ;
-; admin_controller.php line: 1458
+; admin_controller.php line: 1467
 admin_controller_use_below = "استخدام الخيارات الموجودة بالأسفل"
 ;
-; admin_controller.php line: 1459
+; admin_controller.php line: 1468
 admin_controller_use_defaults = "استخدام يوب! افتراضيات "
 ;
-; admin_controller.php line: 1461
+; admin_controller.php line: 1470
 admin_controller_use_below = "استخدام الخيارات الموجودة بالأسفل"
 ;
-; admin_controller.php line: 1465
+; admin_controller.php line: 1474
 admin_controller_previous_crawl = "تتبع الارتباطات السابقة:"
 ;
-; admin_controller.php line: 1470
+; admin_controller.php line: 1479
 admin_controller_recrawl_never = "ابدأ"
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1480
 admin_controller_recrawl_1day = "أيام 1"
 ;
-; admin_controller.php line: 1472
+; admin_controller.php line: 1481
 admin_controller_recrawl_2day = "يومين"
 ;
-; admin_controller.php line: 1473
+; admin_controller.php line: 1482
 admin_controller_recrawl_3day = "3 أيام"
 ;
-; admin_controller.php line: 1474
+; admin_controller.php line: 1483
 admin_controller_recrawl_7day = "7 أيام"
 ;
-; admin_controller.php line: 1475
+; admin_controller.php line: 1484
 admin_controller_recrawl_14day = "14 يوما"
 ;
-; admin_controller.php line: 1685
+; admin_controller.php line: 1705
 admin_controller_page_options_updated = "خيارات الصفحة تحديث!"
 ;
-; admin_controller.php line: 1711
+; admin_controller.php line: 1731
 admin_controller_page_options_running_tests = ""
 ;
-; admin_controller.php line: 1860
+; admin_controller.php line: 1881
 admin_controller_new_classifier = ""
 ;
-; admin_controller.php line: 1863
+; admin_controller.php line: 1884
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1875
+; admin_controller.php line: 1896
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1893
+; admin_controller.php line: 1914
 admin_controller_finalizing_classifier = ""
 ;
-; admin_controller.php line: 1916
+; admin_controller.php line: 1937
 admin_controller_classifier_deleted = ""
 ;
-; admin_controller.php line: 1920
+; admin_controller.php line: 1941
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1969
+; admin_controller.php line: 1990
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1980
+; admin_controller.php line: 2001
 editclassifier_load_failed = ""
 ;
-; admin_controller.php line: 1982
+; admin_controller.php line: 2003
 editclassifier_loading = ""
 ;
-; admin_controller.php line: 1984
+; admin_controller.php line: 2005
 editclassifier_added_examples = ""
 ;
-; admin_controller.php line: 1986
+; admin_controller.php line: 2007
 editclassifier_label_update_failed = ""
 ;
-; admin_controller.php line: 1988
+; admin_controller.php line: 2009
 editclassifier_updating = ""
 ;
-; admin_controller.php line: 1990
+; admin_controller.php line: 2011
 editclassifier_acc_update_failed = ""
 ;
-; admin_controller.php line: 1992
+; admin_controller.php line: 2013
 editclassifier_na = ""
 ;
-; admin_controller.php line: 1994
+; admin_controller.php line: 2015
 editclassifier_no_docs = ""
 ;
-; admin_controller.php line: 1996
+; admin_controller.php line: 2017
 editclassifier_num_docs = ""
 ;
-; admin_controller.php line: 1998
+; admin_controller.php line: 2019
 editclassifier_in_class = ""
 ;
-; admin_controller.php line: 2000
+; admin_controller.php line: 2021
 editclassifier_not_in_class = ""
 ;
-; admin_controller.php line: 2002
+; admin_controller.php line: 2023
 editclassifier_skip = ""
 ;
-; admin_controller.php line: 2004
+; admin_controller.php line: 2025
 editclassifier_prediction = ""
 ;
-; admin_controller.php line: 2006
+; admin_controller.php line: 2027
 editclassifier_scores = ""
 ;
-; admin_controller.php line: 2050
+; admin_controller.php line: 2071
 admin_controller_results_editor_update = "تصفية تحديث الصفحات!"
 ;
-; admin_controller.php line: 2064
+; admin_controller.php line: 2085
 admin_controller_edited_pages = "حدد عنوان URL تم تحريرها مسبقاً"
 ;
-; admin_controller.php line: 2077
+; admin_controller.php line: 2098
 admin_controller_results_editor_need_url = "نتيجة تحديث الصفحة يحتاج إلى تحديد عنوان URL!"
 ;
-; admin_controller.php line: 2083
+; admin_controller.php line: 2104
 admin_controller_results_editor_page_updated = "تحديث الصفحة النتيجة!"
 ;
-; admin_controller.php line: 2096
+; admin_controller.php line: 2117
 admin_controller_results_editor_page_loaded = "تحميل الصفحة!"
 ;
-; admin_controller.php line: 2141
+; admin_controller.php line: 2162
 admin_controller_select_machine = "حدد الجهاز"
 ;
-; admin_controller.php line: 2212
+; admin_controller.php line: 2233
 admin_controller_machine_added = "وأضاف آلة!"
 ;
-; admin_controller.php line: 2219
+; admin_controller.php line: 2240
 admin_controller_machine_exists = "اسم الجهاز موجود بالفعل; Please Delete First!"
 ;
-; admin_controller.php line: 2223
+; admin_controller.php line: 2244
 admin_controller_machine_incomplete = "الحقول المفقودة من نموذج آلة!"
 ;
-; admin_controller.php line: 2232
+; admin_controller.php line: 2253
 admin_controller_machine_doesnt_exists = "اسم الجهاز غير موجود!"
 ;
-; admin_controller.php line: 2249
+; admin_controller.php line: 2270
 admin_controller_stop_service_first = "الجهاز قيد الاستخدام. الرجاء إيقاف خدمة قيد التشغيل على ذلك! "
 ;
-; admin_controller.php line: 2262
+; admin_controller.php line: 2283
 admin_controller_machine_deleted = "حذف آلة!"
 ;
-; admin_controller.php line: 2283
+; admin_controller.php line: 2304
 admin_controller_news_process_running = ""
 ;
-; admin_controller.php line: 2291
+; admin_controller.php line: 2312
 admin_controller_news_mode_updated = ""
 ;
-; admin_controller.php line: 2295
+; admin_controller.php line: 2316
 admin_controller_news_update_failed = ""
 ;
-; admin_controller.php line: 2358
+; admin_controller.php line: 2379
 admin_controller_no_machine_log = "لا يوجد ملف السجل وجدت."
 ;
-; admin_controller.php line: 2387
+; admin_controller.php line: 2408
 admin_controller_machine_servers_updated = "آلة #039;s Servers Updated!"
 ;
-; admin_controller.php line: 2391
+; admin_controller.php line: 2412
 admin_controller_machine_no_action = "غير قادر على تنفيذ الإجراء!"
 ;
-; admin_controller.php line: 2424
+; admin_controller.php line: 2445
 admin_controller_select_localename = "حدد الإعدادات المحلية"
 ;
-; admin_controller.php line: 2468
+; admin_controller.php line: 2489
 admin_controller_locale_added = "وأضاف لغة!"
 ;
-; admin_controller.php line: 2475
+; admin_controller.php line: 2496
 admin_controller_localename_doesnt_exists = "الإعدادات المحلية غير موجود!"
 ;
-; admin_controller.php line: 2484
+; admin_controller.php line: 2505
 admin_controller_localename_deleted = "حذف الإعدادات المحلية"
 ;
-; admin_controller.php line: 2493
+; admin_controller.php line: 2514
 admin_controller_select_staticpages = "حدد صفحة"
 ;
-; admin_controller.php line: 2512
+; admin_controller.php line: 2533
 admin_controller_staticpage_updated = "تحديث الصفحة ثابتة!"
 ;
-; admin_controller.php line: 2539
+; admin_controller.php line: 2560
 admin_controller_localestrings_updated = "سلاسل لغة تحديث!"
 ;
-; admin_controller.php line: 2596
+; admin_controller.php line: 2617
 admin_controller_php_version = "بي إتش بي الإصدار 5.3 أو أحدث"
 ;
-; admin_controller.php line: 2604
+; admin_controller.php line: 2625
 admin_controller_no_write_config_php = "configs/config.php ليس ملقم ويب للكتابة."
 ;
-; admin_controller.php line: 2609
+; admin_controller.php line: 2630
 admin_controller_no_write_work_dir = "دليل العمل يجب أن يكون قابل للكتابة من قبل ملقم ويب."
 ;
-; admin_controller.php line: 2614
+; admin_controller.php line: 2635
 admin_controller_post_size_small = "pnp.ini ملف post_max_size متغيرينبغي أن يكون مالا يقل عن 32 م"
 ;
-; admin_controller.php line: 2620
+; admin_controller.php line: 2641
 admin_controller_missing_required = "مطلوب ما يلي العناصر في عداد المفقودين:  %s"
 ;
-; admin_controller.php line: 2643
+; admin_controller.php line: 2664
 admin_controller_missing_optional = "كانت العناصر الاختيارية التالية مفقودة:  %s"
 ;
-; admin_controller.php line: 2648
+; admin_controller.php line: 2669
 admin_controller_check_passed = "تمرير الاختيار."
 ;
-; admin_controller.php line: 2653
+; admin_controller.php line: 2674
 admin_controller_using_local_config = "استخدام configs/local_config.php حتى تغيير دليل العمل أعلاه قد لا تعمل."
 ;
-; admin_controller.php line: 2678
+; admin_controller.php line: 2699
 admin_controller_media_kind = "نوع الوسائط"
 ;
-; admin_controller.php line: 2679
+; admin_controller.php line: 2700
 admin_controller_video = "فيديو"
 ;
-; admin_controller.php line: 2680
+; admin_controller.php line: 2701
 admin_controller_rss_feed = "RSS"
 ;
-; admin_controller.php line: 2694
+; admin_controller.php line: 2715
 admin_controller_sources_indexes = "مؤشر/ميكس للاستخدام"
 ;
-; admin_controller.php line: 2747
+; admin_controller.php line: 2768
 admin_controller_media_source_added = "مصدر الوسائط المضافة!"
 ;
-; admin_controller.php line: 2755
+; admin_controller.php line: 2776
 admin_controller_media_source_deleted = "مصدر الوسائط المحذوفة!"
 ;
-; admin_controller.php line: 2771
+; admin_controller.php line: 2792
 admin_controller_subsearch_added = "وأضاف سوبسيرتش!"
 ;
-; admin_controller.php line: 2779
+; admin_controller.php line: 2800
 admin_controller_subsearch_deleted = "حذف سوبسيرتش!"
 ;
-; admin_controller.php line: 2854
+; admin_controller.php line: 2875
 admin_controller_configure_use_absolute_path = "يجب استخدام مسار مطلق لدليل العمل"
 ;
-; admin_controller.php line: 2866
+; admin_controller.php line: 2887
 admin_controller_configure_diff_base_dir = ""
 ;
-; admin_controller.php line: 2899
+; admin_controller.php line: 2920
 admin_controller_configure_work_dir_set = "تعيين دليل العمل! قد تحتاج إلى إعادة تسجيل الدخول! "
 ;
-; admin_controller.php line: 2913
+; admin_controller.php line: 2934
 admin_controller_name_your_bot = "الرجاء تسمية الروبوت الخاص بك"
 ;
-; admin_controller.php line: 2936
+; admin_controller.php line: 2957
 admin_controller_configure_work_profile_made = "يعمل الدليل والشخصية التي تم إنشاؤها!"
 ;
-; admin_controller.php line: 2949
+; admin_controller.php line: 2970
 admin_controller_configure_no_set_config = "تعذر التحديث config.php الملف!"
 ;
-; admin_controller.php line: 2961
+; admin_controller.php line: 2982
 admin_controller_configure_no_create_profile = "غير قادر على إنشاء الشخصية!"
 ;
-; admin_controller.php line: 2972
+; admin_controller.php line: 2993
 admin_controller_configure_work_dir_invalid = "دليل العمل هو صالح! لا يمكن إنشاء الشخصية! "
 ;
-; admin_controller.php line: 2984
+; admin_controller.php line: 3005
 admin_controller_configure_work_dir_invalid = "دليل العمل هو صالح! لا يمكن إنشاء الشخصية! "
 ;
-; admin_controller.php line: 3032
+; admin_controller.php line: 3053
 admin_controller_configure_no_change_db = "مشكلة في تحديث قاعدة البيانات!"
 ;
-; admin_controller.php line: 3047
+; admin_controller.php line: 3068
 admin_controller_configure_profile_change = "تحديث الشخصية!"
 ;
-; admin_controller.php line: 3062
+; admin_controller.php line: 3083
 admin_controller_configure_no_change_profile = "كان هناك ملفتعريف تحديث المشكلة!"
 ;
-; admin_controller.php line: 3100
+; admin_controller.php line: 3121
 admin_controller_describe_robot = "يرجى وصف الروبوت الخاص بك"
 ;
 ; machine_controller.php line: 182
@@ -544,22 +544,22 @@ search_controller_crawl_delay = "تأخير الزحف ييوببوت"
 ; search_controller.php line: 1593
 search_controller_cache_comment = "يوب ذاكرة التخزين المؤقت الصفحة... هذه الصفحة قد تم تعديل لإضافة توجيه الروبوتات، وجعل ارتباطات مطلقة، إضافة ملخصات المستخرجة، وتسليط الضوء على مصطلحات الاستعلام."
 ;
-; search_controller.php line: 1637
+; search_controller.php line: 1638
 search_controller_cached_version = "تم الحصول على هذه النسخة المخزنة مؤقتاً من  %s الزاحف يوب على  %s."
 ;
-; search_controller.php line: 1752
+; search_controller.php line: 1753
 search_controller_header_summaries = ""
 ;
-; search_controller.php line: 1876
+; search_controller.php line: 1877
 search_controller_history = ""
 ;
-; search_controller.php line: 2052
+; search_controller.php line: 2053
 search_controller_all_cached = ""
 ;
-; search_controller.php line: 2083
+; search_controller.php line: 2084
 search_controller_year = ""
 ;
-; search_controller.php line: 2084
+; search_controller.php line: 2085
 search_controller_month = ""
 ;
 ; settings_controller.php line: 134
@@ -1254,111 +1254,114 @@ pageoptions_element_load_options = ""
 pageoptions_element_page_range = "نطاق البايت للتحميل  (0-القيمة):"
 ;
 ; pageoptions_element.php line: 95
+pageoptions_element_max_description = ""
+;
+; pageoptions_element.php line: 100
 pageoptions_element_save_cache = ""
 ;
-; pageoptions_element.php line: 105
+; pageoptions_element.php line: 110
 pageoptions_element_allow_recrawl = "السماح للصفحة ريكراول بعد:"
 ;
-; pageoptions_element.php line: 111
+; pageoptions_element.php line: 116
 pageoptions_element_file_types = "ملف صفحة أنواع للزحف:"
 ;
-; pageoptions_element.php line: 141
+; pageoptions_element.php line: 146
 pageoptions_element_classifiers_to_apply = ""
 ;
-; pageoptions_element.php line: 176
+; pageoptions_element.php line: 181
 pageoptions_element_no_classifiers = ""
 ;
-; pageoptions_element.php line: 179
+; pageoptions_element.php line: 184
 pageoptions_element_indexing_plugins = "فهرسة الإضافات"
 ;
-; pageoptions_element.php line: 183
+; pageoptions_element.php line: 188
 pageoptions_element_plugin = "المساعد"
 ;
-; pageoptions_element.php line: 186
+; pageoptions_element.php line: 191
 pageoptions_element_plugin_include = "استخدم في تتبع الارتباطات"
 ;
-; pageoptions_element.php line: 207
+; pageoptions_element.php line: 212
 pageoptions_element_no_compatible_plugins = ""
 ;
-; pageoptions_element.php line: 210
+; pageoptions_element.php line: 215
 pageoptions_element_page_rules = ""
 ;
-; pageoptions_element.php line: 218
+; pageoptions_element.php line: 223
 page_element_search_page = ""
 ;
-; pageoptions_element.php line: 223
+; pageoptions_element.php line: 228
 pageoptions_element_wd_suggest = "تشير إلى كلمة"
 ;
-; pageoptions_element.php line: 231
+; pageoptions_element.php line: 236
 pageoptions_element_subsearch_link = "سوبسيرتش"
 ;
-; pageoptions_element.php line: 240
+; pageoptions_element.php line: 245
 pageoptions_element_signin_link = "تسجيل الدخول"
 ;
-; pageoptions_element.php line: 247
+; pageoptions_element.php line: 252
 pageoptions_element_cache_link = "ذاكرة التخزين المؤقت"
 ;
-; pageoptions_element.php line: 255
+; pageoptions_element.php line: 260
 pageoptions_element_similar_link = "مماثلة"
 ;
-; pageoptions_element.php line: 263
+; pageoptions_element.php line: 268
 pageoptions_element_in_link = "Inlinks"
 ;
-; pageoptions_element.php line: 269
+; pageoptions_element.php line: 274
 pageoptions_element_ip_link = "عنوان IP"
 ;
-; pageoptions_element.php line: 278
+; pageoptions_element.php line: 283
 pageoptions_element_ranking_factors = ""
 ;
-; pageoptions_element.php line: 281
+; pageoptions_element.php line: 286
 pageoptions_element_title_weight = "لقب الوزن:"
 ;
-; pageoptions_element.php line: 286
+; pageoptions_element.php line: 291
 pageoptions_element_description_weight = "وصف الوزن:"
 ;
-; pageoptions_element.php line: 291
+; pageoptions_element.php line: 296
 pageoptions_element_link_weight = "ربط الوزن:"
 ;
-; pageoptions_element.php line: 296
+; pageoptions_element.php line: 301
 pageoptions_element_results_grouping_options = "تجميع نتائج البحث"
 ;
-; pageoptions_element.php line: 299
+; pageoptions_element.php line: 304
 pageoptions_element_min_results_to_group = "نتائج الحد الأدنى للمجموعة:"
 ;
-; pageoptions_element.php line: 304
+; pageoptions_element.php line: 309
 pageoptions_element_server_alpha = "ألفا الخادم:"
 ;
-; pageoptions_element.php line: 312
+; pageoptions_element.php line: 317
 pageoptions_element_test_page = ""
 ;
-; pageoptions_element.php line: 314
+; pageoptions_element.php line: 319
 pageoptions_element_page_type = ""
 ;
-; pageoptions_element.php line: 331
+; pageoptions_element.php line: 336
 pageoptions_element_save_options = "حفظ"
 ;
-; pageoptions_element.php line: 333
+; pageoptions_element.php line: 338
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 339
+; pageoptions_element.php line: 344
 pageoptions_element_test_results = ""
 ;
-; pageoptions_element.php line: 342
+; pageoptions_element.php line: 347
 pageoptions_element_after_process = ""
 ;
-; pageoptions_element.php line: 346
+; pageoptions_element.php line: 351
 pageoptions_element_after_rules = ""
 ;
-; pageoptions_element.php line: 350
+; pageoptions_element.php line: 355
 pageoptions_element_extracted_words = ""
 ;
-; pageoptions_element.php line: 354
+; pageoptions_element.php line: 359
 pageoptions_element_extracted_metas = ""
 ;
-; pageoptions_element.php line: 388
+; pageoptions_element.php line: 393
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 392
+; pageoptions_element.php line: 397
 pageoptions_element_save_options = "حفظ"
 ;
 ; resultseditor_element.php line: 58
diff --git a/locale/bn/configure.ini b/locale/bn/configure.ini
index 5e91965..610b5ad 100755
--- a/locale/bn/configure.ini
+++ b/locale/bn/configure.ini
@@ -154,346 +154,346 @@ admin_controller_starting_new_crawl = ""
 ; admin_controller.php line: 868
 admin_controller_no_description = ""
 ;
-; admin_controller.php line: 981
+; admin_controller.php line: 985
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 982
+; admin_controller.php line: 986
 admin_controller_use_defaults = ""
 ;
-; admin_controller.php line: 984
+; admin_controller.php line: 988
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 988
+; admin_controller.php line: 992
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1075
+; admin_controller.php line: 1084
 admin_controller_breadth_first = ""
 ;
-; admin_controller.php line: 1077
+; admin_controller.php line: 1086
 admin_controller_page_importance = ""
 ;
-; admin_controller.php line: 1143
+; admin_controller.php line: 1152
 admin_controller_urls_injected = ""
 ;
-; admin_controller.php line: 1154
+; admin_controller.php line: 1163
 admin_controller_update_seed_info = ""
 ;
-; admin_controller.php line: 1246
+; admin_controller.php line: 1255
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1247
+; admin_controller.php line: 1256
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1249
+; admin_controller.php line: 1258
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1251
+; admin_controller.php line: 1260
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1278
+; admin_controller.php line: 1287
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1283
+; admin_controller.php line: 1292
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1292
+; admin_controller.php line: 1301
 admin_controller_set_index = ""
 ;
-; admin_controller.php line: 1302
+; admin_controller.php line: 1311
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1310
+; admin_controller.php line: 1319
 admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1346
+; admin_controller.php line: 1355
 editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1348
+; admin_controller.php line: 1357
 editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1349
+; admin_controller.php line: 1358
 editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1350
+; admin_controller.php line: 1359
 editmix_element_weight = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1360
 editmix_element_name = ""
 ;
-; admin_controller.php line: 1352
+; admin_controller.php line: 1361
 editmix_add_keywords = ""
 ;
-; admin_controller.php line: 1353
+; admin_controller.php line: 1362
 editmix_element_actions = ""
 ;
-; admin_controller.php line: 1354
+; admin_controller.php line: 1363
 editmix_add_query = ""
 ;
-; admin_controller.php line: 1355
+; admin_controller.php line: 1364
 editmix_element_delete = ""
 ;
-; admin_controller.php line: 1407
+; admin_controller.php line: 1416
 admin_controller_mix_saved = ""
 ;
-; admin_controller.php line: 1458
+; admin_controller.php line: 1467
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 1459
+; admin_controller.php line: 1468
 admin_controller_use_defaults = ""
 ;
-; admin_controller.php line: 1461
+; admin_controller.php line: 1470
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 1465
+; admin_controller.php line: 1474
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1470
+; admin_controller.php line: 1479
 admin_controller_recrawl_never = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1480
 admin_controller_recrawl_1day = ""
 ;
-; admin_controller.php line: 1472
+; admin_controller.php line: 1481
 admin_controller_recrawl_2day = ""
 ;
-; admin_controller.php line: 1473
+; admin_controller.php line: 1482
 admin_controller_recrawl_3day = ""
 ;
-; admin_controller.php line: 1474
+; admin_controller.php line: 1483
 admin_controller_recrawl_7day = ""
 ;
-; admin_controller.php line: 1475
+; admin_controller.php line: 1484
 admin_controller_recrawl_14day = ""
 ;
-; admin_controller.php line: 1685
+; admin_controller.php line: 1705
 admin_controller_page_options_updated = ""
 ;
-; admin_controller.php line: 1711
+; admin_controller.php line: 1731
 admin_controller_page_options_running_tests = ""
 ;
-; admin_controller.php line: 1860
+; admin_controller.php line: 1881
 admin_controller_new_classifier = ""
 ;
-; admin_controller.php line: 1863
+; admin_controller.php line: 1884
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1875
+; admin_controller.php line: 1896
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1893
+; admin_controller.php line: 1914
 admin_controller_finalizing_classifier = ""
 ;
-; admin_controller.php line: 1916
+; admin_controller.php line: 1937
 admin_controller_classifier_deleted = ""
 ;
-; admin_controller.php line: 1920
+; admin_controller.php line: 1941
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1969
+; admin_controller.php line: 1990
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1980
+; admin_controller.php line: 2001
 editclassifier_load_failed = ""
 ;
-; admin_controller.php line: 1982
+; admin_controller.php line: 2003
 editclassifier_loading = ""
 ;
-; admin_controller.php line: 1984
+; admin_controller.php line: 2005
 editclassifier_added_examples = ""
 ;
-; admin_controller.php line: 1986
+; admin_controller.php line: 2007
 editclassifier_label_update_failed = ""
 ;
-; admin_controller.php line: 1988
+; admin_controller.php line: 2009
 editclassifier_updating = ""
 ;
-; admin_controller.php line: 1990
+; admin_controller.php line: 2011
 editclassifier_acc_update_failed = ""
 ;
-; admin_controller.php line: 1992
+; admin_controller.php line: 2013
 editclassifier_na = ""
 ;
-; admin_controller.php line: 1994
+; admin_controller.php line: 2015
 editclassifier_no_docs = ""
 ;
-; admin_controller.php line: 1996
+; admin_controller.php line: 2017
 editclassifier_num_docs = ""
 ;
-; admin_controller.php line: 1998
+; admin_controller.php line: 2019
 editclassifier_in_class = ""
 ;
-; admin_controller.php line: 2000
+; admin_controller.php line: 2021
 editclassifier_not_in_class = ""
 ;
-; admin_controller.php line: 2002
+; admin_controller.php line: 2023
 editclassifier_skip = ""
 ;
-; admin_controller.php line: 2004
+; admin_controller.php line: 2025
 editclassifier_prediction = ""
 ;
-; admin_controller.php line: 2006
+; admin_controller.php line: 2027
 editclassifier_scores = ""
 ;
-; admin_controller.php line: 2050
+; admin_controller.php line: 2071
 admin_controller_results_editor_update = ""
 ;
-; admin_controller.php line: 2064
+; admin_controller.php line: 2085
 admin_controller_edited_pages = ""
 ;
-; admin_controller.php line: 2077
+; admin_controller.php line: 2098
 admin_controller_results_editor_need_url = ""
 ;
-; admin_controller.php line: 2083
+; admin_controller.php line: 2104
 admin_controller_results_editor_page_updated = ""
 ;
-; admin_controller.php line: 2096
+; admin_controller.php line: 2117
 admin_controller_results_editor_page_loaded = ""
 ;
-; admin_controller.php line: 2141
+; admin_controller.php line: 2162
 admin_controller_select_machine = ""
 ;
-; admin_controller.php line: 2212
+; admin_controller.php line: 2233
 admin_controller_machine_added = ""
 ;
-; admin_controller.php line: 2219
+; admin_controller.php line: 2240
 admin_controller_machine_exists = ""
 ;
-; admin_controller.php line: 2223
+; admin_controller.php line: 2244
 admin_controller_machine_incomplete = ""
 ;
-; admin_controller.php line: 2232
+; admin_controller.php line: 2253
 admin_controller_machine_doesnt_exists = ""
 ;
-; admin_controller.php line: 2249
+; admin_controller.php line: 2270
 admin_controller_stop_service_first = ""
 ;
-; admin_controller.php line: 2262
+; admin_controller.php line: 2283
 admin_controller_machine_deleted = ""
 ;
-; admin_controller.php line: 2283
+; admin_controller.php line: 2304
 admin_controller_news_process_running = ""
 ;
-; admin_controller.php line: 2291
+; admin_controller.php line: 2312
 admin_controller_news_mode_updated = ""
 ;
-; admin_controller.php line: 2295
+; admin_controller.php line: 2316
 admin_controller_news_update_failed = ""
 ;
-; admin_controller.php line: 2358
+; admin_controller.php line: 2379
 admin_controller_no_machine_log = ""
 ;
-; admin_controller.php line: 2387
+; admin_controller.php line: 2408
 admin_controller_machine_servers_updated = ""
 ;
-; admin_controller.php line: 2391
+; admin_controller.php line: 2412
 admin_controller_machine_no_action = ""
 ;
-; admin_controller.php line: 2424
+; admin_controller.php line: 2445
 admin_controller_select_localename = ""
 ;
-; admin_controller.php line: 2468
+; admin_controller.php line: 2489
 admin_controller_locale_added = ""
 ;
-; admin_controller.php line: 2475
+; admin_controller.php line: 2496
 admin_controller_localename_doesnt_exists = ""
 ;
-; admin_controller.php line: 2484
+; admin_controller.php line: 2505
 admin_controller_localename_deleted = ""
 ;
-; admin_controller.php line: 2493
+; admin_controller.php line: 2514
 admin_controller_select_staticpages = ""
 ;
-; admin_controller.php line: 2512
+; admin_controller.php line: 2533
 admin_controller_staticpage_updated = ""
 ;
-; admin_controller.php line: 2539
+; admin_controller.php line: 2560
 admin_controller_localestrings_updated = ""
 ;
-; admin_controller.php line: 2596
+; admin_controller.php line: 2617
 admin_controller_php_version = ""
 ;
-; admin_controller.php line: 2604
+; admin_controller.php line: 2625
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 2609
+; admin_controller.php line: 2630
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 2614
+; admin_controller.php line: 2635
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 2620
+; admin_controller.php line: 2641
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 2643
+; admin_controller.php line: 2664
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 2648
+; admin_controller.php line: 2669
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 2653
+; admin_controller.php line: 2674
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 2678
+; admin_controller.php line: 2699
 admin_controller_media_kind = ""
 ;
-; admin_controller.php line: 2679
+; admin_controller.php line: 2700
 admin_controller_video = ""
 ;
-; admin_controller.php line: 2680
+; admin_controller.php line: 2701
 admin_controller_rss_feed = ""
 ;
-; admin_controller.php line: 2694
+; admin_controller.php line: 2715
 admin_controller_sources_indexes = ""
 ;
-; admin_controller.php line: 2747
+; admin_controller.php line: 2768
 admin_controller_media_source_added = ""
 ;
-; admin_controller.php line: 2755
+; admin_controller.php line: 2776
 admin_controller_media_source_deleted = ""
 ;
-; admin_controller.php line: 2771
+; admin_controller.php line: 2792
 admin_controller_subsearch_added = ""
 ;
-; admin_controller.php line: 2779
+; admin_controller.php line: 2800
 admin_controller_subsearch_deleted = ""
 ;
-; admin_controller.php line: 2854
+; admin_controller.php line: 2875
 admin_controller_configure_use_absolute_path = ""
 ;
-; admin_controller.php line: 2866
+; admin_controller.php line: 2887
 admin_controller_configure_diff_base_dir = ""
 ;
-; admin_controller.php line: 2899
+; admin_controller.php line: 2920
 admin_controller_configure_work_dir_set = ""
 ;
-; admin_controller.php line: 2913
+; admin_controller.php line: 2934
 admin_controller_name_your_bot = ""
 ;
-; admin_controller.php line: 2936
+; admin_controller.php line: 2957
 admin_controller_configure_work_profile_made = ""
 ;
-; admin_controller.php line: 2949
+; admin_controller.php line: 2970
 admin_controller_configure_no_set_config = ""
 ;
-; admin_controller.php line: 2961
+; admin_controller.php line: 2982
 admin_controller_configure_no_create_profile = ""
 ;
-; admin_controller.php line: 2972
+; admin_controller.php line: 2993
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 2984
+; admin_controller.php line: 3005
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 3032
+; admin_controller.php line: 3053
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 3047
+; admin_controller.php line: 3068
 admin_controller_configure_profile_change = ""
 ;
-; admin_controller.php line: 3062
+; admin_controller.php line: 3083
 admin_controller_configure_no_change_profile = ""
 ;
-; admin_controller.php line: 3100
+; admin_controller.php line: 3121
 admin_controller_describe_robot = ""
 ;
 ; machine_controller.php line: 182
@@ -544,22 +544,22 @@ search_controller_crawl_delay = ""
 ; search_controller.php line: 1593
 search_controller_cache_comment = ""
 ;
-; search_controller.php line: 1637
+; search_controller.php line: 1638
 search_controller_cached_version = ""
 ;
-; search_controller.php line: 1752
+; search_controller.php line: 1753
 search_controller_header_summaries = ""
 ;
-; search_controller.php line: 1876
+; search_controller.php line: 1877
 search_controller_history = ""
 ;
-; search_controller.php line: 2052
+; search_controller.php line: 2053
 search_controller_all_cached = ""
 ;
-; search_controller.php line: 2083
+; search_controller.php line: 2084
 search_controller_year = ""
 ;
-; search_controller.php line: 2084
+; search_controller.php line: 2085
 search_controller_month = ""
 ;
 ; settings_controller.php line: 134
@@ -1254,111 +1254,114 @@ pageoptions_element_load_options = ""
 pageoptions_element_page_range = ""
 ;
 ; pageoptions_element.php line: 95
+pageoptions_element_max_description = ""
+;
+; pageoptions_element.php line: 100
 pageoptions_element_save_cache = ""
 ;
-; pageoptions_element.php line: 105
+; pageoptions_element.php line: 110
 pageoptions_element_allow_recrawl = ""
 ;
-; pageoptions_element.php line: 111
+; pageoptions_element.php line: 116
 pageoptions_element_file_types = ""
 ;
-; pageoptions_element.php line: 141
+; pageoptions_element.php line: 146
 pageoptions_element_classifiers_to_apply = ""
 ;
-; pageoptions_element.php line: 176
+; pageoptions_element.php line: 181
 pageoptions_element_no_classifiers = ""
 ;
-; pageoptions_element.php line: 179
+; pageoptions_element.php line: 184
 pageoptions_element_indexing_plugins = ""
 ;
-; pageoptions_element.php line: 183
+; pageoptions_element.php line: 188
 pageoptions_element_plugin = ""
 ;
-; pageoptions_element.php line: 186
+; pageoptions_element.php line: 191
 pageoptions_element_plugin_include = ""
 ;
-; pageoptions_element.php line: 207
+; pageoptions_element.php line: 212
 pageoptions_element_no_compatible_plugins = ""
 ;
-; pageoptions_element.php line: 210
+; pageoptions_element.php line: 215
 pageoptions_element_page_rules = ""
 ;
-; pageoptions_element.php line: 218
+; pageoptions_element.php line: 223
 page_element_search_page = ""
 ;
-; pageoptions_element.php line: 223
+; pageoptions_element.php line: 228
 pageoptions_element_wd_suggest = ""
 ;
-; pageoptions_element.php line: 231
+; pageoptions_element.php line: 236
 pageoptions_element_subsearch_link = ""
 ;
-; pageoptions_element.php line: 240
+; pageoptions_element.php line: 245
 pageoptions_element_signin_link = ""
 ;
-; pageoptions_element.php line: 247
+; pageoptions_element.php line: 252
 pageoptions_element_cache_link = ""
 ;
-; pageoptions_element.php line: 255
+; pageoptions_element.php line: 260
 pageoptions_element_similar_link = ""
 ;
-; pageoptions_element.php line: 263
+; pageoptions_element.php line: 268
 pageoptions_element_in_link = ""
 ;
-; pageoptions_element.php line: 269
+; pageoptions_element.php line: 274
 pageoptions_element_ip_link = ""
 ;
-; pageoptions_element.php line: 278
+; pageoptions_element.php line: 283
 pageoptions_element_ranking_factors = ""
 ;
-; pageoptions_element.php line: 281
+; pageoptions_element.php line: 286
 pageoptions_element_title_weight = ""
 ;
-; pageoptions_element.php line: 286
+; pageoptions_element.php line: 291
 pageoptions_element_description_weight = ""
 ;
-; pageoptions_element.php line: 291
+; pageoptions_element.php line: 296
 pageoptions_element_link_weight = ""
 ;
-; pageoptions_element.php line: 296
+; pageoptions_element.php line: 301
 pageoptions_element_results_grouping_options = ""
 ;
-; pageoptions_element.php line: 299
+; pageoptions_element.php line: 304
 pageoptions_element_min_results_to_group = ""
 ;
-; pageoptions_element.php line: 304
+; pageoptions_element.php line: 309
 pageoptions_element_server_alpha = ""
 ;
-; pageoptions_element.php line: 312
+; pageoptions_element.php line: 317
 pageoptions_element_test_page = ""
 ;
-; pageoptions_element.php line: 314
+; pageoptions_element.php line: 319
 pageoptions_element_page_type = ""
 ;
-; pageoptions_element.php line: 331
+; pageoptions_element.php line: 336
 pageoptions_element_save_options = ""
 ;
-; pageoptions_element.php line: 333
+; pageoptions_element.php line: 338
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 339
+; pageoptions_element.php line: 344
 pageoptions_element_test_results = ""
 ;
-; pageoptions_element.php line: 342
+; pageoptions_element.php line: 347
 pageoptions_element_after_process = ""
 ;
-; pageoptions_element.php line: 346
+; pageoptions_element.php line: 351
 pageoptions_element_after_rules = ""
 ;
-; pageoptions_element.php line: 350
+; pageoptions_element.php line: 355
 pageoptions_element_extracted_words = ""
 ;
-; pageoptions_element.php line: 354
+; pageoptions_element.php line: 359
 pageoptions_element_extracted_metas = ""
 ;
-; pageoptions_element.php line: 388
+; pageoptions_element.php line: 393
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 392
+; pageoptions_element.php line: 397
 pageoptions_element_save_options = ""
 ;
 ; resultseditor_element.php line: 58
diff --git a/locale/de/configure.ini b/locale/de/configure.ini
index e945797..c804408 100755
--- a/locale/de/configure.ini
+++ b/locale/de/configure.ini
@@ -154,346 +154,346 @@ admin_controller_starting_new_crawl = ""
 ; admin_controller.php line: 868
 admin_controller_no_description = ""
 ;
-; admin_controller.php line: 981
+; admin_controller.php line: 985
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 982
+; admin_controller.php line: 986
 admin_controller_use_defaults = ""
 ;
-; admin_controller.php line: 984
+; admin_controller.php line: 988
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 988
+; admin_controller.php line: 992
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1075
+; admin_controller.php line: 1084
 admin_controller_breadth_first = ""
 ;
-; admin_controller.php line: 1077
+; admin_controller.php line: 1086
 admin_controller_page_importance = ""
 ;
-; admin_controller.php line: 1143
+; admin_controller.php line: 1152
 admin_controller_urls_injected = ""
 ;
-; admin_controller.php line: 1154
+; admin_controller.php line: 1163
 admin_controller_update_seed_info = ""
 ;
-; admin_controller.php line: 1246
+; admin_controller.php line: 1255
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1247
+; admin_controller.php line: 1256
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1249
+; admin_controller.php line: 1258
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1251
+; admin_controller.php line: 1260
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1278
+; admin_controller.php line: 1287
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1283
+; admin_controller.php line: 1292
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1292
+; admin_controller.php line: 1301
 admin_controller_set_index = ""
 ;
-; admin_controller.php line: 1302
+; admin_controller.php line: 1311
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1310
+; admin_controller.php line: 1319
 admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1346
+; admin_controller.php line: 1355
 editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1348
+; admin_controller.php line: 1357
 editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1349
+; admin_controller.php line: 1358
 editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1350
+; admin_controller.php line: 1359
 editmix_element_weight = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1360
 editmix_element_name = ""
 ;
-; admin_controller.php line: 1352
+; admin_controller.php line: 1361
 editmix_add_keywords = ""
 ;
-; admin_controller.php line: 1353
+; admin_controller.php line: 1362
 editmix_element_actions = ""
 ;
-; admin_controller.php line: 1354
+; admin_controller.php line: 1363
 editmix_add_query = ""
 ;
-; admin_controller.php line: 1355
+; admin_controller.php line: 1364
 editmix_element_delete = ""
 ;
-; admin_controller.php line: 1407
+; admin_controller.php line: 1416
 admin_controller_mix_saved = ""
 ;
-; admin_controller.php line: 1458
+; admin_controller.php line: 1467
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 1459
+; admin_controller.php line: 1468
 admin_controller_use_defaults = ""
 ;
-; admin_controller.php line: 1461
+; admin_controller.php line: 1470
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 1465
+; admin_controller.php line: 1474
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1470
+; admin_controller.php line: 1479
 admin_controller_recrawl_never = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1480
 admin_controller_recrawl_1day = ""
 ;
-; admin_controller.php line: 1472
+; admin_controller.php line: 1481
 admin_controller_recrawl_2day = ""
 ;
-; admin_controller.php line: 1473
+; admin_controller.php line: 1482
 admin_controller_recrawl_3day = ""
 ;
-; admin_controller.php line: 1474
+; admin_controller.php line: 1483
 admin_controller_recrawl_7day = ""
 ;
-; admin_controller.php line: 1475
+; admin_controller.php line: 1484
 admin_controller_recrawl_14day = ""
 ;
-; admin_controller.php line: 1685
+; admin_controller.php line: 1705
 admin_controller_page_options_updated = ""
 ;
-; admin_controller.php line: 1711
+; admin_controller.php line: 1731
 admin_controller_page_options_running_tests = ""
 ;
-; admin_controller.php line: 1860
+; admin_controller.php line: 1881
 admin_controller_new_classifier = ""
 ;
-; admin_controller.php line: 1863
+; admin_controller.php line: 1884
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1875
+; admin_controller.php line: 1896
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1893
+; admin_controller.php line: 1914
 admin_controller_finalizing_classifier = ""
 ;
-; admin_controller.php line: 1916
+; admin_controller.php line: 1937
 admin_controller_classifier_deleted = ""
 ;
-; admin_controller.php line: 1920
+; admin_controller.php line: 1941
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1969
+; admin_controller.php line: 1990
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1980
+; admin_controller.php line: 2001
 editclassifier_load_failed = ""
 ;
-; admin_controller.php line: 1982
+; admin_controller.php line: 2003
 editclassifier_loading = ""
 ;
-; admin_controller.php line: 1984
+; admin_controller.php line: 2005
 editclassifier_added_examples = ""
 ;
-; admin_controller.php line: 1986
+; admin_controller.php line: 2007
 editclassifier_label_update_failed = ""
 ;
-; admin_controller.php line: 1988
+; admin_controller.php line: 2009
 editclassifier_updating = ""
 ;
-; admin_controller.php line: 1990
+; admin_controller.php line: 2011
 editclassifier_acc_update_failed = ""
 ;
-; admin_controller.php line: 1992
+; admin_controller.php line: 2013
 editclassifier_na = ""
 ;
-; admin_controller.php line: 1994
+; admin_controller.php line: 2015
 editclassifier_no_docs = ""
 ;
-; admin_controller.php line: 1996
+; admin_controller.php line: 2017
 editclassifier_num_docs = ""
 ;
-; admin_controller.php line: 1998
+; admin_controller.php line: 2019
 editclassifier_in_class = ""
 ;
-; admin_controller.php line: 2000
+; admin_controller.php line: 2021
 editclassifier_not_in_class = ""
 ;
-; admin_controller.php line: 2002
+; admin_controller.php line: 2023
 editclassifier_skip = ""
 ;
-; admin_controller.php line: 2004
+; admin_controller.php line: 2025
 editclassifier_prediction = ""
 ;
-; admin_controller.php line: 2006
+; admin_controller.php line: 2027
 editclassifier_scores = ""
 ;
-; admin_controller.php line: 2050
+; admin_controller.php line: 2071
 admin_controller_results_editor_update = ""
 ;
-; admin_controller.php line: 2064
+; admin_controller.php line: 2085
 admin_controller_edited_pages = ""
 ;
-; admin_controller.php line: 2077
+; admin_controller.php line: 2098
 admin_controller_results_editor_need_url = ""
 ;
-; admin_controller.php line: 2083
+; admin_controller.php line: 2104
 admin_controller_results_editor_page_updated = ""
 ;
-; admin_controller.php line: 2096
+; admin_controller.php line: 2117
 admin_controller_results_editor_page_loaded = ""
 ;
-; admin_controller.php line: 2141
+; admin_controller.php line: 2162
 admin_controller_select_machine = ""
 ;
-; admin_controller.php line: 2212
+; admin_controller.php line: 2233
 admin_controller_machine_added = ""
 ;
-; admin_controller.php line: 2219
+; admin_controller.php line: 2240
 admin_controller_machine_exists = ""
 ;
-; admin_controller.php line: 2223
+; admin_controller.php line: 2244
 admin_controller_machine_incomplete = ""
 ;
-; admin_controller.php line: 2232
+; admin_controller.php line: 2253
 admin_controller_machine_doesnt_exists = ""
 ;
-; admin_controller.php line: 2249
+; admin_controller.php line: 2270
 admin_controller_stop_service_first = ""
 ;
-; admin_controller.php line: 2262
+; admin_controller.php line: 2283
 admin_controller_machine_deleted = ""
 ;
-; admin_controller.php line: 2283
+; admin_controller.php line: 2304
 admin_controller_news_process_running = ""
 ;
-; admin_controller.php line: 2291
+; admin_controller.php line: 2312
 admin_controller_news_mode_updated = ""
 ;
-; admin_controller.php line: 2295
+; admin_controller.php line: 2316
 admin_controller_news_update_failed = ""
 ;
-; admin_controller.php line: 2358
+; admin_controller.php line: 2379
 admin_controller_no_machine_log = ""
 ;
-; admin_controller.php line: 2387
+; admin_controller.php line: 2408
 admin_controller_machine_servers_updated = ""
 ;
-; admin_controller.php line: 2391
+; admin_controller.php line: 2412
 admin_controller_machine_no_action = ""
 ;
-; admin_controller.php line: 2424
+; admin_controller.php line: 2445
 admin_controller_select_localename = ""
 ;
-; admin_controller.php line: 2468
+; admin_controller.php line: 2489
 admin_controller_locale_added = ""
 ;
-; admin_controller.php line: 2475
+; admin_controller.php line: 2496
 admin_controller_localename_doesnt_exists = ""
 ;
-; admin_controller.php line: 2484
+; admin_controller.php line: 2505
 admin_controller_localename_deleted = ""
 ;
-; admin_controller.php line: 2493
+; admin_controller.php line: 2514
 admin_controller_select_staticpages = ""
 ;
-; admin_controller.php line: 2512
+; admin_controller.php line: 2533
 admin_controller_staticpage_updated = ""
 ;
-; admin_controller.php line: 2539
+; admin_controller.php line: 2560
 admin_controller_localestrings_updated = ""
 ;
-; admin_controller.php line: 2596
+; admin_controller.php line: 2617
 admin_controller_php_version = ""
 ;
-; admin_controller.php line: 2604
+; admin_controller.php line: 2625
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 2609
+; admin_controller.php line: 2630
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 2614
+; admin_controller.php line: 2635
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 2620
+; admin_controller.php line: 2641
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 2643
+; admin_controller.php line: 2664
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 2648
+; admin_controller.php line: 2669
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 2653
+; admin_controller.php line: 2674
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 2678
+; admin_controller.php line: 2699
 admin_controller_media_kind = ""
 ;
-; admin_controller.php line: 2679
+; admin_controller.php line: 2700
 admin_controller_video = ""
 ;
-; admin_controller.php line: 2680
+; admin_controller.php line: 2701
 admin_controller_rss_feed = ""
 ;
-; admin_controller.php line: 2694
+; admin_controller.php line: 2715
 admin_controller_sources_indexes = ""
 ;
-; admin_controller.php line: 2747
+; admin_controller.php line: 2768
 admin_controller_media_source_added = ""
 ;
-; admin_controller.php line: 2755
+; admin_controller.php line: 2776
 admin_controller_media_source_deleted = ""
 ;
-; admin_controller.php line: 2771
+; admin_controller.php line: 2792
 admin_controller_subsearch_added = ""
 ;
-; admin_controller.php line: 2779
+; admin_controller.php line: 2800
 admin_controller_subsearch_deleted = ""
 ;
-; admin_controller.php line: 2854
+; admin_controller.php line: 2875
 admin_controller_configure_use_absolute_path = ""
 ;
-; admin_controller.php line: 2866
+; admin_controller.php line: 2887
 admin_controller_configure_diff_base_dir = ""
 ;
-; admin_controller.php line: 2899
+; admin_controller.php line: 2920
 admin_controller_configure_work_dir_set = ""
 ;
-; admin_controller.php line: 2913
+; admin_controller.php line: 2934
 admin_controller_name_your_bot = ""
 ;
-; admin_controller.php line: 2936
+; admin_controller.php line: 2957
 admin_controller_configure_work_profile_made = ""
 ;
-; admin_controller.php line: 2949
+; admin_controller.php line: 2970
 admin_controller_configure_no_set_config = ""
 ;
-; admin_controller.php line: 2961
+; admin_controller.php line: 2982
 admin_controller_configure_no_create_profile = ""
 ;
-; admin_controller.php line: 2972
+; admin_controller.php line: 2993
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 2984
+; admin_controller.php line: 3005
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 3032
+; admin_controller.php line: 3053
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 3047
+; admin_controller.php line: 3068
 admin_controller_configure_profile_change = ""
 ;
-; admin_controller.php line: 3062
+; admin_controller.php line: 3083
 admin_controller_configure_no_change_profile = ""
 ;
-; admin_controller.php line: 3100
+; admin_controller.php line: 3121
 admin_controller_describe_robot = ""
 ;
 ; machine_controller.php line: 182
@@ -544,22 +544,22 @@ search_controller_crawl_delay = ""
 ; search_controller.php line: 1593
 search_controller_cache_comment = ""
 ;
-; search_controller.php line: 1637
+; search_controller.php line: 1638
 search_controller_cached_version = ""
 ;
-; search_controller.php line: 1752
+; search_controller.php line: 1753
 search_controller_header_summaries = ""
 ;
-; search_controller.php line: 1876
+; search_controller.php line: 1877
 search_controller_history = ""
 ;
-; search_controller.php line: 2052
+; search_controller.php line: 2053
 search_controller_all_cached = ""
 ;
-; search_controller.php line: 2083
+; search_controller.php line: 2084
 search_controller_year = ""
 ;
-; search_controller.php line: 2084
+; search_controller.php line: 2085
 search_controller_month = ""
 ;
 ; settings_controller.php line: 134
@@ -1254,111 +1254,114 @@ pageoptions_element_load_options = ""
 pageoptions_element_page_range = ""
 ;
 ; pageoptions_element.php line: 95
+pageoptions_element_max_description = ""
+;
+; pageoptions_element.php line: 100
 pageoptions_element_save_cache = ""
 ;
-; pageoptions_element.php line: 105
+; pageoptions_element.php line: 110
 pageoptions_element_allow_recrawl = ""
 ;
-; pageoptions_element.php line: 111
+; pageoptions_element.php line: 116
 pageoptions_element_file_types = ""
 ;
-; pageoptions_element.php line: 141
+; pageoptions_element.php line: 146
 pageoptions_element_classifiers_to_apply = ""
 ;
-; pageoptions_element.php line: 176
+; pageoptions_element.php line: 181
 pageoptions_element_no_classifiers = ""
 ;
-; pageoptions_element.php line: 179
+; pageoptions_element.php line: 184
 pageoptions_element_indexing_plugins = ""
 ;
-; pageoptions_element.php line: 183
+; pageoptions_element.php line: 188
 pageoptions_element_plugin = ""
 ;
-; pageoptions_element.php line: 186
+; pageoptions_element.php line: 191
 pageoptions_element_plugin_include = ""
 ;
-; pageoptions_element.php line: 207
+; pageoptions_element.php line: 212
 pageoptions_element_no_compatible_plugins = ""
 ;
-; pageoptions_element.php line: 210
+; pageoptions_element.php line: 215
 pageoptions_element_page_rules = ""
 ;
-; pageoptions_element.php line: 218
+; pageoptions_element.php line: 223
 page_element_search_page = ""
 ;
-; pageoptions_element.php line: 223
+; pageoptions_element.php line: 228
 pageoptions_element_wd_suggest = ""
 ;
-; pageoptions_element.php line: 231
+; pageoptions_element.php line: 236
 pageoptions_element_subsearch_link = ""
 ;
-; pageoptions_element.php line: 240
+; pageoptions_element.php line: 245
 pageoptions_element_signin_link = ""
 ;
-; pageoptions_element.php line: 247
+; pageoptions_element.php line: 252
 pageoptions_element_cache_link = ""
 ;
-; pageoptions_element.php line: 255
+; pageoptions_element.php line: 260
 pageoptions_element_similar_link = ""
 ;
-; pageoptions_element.php line: 263
+; pageoptions_element.php line: 268
 pageoptions_element_in_link = ""
 ;
-; pageoptions_element.php line: 269
+; pageoptions_element.php line: 274
 pageoptions_element_ip_link = ""
 ;
-; pageoptions_element.php line: 278
+; pageoptions_element.php line: 283
 pageoptions_element_ranking_factors = ""
 ;
-; pageoptions_element.php line: 281
+; pageoptions_element.php line: 286
 pageoptions_element_title_weight = ""
 ;
-; pageoptions_element.php line: 286
+; pageoptions_element.php line: 291
 pageoptions_element_description_weight = ""
 ;
-; pageoptions_element.php line: 291
+; pageoptions_element.php line: 296
 pageoptions_element_link_weight = ""
 ;
-; pageoptions_element.php line: 296
+; pageoptions_element.php line: 301
 pageoptions_element_results_grouping_options = ""
 ;
-; pageoptions_element.php line: 299
+; pageoptions_element.php line: 304
 pageoptions_element_min_results_to_group = ""
 ;
-; pageoptions_element.php line: 304
+; pageoptions_element.php line: 309
 pageoptions_element_server_alpha = ""
 ;
-; pageoptions_element.php line: 312
+; pageoptions_element.php line: 317
 pageoptions_element_test_page = ""
 ;
-; pageoptions_element.php line: 314
+; pageoptions_element.php line: 319
 pageoptions_element_page_type = ""
 ;
-; pageoptions_element.php line: 331
+; pageoptions_element.php line: 336
 pageoptions_element_save_options = ""
 ;
-; pageoptions_element.php line: 333
+; pageoptions_element.php line: 338
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 339
+; pageoptions_element.php line: 344
 pageoptions_element_test_results = ""
 ;
-; pageoptions_element.php line: 342
+; pageoptions_element.php line: 347
 pageoptions_element_after_process = ""
 ;
-; pageoptions_element.php line: 346
+; pageoptions_element.php line: 351
 pageoptions_element_after_rules = ""
 ;
-; pageoptions_element.php line: 350
+; pageoptions_element.php line: 355
 pageoptions_element_extracted_words = ""
 ;
-; pageoptions_element.php line: 354
+; pageoptions_element.php line: 359
 pageoptions_element_extracted_metas = ""
 ;
-; pageoptions_element.php line: 388
+; pageoptions_element.php line: 393
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 392
+; pageoptions_element.php line: 397
 pageoptions_element_save_options = ""
 ;
 ; resultseditor_element.php line: 58
diff --git a/locale/en-US/configure.ini b/locale/en-US/configure.ini
index 33451b1..9ea2c67 100755
--- a/locale/en-US/configure.ini
+++ b/locale/en-US/configure.ini
@@ -154,346 +154,346 @@ admin_controller_starting_new_crawl = "Starting New Crawl!"
 ; admin_controller.php line: 868
 admin_controller_no_description = "No Description for Crawl"
 ;
-; admin_controller.php line: 981
+; admin_controller.php line: 985
 admin_controller_use_below = "Use options below"
 ;
-; admin_controller.php line: 982
+; admin_controller.php line: 986
 admin_controller_use_defaults = "Use Yioop! defaults"
 ;
-; admin_controller.php line: 984
+; admin_controller.php line: 988
 admin_controller_use_below = "Use options below"
 ;
-; admin_controller.php line: 988
+; admin_controller.php line: 992
 admin_controller_previous_crawl = "Previous Crawl:"
 ;
-; admin_controller.php line: 1075
+; admin_controller.php line: 1084
 admin_controller_breadth_first = "Breadth First"
 ;
-; admin_controller.php line: 1077
+; admin_controller.php line: 1086
 admin_controller_page_importance = "Page Importance"
 ;
-; admin_controller.php line: 1143
+; admin_controller.php line: 1152
 admin_controller_urls_injected = "Urls Injected!"
 ;
-; admin_controller.php line: 1154
+; admin_controller.php line: 1163
 admin_controller_update_seed_info = "Updating Seed Site Info!"
 ;
-; admin_controller.php line: 1246
+; admin_controller.php line: 1255
 admin_controller_select_crawl = "Select Crawl"
 ;
-; admin_controller.php line: 1247
+; admin_controller.php line: 1256
 admin_controller_default_crawl = "Default Crawl"
 ;
-; admin_controller.php line: 1249
+; admin_controller.php line: 1258
 admin_controller_select_crawl = "Select Crawl"
 ;
-; admin_controller.php line: 1251
+; admin_controller.php line: 1260
 admin_controller_default_crawl = "Default Crawl"
 ;
-; admin_controller.php line: 1278
+; admin_controller.php line: 1287
 admin_controller_unnamed = "Unnamed Crawl"
 ;
-; admin_controller.php line: 1283
+; admin_controller.php line: 1292
 admin_controller_mix_created = "Crawl Mix Created!"
 ;
-; admin_controller.php line: 1292
+; admin_controller.php line: 1301
 admin_controller_set_index = "Setting Crawl To Use as Index"
 ;
-; admin_controller.php line: 1302
+; admin_controller.php line: 1311
 admin_controller_mix_doesnt_exists = "Mix to Delete Does not Exist!"
 ;
-; admin_controller.php line: 1310
+; admin_controller.php line: 1319
 admin_controller_mix_deleted = "Crawl Mix Deleted!"
 ;
-; admin_controller.php line: 1346
+; admin_controller.php line: 1355
 editmix_element_add_crawls = "Add Crawls"
 ;
-; admin_controller.php line: 1348
+; admin_controller.php line: 1357
 editmix_element_num_results = "Number of Results"
 ;
-; admin_controller.php line: 1349
+; admin_controller.php line: 1358
 editmix_element_del_grp = "Delete Group"
 ;
-; admin_controller.php line: 1350
+; admin_controller.php line: 1359
 editmix_element_weight = "Weight"
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1360
 editmix_element_name = "Name"
 ;
-; admin_controller.php line: 1352
+; admin_controller.php line: 1361
 editmix_add_keywords = "Keywords"
 ;
-; admin_controller.php line: 1353
+; admin_controller.php line: 1362
 editmix_element_actions = "Actions"
 ;
-; admin_controller.php line: 1354
+; admin_controller.php line: 1363
 editmix_add_query = "Add Query"
 ;
-; admin_controller.php line: 1355
+; admin_controller.php line: 1364
 editmix_element_delete = "Delete"
 ;
-; admin_controller.php line: 1407
+; admin_controller.php line: 1416
 admin_controller_mix_saved = "Crawl Mix Changes Saved!"
 ;
-; admin_controller.php line: 1458
+; admin_controller.php line: 1467
 admin_controller_use_below = "Use options below"
 ;
-; admin_controller.php line: 1459
+; admin_controller.php line: 1468
 admin_controller_use_defaults = "Use Yioop! defaults"
 ;
-; admin_controller.php line: 1461
+; admin_controller.php line: 1470
 admin_controller_use_below = "Use options below"
 ;
-; admin_controller.php line: 1465
+; admin_controller.php line: 1474
 admin_controller_previous_crawl = "Previous Crawl:"
 ;
-; admin_controller.php line: 1470
+; admin_controller.php line: 1479
 admin_controller_recrawl_never = "Never"
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1480
 admin_controller_recrawl_1day = "1 days"
 ;
-; admin_controller.php line: 1472
+; admin_controller.php line: 1481
 admin_controller_recrawl_2day = "2 days"
 ;
-; admin_controller.php line: 1473
+; admin_controller.php line: 1482
 admin_controller_recrawl_3day = "3 days"
 ;
-; admin_controller.php line: 1474
+; admin_controller.php line: 1483
 admin_controller_recrawl_7day = "7 days"
 ;
-; admin_controller.php line: 1475
+; admin_controller.php line: 1484
 admin_controller_recrawl_14day = "14 days"
 ;
-; admin_controller.php line: 1685
+; admin_controller.php line: 1705
 admin_controller_page_options_updated = "Page Options Updated!"
 ;
-; admin_controller.php line: 1711
+; admin_controller.php line: 1731
 admin_controller_page_options_running_tests = "Running Tests!"
 ;
-; admin_controller.php line: 1851
+; admin_controller.php line: 1881
 admin_controller_new_classifier = "New classifier created."
 ;
-; admin_controller.php line: 1854
+; admin_controller.php line: 1884
 admin_controller_classifier_exists = "A classifier with that name already exists."
 ;
-; admin_controller.php line: 1866
+; admin_controller.php line: 1896
 admin_controller_no_classifier = "No classifier with that name."
 ;
-; admin_controller.php line: 1884
+; admin_controller.php line: 1914
 admin_controller_finalizing_classifier = "Finalizing classifier."
 ;
-; admin_controller.php line: 1907
+; admin_controller.php line: 1937
 admin_controller_classifier_deleted = "Classifier deleted."
 ;
-; admin_controller.php line: 1911
+; admin_controller.php line: 1941
 admin_controller_no_classifier = "No classifier with that name."
 ;
-; admin_controller.php line: 1960
+; admin_controller.php line: 1990
 admin_controller_classifier_exists = "A classifier with that name already exists."
 ;
-; admin_controller.php line: 1971
+; admin_controller.php line: 2001
 editclassifier_load_failed = "Failed to load documents"
 ;
-; admin_controller.php line: 1973
+; admin_controller.php line: 2003
 editclassifier_loading = "Loading"
 ;
-; admin_controller.php line: 1975
+; admin_controller.php line: 2005
 editclassifier_added_examples = "Added {1} {2} examples"
 ;
-; admin_controller.php line: 1977
+; admin_controller.php line: 2007
 editclassifier_label_update_failed = "Failed to update labels."
 ;
-; admin_controller.php line: 1979
+; admin_controller.php line: 2009
 editclassifier_updating = "Updating"
 ;
-; admin_controller.php line: 1981
+; admin_controller.php line: 2011
 editclassifier_acc_update_failed = "Failed to update accuracy"
 ;
-; admin_controller.php line: 1983
+; admin_controller.php line: 2013
 editclassifier_na = "N/A"
 ;
-; admin_controller.php line: 1985
+; admin_controller.php line: 2015
 editclassifier_no_docs = "No documents"
 ;
-; admin_controller.php line: 1987
+; admin_controller.php line: 2017
 editclassifier_num_docs = "{1}{2} documents"
 ;
-; admin_controller.php line: 1989
+; admin_controller.php line: 2019
 editclassifier_in_class = "In Class"
 ;
-; admin_controller.php line: 1991
+; admin_controller.php line: 2021
 editclassifier_not_in_class = "Not In Class"
 ;
-; admin_controller.php line: 1993
+; admin_controller.php line: 2023
 editclassifier_skip = "Skip"
 ;
-; admin_controller.php line: 1995
+; admin_controller.php line: 2025
 editclassifier_prediction = "Prediction: {1}"
 ;
-; admin_controller.php line: 1997
+; admin_controller.php line: 2027
 editclassifier_scores = "{1}%% confidence, {2}%% disagreement"
 ;
-; admin_controller.php line: 2041
+; admin_controller.php line: 2071
 admin_controller_results_editor_update = "Filter Pages Updated!"
 ;
-; admin_controller.php line: 2055
+; admin_controller.php line: 2085
 admin_controller_edited_pages = "Select a Previously Edited URL"
 ;
-; admin_controller.php line: 2068
+; admin_controller.php line: 2098
 admin_controller_results_editor_need_url = "Result Page Update needs to Specify the URL!"
 ;
-; admin_controller.php line: 2074
+; admin_controller.php line: 2104
 admin_controller_results_editor_page_updated = "Result Page Updated!"
 ;
-; admin_controller.php line: 2087
+; admin_controller.php line: 2117
 admin_controller_results_editor_page_loaded = "Page Loaded!"
 ;
-; admin_controller.php line: 2132
+; admin_controller.php line: 2162
 admin_controller_select_machine = "Select Machine"
 ;
-; admin_controller.php line: 2203
+; admin_controller.php line: 2233
 admin_controller_machine_added = "Machine Added!"
 ;
-; admin_controller.php line: 2210
+; admin_controller.php line: 2240
 admin_controller_machine_exists = "Machine Name Already Exists; Please Delete First!"
 ;
-; admin_controller.php line: 2214
+; admin_controller.php line: 2244
 admin_controller_machine_incomplete = "Missing Fields From Machine Form!"
 ;
-; admin_controller.php line: 2223
+; admin_controller.php line: 2253
 admin_controller_machine_doesnt_exists = "Machine Name does not Exists!"
 ;
-; admin_controller.php line: 2240
+; admin_controller.php line: 2270
 admin_controller_stop_service_first = "Machine in use. Please stop the service running on it!"
 ;
-; admin_controller.php line: 2253
+; admin_controller.php line: 2283
 admin_controller_machine_deleted = "Machine Deleted!"
 ;
-; admin_controller.php line: 2274
+; admin_controller.php line: 2304
 admin_controller_news_process_running = "News Updater Seems To Be Running Already"
 ;
-; admin_controller.php line: 2282
+; admin_controller.php line: 2312
 admin_controller_news_mode_updated = "News Update Mode Changed!"
 ;
-; admin_controller.php line: 2286
+; admin_controller.php line: 2316
 admin_controller_news_update_failed = "News Update Mode Change Failed!"
 ;
-; admin_controller.php line: 2349
+; admin_controller.php line: 2379
 admin_controller_no_machine_log = "No Log File Found."
 ;
-; admin_controller.php line: 2378
+; admin_controller.php line: 2408
 admin_controller_machine_servers_updated = "Machine&#039;s Servers Updated!"
 ;
-; admin_controller.php line: 2382
+; admin_controller.php line: 2412
 admin_controller_machine_no_action = "Unable to Perform Action!"
 ;
-; admin_controller.php line: 2415
+; admin_controller.php line: 2445
 admin_controller_select_localename = "Select Locale"
 ;
-; admin_controller.php line: 2459
+; admin_controller.php line: 2489
 admin_controller_locale_added = "Locale Added!"
 ;
-; admin_controller.php line: 2466
+; admin_controller.php line: 2496
 admin_controller_localename_doesnt_exists = "Locale Does Not Exist!"
 ;
-; admin_controller.php line: 2475
+; admin_controller.php line: 2505
 admin_controller_localename_deleted = "Locale Deleted"
 ;
-; admin_controller.php line: 2484
+; admin_controller.php line: 2514
 admin_controller_select_staticpages = "Select a page"
 ;
-; admin_controller.php line: 2503
+; admin_controller.php line: 2533
 admin_controller_staticpage_updated = "Static Page Updated!"
 ;
-; admin_controller.php line: 2530
+; admin_controller.php line: 2560
 admin_controller_localestrings_updated = "Locale Strings Updated!"
 ;
-; admin_controller.php line: 2587
+; admin_controller.php line: 2617
 admin_controller_php_version = "PHP Version 5.3 or Newer"
 ;
-; admin_controller.php line: 2595
+; admin_controller.php line: 2625
 admin_controller_no_write_config_php = "configs/config.php not web server writable."
 ;
-; admin_controller.php line: 2600
+; admin_controller.php line: 2630
 admin_controller_no_write_work_dir = "Work directory needs to be writable by web server. "
 ;
-; admin_controller.php line: 2605
+; admin_controller.php line: 2635
 admin_controller_post_size_small = "php.ini file variable post_max_size should be at least 2M"
 ;
-; admin_controller.php line: 2611
+; admin_controller.php line: 2641
 admin_controller_missing_required = "The following required items were missing: %s"
 ;
-; admin_controller.php line: 2634
+; admin_controller.php line: 2664
 admin_controller_missing_optional = "The following optional items were missing: %s"
 ;
-; admin_controller.php line: 2639
+; admin_controller.php line: 2669
 admin_controller_check_passed = "Check Passed."
 ;
-; admin_controller.php line: 2644
+; admin_controller.php line: 2674
 admin_controller_using_local_config = "Using configs/local_config.php so changing work directory above may not work."
 ;
-; admin_controller.php line: 2669
+; admin_controller.php line: 2699
 admin_controller_media_kind = "Media Kind"
 ;
-; admin_controller.php line: 2670
+; admin_controller.php line: 2700
 admin_controller_video = "Video"
 ;
-; admin_controller.php line: 2671
+; admin_controller.php line: 2701
 admin_controller_rss_feed = "RSS"
 ;
-; admin_controller.php line: 2685
+; admin_controller.php line: 2715
 admin_controller_sources_indexes = "Index/Mix to Use"
 ;
-; admin_controller.php line: 2738
+; admin_controller.php line: 2768
 admin_controller_media_source_added = "Media Source Added!"
 ;
-; admin_controller.php line: 2746
+; admin_controller.php line: 2776
 admin_controller_media_source_deleted = "Media Source Deleted!"
 ;
-; admin_controller.php line: 2762
+; admin_controller.php line: 2792
 admin_controller_subsearch_added = "Subsearch Added!"
 ;
-; admin_controller.php line: 2770
+; admin_controller.php line: 2800
 admin_controller_subsearch_deleted = "Subsearch Deleted!"
 ;
-; admin_controller.php line: 2845
+; admin_controller.php line: 2875
 admin_controller_configure_use_absolute_path = "Must use an Absolute path for Work Directory"
 ;
-; admin_controller.php line: 2857
+; admin_controller.php line: 2887
 admin_controller_configure_diff_base_dir = "Work Directory cannot be contained in Yioop folder!"
 ;
-; admin_controller.php line: 2890
+; admin_controller.php line: 2920
 admin_controller_configure_work_dir_set = "Work Directory Set! You may need to re-login!"
 ;
-; admin_controller.php line: 2904
+; admin_controller.php line: 2934
 admin_controller_name_your_bot = "Please Name Your robot"
 ;
-; admin_controller.php line: 2927
+; admin_controller.php line: 2957
 admin_controller_configure_work_profile_made = "Working Directory and Profile Created!"
 ;
-; admin_controller.php line: 2940
+; admin_controller.php line: 2970
 admin_controller_configure_no_set_config = "Unable to Update config.php File!"
 ;
-; admin_controller.php line: 2952
+; admin_controller.php line: 2982
 admin_controller_configure_no_create_profile = "Unable to Create Profile!"
 ;
-; admin_controller.php line: 2963
+; admin_controller.php line: 2993
 admin_controller_configure_work_dir_invalid = "Work Directory is Invalid! Cannot Create Profile!"
 ;
-; admin_controller.php line: 2975
+; admin_controller.php line: 3005
 admin_controller_configure_work_dir_invalid = "Work Directory is Invalid! Cannot Create Profile!"
 ;
-; admin_controller.php line: 3023
+; admin_controller.php line: 3053
 admin_controller_configure_no_change_db = "Problem Updating Database!"
 ;
-; admin_controller.php line: 3038
+; admin_controller.php line: 3068
 admin_controller_configure_profile_change = "Profile Updated!"
 ;
-; admin_controller.php line: 3053
+; admin_controller.php line: 3083
 admin_controller_configure_no_change_profile = "There was a Problem Updating Profile!"
 ;
-; admin_controller.php line: 3091
+; admin_controller.php line: 3121
 admin_controller_describe_robot = "Please Describe Your Robot"
 ;
 ; machine_controller.php line: 182
@@ -511,55 +511,55 @@ search_controller_crawl_info = "Index: %s -- Size: %s pages/%s urls"
 ; search_controller.php line: 528
 search_controller_search = "Search"
 ;
-; search_controller.php line: 636
+; search_controller.php line: 629
 search_controller_no_index_set = "No Search Index Set For Use!"
 ;
-; search_controller.php line: 639
+; search_controller.php line: 632
 search_controller_no_index_set = "No Search Index Set For Use!"
 ;
-; search_controller.php line: 1438
+; search_controller.php line: 1431
 search_controller_no_archive_page = "The website in question has requested this page not be archived."
 ;
-; search_controller.php line: 1490
+; search_controller.php line: 1483
 search_controller_original_page = "This image appeared on the page:"
 ;
-; search_controller.php line: 1508
+; search_controller.php line: 1501
 search_controller_extracted_title = "Extracted Title"
 ;
-; search_controller.php line: 1510
+; search_controller.php line: 1503
 search_controller_extracted_description = "Extracted Description"
 ;
-; search_controller.php line: 1512
+; search_controller.php line: 1505
 search_controller_extracted_links = "Extracted Links"
 ;
-; search_controller.php line: 1517
+; search_controller.php line: 1510
 search_controller_extracted_allow_paths = "Extracted Allowed To Crawl Paths"
 ;
-; search_controller.php line: 1523
+; search_controller.php line: 1516
 search_controller_extracted_disallow_paths = "Extracted Disallowed To Crawl Paths"
 ;
-; search_controller.php line: 1529
+; search_controller.php line: 1522
 search_controller_crawl_delay = "YioopBot Crawl Delay"
 ;
-; search_controller.php line: 1600
+; search_controller.php line: 1593
 search_controller_cache_comment = "Yioop Cache Page... This page has been modified to add a robots directive,  make links absolute, add extracted summaries, and to highlight query terms."
 ;
-; search_controller.php line: 1644
+; search_controller.php line: 1638
 search_controller_cached_version = "This cached version of %s was obtained by the Yioop crawler on %s."
 ;
-; search_controller.php line: 1759
+; search_controller.php line: 1753
 search_controller_header_summaries = "Toggle Extracted Headers and Summaries"
 ;
-; search_controller.php line: 1883
+; search_controller.php line: 1877
 search_controller_history = "Toggle History"
 ;
-; search_controller.php line: 2059
+; search_controller.php line: 2053
 search_controller_all_cached = "All Cached Versions - Change Year and/or Months to see Links"
 ;
-; search_controller.php line: 2090
+; search_controller.php line: 2084
 search_controller_year = "Year:"
 ;
-; search_controller.php line: 2091
+; search_controller.php line: 2085
 search_controller_month = "Month:"
 ;
 ; settings_controller.php line: 134
@@ -1254,111 +1254,114 @@ pageoptions_element_load_options = "Get Page Options From:"
 pageoptions_element_page_range = "Byte Range to Download (0 - Value):"
 ;
 ; pageoptions_element.php line: 95
+pageoptions_element_max_description = "Max Page Summary Length in Bytes:"
+;
+; pageoptions_element.php line: 100
 pageoptions_element_save_cache = "Cache whole crawled pages:"
 ;
-; pageoptions_element.php line: 105
+; pageoptions_element.php line: 110
 pageoptions_element_allow_recrawl = "Allow Page Recrawl After:"
 ;
-; pageoptions_element.php line: 111
+; pageoptions_element.php line: 116
 pageoptions_element_file_types = "Page File Types to Crawl:"
 ;
-; pageoptions_element.php line: 141
+; pageoptions_element.php line: 146
 pageoptions_element_classifiers_to_apply = "Classifiers to Apply:"
 ;
-; pageoptions_element.php line: 176
+; pageoptions_element.php line: 181
 pageoptions_element_no_classifiers = "No classifiers."
 ;
-; pageoptions_element.php line: 179
+; pageoptions_element.php line: 184
 pageoptions_element_indexing_plugins = "Indexing Plugins"
 ;
-; pageoptions_element.php line: 183
+; pageoptions_element.php line: 188
 pageoptions_element_plugin = "Plugin"
 ;
-; pageoptions_element.php line: 186
+; pageoptions_element.php line: 191
 pageoptions_element_plugin_include = "Use in Crawl"
 ;
-; pageoptions_element.php line: 207
+; pageoptions_element.php line: 212
 pageoptions_element_no_compatible_plugins = "No compatible indexing plugins found!"
 ;
-; pageoptions_element.php line: 210
+; pageoptions_element.php line: 215
 pageoptions_element_page_rules = "Page Field Extraction Rules"
 ;
-; pageoptions_element.php line: 218
+; pageoptions_element.php line: 223
 page_element_search_page = "Search Page Elements and Links"
 ;
-; pageoptions_element.php line: 223
+; pageoptions_element.php line: 228
 pageoptions_element_wd_suggest = "Word Suggest"
 ;
-; pageoptions_element.php line: 231
+; pageoptions_element.php line: 236
 pageoptions_element_subsearch_link = "Subsearch"
 ;
-; pageoptions_element.php line: 240
+; pageoptions_element.php line: 245
 pageoptions_element_signin_link = "Signin"
 ;
-; pageoptions_element.php line: 247
+; pageoptions_element.php line: 252
 pageoptions_element_cache_link = "Cache"
 ;
-; pageoptions_element.php line: 255
+; pageoptions_element.php line: 260
 pageoptions_element_similar_link = "Similar"
 ;
-; pageoptions_element.php line: 263
+; pageoptions_element.php line: 268
 pageoptions_element_in_link = "Inlinks"
 ;
-; pageoptions_element.php line: 269
+; pageoptions_element.php line: 274
 pageoptions_element_ip_link = "IP Address"
 ;
-; pageoptions_element.php line: 278
+; pageoptions_element.php line: 283
 pageoptions_element_ranking_factors = "Search Ranking Factors"
 ;
-; pageoptions_element.php line: 281
+; pageoptions_element.php line: 286
 pageoptions_element_title_weight = "Title Weight:"
 ;
-; pageoptions_element.php line: 286
+; pageoptions_element.php line: 291
 pageoptions_element_description_weight = "Description Weight:"
 ;
-; pageoptions_element.php line: 291
+; pageoptions_element.php line: 296
 pageoptions_element_link_weight = "Link Weight:"
 ;
-; pageoptions_element.php line: 296
+; pageoptions_element.php line: 301
 pageoptions_element_results_grouping_options = "Search Results Grouping"
 ;
-; pageoptions_element.php line: 299
+; pageoptions_element.php line: 304
 pageoptions_element_min_results_to_group = "Minimum Results to Group:"
 ;
-; pageoptions_element.php line: 304
+; pageoptions_element.php line: 309
 pageoptions_element_server_alpha = "Server Alpha:"
 ;
-; pageoptions_element.php line: 312
+; pageoptions_element.php line: 317
 pageoptions_element_test_page = "Test Page"
 ;
-; pageoptions_element.php line: 314
+; pageoptions_element.php line: 319
 pageoptions_element_page_type = "Type:"
 ;
-; pageoptions_element.php line: 331
+; pageoptions_element.php line: 336
 pageoptions_element_save_options = "Save"
 ;
-; pageoptions_element.php line: 333
+; pageoptions_element.php line: 338
 pageoptions_element_run_tests = "Test Process Page"
 ;
-; pageoptions_element.php line: 339
+; pageoptions_element.php line: 344
 pageoptions_element_test_results = "Test Results"
 ;
-; pageoptions_element.php line: 342
+; pageoptions_element.php line: 347
 pageoptions_element_after_process = "After page processor extracts summary"
 ;
-; pageoptions_element.php line: 346
+; pageoptions_element.php line: 351
 pageoptions_element_after_rules = "After page rules applied"
 ;
-; pageoptions_element.php line: 350
+; pageoptions_element.php line: 355
 pageoptions_element_extracted_words = "Words and positions extracted to index from summary"
 ;
-; pageoptions_element.php line: 354
+; pageoptions_element.php line: 359
 pageoptions_element_extracted_metas = "Extracted meta words"
 ;
-; pageoptions_element.php line: 388
+; pageoptions_element.php line: 393
 pageoptions_element_run_tests = "Test Process Page"
 ;
-; pageoptions_element.php line: 392
+; pageoptions_element.php line: 397
 pageoptions_element_save_options = "Save"
 ;
 ; resultseditor_element.php line: 58
diff --git a/locale/en-US/statistics.txt b/locale/en-US/statistics.txt
index 5a165df..b6bef56 100755
--- a/locale/en-US/statistics.txt
+++ b/locale/en-US/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/locale/es/configure.ini b/locale/es/configure.ini
index cbdf2c8..6ae189f 100755
--- a/locale/es/configure.ini
+++ b/locale/es/configure.ini
@@ -154,346 +154,346 @@ admin_controller_starting_new_crawl = "Iniciando nuevo rastreo"
 ; admin_controller.php line: 868
 admin_controller_no_description = "No hay descripci&oacute;n para el rastreo"
 ;
-; admin_controller.php line: 981
+; admin_controller.php line: 985
 admin_controller_use_below = "Utilice las opciones a continuaci&oacute;n"
 ;
-; admin_controller.php line: 982
+; admin_controller.php line: 986
 admin_controller_use_defaults = "Utilizar Yioop! por defecto"
 ;
-; admin_controller.php line: 984
+; admin_controller.php line: 988
 admin_controller_use_below = "Utilice las opciones a continuaci&oacute;n"
 ;
-; admin_controller.php line: 988
+; admin_controller.php line: 992
 admin_controller_previous_crawl = "Rastreo anterior:"
 ;
-; admin_controller.php line: 1075
+; admin_controller.php line: 1084
 admin_controller_breadth_first = "Breadth First"
 ;
-; admin_controller.php line: 1077
+; admin_controller.php line: 1086
 admin_controller_page_importance = "Importancia de p&aacute;gina"
 ;
-; admin_controller.php line: 1143
+; admin_controller.php line: 1152
 admin_controller_urls_injected = "Urls inyectadas!"
 ;
-; admin_controller.php line: 1154
+; admin_controller.php line: 1163
 admin_controller_update_seed_info = ""
 ;
-; admin_controller.php line: 1246
+; admin_controller.php line: 1255
 admin_controller_select_crawl = "Seleccionar Rastreo"
 ;
-; admin_controller.php line: 1247
+; admin_controller.php line: 1256
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1249
+; admin_controller.php line: 1258
 admin_controller_select_crawl = "Seleccionar Rastreo"
 ;
-; admin_controller.php line: 1251
+; admin_controller.php line: 1260
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1278
+; admin_controller.php line: 1287
 admin_controller_unnamed = "Rastreo sin nombre"
 ;
-; admin_controller.php line: 1283
+; admin_controller.php line: 1292
 admin_controller_mix_created = "Rastreo Mix creado!"
 ;
-; admin_controller.php line: 1292
+; admin_controller.php line: 1301
 admin_controller_set_index = "Usar el rastreo como &iacute;ndice"
 ;
-; admin_controller.php line: 1302
+; admin_controller.php line: 1311
 admin_controller_mix_doesnt_exists = "Mix para eliminar (borrar) no existe!"
 ;
-; admin_controller.php line: 1310
+; admin_controller.php line: 1319
 admin_controller_mix_deleted = "Rastreo Mix eliminado!"
 ;
-; admin_controller.php line: 1346
+; admin_controller.php line: 1355
 editmix_element_add_crawls = "A&ntilde;adir Rastreos"
 ;
-; admin_controller.php line: 1348
+; admin_controller.php line: 1357
 editmix_element_num_results = "N&uacute;mero de Resultados"
 ;
-; admin_controller.php line: 1349
+; admin_controller.php line: 1358
 editmix_element_del_grp = "Eliminar Grupo"
 ;
-; admin_controller.php line: 1350
+; admin_controller.php line: 1359
 editmix_element_weight = "Tama&ntilde;o"
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1360
 editmix_element_name = "Nombre"
 ;
-; admin_controller.php line: 1352
+; admin_controller.php line: 1361
 editmix_add_keywords = "Palabras clave"
 ;
-; admin_controller.php line: 1353
+; admin_controller.php line: 1362
 editmix_element_actions = "Acciones"
 ;
-; admin_controller.php line: 1354
+; admin_controller.php line: 1363
 editmix_add_query = "Agregar consulta"
 ;
-; admin_controller.php line: 1355
+; admin_controller.php line: 1364
 editmix_element_delete = "Borrar"
 ;
-; admin_controller.php line: 1407
+; admin_controller.php line: 1416
 admin_controller_mix_saved = "Guardados los Cambios del Rastreo Mix!"
 ;
-; admin_controller.php line: 1458
+; admin_controller.php line: 1467
 admin_controller_use_below = "Utilice las opciones a continuaci&oacute;n"
 ;
-; admin_controller.php line: 1459
+; admin_controller.php line: 1468
 admin_controller_use_defaults = "Utilizar Yioop! por defecto"
 ;
-; admin_controller.php line: 1461
+; admin_controller.php line: 1470
 admin_controller_use_below = "Utilice las opciones a continuaci&oacute;n"
 ;
-; admin_controller.php line: 1465
+; admin_controller.php line: 1474
 admin_controller_previous_crawl = "Rastreo anterior:"
 ;
-; admin_controller.php line: 1470
+; admin_controller.php line: 1479
 admin_controller_recrawl_never = "Nunca"
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1480
 admin_controller_recrawl_1day = "1 d&iacute;a"
 ;
-; admin_controller.php line: 1472
+; admin_controller.php line: 1481
 admin_controller_recrawl_2day = "2 d&iacute;as"
 ;
-; admin_controller.php line: 1473
+; admin_controller.php line: 1482
 admin_controller_recrawl_3day = "3 d&iacute;as"
 ;
-; admin_controller.php line: 1474
+; admin_controller.php line: 1483
 admin_controller_recrawl_7day = "7 d&iacute;as"
 ;
-; admin_controller.php line: 1475
+; admin_controller.php line: 1484
 admin_controller_recrawl_14day = "14 d&iacute;as"
 ;
-; admin_controller.php line: 1685
+; admin_controller.php line: 1705
 admin_controller_page_options_updated = ""
 ;
-; admin_controller.php line: 1711
+; admin_controller.php line: 1731
 admin_controller_page_options_running_tests = ""
 ;
-; admin_controller.php line: 1860
+; admin_controller.php line: 1881
 admin_controller_new_classifier = ""
 ;
-; admin_controller.php line: 1863
+; admin_controller.php line: 1884
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1875
+; admin_controller.php line: 1896
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1893
+; admin_controller.php line: 1914
 admin_controller_finalizing_classifier = ""
 ;
-; admin_controller.php line: 1916
+; admin_controller.php line: 1937
 admin_controller_classifier_deleted = ""
 ;
-; admin_controller.php line: 1920
+; admin_controller.php line: 1941
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1969
+; admin_controller.php line: 1990
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1980
+; admin_controller.php line: 2001
 editclassifier_load_failed = ""
 ;
-; admin_controller.php line: 1982
+; admin_controller.php line: 2003
 editclassifier_loading = ""
 ;
-; admin_controller.php line: 1984
+; admin_controller.php line: 2005
 editclassifier_added_examples = ""
 ;
-; admin_controller.php line: 1986
+; admin_controller.php line: 2007
 editclassifier_label_update_failed = ""
 ;
-; admin_controller.php line: 1988
+; admin_controller.php line: 2009
 editclassifier_updating = ""
 ;
-; admin_controller.php line: 1990
+; admin_controller.php line: 2011
 editclassifier_acc_update_failed = ""
 ;
-; admin_controller.php line: 1992
+; admin_controller.php line: 2013
 editclassifier_na = ""
 ;
-; admin_controller.php line: 1994
+; admin_controller.php line: 2015
 editclassifier_no_docs = ""
 ;
-; admin_controller.php line: 1996
+; admin_controller.php line: 2017
 editclassifier_num_docs = ""
 ;
-; admin_controller.php line: 1998
+; admin_controller.php line: 2019
 editclassifier_in_class = ""
 ;
-; admin_controller.php line: 2000
+; admin_controller.php line: 2021
 editclassifier_not_in_class = ""
 ;
-; admin_controller.php line: 2002
+; admin_controller.php line: 2023
 editclassifier_skip = ""
 ;
-; admin_controller.php line: 2004
+; admin_controller.php line: 2025
 editclassifier_prediction = ""
 ;
-; admin_controller.php line: 2006
+; admin_controller.php line: 2027
 editclassifier_scores = ""
 ;
-; admin_controller.php line: 2050
+; admin_controller.php line: 2071
 admin_controller_results_editor_update = "Filtrar P&aacute;ginas Actualizadas!"
 ;
-; admin_controller.php line: 2064
+; admin_controller.php line: 2085
 admin_controller_edited_pages = "Seleccionar una URL previamente editada"
 ;
-; admin_controller.php line: 2077
+; admin_controller.php line: 2098
 admin_controller_results_editor_need_url = "Resultados de la actualizaci&oacute;n de la p&aacute;gina debe especificar la URL!"
 ;
-; admin_controller.php line: 2083
+; admin_controller.php line: 2104
 admin_controller_results_editor_page_updated = "P&aacute;gina Actualizada!"
 ;
-; admin_controller.php line: 2096
+; admin_controller.php line: 2117
 admin_controller_results_editor_page_loaded = "P&aacute;gina Cargada!"
 ;
-; admin_controller.php line: 2141
+; admin_controller.php line: 2162
 admin_controller_select_machine = "Seleccionar M&aacute;quina"
 ;
-; admin_controller.php line: 2212
+; admin_controller.php line: 2233
 admin_controller_machine_added = "M&aacute;quina Agregada!"
 ;
-; admin_controller.php line: 2219
+; admin_controller.php line: 2240
 admin_controller_machine_exists = "Nombre de la m&aacute;quina ya existe, por favor elimina primero!"
 ;
-; admin_controller.php line: 2223
+; admin_controller.php line: 2244
 admin_controller_machine_incomplete = "Falta de Campos, en el Formulario de la M&aacute;quina!"
 ;
-; admin_controller.php line: 2232
+; admin_controller.php line: 2253
 admin_controller_machine_doesnt_exists = "El Nombre de la M&aacute;quina no Existe!"
 ;
-; admin_controller.php line: 2249
+; admin_controller.php line: 2270
 admin_controller_stop_service_first = "M&aacute;quina en Uso. Por favor, Detenga el Servicio que se Ejecuta en &eacute;l!"
 ;
-; admin_controller.php line: 2262
+; admin_controller.php line: 2283
 admin_controller_machine_deleted = "M&aacute;quina Eliminada!"
 ;
-; admin_controller.php line: 2283
+; admin_controller.php line: 2304
 admin_controller_news_process_running = ""
 ;
-; admin_controller.php line: 2291
+; admin_controller.php line: 2312
 admin_controller_news_mode_updated = ""
 ;
-; admin_controller.php line: 2295
+; admin_controller.php line: 2316
 admin_controller_news_update_failed = ""
 ;
-; admin_controller.php line: 2358
+; admin_controller.php line: 2379
 admin_controller_no_machine_log = "No se Encontr&oacute; el Archivo de Registro."
 ;
-; admin_controller.php line: 2387
+; admin_controller.php line: 2408
 admin_controller_machine_servers_updated = "Servidores de M&aacute;quina&#039;s Actualizados!"
 ;
-; admin_controller.php line: 2391
+; admin_controller.php line: 2412
 admin_controller_machine_no_action = "No se Puede Realizar la Acci&oacute;n!"
 ;
-; admin_controller.php line: 2424
+; admin_controller.php line: 2445
 admin_controller_select_localename = "Seleccionar Configuraci&oacute;n Regional"
 ;
-; admin_controller.php line: 2468
+; admin_controller.php line: 2489
 admin_controller_locale_added = "Configuraci&oacute;n Regional Agregada!"
 ;
-; admin_controller.php line: 2475
+; admin_controller.php line: 2496
 admin_controller_localename_doesnt_exists = "Configuraci&oacute;n Regional No Existe"
 ;
-; admin_controller.php line: 2484
+; admin_controller.php line: 2505
 admin_controller_localename_deleted = "Configuraci&oacute;n Regional Eliminada"
 ;
-; admin_controller.php line: 2493
+; admin_controller.php line: 2514
 admin_controller_select_staticpages = "Seleccionar P&aacute;gina"
 ;
-; admin_controller.php line: 2512
+; admin_controller.php line: 2533
 admin_controller_staticpage_updated = "P&aacute;gina Est&aacute;tica Actualizada!"
 ;
-; admin_controller.php line: 2539
+; admin_controller.php line: 2560
 admin_controller_localestrings_updated = "Cadenas de Configuraci&oacute;n Regional Actualizada!"
 ;
-; admin_controller.php line: 2596
+; admin_controller.php line: 2617
 admin_controller_php_version = "PHP Version 5.3 o la M&aacute;s Reciente"
 ;
-; admin_controller.php line: 2604
+; admin_controller.php line: 2625
 admin_controller_no_write_config_php = "configs/config.php el servidor web no es escribible."
 ;
-; admin_controller.php line: 2609
+; admin_controller.php line: 2630
 admin_controller_no_write_work_dir = "Directorio de trabajo tiene que ser escribible por el servidor web"
 ;
-; admin_controller.php line: 2614
+; admin_controller.php line: 2635
 admin_controller_post_size_small = "La variable post_max_size del archivo php.ini deber�a ser de al menos 32M"
 ;
-; admin_controller.php line: 2620
+; admin_controller.php line: 2641
 admin_controller_missing_required = "Los siguientes elementos necesarios (requeridos), no estaban: %s"
 ;
-; admin_controller.php line: 2643
+; admin_controller.php line: 2664
 admin_controller_missing_optional = "Los siguientes elementos opcionales, no estaban: %s"
 ;
-; admin_controller.php line: 2648
+; admin_controller.php line: 2669
 admin_controller_check_passed = "Entrada Aprobada"
 ;
-; admin_controller.php line: 2653
+; admin_controller.php line: 2674
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 2678
+; admin_controller.php line: 2699
 admin_controller_media_kind = ""
 ;
-; admin_controller.php line: 2679
+; admin_controller.php line: 2700
 admin_controller_video = ""
 ;
-; admin_controller.php line: 2680
+; admin_controller.php line: 2701
 admin_controller_rss_feed = ""
 ;
-; admin_controller.php line: 2694
+; admin_controller.php line: 2715
 admin_controller_sources_indexes = ""
 ;
-; admin_controller.php line: 2747
+; admin_controller.php line: 2768
 admin_controller_media_source_added = ""
 ;
-; admin_controller.php line: 2755
+; admin_controller.php line: 2776
 admin_controller_media_source_deleted = ""
 ;
-; admin_controller.php line: 2771
+; admin_controller.php line: 2792
 admin_controller_subsearch_added = ""
 ;
-; admin_controller.php line: 2779
+; admin_controller.php line: 2800
 admin_controller_subsearch_deleted = ""
 ;
-; admin_controller.php line: 2854
+; admin_controller.php line: 2875
 admin_controller_configure_use_absolute_path = "Debe utilizar una ruta absoluta para el directorio de trabajo"
 ;
-; admin_controller.php line: 2866
+; admin_controller.php line: 2887
 admin_controller_configure_diff_base_dir = ""
 ;
-; admin_controller.php line: 2899
+; admin_controller.php line: 2920
 admin_controller_configure_work_dir_set = "El trabajo conjunto de Directorio! Puede que tenga que volver a entrar!"
 ;
-; admin_controller.php line: 2913
+; admin_controller.php line: 2934
 admin_controller_name_your_bot = "Por favor, Nombre tu Robot"
 ;
-; admin_controller.php line: 2936
+; admin_controller.php line: 2957
 admin_controller_configure_work_profile_made = "Directorio de Trabajo y Perfil creados!"
 ;
-; admin_controller.php line: 2949
+; admin_controller.php line: 2970
 admin_controller_configure_no_set_config = "No se puede actualizar el archivo config.php!"
 ;
-; admin_controller.php line: 2961
+; admin_controller.php line: 2982
 admin_controller_configure_no_create_profile = "No se puede crear el perfil!"
 ;
-; admin_controller.php line: 2972
+; admin_controller.php line: 2993
 admin_controller_configure_work_dir_invalid = "Directorio de trabajo es inv&aacute;lido! No se puede crear el perfil!"
 ;
-; admin_controller.php line: 2984
+; admin_controller.php line: 3005
 admin_controller_configure_work_dir_invalid = "Directorio de trabajo es inv&aacute;lido! No se puede crear el perfil!"
 ;
-; admin_controller.php line: 3032
+; admin_controller.php line: 3053
 admin_controller_configure_no_change_db = "Problema al actualizar la base de datos!"
 ;
-; admin_controller.php line: 3047
+; admin_controller.php line: 3068
 admin_controller_configure_profile_change = "Perfil actualizado!"
 ;
-; admin_controller.php line: 3062
+; admin_controller.php line: 3083
 admin_controller_configure_no_change_profile = "Hubo un problema al actualizar el perfil!"
 ;
-; admin_controller.php line: 3100
+; admin_controller.php line: 3121
 admin_controller_describe_robot = "Por favor describa su robot"
 ;
 ; machine_controller.php line: 182
@@ -544,22 +544,22 @@ search_controller_crawl_delay = "Rastreo Retrasado de YioopBot"
 ; search_controller.php line: 1593
 search_controller_cache_comment = "P&aacute;gina de cache Yioop ... Esta p&aacute;gina ha sido modificada para a&ntilde;adir una directiva robots, hacer enlaces absolutos, a&ntilde;adir res&uacute;menes extra&iacute;dos, y para resaltar los t&eacute;rminos de la consulta."
 ;
-; search_controller.php line: 1637
+; search_controller.php line: 1638
 search_controller_cached_version = "Esta versi&oacute;n en cach&eacute; de %s se obtuvo mediante el rastreador Yioop en %s."
 ;
-; search_controller.php line: 1752
+; search_controller.php line: 1753
 search_controller_header_summaries = ""
 ;
-; search_controller.php line: 1876
+; search_controller.php line: 1877
 search_controller_history = ""
 ;
-; search_controller.php line: 2052
+; search_controller.php line: 2053
 search_controller_all_cached = ""
 ;
-; search_controller.php line: 2083
+; search_controller.php line: 2084
 search_controller_year = ""
 ;
-; search_controller.php line: 2084
+; search_controller.php line: 2085
 search_controller_month = ""
 ;
 ; settings_controller.php line: 134
@@ -1254,111 +1254,114 @@ pageoptions_element_load_options = ""
 pageoptions_element_page_range = ""
 ;
 ; pageoptions_element.php line: 95
+pageoptions_element_max_description = ""
+;
+; pageoptions_element.php line: 100
 pageoptions_element_save_cache = ""
 ;
-; pageoptions_element.php line: 105
+; pageoptions_element.php line: 110
 pageoptions_element_allow_recrawl = ""
 ;
-; pageoptions_element.php line: 111
+; pageoptions_element.php line: 116
 pageoptions_element_file_types = ""
 ;
-; pageoptions_element.php line: 141
+; pageoptions_element.php line: 146
 pageoptions_element_classifiers_to_apply = ""
 ;
-; pageoptions_element.php line: 176
+; pageoptions_element.php line: 181
 pageoptions_element_no_classifiers = ""
 ;
-; pageoptions_element.php line: 179
+; pageoptions_element.php line: 184
 pageoptions_element_indexing_plugins = "Indexaci&oacute;n de complementos"
 ;
-; pageoptions_element.php line: 183
+; pageoptions_element.php line: 188
 pageoptions_element_plugin = "Complemento"
 ;
-; pageoptions_element.php line: 186
+; pageoptions_element.php line: 191
 pageoptions_element_plugin_include = "Usar en el Rastreo"
 ;
-; pageoptions_element.php line: 207
+; pageoptions_element.php line: 212
 pageoptions_element_no_compatible_plugins = ""
 ;
-; pageoptions_element.php line: 210
+; pageoptions_element.php line: 215
 pageoptions_element_page_rules = ""
 ;
-; pageoptions_element.php line: 218
+; pageoptions_element.php line: 223
 page_element_search_page = "Elementos de la p&aacute;gina de b&uacute;squeda y v&iacute;nculos"
 ;
-; pageoptions_element.php line: 223
+; pageoptions_element.php line: 228
 pageoptions_element_wd_suggest = "Sugerencia de Palabra"
 ;
-; pageoptions_element.php line: 231
+; pageoptions_element.php line: 236
 pageoptions_element_subsearch_link = ""
 ;
-; pageoptions_element.php line: 240
+; pageoptions_element.php line: 245
 pageoptions_element_signin_link = "Inicia sesi&oacute;n"
 ;
-; pageoptions_element.php line: 247
+; pageoptions_element.php line: 252
 pageoptions_element_cache_link = ""
 ;
-; pageoptions_element.php line: 255
+; pageoptions_element.php line: 260
 pageoptions_element_similar_link = ""
 ;
-; pageoptions_element.php line: 263
+; pageoptions_element.php line: 268
 pageoptions_element_in_link = ""
 ;
-; pageoptions_element.php line: 269
+; pageoptions_element.php line: 274
 pageoptions_element_ip_link = "Direcci&oacute;n IP"
 ;
-; pageoptions_element.php line: 278
+; pageoptions_element.php line: 283
 pageoptions_element_ranking_factors = ""
 ;
-; pageoptions_element.php line: 281
+; pageoptions_element.php line: 286
 pageoptions_element_title_weight = ""
 ;
-; pageoptions_element.php line: 286
+; pageoptions_element.php line: 291
 pageoptions_element_description_weight = ""
 ;
-; pageoptions_element.php line: 291
+; pageoptions_element.php line: 296
 pageoptions_element_link_weight = ""
 ;
-; pageoptions_element.php line: 296
+; pageoptions_element.php line: 301
 pageoptions_element_results_grouping_options = ""
 ;
-; pageoptions_element.php line: 299
+; pageoptions_element.php line: 304
 pageoptions_element_min_results_to_group = ""
 ;
-; pageoptions_element.php line: 304
+; pageoptions_element.php line: 309
 pageoptions_element_server_alpha = ""
 ;
-; pageoptions_element.php line: 312
+; pageoptions_element.php line: 317
 pageoptions_element_test_page = ""
 ;
-; pageoptions_element.php line: 314
+; pageoptions_element.php line: 319
 pageoptions_element_page_type = ""
 ;
-; pageoptions_element.php line: 331
+; pageoptions_element.php line: 336
 pageoptions_element_save_options = ""
 ;
-; pageoptions_element.php line: 333
+; pageoptions_element.php line: 338
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 339
+; pageoptions_element.php line: 344
 pageoptions_element_test_results = ""
 ;
-; pageoptions_element.php line: 342
+; pageoptions_element.php line: 347
 pageoptions_element_after_process = ""
 ;
-; pageoptions_element.php line: 346
+; pageoptions_element.php line: 351
 pageoptions_element_after_rules = ""
 ;
-; pageoptions_element.php line: 350
+; pageoptions_element.php line: 355
 pageoptions_element_extracted_words = ""
 ;
-; pageoptions_element.php line: 354
+; pageoptions_element.php line: 359
 pageoptions_element_extracted_metas = ""
 ;
-; pageoptions_element.php line: 388
+; pageoptions_element.php line: 393
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 392
+; pageoptions_element.php line: 397
 pageoptions_element_save_options = ""
 ;
 ; resultseditor_element.php line: 58
diff --git a/locale/fa/configure.ini b/locale/fa/configure.ini
index 18043d2..c684dcd 100755
--- a/locale/fa/configure.ini
+++ b/locale/fa/configure.ini
@@ -154,346 +154,346 @@ admin_controller_starting_new_crawl = "در حال آغاز خزش جدید!"
 ; admin_controller.php line: 868
 admin_controller_no_description = "شرحی برای خزش نیست"
 ;
-; admin_controller.php line: 981
+; admin_controller.php line: 985
 admin_controller_use_below = "از گزینه&zwnj;های زیر استفاده کن"
 ;
-; admin_controller.php line: 982
+; admin_controller.php line: 986
 admin_controller_use_defaults = "از پیش&zwnj;فرض&zwnj;های Yioop! استفاده کن"
 ;
-; admin_controller.php line: 984
+; admin_controller.php line: 988
 admin_controller_use_below = "از گزینه&zwnj;های زیر استفاده کن"
 ;
-; admin_controller.php line: 988
+; admin_controller.php line: 992
 admin_controller_previous_crawl = "خزش قبلی:"
 ;
-; admin_controller.php line: 1075
+; admin_controller.php line: 1084
 admin_controller_breadth_first = "اول سطح"
 ;
-; admin_controller.php line: 1077
+; admin_controller.php line: 1086
 admin_controller_page_importance = "اهمیت صفحه"
 ;
-; admin_controller.php line: 1143
+; admin_controller.php line: 1152
 admin_controller_urls_injected = "urlها وارد شدند."
 ;
-; admin_controller.php line: 1154
+; admin_controller.php line: 1163
 admin_controller_update_seed_info = "در حال به روز آوری اطلاعات seed site "
 ;
-; admin_controller.php line: 1246
+; admin_controller.php line: 1255
 admin_controller_select_crawl = "یک خزش انتخاب کنید"
 ;
-; admin_controller.php line: 1247
+; admin_controller.php line: 1256
 admin_controller_default_crawl = "خزش پیش&zwnj;فرض"
 ;
-; admin_controller.php line: 1249
+; admin_controller.php line: 1258
 admin_controller_select_crawl = "یک خزش انتخاب کنید"
 ;
-; admin_controller.php line: 1251
+; admin_controller.php line: 1260
 admin_controller_default_crawl = "خزش پیش&zwnj;فرض"
 ;
-; admin_controller.php line: 1278
+; admin_controller.php line: 1287
 admin_controller_unnamed = "خزش بی&zwnj;نام"
 ;
-; admin_controller.php line: 1283
+; admin_controller.php line: 1292
 admin_controller_mix_created = "ترکیب خزش ساخته شد!"
 ;
-; admin_controller.php line: 1292
+; admin_controller.php line: 1301
 admin_controller_set_index = "قرار دادن خزش به عنوان نمایه"
 ;
-; admin_controller.php line: 1302
+; admin_controller.php line: 1311
 admin_controller_mix_doesnt_exists = "ترکیبی که می&zwnj;خواهید حذف کنید وجود ندارد!"
 ;
-; admin_controller.php line: 1310
+; admin_controller.php line: 1319
 admin_controller_mix_deleted = "ترکیب خزش حذف شد!"
 ;
-; admin_controller.php line: 1346
+; admin_controller.php line: 1355
 editmix_element_add_crawls = "خزش اضافه کن"
 ;
-; admin_controller.php line: 1348
+; admin_controller.php line: 1357
 editmix_element_num_results = "تعداد نتایج"
 ;
-; admin_controller.php line: 1349
+; admin_controller.php line: 1358
 editmix_element_del_grp = "گروه را حذف کن"
 ;
-; admin_controller.php line: 1350
+; admin_controller.php line: 1359
 editmix_element_weight = "وزن"
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1360
 editmix_element_name = "نام"
 ;
-; admin_controller.php line: 1352
+; admin_controller.php line: 1361
 editmix_add_keywords = "کلمات کلیدی"
 ;
-; admin_controller.php line: 1353
+; admin_controller.php line: 1362
 editmix_element_actions = "فرمان&zwnj;ها"
 ;
-; admin_controller.php line: 1354
+; admin_controller.php line: 1363
 editmix_add_query = "پُرسمان اضافه کن"
 ;
-; admin_controller.php line: 1355
+; admin_controller.php line: 1364
 editmix_element_delete = "حذف کن"
 ;
-; admin_controller.php line: 1407
+; admin_controller.php line: 1416
 admin_controller_mix_saved = "تغییرات ترکیب خزش ذخیره شد!"
 ;
-; admin_controller.php line: 1458
+; admin_controller.php line: 1467
 admin_controller_use_below = "از گزینه&zwnj;های زیر استفاده کن"
 ;
-; admin_controller.php line: 1459
+; admin_controller.php line: 1468
 admin_controller_use_defaults = "از پیش&zwnj;فرض&zwnj;های Yioop! استفاده کن"
 ;
-; admin_controller.php line: 1461
+; admin_controller.php line: 1470
 admin_controller_use_below = "از گزینه&zwnj;های زیر استفاده کن"
 ;
-; admin_controller.php line: 1465
+; admin_controller.php line: 1474
 admin_controller_previous_crawl = "خزش قبلی:"
 ;
-; admin_controller.php line: 1470
+; admin_controller.php line: 1479
 admin_controller_recrawl_never = "هرگز"
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1480
 admin_controller_recrawl_1day = "۱ روز"
 ;
-; admin_controller.php line: 1472
+; admin_controller.php line: 1481
 admin_controller_recrawl_2day = "۲ روز"
 ;
-; admin_controller.php line: 1473
+; admin_controller.php line: 1482
 admin_controller_recrawl_3day = "۳ روز"
 ;
-; admin_controller.php line: 1474
+; admin_controller.php line: 1483
 admin_controller_recrawl_7day = "۷ روز"
 ;
-; admin_controller.php line: 1475
+; admin_controller.php line: 1484
 admin_controller_recrawl_14day = "۱۴ روز"
 ;
-; admin_controller.php line: 1685
+; admin_controller.php line: 1705
 admin_controller_page_options_updated = "تنظیمات صفحه به روز شد!"
 ;
-; admin_controller.php line: 1711
+; admin_controller.php line: 1731
 admin_controller_page_options_running_tests = ""
 ;
-; admin_controller.php line: 1860
+; admin_controller.php line: 1881
 admin_controller_new_classifier = ""
 ;
-; admin_controller.php line: 1863
+; admin_controller.php line: 1884
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1875
+; admin_controller.php line: 1896
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1893
+; admin_controller.php line: 1914
 admin_controller_finalizing_classifier = ""
 ;
-; admin_controller.php line: 1916
+; admin_controller.php line: 1937
 admin_controller_classifier_deleted = ""
 ;
-; admin_controller.php line: 1920
+; admin_controller.php line: 1941
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1969
+; admin_controller.php line: 1990
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1980
+; admin_controller.php line: 2001
 editclassifier_load_failed = ""
 ;
-; admin_controller.php line: 1982
+; admin_controller.php line: 2003
 editclassifier_loading = ""
 ;
-; admin_controller.php line: 1984
+; admin_controller.php line: 2005
 editclassifier_added_examples = ""
 ;
-; admin_controller.php line: 1986
+; admin_controller.php line: 2007
 editclassifier_label_update_failed = ""
 ;
-; admin_controller.php line: 1988
+; admin_controller.php line: 2009
 editclassifier_updating = ""
 ;
-; admin_controller.php line: 1990
+; admin_controller.php line: 2011
 editclassifier_acc_update_failed = ""
 ;
-; admin_controller.php line: 1992
+; admin_controller.php line: 2013
 editclassifier_na = ""
 ;
-; admin_controller.php line: 1994
+; admin_controller.php line: 2015
 editclassifier_no_docs = ""
 ;
-; admin_controller.php line: 1996
+; admin_controller.php line: 2017
 editclassifier_num_docs = ""
 ;
-; admin_controller.php line: 1998
+; admin_controller.php line: 2019
 editclassifier_in_class = ""
 ;
-; admin_controller.php line: 2000
+; admin_controller.php line: 2021
 editclassifier_not_in_class = ""
 ;
-; admin_controller.php line: 2002
+; admin_controller.php line: 2023
 editclassifier_skip = ""
 ;
-; admin_controller.php line: 2004
+; admin_controller.php line: 2025
 editclassifier_prediction = ""
 ;
-; admin_controller.php line: 2006
+; admin_controller.php line: 2027
 editclassifier_scores = ""
 ;
-; admin_controller.php line: 2050
+; admin_controller.php line: 2071
 admin_controller_results_editor_update = "پالایه صفحات به روز شد!"
 ;
-; admin_controller.php line: 2064
+; admin_controller.php line: 2085
 admin_controller_edited_pages = "یک URL که قبلن ویرایش شده انتخاب کنید"
 ;
-; admin_controller.php line: 2077
+; admin_controller.php line: 2098
 admin_controller_results_editor_need_url = "به روز رسانی صفحهٔ نتایج احتیاج به تعیین URL دارد! "
 ;
-; admin_controller.php line: 2083
+; admin_controller.php line: 2104
 admin_controller_results_editor_page_updated = "صفحهٔ نتایج به روز آوری شد!"
 ;
-; admin_controller.php line: 2096
+; admin_controller.php line: 2117
 admin_controller_results_editor_page_loaded = "صفحه بارگذاری شد!"
 ;
-; admin_controller.php line: 2141
+; admin_controller.php line: 2162
 admin_controller_select_machine = "یک دستگاه انتخاب کنید"
 ;
-; admin_controller.php line: 2212
+; admin_controller.php line: 2233
 admin_controller_machine_added = "دستگاه اضافه شد!"
 ;
-; admin_controller.php line: 2219
+; admin_controller.php line: 2240
 admin_controller_machine_exists = "دستگاه وجود دارد؛ لطفن اول حذف کنید! "
 ;
-; admin_controller.php line: 2223
+; admin_controller.php line: 2244
 admin_controller_machine_incomplete = "بعضی قسمت&zwnj;های فرم دستگاه پر نشده است!"
 ;
-; admin_controller.php line: 2232
+; admin_controller.php line: 2253
 admin_controller_machine_doesnt_exists = "این دستگاه وجود ندارد!"
 ;
-; admin_controller.php line: 2249
+; admin_controller.php line: 2270
 admin_controller_stop_service_first = "دستگاه در حال استفاده است. لطفن کاری که انجام می&zwnj;دهد را متوقف کنید!"
 ;
-; admin_controller.php line: 2262
+; admin_controller.php line: 2283
 admin_controller_machine_deleted = "دستگاه حذف شد!"
 ;
-; admin_controller.php line: 2283
+; admin_controller.php line: 2304
 admin_controller_news_process_running = ""
 ;
-; admin_controller.php line: 2291
+; admin_controller.php line: 2312
 admin_controller_news_mode_updated = ""
 ;
-; admin_controller.php line: 2295
+; admin_controller.php line: 2316
 admin_controller_news_update_failed = ""
 ;
-; admin_controller.php line: 2358
+; admin_controller.php line: 2379
 admin_controller_no_machine_log = "Log File پیدا نشد."
 ;
-; admin_controller.php line: 2387
+; admin_controller.php line: 2408
 admin_controller_machine_servers_updated = "سرورهای دستگاه به روز شدند!"
 ;
-; admin_controller.php line: 2391
+; admin_controller.php line: 2412
 admin_controller_machine_no_action = "نمی&zwnj;توان این فرمان را اجرا کرد!"
 ;
-; admin_controller.php line: 2424
+; admin_controller.php line: 2445
 admin_controller_select_localename = "یک زبان انتخاب کنید"
 ;
-; admin_controller.php line: 2468
+; admin_controller.php line: 2489
 admin_controller_locale_added = "زبان اضافه شد!"
 ;
-; admin_controller.php line: 2475
+; admin_controller.php line: 2496
 admin_controller_localename_doesnt_exists = "این زبان وجود ندارد!"
 ;
-; admin_controller.php line: 2484
+; admin_controller.php line: 2505
 admin_controller_localename_deleted = "زبان حذف شد"
 ;
-; admin_controller.php line: 2493
+; admin_controller.php line: 2514
 admin_controller_select_staticpages = "یک صفحه انتخاب کنید"
 ;
-; admin_controller.php line: 2512
+; admin_controller.php line: 2533
 admin_controller_staticpage_updated = "صفحه ایستا به روز شد!"
 ;
-; admin_controller.php line: 2539
+; admin_controller.php line: 2560
 admin_controller_localestrings_updated = "رشته&zwnj;های زبان به روز شد!"
 ;
-; admin_controller.php line: 2596
+; admin_controller.php line: 2617
 admin_controller_php_version = "PHP نسخهٔ ۳.۵ یا جدیدتر"
 ;
-; admin_controller.php line: 2604
+; admin_controller.php line: 2625
 admin_controller_no_write_config_php = "وب سرور نمی&zwnj;تواند در configs/config.php بنویسد."
 ;
-; admin_controller.php line: 2609
+; admin_controller.php line: 2630
 admin_controller_no_write_work_dir = "وب سرور باید بتواند در پوشهٔ کار بنویسد."
 ;
-; admin_controller.php line: 2614
+; admin_controller.php line: 2635
 admin_controller_post_size_small = "متغیر post_max_size در php.ini باید حداقل ۲ مگابایت باشد. "
 ;
-; admin_controller.php line: 2620
+; admin_controller.php line: 2641
 admin_controller_missing_required = "موارد لازم زیر خالی هستند: %s"
 ;
-; admin_controller.php line: 2643
+; admin_controller.php line: 2664
 admin_controller_missing_optional = "موارد اختیاری زیر خالی هستند: %s"
 ;
-; admin_controller.php line: 2648
+; admin_controller.php line: 2669
 admin_controller_check_passed = "در بررسی مشکلی پیدا نشد."
 ;
-; admin_controller.php line: 2653
+; admin_controller.php line: 2674
 admin_controller_using_local_config = "از configs/local_config.php استفاده می&zwnj;شود، بنابراین ممکن است تغییر بالا عمل نکند."
 ;
-; admin_controller.php line: 2678
+; admin_controller.php line: 2699
 admin_controller_media_kind = "نوع رسانه"
 ;
-; admin_controller.php line: 2679
+; admin_controller.php line: 2700
 admin_controller_video = "ویدیو"
 ;
-; admin_controller.php line: 2680
+; admin_controller.php line: 2701
 admin_controller_rss_feed = "RSS"
 ;
-; admin_controller.php line: 2694
+; admin_controller.php line: 2715
 admin_controller_sources_indexes = "نمایه/ترکیب مورد استفاده"
 ;
-; admin_controller.php line: 2747
+; admin_controller.php line: 2768
 admin_controller_media_source_added = "منبع رسانه&zwnj;ها اضافه شد!"
 ;
-; admin_controller.php line: 2755
+; admin_controller.php line: 2776
 admin_controller_media_source_deleted = "منبع رسانه&zwnj;ها حذف شد!"
 ;
-; admin_controller.php line: 2771
+; admin_controller.php line: 2792
 admin_controller_subsearch_added = "زیرجستجو اضافه شد!"
 ;
-; admin_controller.php line: 2779
+; admin_controller.php line: 2800
 admin_controller_subsearch_deleted = "زیر جستجو حذف شد!"
 ;
-; admin_controller.php line: 2854
+; admin_controller.php line: 2875
 admin_controller_configure_use_absolute_path = "باید از مسیر مطلق برای پوشهٔ کار استفاده کرد"
 ;
-; admin_controller.php line: 2866
+; admin_controller.php line: 2887
 admin_controller_configure_diff_base_dir = "پوشهٔ کار نمی&zwnj;تواند در پوشهٔ Yioop باشد."
 ;
-; admin_controller.php line: 2899
+; admin_controller.php line: 2920
 admin_controller_configure_work_dir_set = "پوشهٔ کار تنظیم شد! احتمالن لازم است دوباره وارد شوید.!"
 ;
-; admin_controller.php line: 2913
+; admin_controller.php line: 2934
 admin_controller_name_your_bot = "لطفن برای رباتتان نامی بگذارید"
 ;
-; admin_controller.php line: 2936
+; admin_controller.php line: 2957
 admin_controller_configure_work_profile_made = "پوشهٔ کار و پروفایل ساخته شدند!"
 ;
-; admin_controller.php line: 2949
+; admin_controller.php line: 2970
 admin_controller_configure_no_set_config = "نمی&zwnj;توان فایل config.php را به روز کرد!"
 ;
-; admin_controller.php line: 2961
+; admin_controller.php line: 2982
 admin_controller_configure_no_create_profile = "نمی&zwnj;توان پروفایل را ساخت!"
 ;
-; admin_controller.php line: 2972
+; admin_controller.php line: 2993
 admin_controller_configure_work_dir_invalid = "پوشهٔ کار معتبر نیست! نمی&zwnj;توان پروفایل را ساخت!"
 ;
-; admin_controller.php line: 2984
+; admin_controller.php line: 3005
 admin_controller_configure_work_dir_invalid = "پوشهٔ کار معتبر نیست! نمی&zwnj;توان پروفایل را ساخت!"
 ;
-; admin_controller.php line: 3032
+; admin_controller.php line: 3053
 admin_controller_configure_no_change_db = "در به روز رسانی پایگاه داده مشکلی پیش آمده است! "
 ;
-; admin_controller.php line: 3047
+; admin_controller.php line: 3068
 admin_controller_configure_profile_change = "پروفایل به روز شد!"
 ;
-; admin_controller.php line: 3062
+; admin_controller.php line: 3083
 admin_controller_configure_no_change_profile = "در به روز رسانی پروفایل مشکلی پیش آمده است!"
 ;
-; admin_controller.php line: 3100
+; admin_controller.php line: 3121
 admin_controller_describe_robot = "لطفن رباتتان را توصیف کنید"
 ;
 ; machine_controller.php line: 182
@@ -544,22 +544,22 @@ search_controller_crawl_delay = "تاخیر در خزش YioopBot"
 ; search_controller.php line: 1593
 search_controller_cache_comment = "صفحه کش Yioop ... این صفحه برای اضافه کردن دستورالعمل ربات، ایجاد لینک های مطلق، اضافه کردن خلاصه&zwnj;های استخراج شده، و برجسته سازی کلمات مورد پرسمان اصلاح شده است."
 ;
-; search_controller.php line: 1637
+; search_controller.php line: 1638
 search_controller_cached_version = "این نسخه کش شدهٔ ‪%‬s را خزندهٔ Yioop در ‪%‬s به دست آورده است."
 ;
-; search_controller.php line: 1752
+; search_controller.php line: 1753
 search_controller_header_summaries = " وضعیت سرصفحه استخراج شده و خلاصه را عوض کن"
 ;
-; search_controller.php line: 1876
+; search_controller.php line: 1877
 search_controller_history = "وضعیت تاریخچه را عوض کن"
 ;
-; search_controller.php line: 2052
+; search_controller.php line: 2053
 search_controller_all_cached = "همه نسخه های کش شده - سال و/یا ماه را برای دیدن لینک&zwnj;ها تغییر دهید"
 ;
-; search_controller.php line: 2083
+; search_controller.php line: 2084
 search_controller_year = "سال:"
 ;
-; search_controller.php line: 2084
+; search_controller.php line: 2085
 search_controller_month = "ماه:"
 ;
 ; settings_controller.php line: 134
@@ -1254,111 +1254,114 @@ pageoptions_element_load_options = ""
 pageoptions_element_page_range = "دامنهٔ میزان بایتی که بارگذاری می&zwnj;شود (۰ - میزان):"
 ;
 ; pageoptions_element.php line: 95
+pageoptions_element_max_description = ""
+;
+; pageoptions_element.php line: 100
 pageoptions_element_save_cache = ""
 ;
-; pageoptions_element.php line: 105
+; pageoptions_element.php line: 110
 pageoptions_element_allow_recrawl = "بگذار صفحه بعد از این مدت دوباره خزیده شود:"
 ;
-; pageoptions_element.php line: 111
+; pageoptions_element.php line: 116
 pageoptions_element_file_types = "نوع فایل صفحاتی که خزیده می&zwnj;شوند:"
 ;
-; pageoptions_element.php line: 141
+; pageoptions_element.php line: 146
 pageoptions_element_classifiers_to_apply = ""
 ;
-; pageoptions_element.php line: 176
+; pageoptions_element.php line: 181
 pageoptions_element_no_classifiers = ""
 ;
-; pageoptions_element.php line: 179
+; pageoptions_element.php line: 184
 pageoptions_element_indexing_plugins = "پلاگین&zwnj;های نمایه&zwnj;بندی"
 ;
-; pageoptions_element.php line: 183
+; pageoptions_element.php line: 188
 pageoptions_element_plugin = "پلاگین"
 ;
-; pageoptions_element.php line: 186
+; pageoptions_element.php line: 191
 pageoptions_element_plugin_include = "در خزش استفاده کن"
 ;
-; pageoptions_element.php line: 207
+; pageoptions_element.php line: 212
 pageoptions_element_no_compatible_plugins = ""
 ;
-; pageoptions_element.php line: 210
+; pageoptions_element.php line: 215
 pageoptions_element_page_rules = ""
 ;
-; pageoptions_element.php line: 218
+; pageoptions_element.php line: 223
 page_element_search_page = "لینک&zwnj;ها و عناصر صفحه جستجو"
 ;
-; pageoptions_element.php line: 223
+; pageoptions_element.php line: 228
 pageoptions_element_wd_suggest = "پیشنهاد کلمه"
 ;
-; pageoptions_element.php line: 231
+; pageoptions_element.php line: 236
 pageoptions_element_subsearch_link = "زیرجستجو"
 ;
-; pageoptions_element.php line: 240
+; pageoptions_element.php line: 245
 pageoptions_element_signin_link = "ورود"
 ;
-; pageoptions_element.php line: 247
+; pageoptions_element.php line: 252
 pageoptions_element_cache_link = "کش"
 ;
-; pageoptions_element.php line: 255
+; pageoptions_element.php line: 260
 pageoptions_element_similar_link = "مشابه"
 ;
-; pageoptions_element.php line: 263
+; pageoptions_element.php line: 268
 pageoptions_element_in_link = "لینک&zwnj;های داخلی"
 ;
-; pageoptions_element.php line: 269
+; pageoptions_element.php line: 274
 pageoptions_element_ip_link = "آدرس IP"
 ;
-; pageoptions_element.php line: 278
+; pageoptions_element.php line: 283
 pageoptions_element_ranking_factors = ""
 ;
-; pageoptions_element.php line: 281
+; pageoptions_element.php line: 286
 pageoptions_element_title_weight = "وزن عنوان:"
 ;
-; pageoptions_element.php line: 286
+; pageoptions_element.php line: 291
 pageoptions_element_description_weight = "وزن توضیحات:"
 ;
-; pageoptions_element.php line: 291
+; pageoptions_element.php line: 296
 pageoptions_element_link_weight = "وزن پیوند:"
 ;
-; pageoptions_element.php line: 296
+; pageoptions_element.php line: 301
 pageoptions_element_results_grouping_options = "دسته&zwnj;بندی نتایج جستجو"
 ;
-; pageoptions_element.php line: 299
+; pageoptions_element.php line: 304
 pageoptions_element_min_results_to_group = "حداقل تعداد هر دسته:"
 ;
-; pageoptions_element.php line: 304
+; pageoptions_element.php line: 309
 pageoptions_element_server_alpha = "آلفای سرور:"
 ;
-; pageoptions_element.php line: 312
+; pageoptions_element.php line: 317
 pageoptions_element_test_page = ""
 ;
-; pageoptions_element.php line: 314
+; pageoptions_element.php line: 319
 pageoptions_element_page_type = ""
 ;
-; pageoptions_element.php line: 331
+; pageoptions_element.php line: 336
 pageoptions_element_save_options = "ذخیره"
 ;
-; pageoptions_element.php line: 333
+; pageoptions_element.php line: 338
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 339
+; pageoptions_element.php line: 344
 pageoptions_element_test_results = ""
 ;
-; pageoptions_element.php line: 342
+; pageoptions_element.php line: 347
 pageoptions_element_after_process = ""
 ;
-; pageoptions_element.php line: 346
+; pageoptions_element.php line: 351
 pageoptions_element_after_rules = ""
 ;
-; pageoptions_element.php line: 350
+; pageoptions_element.php line: 355
 pageoptions_element_extracted_words = ""
 ;
-; pageoptions_element.php line: 354
+; pageoptions_element.php line: 359
 pageoptions_element_extracted_metas = ""
 ;
-; pageoptions_element.php line: 388
+; pageoptions_element.php line: 393
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 392
+; pageoptions_element.php line: 397
 pageoptions_element_save_options = "ذخیره"
 ;
 ; resultseditor_element.php line: 58
diff --git a/locale/fr-FR/configure.ini b/locale/fr-FR/configure.ini
index 4e6686f..9407a7b 100755
--- a/locale/fr-FR/configure.ini
+++ b/locale/fr-FR/configure.ini
@@ -154,346 +154,346 @@ admin_controller_starting_new_crawl = ""
 ; admin_controller.php line: 868
 admin_controller_no_description = ""
 ;
-; admin_controller.php line: 981
+; admin_controller.php line: 985
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 982
+; admin_controller.php line: 986
 admin_controller_use_defaults = ""
 ;
-; admin_controller.php line: 984
+; admin_controller.php line: 988
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 988
+; admin_controller.php line: 992
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1075
+; admin_controller.php line: 1084
 admin_controller_breadth_first = ""
 ;
-; admin_controller.php line: 1077
+; admin_controller.php line: 1086
 admin_controller_page_importance = ""
 ;
-; admin_controller.php line: 1143
+; admin_controller.php line: 1152
 admin_controller_urls_injected = ""
 ;
-; admin_controller.php line: 1154
+; admin_controller.php line: 1163
 admin_controller_update_seed_info = ""
 ;
-; admin_controller.php line: 1246
+; admin_controller.php line: 1255
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1247
+; admin_controller.php line: 1256
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1249
+; admin_controller.php line: 1258
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1251
+; admin_controller.php line: 1260
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1278
+; admin_controller.php line: 1287
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1283
+; admin_controller.php line: 1292
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1292
+; admin_controller.php line: 1301
 admin_controller_set_index = ""
 ;
-; admin_controller.php line: 1302
+; admin_controller.php line: 1311
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1310
+; admin_controller.php line: 1319
 admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1346
+; admin_controller.php line: 1355
 editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1348
+; admin_controller.php line: 1357
 editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1349
+; admin_controller.php line: 1358
 editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1350
+; admin_controller.php line: 1359
 editmix_element_weight = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1360
 editmix_element_name = ""
 ;
-; admin_controller.php line: 1352
+; admin_controller.php line: 1361
 editmix_add_keywords = ""
 ;
-; admin_controller.php line: 1353
+; admin_controller.php line: 1362
 editmix_element_actions = ""
 ;
-; admin_controller.php line: 1354
+; admin_controller.php line: 1363
 editmix_add_query = ""
 ;
-; admin_controller.php line: 1355
+; admin_controller.php line: 1364
 editmix_element_delete = ""
 ;
-; admin_controller.php line: 1407
+; admin_controller.php line: 1416
 admin_controller_mix_saved = ""
 ;
-; admin_controller.php line: 1458
+; admin_controller.php line: 1467
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 1459
+; admin_controller.php line: 1468
 admin_controller_use_defaults = ""
 ;
-; admin_controller.php line: 1461
+; admin_controller.php line: 1470
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 1465
+; admin_controller.php line: 1474
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1470
+; admin_controller.php line: 1479
 admin_controller_recrawl_never = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1480
 admin_controller_recrawl_1day = ""
 ;
-; admin_controller.php line: 1472
+; admin_controller.php line: 1481
 admin_controller_recrawl_2day = ""
 ;
-; admin_controller.php line: 1473
+; admin_controller.php line: 1482
 admin_controller_recrawl_3day = ""
 ;
-; admin_controller.php line: 1474
+; admin_controller.php line: 1483
 admin_controller_recrawl_7day = ""
 ;
-; admin_controller.php line: 1475
+; admin_controller.php line: 1484
 admin_controller_recrawl_14day = ""
 ;
-; admin_controller.php line: 1685
+; admin_controller.php line: 1705
 admin_controller_page_options_updated = ""
 ;
-; admin_controller.php line: 1711
+; admin_controller.php line: 1731
 admin_controller_page_options_running_tests = ""
 ;
-; admin_controller.php line: 1860
+; admin_controller.php line: 1881
 admin_controller_new_classifier = ""
 ;
-; admin_controller.php line: 1863
+; admin_controller.php line: 1884
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1875
+; admin_controller.php line: 1896
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1893
+; admin_controller.php line: 1914
 admin_controller_finalizing_classifier = ""
 ;
-; admin_controller.php line: 1916
+; admin_controller.php line: 1937
 admin_controller_classifier_deleted = ""
 ;
-; admin_controller.php line: 1920
+; admin_controller.php line: 1941
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1969
+; admin_controller.php line: 1990
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1980
+; admin_controller.php line: 2001
 editclassifier_load_failed = ""
 ;
-; admin_controller.php line: 1982
+; admin_controller.php line: 2003
 editclassifier_loading = ""
 ;
-; admin_controller.php line: 1984
+; admin_controller.php line: 2005
 editclassifier_added_examples = ""
 ;
-; admin_controller.php line: 1986
+; admin_controller.php line: 2007
 editclassifier_label_update_failed = ""
 ;
-; admin_controller.php line: 1988
+; admin_controller.php line: 2009
 editclassifier_updating = ""
 ;
-; admin_controller.php line: 1990
+; admin_controller.php line: 2011
 editclassifier_acc_update_failed = ""
 ;
-; admin_controller.php line: 1992
+; admin_controller.php line: 2013
 editclassifier_na = ""
 ;
-; admin_controller.php line: 1994
+; admin_controller.php line: 2015
 editclassifier_no_docs = ""
 ;
-; admin_controller.php line: 1996
+; admin_controller.php line: 2017
 editclassifier_num_docs = ""
 ;
-; admin_controller.php line: 1998
+; admin_controller.php line: 2019
 editclassifier_in_class = ""
 ;
-; admin_controller.php line: 2000
+; admin_controller.php line: 2021
 editclassifier_not_in_class = ""
 ;
-; admin_controller.php line: 2002
+; admin_controller.php line: 2023
 editclassifier_skip = ""
 ;
-; admin_controller.php line: 2004
+; admin_controller.php line: 2025
 editclassifier_prediction = ""
 ;
-; admin_controller.php line: 2006
+; admin_controller.php line: 2027
 editclassifier_scores = ""
 ;
-; admin_controller.php line: 2050
+; admin_controller.php line: 2071
 admin_controller_results_editor_update = ""
 ;
-; admin_controller.php line: 2064
+; admin_controller.php line: 2085
 admin_controller_edited_pages = ""
 ;
-; admin_controller.php line: 2077
+; admin_controller.php line: 2098
 admin_controller_results_editor_need_url = ""
 ;
-; admin_controller.php line: 2083
+; admin_controller.php line: 2104
 admin_controller_results_editor_page_updated = ""
 ;
-; admin_controller.php line: 2096
+; admin_controller.php line: 2117
 admin_controller_results_editor_page_loaded = ""
 ;
-; admin_controller.php line: 2141
+; admin_controller.php line: 2162
 admin_controller_select_machine = ""
 ;
-; admin_controller.php line: 2212
+; admin_controller.php line: 2233
 admin_controller_machine_added = ""
 ;
-; admin_controller.php line: 2219
+; admin_controller.php line: 2240
 admin_controller_machine_exists = ""
 ;
-; admin_controller.php line: 2223
+; admin_controller.php line: 2244
 admin_controller_machine_incomplete = ""
 ;
-; admin_controller.php line: 2232
+; admin_controller.php line: 2253
 admin_controller_machine_doesnt_exists = ""
 ;
-; admin_controller.php line: 2249
+; admin_controller.php line: 2270
 admin_controller_stop_service_first = ""
 ;
-; admin_controller.php line: 2262
+; admin_controller.php line: 2283
 admin_controller_machine_deleted = ""
 ;
-; admin_controller.php line: 2283
+; admin_controller.php line: 2304
 admin_controller_news_process_running = ""
 ;
-; admin_controller.php line: 2291
+; admin_controller.php line: 2312
 admin_controller_news_mode_updated = ""
 ;
-; admin_controller.php line: 2295
+; admin_controller.php line: 2316
 admin_controller_news_update_failed = ""
 ;
-; admin_controller.php line: 2358
+; admin_controller.php line: 2379
 admin_controller_no_machine_log = ""
 ;
-; admin_controller.php line: 2387
+; admin_controller.php line: 2408
 admin_controller_machine_servers_updated = ""
 ;
-; admin_controller.php line: 2391
+; admin_controller.php line: 2412
 admin_controller_machine_no_action = ""
 ;
-; admin_controller.php line: 2424
+; admin_controller.php line: 2445
 admin_controller_select_localename = ""
 ;
-; admin_controller.php line: 2468
+; admin_controller.php line: 2489
 admin_controller_locale_added = ""
 ;
-; admin_controller.php line: 2475
+; admin_controller.php line: 2496
 admin_controller_localename_doesnt_exists = ""
 ;
-; admin_controller.php line: 2484
+; admin_controller.php line: 2505
 admin_controller_localename_deleted = ""
 ;
-; admin_controller.php line: 2493
+; admin_controller.php line: 2514
 admin_controller_select_staticpages = ""
 ;
-; admin_controller.php line: 2512
+; admin_controller.php line: 2533
 admin_controller_staticpage_updated = ""
 ;
-; admin_controller.php line: 2539
+; admin_controller.php line: 2560
 admin_controller_localestrings_updated = ""
 ;
-; admin_controller.php line: 2596
+; admin_controller.php line: 2617
 admin_controller_php_version = ""
 ;
-; admin_controller.php line: 2604
+; admin_controller.php line: 2625
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 2609
+; admin_controller.php line: 2630
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 2614
+; admin_controller.php line: 2635
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 2620
+; admin_controller.php line: 2641
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 2643
+; admin_controller.php line: 2664
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 2648
+; admin_controller.php line: 2669
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 2653
+; admin_controller.php line: 2674
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 2678
+; admin_controller.php line: 2699
 admin_controller_media_kind = ""
 ;
-; admin_controller.php line: 2679
+; admin_controller.php line: 2700
 admin_controller_video = ""
 ;
-; admin_controller.php line: 2680
+; admin_controller.php line: 2701
 admin_controller_rss_feed = ""
 ;
-; admin_controller.php line: 2694
+; admin_controller.php line: 2715
 admin_controller_sources_indexes = ""
 ;
-; admin_controller.php line: 2747
+; admin_controller.php line: 2768
 admin_controller_media_source_added = ""
 ;
-; admin_controller.php line: 2755
+; admin_controller.php line: 2776
 admin_controller_media_source_deleted = ""
 ;
-; admin_controller.php line: 2771
+; admin_controller.php line: 2792
 admin_controller_subsearch_added = ""
 ;
-; admin_controller.php line: 2779
+; admin_controller.php line: 2800
 admin_controller_subsearch_deleted = ""
 ;
-; admin_controller.php line: 2854
+; admin_controller.php line: 2875
 admin_controller_configure_use_absolute_path = ""
 ;
-; admin_controller.php line: 2866
+; admin_controller.php line: 2887
 admin_controller_configure_diff_base_dir = ""
 ;
-; admin_controller.php line: 2899
+; admin_controller.php line: 2920
 admin_controller_configure_work_dir_set = ""
 ;
-; admin_controller.php line: 2913
+; admin_controller.php line: 2934
 admin_controller_name_your_bot = ""
 ;
-; admin_controller.php line: 2936
+; admin_controller.php line: 2957
 admin_controller_configure_work_profile_made = ""
 ;
-; admin_controller.php line: 2949
+; admin_controller.php line: 2970
 admin_controller_configure_no_set_config = ""
 ;
-; admin_controller.php line: 2961
+; admin_controller.php line: 2982
 admin_controller_configure_no_create_profile = ""
 ;
-; admin_controller.php line: 2972
+; admin_controller.php line: 2993
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 2984
+; admin_controller.php line: 3005
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 3032
+; admin_controller.php line: 3053
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 3047
+; admin_controller.php line: 3068
 admin_controller_configure_profile_change = ""
 ;
-; admin_controller.php line: 3062
+; admin_controller.php line: 3083
 admin_controller_configure_no_change_profile = ""
 ;
-; admin_controller.php line: 3100
+; admin_controller.php line: 3121
 admin_controller_describe_robot = ""
 ;
 ; machine_controller.php line: 182
@@ -544,22 +544,22 @@ search_controller_crawl_delay = ""
 ; search_controller.php line: 1593
 search_controller_cache_comment = ""
 ;
-; search_controller.php line: 1637
+; search_controller.php line: 1638
 search_controller_cached_version = ""
 ;
-; search_controller.php line: 1752
+; search_controller.php line: 1753
 search_controller_header_summaries = ""
 ;
-; search_controller.php line: 1876
+; search_controller.php line: 1877
 search_controller_history = ""
 ;
-; search_controller.php line: 2052
+; search_controller.php line: 2053
 search_controller_all_cached = ""
 ;
-; search_controller.php line: 2083
+; search_controller.php line: 2084
 search_controller_year = "Ann&eacute;e:"
 ;
-; search_controller.php line: 2084
+; search_controller.php line: 2085
 search_controller_month = "Mois:"
 ;
 ; settings_controller.php line: 134
@@ -1254,111 +1254,114 @@ pageoptions_element_load_options = ""
 pageoptions_element_page_range = ""
 ;
 ; pageoptions_element.php line: 95
+pageoptions_element_max_description = ""
+;
+; pageoptions_element.php line: 100
 pageoptions_element_save_cache = ""
 ;
-; pageoptions_element.php line: 105
+; pageoptions_element.php line: 110
 pageoptions_element_allow_recrawl = ""
 ;
-; pageoptions_element.php line: 111
+; pageoptions_element.php line: 116
 pageoptions_element_file_types = ""
 ;
-; pageoptions_element.php line: 141
+; pageoptions_element.php line: 146
 pageoptions_element_classifiers_to_apply = ""
 ;
-; pageoptions_element.php line: 176
+; pageoptions_element.php line: 181
 pageoptions_element_no_classifiers = ""
 ;
-; pageoptions_element.php line: 179
+; pageoptions_element.php line: 184
 pageoptions_element_indexing_plugins = ""
 ;
-; pageoptions_element.php line: 183
+; pageoptions_element.php line: 188
 pageoptions_element_plugin = ""
 ;
-; pageoptions_element.php line: 186
+; pageoptions_element.php line: 191
 pageoptions_element_plugin_include = ""
 ;
-; pageoptions_element.php line: 207
+; pageoptions_element.php line: 212
 pageoptions_element_no_compatible_plugins = ""
 ;
-; pageoptions_element.php line: 210
+; pageoptions_element.php line: 215
 pageoptions_element_page_rules = ""
 ;
-; pageoptions_element.php line: 218
+; pageoptions_element.php line: 223
 page_element_search_page = ""
 ;
-; pageoptions_element.php line: 223
+; pageoptions_element.php line: 228
 pageoptions_element_wd_suggest = ""
 ;
-; pageoptions_element.php line: 231
+; pageoptions_element.php line: 236
 pageoptions_element_subsearch_link = ""
 ;
-; pageoptions_element.php line: 240
+; pageoptions_element.php line: 245
 pageoptions_element_signin_link = ""
 ;
-; pageoptions_element.php line: 247
+; pageoptions_element.php line: 252
 pageoptions_element_cache_link = ""
 ;
-; pageoptions_element.php line: 255
+; pageoptions_element.php line: 260
 pageoptions_element_similar_link = ""
 ;
-; pageoptions_element.php line: 263
+; pageoptions_element.php line: 268
 pageoptions_element_in_link = ""
 ;
-; pageoptions_element.php line: 269
+; pageoptions_element.php line: 274
 pageoptions_element_ip_link = ""
 ;
-; pageoptions_element.php line: 278
+; pageoptions_element.php line: 283
 pageoptions_element_ranking_factors = ""
 ;
-; pageoptions_element.php line: 281
+; pageoptions_element.php line: 286
 pageoptions_element_title_weight = ""
 ;
-; pageoptions_element.php line: 286
+; pageoptions_element.php line: 291
 pageoptions_element_description_weight = ""
 ;
-; pageoptions_element.php line: 291
+; pageoptions_element.php line: 296
 pageoptions_element_link_weight = ""
 ;
-; pageoptions_element.php line: 296
+; pageoptions_element.php line: 301
 pageoptions_element_results_grouping_options = ""
 ;
-; pageoptions_element.php line: 299
+; pageoptions_element.php line: 304
 pageoptions_element_min_results_to_group = ""
 ;
-; pageoptions_element.php line: 304
+; pageoptions_element.php line: 309
 pageoptions_element_server_alpha = ""
 ;
-; pageoptions_element.php line: 312
+; pageoptions_element.php line: 317
 pageoptions_element_test_page = ""
 ;
-; pageoptions_element.php line: 314
+; pageoptions_element.php line: 319
 pageoptions_element_page_type = ""
 ;
-; pageoptions_element.php line: 331
+; pageoptions_element.php line: 336
 pageoptions_element_save_options = ""
 ;
-; pageoptions_element.php line: 333
+; pageoptions_element.php line: 338
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 339
+; pageoptions_element.php line: 344
 pageoptions_element_test_results = ""
 ;
-; pageoptions_element.php line: 342
+; pageoptions_element.php line: 347
 pageoptions_element_after_process = ""
 ;
-; pageoptions_element.php line: 346
+; pageoptions_element.php line: 351
 pageoptions_element_after_rules = ""
 ;
-; pageoptions_element.php line: 350
+; pageoptions_element.php line: 355
 pageoptions_element_extracted_words = ""
 ;
-; pageoptions_element.php line: 354
+; pageoptions_element.php line: 359
 pageoptions_element_extracted_metas = ""
 ;
-; pageoptions_element.php line: 388
+; pageoptions_element.php line: 393
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 392
+; pageoptions_element.php line: 397
 pageoptions_element_save_options = ""
 ;
 ; resultseditor_element.php line: 58
diff --git a/locale/he/configure.ini b/locale/he/configure.ini
index e65415d..0384db1 100755
--- a/locale/he/configure.ini
+++ b/locale/he/configure.ini
@@ -154,346 +154,346 @@ admin_controller_starting_new_crawl = ""
 ; admin_controller.php line: 868
 admin_controller_no_description = ""
 ;
-; admin_controller.php line: 981
+; admin_controller.php line: 985
 admin_controller_use_below = "השתמש באפשרויות הבאות"
 ;
-; admin_controller.php line: 982
+; admin_controller.php line: 986
 admin_controller_use_defaults = " השתמש כבררת מחדל כמנוע חיפוש"
 ;
-; admin_controller.php line: 984
+; admin_controller.php line: 988
 admin_controller_use_below = "השתמש באפשרויות הבאות"
 ;
-; admin_controller.php line: 988
+; admin_controller.php line: 992
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1075
+; admin_controller.php line: 1084
 admin_controller_breadth_first = ""
 ;
-; admin_controller.php line: 1077
+; admin_controller.php line: 1086
 admin_controller_page_importance = ""
 ;
-; admin_controller.php line: 1143
+; admin_controller.php line: 1152
 admin_controller_urls_injected = ""
 ;
-; admin_controller.php line: 1154
+; admin_controller.php line: 1163
 admin_controller_update_seed_info = ""
 ;
-; admin_controller.php line: 1246
+; admin_controller.php line: 1255
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1247
+; admin_controller.php line: 1256
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1249
+; admin_controller.php line: 1258
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1251
+; admin_controller.php line: 1260
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1278
+; admin_controller.php line: 1287
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1283
+; admin_controller.php line: 1292
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1292
+; admin_controller.php line: 1301
 admin_controller_set_index = ""
 ;
-; admin_controller.php line: 1302
+; admin_controller.php line: 1311
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1310
+; admin_controller.php line: 1319
 admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1346
+; admin_controller.php line: 1355
 editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1348
+; admin_controller.php line: 1357
 editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1349
+; admin_controller.php line: 1358
 editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1350
+; admin_controller.php line: 1359
 editmix_element_weight = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1360
 editmix_element_name = ""
 ;
-; admin_controller.php line: 1352
+; admin_controller.php line: 1361
 editmix_add_keywords = ""
 ;
-; admin_controller.php line: 1353
+; admin_controller.php line: 1362
 editmix_element_actions = ""
 ;
-; admin_controller.php line: 1354
+; admin_controller.php line: 1363
 editmix_add_query = ""
 ;
-; admin_controller.php line: 1355
+; admin_controller.php line: 1364
 editmix_element_delete = ""
 ;
-; admin_controller.php line: 1407
+; admin_controller.php line: 1416
 admin_controller_mix_saved = ""
 ;
-; admin_controller.php line: 1458
+; admin_controller.php line: 1467
 admin_controller_use_below = "השתמש באפשרויות הבאות"
 ;
-; admin_controller.php line: 1459
+; admin_controller.php line: 1468
 admin_controller_use_defaults = " השתמש כבררת מחדל כמנוע חיפוש"
 ;
-; admin_controller.php line: 1461
+; admin_controller.php line: 1470
 admin_controller_use_below = "השתמש באפשרויות הבאות"
 ;
-; admin_controller.php line: 1465
+; admin_controller.php line: 1474
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1470
+; admin_controller.php line: 1479
 admin_controller_recrawl_never = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1480
 admin_controller_recrawl_1day = ""
 ;
-; admin_controller.php line: 1472
+; admin_controller.php line: 1481
 admin_controller_recrawl_2day = ""
 ;
-; admin_controller.php line: 1473
+; admin_controller.php line: 1482
 admin_controller_recrawl_3day = ""
 ;
-; admin_controller.php line: 1474
+; admin_controller.php line: 1483
 admin_controller_recrawl_7day = ""
 ;
-; admin_controller.php line: 1475
+; admin_controller.php line: 1484
 admin_controller_recrawl_14day = ""
 ;
-; admin_controller.php line: 1685
+; admin_controller.php line: 1705
 admin_controller_page_options_updated = ""
 ;
-; admin_controller.php line: 1711
+; admin_controller.php line: 1731
 admin_controller_page_options_running_tests = ""
 ;
-; admin_controller.php line: 1860
+; admin_controller.php line: 1881
 admin_controller_new_classifier = ""
 ;
-; admin_controller.php line: 1863
+; admin_controller.php line: 1884
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1875
+; admin_controller.php line: 1896
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1893
+; admin_controller.php line: 1914
 admin_controller_finalizing_classifier = ""
 ;
-; admin_controller.php line: 1916
+; admin_controller.php line: 1937
 admin_controller_classifier_deleted = ""
 ;
-; admin_controller.php line: 1920
+; admin_controller.php line: 1941
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1969
+; admin_controller.php line: 1990
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1980
+; admin_controller.php line: 2001
 editclassifier_load_failed = ""
 ;
-; admin_controller.php line: 1982
+; admin_controller.php line: 2003
 editclassifier_loading = ""
 ;
-; admin_controller.php line: 1984
+; admin_controller.php line: 2005
 editclassifier_added_examples = ""
 ;
-; admin_controller.php line: 1986
+; admin_controller.php line: 2007
 editclassifier_label_update_failed = ""
 ;
-; admin_controller.php line: 1988
+; admin_controller.php line: 2009
 editclassifier_updating = ""
 ;
-; admin_controller.php line: 1990
+; admin_controller.php line: 2011
 editclassifier_acc_update_failed = ""
 ;
-; admin_controller.php line: 1992
+; admin_controller.php line: 2013
 editclassifier_na = ""
 ;
-; admin_controller.php line: 1994
+; admin_controller.php line: 2015
 editclassifier_no_docs = ""
 ;
-; admin_controller.php line: 1996
+; admin_controller.php line: 2017
 editclassifier_num_docs = ""
 ;
-; admin_controller.php line: 1998
+; admin_controller.php line: 2019
 editclassifier_in_class = ""
 ;
-; admin_controller.php line: 2000
+; admin_controller.php line: 2021
 editclassifier_not_in_class = ""
 ;
-; admin_controller.php line: 2002
+; admin_controller.php line: 2023
 editclassifier_skip = ""
 ;
-; admin_controller.php line: 2004
+; admin_controller.php line: 2025
 editclassifier_prediction = ""
 ;
-; admin_controller.php line: 2006
+; admin_controller.php line: 2027
 editclassifier_scores = ""
 ;
-; admin_controller.php line: 2050
+; admin_controller.php line: 2071
 admin_controller_results_editor_update = ""
 ;
-; admin_controller.php line: 2064
+; admin_controller.php line: 2085
 admin_controller_edited_pages = ""
 ;
-; admin_controller.php line: 2077
+; admin_controller.php line: 2098
 admin_controller_results_editor_need_url = ""
 ;
-; admin_controller.php line: 2083
+; admin_controller.php line: 2104
 admin_controller_results_editor_page_updated = ""
 ;
-; admin_controller.php line: 2096
+; admin_controller.php line: 2117
 admin_controller_results_editor_page_loaded = ""
 ;
-; admin_controller.php line: 2141
+; admin_controller.php line: 2162
 admin_controller_select_machine = ""
 ;
-; admin_controller.php line: 2212
+; admin_controller.php line: 2233
 admin_controller_machine_added = ""
 ;
-; admin_controller.php line: 2219
+; admin_controller.php line: 2240
 admin_controller_machine_exists = ""
 ;
-; admin_controller.php line: 2223
+; admin_controller.php line: 2244
 admin_controller_machine_incomplete = ""
 ;
-; admin_controller.php line: 2232
+; admin_controller.php line: 2253
 admin_controller_machine_doesnt_exists = ""
 ;
-; admin_controller.php line: 2249
+; admin_controller.php line: 2270
 admin_controller_stop_service_first = ""
 ;
-; admin_controller.php line: 2262
+; admin_controller.php line: 2283
 admin_controller_machine_deleted = ""
 ;
-; admin_controller.php line: 2283
+; admin_controller.php line: 2304
 admin_controller_news_process_running = ""
 ;
-; admin_controller.php line: 2291
+; admin_controller.php line: 2312
 admin_controller_news_mode_updated = ""
 ;
-; admin_controller.php line: 2295
+; admin_controller.php line: 2316
 admin_controller_news_update_failed = ""
 ;
-; admin_controller.php line: 2358
+; admin_controller.php line: 2379
 admin_controller_no_machine_log = ""
 ;
-; admin_controller.php line: 2387
+; admin_controller.php line: 2408
 admin_controller_machine_servers_updated = ""
 ;
-; admin_controller.php line: 2391
+; admin_controller.php line: 2412
 admin_controller_machine_no_action = ""
 ;
-; admin_controller.php line: 2424
+; admin_controller.php line: 2445
 admin_controller_select_localename = ""
 ;
-; admin_controller.php line: 2468
+; admin_controller.php line: 2489
 admin_controller_locale_added = ""
 ;
-; admin_controller.php line: 2475
+; admin_controller.php line: 2496
 admin_controller_localename_doesnt_exists = ""
 ;
-; admin_controller.php line: 2484
+; admin_controller.php line: 2505
 admin_controller_localename_deleted = ""
 ;
-; admin_controller.php line: 2493
+; admin_controller.php line: 2514
 admin_controller_select_staticpages = ""
 ;
-; admin_controller.php line: 2512
+; admin_controller.php line: 2533
 admin_controller_staticpage_updated = ""
 ;
-; admin_controller.php line: 2539
+; admin_controller.php line: 2560
 admin_controller_localestrings_updated = ""
 ;
-; admin_controller.php line: 2596
+; admin_controller.php line: 2617
 admin_controller_php_version = ""
 ;
-; admin_controller.php line: 2604
+; admin_controller.php line: 2625
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 2609
+; admin_controller.php line: 2630
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 2614
+; admin_controller.php line: 2635
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 2620
+; admin_controller.php line: 2641
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 2643
+; admin_controller.php line: 2664
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 2648
+; admin_controller.php line: 2669
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 2653
+; admin_controller.php line: 2674
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 2678
+; admin_controller.php line: 2699
 admin_controller_media_kind = ""
 ;
-; admin_controller.php line: 2679
+; admin_controller.php line: 2700
 admin_controller_video = ""
 ;
-; admin_controller.php line: 2680
+; admin_controller.php line: 2701
 admin_controller_rss_feed = ""
 ;
-; admin_controller.php line: 2694
+; admin_controller.php line: 2715
 admin_controller_sources_indexes = ""
 ;
-; admin_controller.php line: 2747
+; admin_controller.php line: 2768
 admin_controller_media_source_added = ""
 ;
-; admin_controller.php line: 2755
+; admin_controller.php line: 2776
 admin_controller_media_source_deleted = ""
 ;
-; admin_controller.php line: 2771
+; admin_controller.php line: 2792
 admin_controller_subsearch_added = ""
 ;
-; admin_controller.php line: 2779
+; admin_controller.php line: 2800
 admin_controller_subsearch_deleted = ""
 ;
-; admin_controller.php line: 2854
+; admin_controller.php line: 2875
 admin_controller_configure_use_absolute_path = ""
 ;
-; admin_controller.php line: 2866
+; admin_controller.php line: 2887
 admin_controller_configure_diff_base_dir = ""
 ;
-; admin_controller.php line: 2899
+; admin_controller.php line: 2920
 admin_controller_configure_work_dir_set = ""
 ;
-; admin_controller.php line: 2913
+; admin_controller.php line: 2934
 admin_controller_name_your_bot = ""
 ;
-; admin_controller.php line: 2936
+; admin_controller.php line: 2957
 admin_controller_configure_work_profile_made = ""
 ;
-; admin_controller.php line: 2949
+; admin_controller.php line: 2970
 admin_controller_configure_no_set_config = ""
 ;
-; admin_controller.php line: 2961
+; admin_controller.php line: 2982
 admin_controller_configure_no_create_profile = ""
 ;
-; admin_controller.php line: 2972
+; admin_controller.php line: 2993
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 2984
+; admin_controller.php line: 3005
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 3032
+; admin_controller.php line: 3053
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 3047
+; admin_controller.php line: 3068
 admin_controller_configure_profile_change = "פרופייל עודכן"
 ;
-; admin_controller.php line: 3062
+; admin_controller.php line: 3083
 admin_controller_configure_no_change_profile = "בעיה עם עדכון הפרופייל"
 ;
-; admin_controller.php line: 3100
+; admin_controller.php line: 3121
 admin_controller_describe_robot = ""
 ;
 ; machine_controller.php line: 182
@@ -544,22 +544,22 @@ search_controller_crawl_delay = ""
 ; search_controller.php line: 1593
 search_controller_cache_comment = ""
 ;
-; search_controller.php line: 1637
+; search_controller.php line: 1638
 search_controller_cached_version = ""
 ;
-; search_controller.php line: 1752
+; search_controller.php line: 1753
 search_controller_header_summaries = ""
 ;
-; search_controller.php line: 1876
+; search_controller.php line: 1877
 search_controller_history = ""
 ;
-; search_controller.php line: 2052
+; search_controller.php line: 2053
 search_controller_all_cached = ""
 ;
-; search_controller.php line: 2083
+; search_controller.php line: 2084
 search_controller_year = ""
 ;
-; search_controller.php line: 2084
+; search_controller.php line: 2085
 search_controller_month = ""
 ;
 ; settings_controller.php line: 134
@@ -1254,111 +1254,114 @@ pageoptions_element_load_options = ""
 pageoptions_element_page_range = ""
 ;
 ; pageoptions_element.php line: 95
+pageoptions_element_max_description = ""
+;
+; pageoptions_element.php line: 100
 pageoptions_element_save_cache = ""
 ;
-; pageoptions_element.php line: 105
+; pageoptions_element.php line: 110
 pageoptions_element_allow_recrawl = ""
 ;
-; pageoptions_element.php line: 111
+; pageoptions_element.php line: 116
 pageoptions_element_file_types = ""
 ;
-; pageoptions_element.php line: 141
+; pageoptions_element.php line: 146
 pageoptions_element_classifiers_to_apply = ""
 ;
-; pageoptions_element.php line: 176
+; pageoptions_element.php line: 181
 pageoptions_element_no_classifiers = ""
 ;
-; pageoptions_element.php line: 179
+; pageoptions_element.php line: 184
 pageoptions_element_indexing_plugins = ""
 ;
-; pageoptions_element.php line: 183
+; pageoptions_element.php line: 188
 pageoptions_element_plugin = ""
 ;
-; pageoptions_element.php line: 186
+; pageoptions_element.php line: 191
 pageoptions_element_plugin_include = ""
 ;
-; pageoptions_element.php line: 207
+; pageoptions_element.php line: 212
 pageoptions_element_no_compatible_plugins = ""
 ;
-; pageoptions_element.php line: 210
+; pageoptions_element.php line: 215
 pageoptions_element_page_rules = ""
 ;
-; pageoptions_element.php line: 218
+; pageoptions_element.php line: 223
 page_element_search_page = ""
 ;
-; pageoptions_element.php line: 223
+; pageoptions_element.php line: 228
 pageoptions_element_wd_suggest = ""
 ;
-; pageoptions_element.php line: 231
+; pageoptions_element.php line: 236
 pageoptions_element_subsearch_link = ""
 ;
-; pageoptions_element.php line: 240
+; pageoptions_element.php line: 245
 pageoptions_element_signin_link = ""
 ;
-; pageoptions_element.php line: 247
+; pageoptions_element.php line: 252
 pageoptions_element_cache_link = ""
 ;
-; pageoptions_element.php line: 255
+; pageoptions_element.php line: 260
 pageoptions_element_similar_link = ""
 ;
-; pageoptions_element.php line: 263
+; pageoptions_element.php line: 268
 pageoptions_element_in_link = ""
 ;
-; pageoptions_element.php line: 269
+; pageoptions_element.php line: 274
 pageoptions_element_ip_link = ""
 ;
-; pageoptions_element.php line: 278
+; pageoptions_element.php line: 283
 pageoptions_element_ranking_factors = ""
 ;
-; pageoptions_element.php line: 281
+; pageoptions_element.php line: 286
 pageoptions_element_title_weight = ""
 ;
-; pageoptions_element.php line: 286
+; pageoptions_element.php line: 291
 pageoptions_element_description_weight = ""
 ;
-; pageoptions_element.php line: 291
+; pageoptions_element.php line: 296
 pageoptions_element_link_weight = ""
 ;
-; pageoptions_element.php line: 296
+; pageoptions_element.php line: 301
 pageoptions_element_results_grouping_options = ""
 ;
-; pageoptions_element.php line: 299
+; pageoptions_element.php line: 304
 pageoptions_element_min_results_to_group = ""
 ;
-; pageoptions_element.php line: 304
+; pageoptions_element.php line: 309
 pageoptions_element_server_alpha = ""
 ;
-; pageoptions_element.php line: 312
+; pageoptions_element.php line: 317
 pageoptions_element_test_page = ""
 ;
-; pageoptions_element.php line: 314
+; pageoptions_element.php line: 319
 pageoptions_element_page_type = ""
 ;
-; pageoptions_element.php line: 331
+; pageoptions_element.php line: 336
 pageoptions_element_save_options = ""
 ;
-; pageoptions_element.php line: 333
+; pageoptions_element.php line: 338
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 339
+; pageoptions_element.php line: 344
 pageoptions_element_test_results = ""
 ;
-; pageoptions_element.php line: 342
+; pageoptions_element.php line: 347
 pageoptions_element_after_process = ""
 ;
-; pageoptions_element.php line: 346
+; pageoptions_element.php line: 351
 pageoptions_element_after_rules = ""
 ;
-; pageoptions_element.php line: 350
+; pageoptions_element.php line: 355
 pageoptions_element_extracted_words = ""
 ;
-; pageoptions_element.php line: 354
+; pageoptions_element.php line: 359
 pageoptions_element_extracted_metas = ""
 ;
-; pageoptions_element.php line: 388
+; pageoptions_element.php line: 393
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 392
+; pageoptions_element.php line: 397
 pageoptions_element_save_options = ""
 ;
 ; resultseditor_element.php line: 58
diff --git a/locale/hi/configure.ini b/locale/hi/configure.ini
index cc30228..ed27131 100755
--- a/locale/hi/configure.ini
+++ b/locale/hi/configure.ini
@@ -154,346 +154,346 @@ admin_controller_starting_new_crawl = ""
 ; admin_controller.php line: 868
 admin_controller_no_description = ""
 ;
-; admin_controller.php line: 981
+; admin_controller.php line: 985
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 982
+; admin_controller.php line: 986
 admin_controller_use_defaults = ""
 ;
-; admin_controller.php line: 984
+; admin_controller.php line: 988
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 988
+; admin_controller.php line: 992
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1075
+; admin_controller.php line: 1084
 admin_controller_breadth_first = ""
 ;
-; admin_controller.php line: 1077
+; admin_controller.php line: 1086
 admin_controller_page_importance = ""
 ;
-; admin_controller.php line: 1143
+; admin_controller.php line: 1152
 admin_controller_urls_injected = ""
 ;
-; admin_controller.php line: 1154
+; admin_controller.php line: 1163
 admin_controller_update_seed_info = ""
 ;
-; admin_controller.php line: 1246
+; admin_controller.php line: 1255
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1247
+; admin_controller.php line: 1256
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1249
+; admin_controller.php line: 1258
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1251
+; admin_controller.php line: 1260
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1278
+; admin_controller.php line: 1287
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1283
+; admin_controller.php line: 1292
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1292
+; admin_controller.php line: 1301
 admin_controller_set_index = ""
 ;
-; admin_controller.php line: 1302
+; admin_controller.php line: 1311
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1310
+; admin_controller.php line: 1319
 admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1346
+; admin_controller.php line: 1355
 editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1348
+; admin_controller.php line: 1357
 editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1349
+; admin_controller.php line: 1358
 editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1350
+; admin_controller.php line: 1359
 editmix_element_weight = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1360
 editmix_element_name = ""
 ;
-; admin_controller.php line: 1352
+; admin_controller.php line: 1361
 editmix_add_keywords = ""
 ;
-; admin_controller.php line: 1353
+; admin_controller.php line: 1362
 editmix_element_actions = ""
 ;
-; admin_controller.php line: 1354
+; admin_controller.php line: 1363
 editmix_add_query = ""
 ;
-; admin_controller.php line: 1355
+; admin_controller.php line: 1364
 editmix_element_delete = ""
 ;
-; admin_controller.php line: 1407
+; admin_controller.php line: 1416
 admin_controller_mix_saved = ""
 ;
-; admin_controller.php line: 1458
+; admin_controller.php line: 1467
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 1459
+; admin_controller.php line: 1468
 admin_controller_use_defaults = ""
 ;
-; admin_controller.php line: 1461
+; admin_controller.php line: 1470
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 1465
+; admin_controller.php line: 1474
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1470
+; admin_controller.php line: 1479
 admin_controller_recrawl_never = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1480
 admin_controller_recrawl_1day = ""
 ;
-; admin_controller.php line: 1472
+; admin_controller.php line: 1481
 admin_controller_recrawl_2day = ""
 ;
-; admin_controller.php line: 1473
+; admin_controller.php line: 1482
 admin_controller_recrawl_3day = ""
 ;
-; admin_controller.php line: 1474
+; admin_controller.php line: 1483
 admin_controller_recrawl_7day = ""
 ;
-; admin_controller.php line: 1475
+; admin_controller.php line: 1484
 admin_controller_recrawl_14day = ""
 ;
-; admin_controller.php line: 1685
+; admin_controller.php line: 1705
 admin_controller_page_options_updated = ""
 ;
-; admin_controller.php line: 1711
+; admin_controller.php line: 1731
 admin_controller_page_options_running_tests = ""
 ;
-; admin_controller.php line: 1860
+; admin_controller.php line: 1881
 admin_controller_new_classifier = ""
 ;
-; admin_controller.php line: 1863
+; admin_controller.php line: 1884
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1875
+; admin_controller.php line: 1896
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1893
+; admin_controller.php line: 1914
 admin_controller_finalizing_classifier = ""
 ;
-; admin_controller.php line: 1916
+; admin_controller.php line: 1937
 admin_controller_classifier_deleted = ""
 ;
-; admin_controller.php line: 1920
+; admin_controller.php line: 1941
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1969
+; admin_controller.php line: 1990
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1980
+; admin_controller.php line: 2001
 editclassifier_load_failed = ""
 ;
-; admin_controller.php line: 1982
+; admin_controller.php line: 2003
 editclassifier_loading = ""
 ;
-; admin_controller.php line: 1984
+; admin_controller.php line: 2005
 editclassifier_added_examples = ""
 ;
-; admin_controller.php line: 1986
+; admin_controller.php line: 2007
 editclassifier_label_update_failed = ""
 ;
-; admin_controller.php line: 1988
+; admin_controller.php line: 2009
 editclassifier_updating = ""
 ;
-; admin_controller.php line: 1990
+; admin_controller.php line: 2011
 editclassifier_acc_update_failed = ""
 ;
-; admin_controller.php line: 1992
+; admin_controller.php line: 2013
 editclassifier_na = ""
 ;
-; admin_controller.php line: 1994
+; admin_controller.php line: 2015
 editclassifier_no_docs = ""
 ;
-; admin_controller.php line: 1996
+; admin_controller.php line: 2017
 editclassifier_num_docs = ""
 ;
-; admin_controller.php line: 1998
+; admin_controller.php line: 2019
 editclassifier_in_class = ""
 ;
-; admin_controller.php line: 2000
+; admin_controller.php line: 2021
 editclassifier_not_in_class = ""
 ;
-; admin_controller.php line: 2002
+; admin_controller.php line: 2023
 editclassifier_skip = ""
 ;
-; admin_controller.php line: 2004
+; admin_controller.php line: 2025
 editclassifier_prediction = ""
 ;
-; admin_controller.php line: 2006
+; admin_controller.php line: 2027
 editclassifier_scores = ""
 ;
-; admin_controller.php line: 2050
+; admin_controller.php line: 2071
 admin_controller_results_editor_update = ""
 ;
-; admin_controller.php line: 2064
+; admin_controller.php line: 2085
 admin_controller_edited_pages = ""
 ;
-; admin_controller.php line: 2077
+; admin_controller.php line: 2098
 admin_controller_results_editor_need_url = ""
 ;
-; admin_controller.php line: 2083
+; admin_controller.php line: 2104
 admin_controller_results_editor_page_updated = ""
 ;
-; admin_controller.php line: 2096
+; admin_controller.php line: 2117
 admin_controller_results_editor_page_loaded = ""
 ;
-; admin_controller.php line: 2141
+; admin_controller.php line: 2162
 admin_controller_select_machine = ""
 ;
-; admin_controller.php line: 2212
+; admin_controller.php line: 2233
 admin_controller_machine_added = ""
 ;
-; admin_controller.php line: 2219
+; admin_controller.php line: 2240
 admin_controller_machine_exists = ""
 ;
-; admin_controller.php line: 2223
+; admin_controller.php line: 2244
 admin_controller_machine_incomplete = ""
 ;
-; admin_controller.php line: 2232
+; admin_controller.php line: 2253
 admin_controller_machine_doesnt_exists = ""
 ;
-; admin_controller.php line: 2249
+; admin_controller.php line: 2270
 admin_controller_stop_service_first = ""
 ;
-; admin_controller.php line: 2262
+; admin_controller.php line: 2283
 admin_controller_machine_deleted = ""
 ;
-; admin_controller.php line: 2283
+; admin_controller.php line: 2304
 admin_controller_news_process_running = ""
 ;
-; admin_controller.php line: 2291
+; admin_controller.php line: 2312
 admin_controller_news_mode_updated = ""
 ;
-; admin_controller.php line: 2295
+; admin_controller.php line: 2316
 admin_controller_news_update_failed = ""
 ;
-; admin_controller.php line: 2358
+; admin_controller.php line: 2379
 admin_controller_no_machine_log = ""
 ;
-; admin_controller.php line: 2387
+; admin_controller.php line: 2408
 admin_controller_machine_servers_updated = ""
 ;
-; admin_controller.php line: 2391
+; admin_controller.php line: 2412
 admin_controller_machine_no_action = ""
 ;
-; admin_controller.php line: 2424
+; admin_controller.php line: 2445
 admin_controller_select_localename = ""
 ;
-; admin_controller.php line: 2468
+; admin_controller.php line: 2489
 admin_controller_locale_added = ""
 ;
-; admin_controller.php line: 2475
+; admin_controller.php line: 2496
 admin_controller_localename_doesnt_exists = ""
 ;
-; admin_controller.php line: 2484
+; admin_controller.php line: 2505
 admin_controller_localename_deleted = ""
 ;
-; admin_controller.php line: 2493
+; admin_controller.php line: 2514
 admin_controller_select_staticpages = ""
 ;
-; admin_controller.php line: 2512
+; admin_controller.php line: 2533
 admin_controller_staticpage_updated = ""
 ;
-; admin_controller.php line: 2539
+; admin_controller.php line: 2560
 admin_controller_localestrings_updated = ""
 ;
-; admin_controller.php line: 2596
+; admin_controller.php line: 2617
 admin_controller_php_version = ""
 ;
-; admin_controller.php line: 2604
+; admin_controller.php line: 2625
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 2609
+; admin_controller.php line: 2630
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 2614
+; admin_controller.php line: 2635
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 2620
+; admin_controller.php line: 2641
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 2643
+; admin_controller.php line: 2664
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 2648
+; admin_controller.php line: 2669
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 2653
+; admin_controller.php line: 2674
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 2678
+; admin_controller.php line: 2699
 admin_controller_media_kind = ""
 ;
-; admin_controller.php line: 2679
+; admin_controller.php line: 2700
 admin_controller_video = ""
 ;
-; admin_controller.php line: 2680
+; admin_controller.php line: 2701
 admin_controller_rss_feed = ""
 ;
-; admin_controller.php line: 2694
+; admin_controller.php line: 2715
 admin_controller_sources_indexes = ""
 ;
-; admin_controller.php line: 2747
+; admin_controller.php line: 2768
 admin_controller_media_source_added = ""
 ;
-; admin_controller.php line: 2755
+; admin_controller.php line: 2776
 admin_controller_media_source_deleted = ""
 ;
-; admin_controller.php line: 2771
+; admin_controller.php line: 2792
 admin_controller_subsearch_added = ""
 ;
-; admin_controller.php line: 2779
+; admin_controller.php line: 2800
 admin_controller_subsearch_deleted = ""
 ;
-; admin_controller.php line: 2854
+; admin_controller.php line: 2875
 admin_controller_configure_use_absolute_path = ""
 ;
-; admin_controller.php line: 2866
+; admin_controller.php line: 2887
 admin_controller_configure_diff_base_dir = ""
 ;
-; admin_controller.php line: 2899
+; admin_controller.php line: 2920
 admin_controller_configure_work_dir_set = ""
 ;
-; admin_controller.php line: 2913
+; admin_controller.php line: 2934
 admin_controller_name_your_bot = ""
 ;
-; admin_controller.php line: 2936
+; admin_controller.php line: 2957
 admin_controller_configure_work_profile_made = ""
 ;
-; admin_controller.php line: 2949
+; admin_controller.php line: 2970
 admin_controller_configure_no_set_config = ""
 ;
-; admin_controller.php line: 2961
+; admin_controller.php line: 2982
 admin_controller_configure_no_create_profile = ""
 ;
-; admin_controller.php line: 2972
+; admin_controller.php line: 2993
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 2984
+; admin_controller.php line: 3005
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 3032
+; admin_controller.php line: 3053
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 3047
+; admin_controller.php line: 3068
 admin_controller_configure_profile_change = ""
 ;
-; admin_controller.php line: 3062
+; admin_controller.php line: 3083
 admin_controller_configure_no_change_profile = ""
 ;
-; admin_controller.php line: 3100
+; admin_controller.php line: 3121
 admin_controller_describe_robot = ""
 ;
 ; machine_controller.php line: 182
@@ -544,22 +544,22 @@ search_controller_crawl_delay = ""
 ; search_controller.php line: 1593
 search_controller_cache_comment = ""
 ;
-; search_controller.php line: 1637
+; search_controller.php line: 1638
 search_controller_cached_version = ""
 ;
-; search_controller.php line: 1752
+; search_controller.php line: 1753
 search_controller_header_summaries = ""
 ;
-; search_controller.php line: 1876
+; search_controller.php line: 1877
 search_controller_history = ""
 ;
-; search_controller.php line: 2052
+; search_controller.php line: 2053
 search_controller_all_cached = ""
 ;
-; search_controller.php line: 2083
+; search_controller.php line: 2084
 search_controller_year = ""
 ;
-; search_controller.php line: 2084
+; search_controller.php line: 2085
 search_controller_month = ""
 ;
 ; settings_controller.php line: 134
@@ -1254,111 +1254,114 @@ pageoptions_element_load_options = ""
 pageoptions_element_page_range = ""
 ;
 ; pageoptions_element.php line: 95
+pageoptions_element_max_description = ""
+;
+; pageoptions_element.php line: 100
 pageoptions_element_save_cache = ""
 ;
-; pageoptions_element.php line: 105
+; pageoptions_element.php line: 110
 pageoptions_element_allow_recrawl = ""
 ;
-; pageoptions_element.php line: 111
+; pageoptions_element.php line: 116
 pageoptions_element_file_types = ""
 ;
-; pageoptions_element.php line: 141
+; pageoptions_element.php line: 146
 pageoptions_element_classifiers_to_apply = ""
 ;
-; pageoptions_element.php line: 176
+; pageoptions_element.php line: 181
 pageoptions_element_no_classifiers = ""
 ;
-; pageoptions_element.php line: 179
+; pageoptions_element.php line: 184
 pageoptions_element_indexing_plugins = ""
 ;
-; pageoptions_element.php line: 183
+; pageoptions_element.php line: 188
 pageoptions_element_plugin = ""
 ;
-; pageoptions_element.php line: 186
+; pageoptions_element.php line: 191
 pageoptions_element_plugin_include = ""
 ;
-; pageoptions_element.php line: 207
+; pageoptions_element.php line: 212
 pageoptions_element_no_compatible_plugins = ""
 ;
-; pageoptions_element.php line: 210
+; pageoptions_element.php line: 215
 pageoptions_element_page_rules = ""
 ;
-; pageoptions_element.php line: 218
+; pageoptions_element.php line: 223
 page_element_search_page = ""
 ;
-; pageoptions_element.php line: 223
+; pageoptions_element.php line: 228
 pageoptions_element_wd_suggest = ""
 ;
-; pageoptions_element.php line: 231
+; pageoptions_element.php line: 236
 pageoptions_element_subsearch_link = ""
 ;
-; pageoptions_element.php line: 240
+; pageoptions_element.php line: 245
 pageoptions_element_signin_link = ""
 ;
-; pageoptions_element.php line: 247
+; pageoptions_element.php line: 252
 pageoptions_element_cache_link = ""
 ;
-; pageoptions_element.php line: 255
+; pageoptions_element.php line: 260
 pageoptions_element_similar_link = ""
 ;
-; pageoptions_element.php line: 263
+; pageoptions_element.php line: 268
 pageoptions_element_in_link = ""
 ;
-; pageoptions_element.php line: 269
+; pageoptions_element.php line: 274
 pageoptions_element_ip_link = ""
 ;
-; pageoptions_element.php line: 278
+; pageoptions_element.php line: 283
 pageoptions_element_ranking_factors = ""
 ;
-; pageoptions_element.php line: 281
+; pageoptions_element.php line: 286
 pageoptions_element_title_weight = ""
 ;
-; pageoptions_element.php line: 286
+; pageoptions_element.php line: 291
 pageoptions_element_description_weight = ""
 ;
-; pageoptions_element.php line: 291
+; pageoptions_element.php line: 296
 pageoptions_element_link_weight = ""
 ;
-; pageoptions_element.php line: 296
+; pageoptions_element.php line: 301
 pageoptions_element_results_grouping_options = ""
 ;
-; pageoptions_element.php line: 299
+; pageoptions_element.php line: 304
 pageoptions_element_min_results_to_group = ""
 ;
-; pageoptions_element.php line: 304
+; pageoptions_element.php line: 309
 pageoptions_element_server_alpha = ""
 ;
-; pageoptions_element.php line: 312
+; pageoptions_element.php line: 317
 pageoptions_element_test_page = ""
 ;
-; pageoptions_element.php line: 314
+; pageoptions_element.php line: 319
 pageoptions_element_page_type = ""
 ;
-; pageoptions_element.php line: 331
+; pageoptions_element.php line: 336
 pageoptions_element_save_options = ""
 ;
-; pageoptions_element.php line: 333
+; pageoptions_element.php line: 338
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 339
+; pageoptions_element.php line: 344
 pageoptions_element_test_results = ""
 ;
-; pageoptions_element.php line: 342
+; pageoptions_element.php line: 347
 pageoptions_element_after_process = ""
 ;
-; pageoptions_element.php line: 346
+; pageoptions_element.php line: 351
 pageoptions_element_after_rules = ""
 ;
-; pageoptions_element.php line: 350
+; pageoptions_element.php line: 355
 pageoptions_element_extracted_words = ""
 ;
-; pageoptions_element.php line: 354
+; pageoptions_element.php line: 359
 pageoptions_element_extracted_metas = ""
 ;
-; pageoptions_element.php line: 388
+; pageoptions_element.php line: 393
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 392
+; pageoptions_element.php line: 397
 pageoptions_element_save_options = ""
 ;
 ; resultseditor_element.php line: 58
diff --git a/locale/in-ID/configure.ini b/locale/in-ID/configure.ini
index 887cee6..0022154 100755
--- a/locale/in-ID/configure.ini
+++ b/locale/in-ID/configure.ini
@@ -154,346 +154,346 @@ admin_controller_starting_new_crawl = ""
 ; admin_controller.php line: 868
 admin_controller_no_description = ""
 ;
-; admin_controller.php line: 981
+; admin_controller.php line: 985
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 982
+; admin_controller.php line: 986
 admin_controller_use_defaults = ""
 ;
-; admin_controller.php line: 984
+; admin_controller.php line: 988
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 988
+; admin_controller.php line: 992
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1075
+; admin_controller.php line: 1084
 admin_controller_breadth_first = ""
 ;
-; admin_controller.php line: 1077
+; admin_controller.php line: 1086
 admin_controller_page_importance = ""
 ;
-; admin_controller.php line: 1143
+; admin_controller.php line: 1152
 admin_controller_urls_injected = ""
 ;
-; admin_controller.php line: 1154
+; admin_controller.php line: 1163
 admin_controller_update_seed_info = ""
 ;
-; admin_controller.php line: 1246
+; admin_controller.php line: 1255
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1247
+; admin_controller.php line: 1256
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1249
+; admin_controller.php line: 1258
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1251
+; admin_controller.php line: 1260
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1278
+; admin_controller.php line: 1287
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1283
+; admin_controller.php line: 1292
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1292
+; admin_controller.php line: 1301
 admin_controller_set_index = ""
 ;
-; admin_controller.php line: 1302
+; admin_controller.php line: 1311
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1310
+; admin_controller.php line: 1319
 admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1346
+; admin_controller.php line: 1355
 editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1348
+; admin_controller.php line: 1357
 editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1349
+; admin_controller.php line: 1358
 editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1350
+; admin_controller.php line: 1359
 editmix_element_weight = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1360
 editmix_element_name = ""
 ;
-; admin_controller.php line: 1352
+; admin_controller.php line: 1361
 editmix_add_keywords = ""
 ;
-; admin_controller.php line: 1353
+; admin_controller.php line: 1362
 editmix_element_actions = ""
 ;
-; admin_controller.php line: 1354
+; admin_controller.php line: 1363
 editmix_add_query = ""
 ;
-; admin_controller.php line: 1355
+; admin_controller.php line: 1364
 editmix_element_delete = ""
 ;
-; admin_controller.php line: 1407
+; admin_controller.php line: 1416
 admin_controller_mix_saved = ""
 ;
-; admin_controller.php line: 1458
+; admin_controller.php line: 1467
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 1459
+; admin_controller.php line: 1468
 admin_controller_use_defaults = ""
 ;
-; admin_controller.php line: 1461
+; admin_controller.php line: 1470
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 1465
+; admin_controller.php line: 1474
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1470
+; admin_controller.php line: 1479
 admin_controller_recrawl_never = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1480
 admin_controller_recrawl_1day = ""
 ;
-; admin_controller.php line: 1472
+; admin_controller.php line: 1481
 admin_controller_recrawl_2day = ""
 ;
-; admin_controller.php line: 1473
+; admin_controller.php line: 1482
 admin_controller_recrawl_3day = ""
 ;
-; admin_controller.php line: 1474
+; admin_controller.php line: 1483
 admin_controller_recrawl_7day = ""
 ;
-; admin_controller.php line: 1475
+; admin_controller.php line: 1484
 admin_controller_recrawl_14day = ""
 ;
-; admin_controller.php line: 1685
+; admin_controller.php line: 1705
 admin_controller_page_options_updated = ""
 ;
-; admin_controller.php line: 1711
+; admin_controller.php line: 1731
 admin_controller_page_options_running_tests = ""
 ;
-; admin_controller.php line: 1860
+; admin_controller.php line: 1881
 admin_controller_new_classifier = ""
 ;
-; admin_controller.php line: 1863
+; admin_controller.php line: 1884
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1875
+; admin_controller.php line: 1896
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1893
+; admin_controller.php line: 1914
 admin_controller_finalizing_classifier = ""
 ;
-; admin_controller.php line: 1916
+; admin_controller.php line: 1937
 admin_controller_classifier_deleted = ""
 ;
-; admin_controller.php line: 1920
+; admin_controller.php line: 1941
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1969
+; admin_controller.php line: 1990
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1980
+; admin_controller.php line: 2001
 editclassifier_load_failed = ""
 ;
-; admin_controller.php line: 1982
+; admin_controller.php line: 2003
 editclassifier_loading = ""
 ;
-; admin_controller.php line: 1984
+; admin_controller.php line: 2005
 editclassifier_added_examples = ""
 ;
-; admin_controller.php line: 1986
+; admin_controller.php line: 2007
 editclassifier_label_update_failed = ""
 ;
-; admin_controller.php line: 1988
+; admin_controller.php line: 2009
 editclassifier_updating = ""
 ;
-; admin_controller.php line: 1990
+; admin_controller.php line: 2011
 editclassifier_acc_update_failed = ""
 ;
-; admin_controller.php line: 1992
+; admin_controller.php line: 2013
 editclassifier_na = ""
 ;
-; admin_controller.php line: 1994
+; admin_controller.php line: 2015
 editclassifier_no_docs = ""
 ;
-; admin_controller.php line: 1996
+; admin_controller.php line: 2017
 editclassifier_num_docs = ""
 ;
-; admin_controller.php line: 1998
+; admin_controller.php line: 2019
 editclassifier_in_class = ""
 ;
-; admin_controller.php line: 2000
+; admin_controller.php line: 2021
 editclassifier_not_in_class = ""
 ;
-; admin_controller.php line: 2002
+; admin_controller.php line: 2023
 editclassifier_skip = ""
 ;
-; admin_controller.php line: 2004
+; admin_controller.php line: 2025
 editclassifier_prediction = ""
 ;
-; admin_controller.php line: 2006
+; admin_controller.php line: 2027
 editclassifier_scores = ""
 ;
-; admin_controller.php line: 2050
+; admin_controller.php line: 2071
 admin_controller_results_editor_update = ""
 ;
-; admin_controller.php line: 2064
+; admin_controller.php line: 2085
 admin_controller_edited_pages = ""
 ;
-; admin_controller.php line: 2077
+; admin_controller.php line: 2098
 admin_controller_results_editor_need_url = ""
 ;
-; admin_controller.php line: 2083
+; admin_controller.php line: 2104
 admin_controller_results_editor_page_updated = ""
 ;
-; admin_controller.php line: 2096
+; admin_controller.php line: 2117
 admin_controller_results_editor_page_loaded = ""
 ;
-; admin_controller.php line: 2141
+; admin_controller.php line: 2162
 admin_controller_select_machine = ""
 ;
-; admin_controller.php line: 2212
+; admin_controller.php line: 2233
 admin_controller_machine_added = ""
 ;
-; admin_controller.php line: 2219
+; admin_controller.php line: 2240
 admin_controller_machine_exists = ""
 ;
-; admin_controller.php line: 2223
+; admin_controller.php line: 2244
 admin_controller_machine_incomplete = ""
 ;
-; admin_controller.php line: 2232
+; admin_controller.php line: 2253
 admin_controller_machine_doesnt_exists = ""
 ;
-; admin_controller.php line: 2249
+; admin_controller.php line: 2270
 admin_controller_stop_service_first = ""
 ;
-; admin_controller.php line: 2262
+; admin_controller.php line: 2283
 admin_controller_machine_deleted = ""
 ;
-; admin_controller.php line: 2283
+; admin_controller.php line: 2304
 admin_controller_news_process_running = ""
 ;
-; admin_controller.php line: 2291
+; admin_controller.php line: 2312
 admin_controller_news_mode_updated = ""
 ;
-; admin_controller.php line: 2295
+; admin_controller.php line: 2316
 admin_controller_news_update_failed = ""
 ;
-; admin_controller.php line: 2358
+; admin_controller.php line: 2379
 admin_controller_no_machine_log = ""
 ;
-; admin_controller.php line: 2387
+; admin_controller.php line: 2408
 admin_controller_machine_servers_updated = ""
 ;
-; admin_controller.php line: 2391
+; admin_controller.php line: 2412
 admin_controller_machine_no_action = ""
 ;
-; admin_controller.php line: 2424
+; admin_controller.php line: 2445
 admin_controller_select_localename = "Pilih name locale"
 ;
-; admin_controller.php line: 2468
+; admin_controller.php line: 2489
 admin_controller_locale_added = "Locale telah ditambah"
 ;
-; admin_controller.php line: 2475
+; admin_controller.php line: 2496
 admin_controller_localename_doesnt_exists = "Locale tidak ditemukan"
 ;
-; admin_controller.php line: 2484
+; admin_controller.php line: 2505
 admin_controller_localename_deleted = "Locale telah dihapus"
 ;
-; admin_controller.php line: 2493
+; admin_controller.php line: 2514
 admin_controller_select_staticpages = ""
 ;
-; admin_controller.php line: 2512
+; admin_controller.php line: 2533
 admin_controller_staticpage_updated = ""
 ;
-; admin_controller.php line: 2539
+; admin_controller.php line: 2560
 admin_controller_localestrings_updated = ""
 ;
-; admin_controller.php line: 2596
+; admin_controller.php line: 2617
 admin_controller_php_version = ""
 ;
-; admin_controller.php line: 2604
+; admin_controller.php line: 2625
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 2609
+; admin_controller.php line: 2630
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 2614
+; admin_controller.php line: 2635
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 2620
+; admin_controller.php line: 2641
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 2643
+; admin_controller.php line: 2664
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 2648
+; admin_controller.php line: 2669
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 2653
+; admin_controller.php line: 2674
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 2678
+; admin_controller.php line: 2699
 admin_controller_media_kind = ""
 ;
-; admin_controller.php line: 2679
+; admin_controller.php line: 2700
 admin_controller_video = ""
 ;
-; admin_controller.php line: 2680
+; admin_controller.php line: 2701
 admin_controller_rss_feed = ""
 ;
-; admin_controller.php line: 2694
+; admin_controller.php line: 2715
 admin_controller_sources_indexes = ""
 ;
-; admin_controller.php line: 2747
+; admin_controller.php line: 2768
 admin_controller_media_source_added = ""
 ;
-; admin_controller.php line: 2755
+; admin_controller.php line: 2776
 admin_controller_media_source_deleted = ""
 ;
-; admin_controller.php line: 2771
+; admin_controller.php line: 2792
 admin_controller_subsearch_added = ""
 ;
-; admin_controller.php line: 2779
+; admin_controller.php line: 2800
 admin_controller_subsearch_deleted = ""
 ;
-; admin_controller.php line: 2854
+; admin_controller.php line: 2875
 admin_controller_configure_use_absolute_path = ""
 ;
-; admin_controller.php line: 2866
+; admin_controller.php line: 2887
 admin_controller_configure_diff_base_dir = ""
 ;
-; admin_controller.php line: 2899
+; admin_controller.php line: 2920
 admin_controller_configure_work_dir_set = ""
 ;
-; admin_controller.php line: 2913
+; admin_controller.php line: 2934
 admin_controller_name_your_bot = ""
 ;
-; admin_controller.php line: 2936
+; admin_controller.php line: 2957
 admin_controller_configure_work_profile_made = ""
 ;
-; admin_controller.php line: 2949
+; admin_controller.php line: 2970
 admin_controller_configure_no_set_config = ""
 ;
-; admin_controller.php line: 2961
+; admin_controller.php line: 2982
 admin_controller_configure_no_create_profile = ""
 ;
-; admin_controller.php line: 2972
+; admin_controller.php line: 2993
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 2984
+; admin_controller.php line: 3005
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 3032
+; admin_controller.php line: 3053
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 3047
+; admin_controller.php line: 3068
 admin_controller_configure_profile_change = ""
 ;
-; admin_controller.php line: 3062
+; admin_controller.php line: 3083
 admin_controller_configure_no_change_profile = ""
 ;
-; admin_controller.php line: 3100
+; admin_controller.php line: 3121
 admin_controller_describe_robot = ""
 ;
 ; machine_controller.php line: 182
@@ -544,22 +544,22 @@ search_controller_crawl_delay = ""
 ; search_controller.php line: 1593
 search_controller_cache_comment = ""
 ;
-; search_controller.php line: 1637
+; search_controller.php line: 1638
 search_controller_cached_version = ""
 ;
-; search_controller.php line: 1752
+; search_controller.php line: 1753
 search_controller_header_summaries = ""
 ;
-; search_controller.php line: 1876
+; search_controller.php line: 1877
 search_controller_history = ""
 ;
-; search_controller.php line: 2052
+; search_controller.php line: 2053
 search_controller_all_cached = ""
 ;
-; search_controller.php line: 2083
+; search_controller.php line: 2084
 search_controller_year = ""
 ;
-; search_controller.php line: 2084
+; search_controller.php line: 2085
 search_controller_month = ""
 ;
 ; settings_controller.php line: 134
@@ -1254,111 +1254,114 @@ pageoptions_element_load_options = ""
 pageoptions_element_page_range = ""
 ;
 ; pageoptions_element.php line: 95
+pageoptions_element_max_description = ""
+;
+; pageoptions_element.php line: 100
 pageoptions_element_save_cache = ""
 ;
-; pageoptions_element.php line: 105
+; pageoptions_element.php line: 110
 pageoptions_element_allow_recrawl = ""
 ;
-; pageoptions_element.php line: 111
+; pageoptions_element.php line: 116
 pageoptions_element_file_types = ""
 ;
-; pageoptions_element.php line: 141
+; pageoptions_element.php line: 146
 pageoptions_element_classifiers_to_apply = ""
 ;
-; pageoptions_element.php line: 176
+; pageoptions_element.php line: 181
 pageoptions_element_no_classifiers = ""
 ;
-; pageoptions_element.php line: 179
+; pageoptions_element.php line: 184
 pageoptions_element_indexing_plugins = ""
 ;
-; pageoptions_element.php line: 183
+; pageoptions_element.php line: 188
 pageoptions_element_plugin = ""
 ;
-; pageoptions_element.php line: 186
+; pageoptions_element.php line: 191
 pageoptions_element_plugin_include = ""
 ;
-; pageoptions_element.php line: 207
+; pageoptions_element.php line: 212
 pageoptions_element_no_compatible_plugins = ""
 ;
-; pageoptions_element.php line: 210
+; pageoptions_element.php line: 215
 pageoptions_element_page_rules = ""
 ;
-; pageoptions_element.php line: 218
+; pageoptions_element.php line: 223
 page_element_search_page = ""
 ;
-; pageoptions_element.php line: 223
+; pageoptions_element.php line: 228
 pageoptions_element_wd_suggest = ""
 ;
-; pageoptions_element.php line: 231
+; pageoptions_element.php line: 236
 pageoptions_element_subsearch_link = ""
 ;
-; pageoptions_element.php line: 240
+; pageoptions_element.php line: 245
 pageoptions_element_signin_link = ""
 ;
-; pageoptions_element.php line: 247
+; pageoptions_element.php line: 252
 pageoptions_element_cache_link = ""
 ;
-; pageoptions_element.php line: 255
+; pageoptions_element.php line: 260
 pageoptions_element_similar_link = ""
 ;
-; pageoptions_element.php line: 263
+; pageoptions_element.php line: 268
 pageoptions_element_in_link = ""
 ;
-; pageoptions_element.php line: 269
+; pageoptions_element.php line: 274
 pageoptions_element_ip_link = ""
 ;
-; pageoptions_element.php line: 278
+; pageoptions_element.php line: 283
 pageoptions_element_ranking_factors = ""
 ;
-; pageoptions_element.php line: 281
+; pageoptions_element.php line: 286
 pageoptions_element_title_weight = ""
 ;
-; pageoptions_element.php line: 286
+; pageoptions_element.php line: 291
 pageoptions_element_description_weight = ""
 ;
-; pageoptions_element.php line: 291
+; pageoptions_element.php line: 296
 pageoptions_element_link_weight = ""
 ;
-; pageoptions_element.php line: 296
+; pageoptions_element.php line: 301
 pageoptions_element_results_grouping_options = ""
 ;
-; pageoptions_element.php line: 299
+; pageoptions_element.php line: 304
 pageoptions_element_min_results_to_group = ""
 ;
-; pageoptions_element.php line: 304
+; pageoptions_element.php line: 309
 pageoptions_element_server_alpha = ""
 ;
-; pageoptions_element.php line: 312
+; pageoptions_element.php line: 317
 pageoptions_element_test_page = ""
 ;
-; pageoptions_element.php line: 314
+; pageoptions_element.php line: 319
 pageoptions_element_page_type = ""
 ;
-; pageoptions_element.php line: 331
+; pageoptions_element.php line: 336
 pageoptions_element_save_options = ""
 ;
-; pageoptions_element.php line: 333
+; pageoptions_element.php line: 338
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 339
+; pageoptions_element.php line: 344
 pageoptions_element_test_results = ""
 ;
-; pageoptions_element.php line: 342
+; pageoptions_element.php line: 347
 pageoptions_element_after_process = ""
 ;
-; pageoptions_element.php line: 346
+; pageoptions_element.php line: 351
 pageoptions_element_after_rules = ""
 ;
-; pageoptions_element.php line: 350
+; pageoptions_element.php line: 355
 pageoptions_element_extracted_words = ""
 ;
-; pageoptions_element.php line: 354
+; pageoptions_element.php line: 359
 pageoptions_element_extracted_metas = ""
 ;
-; pageoptions_element.php line: 388
+; pageoptions_element.php line: 393
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 392
+; pageoptions_element.php line: 397
 pageoptions_element_save_options = ""
 ;
 ; resultseditor_element.php line: 58
diff --git a/locale/it/configure.ini b/locale/it/configure.ini
index 64bd409..80e0201 100755
--- a/locale/it/configure.ini
+++ b/locale/it/configure.ini
@@ -154,346 +154,346 @@ admin_controller_starting_new_crawl = "Starting New Crawl!"
 ; admin_controller.php line: 868
 admin_controller_no_description = "Nessuna descrizione per la scansione"
 ;
-; admin_controller.php line: 981
+; admin_controller.php line: 985
 admin_controller_use_below = "Usa opzioni seguenti"
 ;
-; admin_controller.php line: 982
+; admin_controller.php line: 986
 admin_controller_use_defaults = "Usa predefiniti Yioop!"
 ;
-; admin_controller.php line: 984
+; admin_controller.php line: 988
 admin_controller_use_below = "Usa opzioni seguenti"
 ;
-; admin_controller.php line: 988
+; admin_controller.php line: 992
 admin_controller_previous_crawl = "Scansione precedente:"
 ;
-; admin_controller.php line: 1075
+; admin_controller.php line: 1084
 admin_controller_breadth_first = "Ampiezza prima"
 ;
-; admin_controller.php line: 1077
+; admin_controller.php line: 1086
 admin_controller_page_importance = "Importanza Pagina"
 ;
-; admin_controller.php line: 1143
+; admin_controller.php line: 1152
 admin_controller_urls_injected = "URL aggiunti!"
 ;
-; admin_controller.php line: 1154
+; admin_controller.php line: 1163
 admin_controller_update_seed_info = "Aggiornamento info sito di partenza!"
 ;
-; admin_controller.php line: 1246
+; admin_controller.php line: 1255
 admin_controller_select_crawl = "Seleziona Scansione"
 ;
-; admin_controller.php line: 1247
+; admin_controller.php line: 1256
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1249
+; admin_controller.php line: 1258
 admin_controller_select_crawl = "Seleziona Scansione"
 ;
-; admin_controller.php line: 1251
+; admin_controller.php line: 1260
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1278
+; admin_controller.php line: 1287
 admin_controller_unnamed = "Scansione senza nome"
 ;
-; admin_controller.php line: 1283
+; admin_controller.php line: 1292
 admin_controller_mix_created = "Unione Scansioni creata!"
 ;
-; admin_controller.php line: 1292
+; admin_controller.php line: 1301
 admin_controller_set_index = "Usa Scansione come indice"
 ;
-; admin_controller.php line: 1302
+; admin_controller.php line: 1311
 admin_controller_mix_doesnt_exists = "Unione Scansioni da cancellare inesistente!"
 ;
-; admin_controller.php line: 1310
+; admin_controller.php line: 1319
 admin_controller_mix_deleted = "Unione Scansioni cancellata!"
 ;
-; admin_controller.php line: 1346
+; admin_controller.php line: 1355
 editmix_element_add_crawls = "Aggiungi scansione"
 ;
-; admin_controller.php line: 1348
+; admin_controller.php line: 1357
 editmix_element_num_results = "Numero di risultati"
 ;
-; admin_controller.php line: 1349
+; admin_controller.php line: 1358
 editmix_element_del_grp = "Cancella Gruppo"
 ;
-; admin_controller.php line: 1350
+; admin_controller.php line: 1359
 editmix_element_weight = "Peso"
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1360
 editmix_element_name = "Nome"
 ;
-; admin_controller.php line: 1352
+; admin_controller.php line: 1361
 editmix_add_keywords = "Parole chiave"
 ;
-; admin_controller.php line: 1353
+; admin_controller.php line: 1362
 editmix_element_actions = "Azioni"
 ;
-; admin_controller.php line: 1354
+; admin_controller.php line: 1363
 editmix_add_query = "Aggiungi Ricerca"
 ;
-; admin_controller.php line: 1355
+; admin_controller.php line: 1364
 editmix_element_delete = "Cancella"
 ;
-; admin_controller.php line: 1407
+; admin_controller.php line: 1416
 admin_controller_mix_saved = "Cambiamenti Unione Scansioni effettuati!"
 ;
-; admin_controller.php line: 1458
+; admin_controller.php line: 1467
 admin_controller_use_below = "Usa opzioni seguenti"
 ;
-; admin_controller.php line: 1459
+; admin_controller.php line: 1468
 admin_controller_use_defaults = "Usa predefiniti Yioop!"
 ;
-; admin_controller.php line: 1461
+; admin_controller.php line: 1470
 admin_controller_use_below = "Usa opzioni seguenti"
 ;
-; admin_controller.php line: 1465
+; admin_controller.php line: 1474
 admin_controller_previous_crawl = "Scansione precedente:"
 ;
-; admin_controller.php line: 1470
+; admin_controller.php line: 1479
 admin_controller_recrawl_never = "Mai"
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1480
 admin_controller_recrawl_1day = "1 giorno"
 ;
-; admin_controller.php line: 1472
+; admin_controller.php line: 1481
 admin_controller_recrawl_2day = "2 giorni"
 ;
-; admin_controller.php line: 1473
+; admin_controller.php line: 1482
 admin_controller_recrawl_3day = "3 giorni"
 ;
-; admin_controller.php line: 1474
+; admin_controller.php line: 1483
 admin_controller_recrawl_7day = "7 giorni"
 ;
-; admin_controller.php line: 1475
+; admin_controller.php line: 1484
 admin_controller_recrawl_14day = "14 giorni"
 ;
-; admin_controller.php line: 1685
+; admin_controller.php line: 1705
 admin_controller_page_options_updated = "Opzioni Pagina aggiornate!"
 ;
-; admin_controller.php line: 1711
+; admin_controller.php line: 1731
 admin_controller_page_options_running_tests = ""
 ;
-; admin_controller.php line: 1860
+; admin_controller.php line: 1881
 admin_controller_new_classifier = ""
 ;
-; admin_controller.php line: 1863
+; admin_controller.php line: 1884
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1875
+; admin_controller.php line: 1896
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1893
+; admin_controller.php line: 1914
 admin_controller_finalizing_classifier = ""
 ;
-; admin_controller.php line: 1916
+; admin_controller.php line: 1937
 admin_controller_classifier_deleted = ""
 ;
-; admin_controller.php line: 1920
+; admin_controller.php line: 1941
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1969
+; admin_controller.php line: 1990
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1980
+; admin_controller.php line: 2001
 editclassifier_load_failed = ""
 ;
-; admin_controller.php line: 1982
+; admin_controller.php line: 2003
 editclassifier_loading = ""
 ;
-; admin_controller.php line: 1984
+; admin_controller.php line: 2005
 editclassifier_added_examples = ""
 ;
-; admin_controller.php line: 1986
+; admin_controller.php line: 2007
 editclassifier_label_update_failed = ""
 ;
-; admin_controller.php line: 1988
+; admin_controller.php line: 2009
 editclassifier_updating = ""
 ;
-; admin_controller.php line: 1990
+; admin_controller.php line: 2011
 editclassifier_acc_update_failed = ""
 ;
-; admin_controller.php line: 1992
+; admin_controller.php line: 2013
 editclassifier_na = ""
 ;
-; admin_controller.php line: 1994
+; admin_controller.php line: 2015
 editclassifier_no_docs = ""
 ;
-; admin_controller.php line: 1996
+; admin_controller.php line: 2017
 editclassifier_num_docs = ""
 ;
-; admin_controller.php line: 1998
+; admin_controller.php line: 2019
 editclassifier_in_class = ""
 ;
-; admin_controller.php line: 2000
+; admin_controller.php line: 2021
 editclassifier_not_in_class = ""
 ;
-; admin_controller.php line: 2002
+; admin_controller.php line: 2023
 editclassifier_skip = ""
 ;
-; admin_controller.php line: 2004
+; admin_controller.php line: 2025
 editclassifier_prediction = ""
 ;
-; admin_controller.php line: 2006
+; admin_controller.php line: 2027
 editclassifier_scores = ""
 ;
-; admin_controller.php line: 2050
+; admin_controller.php line: 2071
 admin_controller_results_editor_update = "Filtro Pagina aggiornato!"
 ;
-; admin_controller.php line: 2064
+; admin_controller.php line: 2085
 admin_controller_edited_pages = "Seleziona un URL precedentemente modificato"
 ;
-; admin_controller.php line: 2077
+; admin_controller.php line: 2098
 admin_controller_results_editor_need_url = "Aggiornamento pagina dei risultati necessita specificare URL!"
 ;
-; admin_controller.php line: 2083
+; admin_controller.php line: 2104
 admin_controller_results_editor_page_updated = "Pagina dei risultatai aggiornata!"
 ;
-; admin_controller.php line: 2096
+; admin_controller.php line: 2117
 admin_controller_results_editor_page_loaded = "Pagina caricata!"
 ;
-; admin_controller.php line: 2141
+; admin_controller.php line: 2162
 admin_controller_select_machine = "Seleziona Macchina"
 ;
-; admin_controller.php line: 2212
+; admin_controller.php line: 2233
 admin_controller_machine_added = "Macchina aggiunta!"
 ;
-; admin_controller.php line: 2219
+; admin_controller.php line: 2240
 admin_controller_machine_exists = "Nome Macchina gi&agrave; esistente; cancellala prima!"
 ;
-; admin_controller.php line: 2223
+; admin_controller.php line: 2244
 admin_controller_machine_incomplete = "Campi mancanti dal modulo Macchina!"
 ;
-; admin_controller.php line: 2232
+; admin_controller.php line: 2253
 admin_controller_machine_doesnt_exists = "Nome Macchina inesistente!"
 ;
-; admin_controller.php line: 2249
+; admin_controller.php line: 2270
 admin_controller_stop_service_first = "Macchina in uso. Ferma il servizio che sta svolgendo!"
 ;
-; admin_controller.php line: 2262
+; admin_controller.php line: 2283
 admin_controller_machine_deleted = "Macchina cancellata!"
 ;
-; admin_controller.php line: 2283
+; admin_controller.php line: 2304
 admin_controller_news_process_running = ""
 ;
-; admin_controller.php line: 2291
+; admin_controller.php line: 2312
 admin_controller_news_mode_updated = ""
 ;
-; admin_controller.php line: 2295
+; admin_controller.php line: 2316
 admin_controller_news_update_failed = ""
 ;
-; admin_controller.php line: 2358
+; admin_controller.php line: 2379
 admin_controller_no_machine_log = "Nessun file di log trovato."
 ;
-; admin_controller.php line: 2387
+; admin_controller.php line: 2408
 admin_controller_machine_servers_updated = "Server macchina aggiornato!"
 ;
-; admin_controller.php line: 2391
+; admin_controller.php line: 2412
 admin_controller_machine_no_action = "Impossibile svolgere azione!"
 ;
-; admin_controller.php line: 2424
+; admin_controller.php line: 2445
 admin_controller_select_localename = "Seleziona Lingua"
 ;
-; admin_controller.php line: 2468
+; admin_controller.php line: 2489
 admin_controller_locale_added = "Lingua aggiunta!"
 ;
-; admin_controller.php line: 2475
+; admin_controller.php line: 2496
 admin_controller_localename_doesnt_exists = "Lingua inesistente!"
 ;
-; admin_controller.php line: 2484
+; admin_controller.php line: 2505
 admin_controller_localename_deleted = "Lingua cancellata"
 ;
-; admin_controller.php line: 2493
+; admin_controller.php line: 2514
 admin_controller_select_staticpages = "Seleziona una pagina"
 ;
-; admin_controller.php line: 2512
+; admin_controller.php line: 2533
 admin_controller_staticpage_updated = "Pagina statica aggiornata!"
 ;
-; admin_controller.php line: 2539
+; admin_controller.php line: 2560
 admin_controller_localestrings_updated = "Stringa Lingua aggiornata!"
 ;
-; admin_controller.php line: 2596
+; admin_controller.php line: 2617
 admin_controller_php_version = "PHP Versione 5.3 o maggiore"
 ;
-; admin_controller.php line: 2604
+; admin_controller.php line: 2625
 admin_controller_no_write_config_php = "File configs/config.php non scrivibile dal web server."
 ;
-; admin_controller.php line: 2609
+; admin_controller.php line: 2630
 admin_controller_no_write_work_dir = "La Cartella di Lavoro deve essere scrivibile dal web server. "
 ;
-; admin_controller.php line: 2614
+; admin_controller.php line: 2635
 admin_controller_post_size_small = "La variabile post_max_size nel file php.ini dovrebbe essere minimo 32M"
 ;
-; admin_controller.php line: 2620
+; admin_controller.php line: 2641
 admin_controller_missing_required = "I seguenti oggetti richiesti sono mancanti: %s"
 ;
-; admin_controller.php line: 2643
+; admin_controller.php line: 2664
 admin_controller_missing_optional = "I seguenti oggetti opzionali sono mancanti: %s"
 ;
-; admin_controller.php line: 2648
+; admin_controller.php line: 2669
 admin_controller_check_passed = "Controllo passato."
 ;
-; admin_controller.php line: 2653
+; admin_controller.php line: 2674
 admin_controller_using_local_config = "Usando configs/local_config.php la Cartella di Lavoro sopra potrebbe non funzionare."
 ;
-; admin_controller.php line: 2678
+; admin_controller.php line: 2699
 admin_controller_media_kind = ""
 ;
-; admin_controller.php line: 2679
+; admin_controller.php line: 2700
 admin_controller_video = ""
 ;
-; admin_controller.php line: 2680
+; admin_controller.php line: 2701
 admin_controller_rss_feed = ""
 ;
-; admin_controller.php line: 2694
+; admin_controller.php line: 2715
 admin_controller_sources_indexes = ""
 ;
-; admin_controller.php line: 2747
+; admin_controller.php line: 2768
 admin_controller_media_source_added = ""
 ;
-; admin_controller.php line: 2755
+; admin_controller.php line: 2776
 admin_controller_media_source_deleted = ""
 ;
-; admin_controller.php line: 2771
+; admin_controller.php line: 2792
 admin_controller_subsearch_added = ""
 ;
-; admin_controller.php line: 2779
+; admin_controller.php line: 2800
 admin_controller_subsearch_deleted = ""
 ;
-; admin_controller.php line: 2854
+; admin_controller.php line: 2875
 admin_controller_configure_use_absolute_path = "Devi usare un percorso assoluto per la Cartella di Lavoro"
 ;
-; admin_controller.php line: 2866
+; admin_controller.php line: 2887
 admin_controller_configure_diff_base_dir = ""
 ;
-; admin_controller.php line: 2899
+; admin_controller.php line: 2920
 admin_controller_configure_work_dir_set = "Cartella di Lavoro creata! Potrebbe essere necessario ri-accedere!"
 ;
-; admin_controller.php line: 2913
+; admin_controller.php line: 2934
 admin_controller_name_your_bot = "Dai un nome al tuo Robot"
 ;
-; admin_controller.php line: 2936
+; admin_controller.php line: 2957
 admin_controller_configure_work_profile_made = "Cartella di Lavoro e Profilo creati!"
 ;
-; admin_controller.php line: 2949
+; admin_controller.php line: 2970
 admin_controller_configure_no_set_config = "Impossibile aggiornare il file config.php!"
 ;
-; admin_controller.php line: 2961
+; admin_controller.php line: 2982
 admin_controller_configure_no_create_profile = "Impossibile creare Profilo!"
 ;
-; admin_controller.php line: 2972
+; admin_controller.php line: 2993
 admin_controller_configure_work_dir_invalid = "Cartella di Lavoro non valida! Impossibile creare Profilo!"
 ;
-; admin_controller.php line: 2984
+; admin_controller.php line: 3005
 admin_controller_configure_work_dir_invalid = "Cartella di Lavoro non valida! Impossibile creare Profilo!"
 ;
-; admin_controller.php line: 3032
+; admin_controller.php line: 3053
 admin_controller_configure_no_change_db = "Problema aggiornamento database!"
 ;
-; admin_controller.php line: 3047
+; admin_controller.php line: 3068
 admin_controller_configure_profile_change = "Profilo aggiornato!"
 ;
-; admin_controller.php line: 3062
+; admin_controller.php line: 3083
 admin_controller_configure_no_change_profile = "C&#039;&egrave; stato un problema nell&#039;aggiornamento Profilo!"
 ;
-; admin_controller.php line: 3100
+; admin_controller.php line: 3121
 admin_controller_describe_robot = "Descrivi il tuo Robot"
 ;
 ; machine_controller.php line: 182
@@ -544,22 +544,22 @@ search_controller_crawl_delay = "Ritardo Scansione YioopBot"
 ; search_controller.php line: 1593
 search_controller_cache_comment = "Pagina archiviata Yioop... Questa pagina &egrave; stata modificata per aggiungere una direttiva al Robot, creare link assoluti, aggiungere sommari estratti, e evidenziari termini di ricerca."
 ;
-; search_controller.php line: 1637
+; search_controller.php line: 1638
 search_controller_cached_version = "Questa versione archiviata di %s &egrave; stata ottenuta dal Crawler di Yioop il %s."
 ;
-; search_controller.php line: 1752
+; search_controller.php line: 1753
 search_controller_header_summaries = ""
 ;
-; search_controller.php line: 1876
+; search_controller.php line: 1877
 search_controller_history = ""
 ;
-; search_controller.php line: 2052
+; search_controller.php line: 2053
 search_controller_all_cached = ""
 ;
-; search_controller.php line: 2083
+; search_controller.php line: 2084
 search_controller_year = ""
 ;
-; search_controller.php line: 2084
+; search_controller.php line: 2085
 search_controller_month = ""
 ;
 ; settings_controller.php line: 134
@@ -1254,111 +1254,114 @@ pageoptions_element_load_options = ""
 pageoptions_element_page_range = "Quantit&agrave; Byte da scaricare (0 - Valore):"
 ;
 ; pageoptions_element.php line: 95
+pageoptions_element_max_description = ""
+;
+; pageoptions_element.php line: 100
 pageoptions_element_save_cache = ""
 ;
-; pageoptions_element.php line: 105
+; pageoptions_element.php line: 110
 pageoptions_element_allow_recrawl = "Permetti Scansione pagina dopo:"
 ;
-; pageoptions_element.php line: 111
+; pageoptions_element.php line: 116
 pageoptions_element_file_types = "Tipologia pagine da Scansionare:"
 ;
-; pageoptions_element.php line: 141
+; pageoptions_element.php line: 146
 pageoptions_element_classifiers_to_apply = ""
 ;
-; pageoptions_element.php line: 176
+; pageoptions_element.php line: 181
 pageoptions_element_no_classifiers = ""
 ;
-; pageoptions_element.php line: 179
+; pageoptions_element.php line: 184
 pageoptions_element_indexing_plugins = "Plugin di indicizzazione"
 ;
-; pageoptions_element.php line: 183
+; pageoptions_element.php line: 188
 pageoptions_element_plugin = "Plugin"
 ;
-; pageoptions_element.php line: 186
+; pageoptions_element.php line: 191
 pageoptions_element_plugin_include = "Usa nella Scansione"
 ;
-; pageoptions_element.php line: 207
+; pageoptions_element.php line: 212
 pageoptions_element_no_compatible_plugins = ""
 ;
-; pageoptions_element.php line: 210
+; pageoptions_element.php line: 215
 pageoptions_element_page_rules = ""
 ;
-; pageoptions_element.php line: 218
+; pageoptions_element.php line: 223
 page_element_search_page = "Elementi e link pagina di ricerca"
 ;
-; pageoptions_element.php line: 223
+; pageoptions_element.php line: 228
 pageoptions_element_wd_suggest = "Suggerimento parola"
 ;
-; pageoptions_element.php line: 231
+; pageoptions_element.php line: 236
 pageoptions_element_subsearch_link = "Sotto-ricerca"
 ;
-; pageoptions_element.php line: 240
+; pageoptions_element.php line: 245
 pageoptions_element_signin_link = "Accesso"
 ;
-; pageoptions_element.php line: 247
+; pageoptions_element.php line: 252
 pageoptions_element_cache_link = "Archivio"
 ;
-; pageoptions_element.php line: 255
+; pageoptions_element.php line: 260
 pageoptions_element_similar_link = "Simile"
 ;
-; pageoptions_element.php line: 263
+; pageoptions_element.php line: 268
 pageoptions_element_in_link = "Inlink"
 ;
-; pageoptions_element.php line: 269
+; pageoptions_element.php line: 274
 pageoptions_element_ip_link = "Indirizzo IP"
 ;
-; pageoptions_element.php line: 278
+; pageoptions_element.php line: 283
 pageoptions_element_ranking_factors = "Fattori del posto"
 ;
-; pageoptions_element.php line: 281
+; pageoptions_element.php line: 286
 pageoptions_element_title_weight = "Peso Titolo:"
 ;
-; pageoptions_element.php line: 286
+; pageoptions_element.php line: 291
 pageoptions_element_description_weight = "Peso Descrizione:"
 ;
-; pageoptions_element.php line: 291
+; pageoptions_element.php line: 296
 pageoptions_element_link_weight = "Peso Link:"
 ;
-; pageoptions_element.php line: 296
+; pageoptions_element.php line: 301
 pageoptions_element_results_grouping_options = "Raggruppa risultati di ricerca"
 ;
-; pageoptions_element.php line: 299
+; pageoptions_element.php line: 304
 pageoptions_element_min_results_to_group = "Minimo risultati da raggruppare:"
 ;
-; pageoptions_element.php line: 304
+; pageoptions_element.php line: 309
 pageoptions_element_server_alpha = "Server Alpha:"
 ;
-; pageoptions_element.php line: 312
+; pageoptions_element.php line: 317
 pageoptions_element_test_page = ""
 ;
-; pageoptions_element.php line: 314
+; pageoptions_element.php line: 319
 pageoptions_element_page_type = ""
 ;
-; pageoptions_element.php line: 331
+; pageoptions_element.php line: 336
 pageoptions_element_save_options = "Salva"
 ;
-; pageoptions_element.php line: 333
+; pageoptions_element.php line: 338
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 339
+; pageoptions_element.php line: 344
 pageoptions_element_test_results = ""
 ;
-; pageoptions_element.php line: 342
+; pageoptions_element.php line: 347
 pageoptions_element_after_process = ""
 ;
-; pageoptions_element.php line: 346
+; pageoptions_element.php line: 351
 pageoptions_element_after_rules = ""
 ;
-; pageoptions_element.php line: 350
+; pageoptions_element.php line: 355
 pageoptions_element_extracted_words = ""
 ;
-; pageoptions_element.php line: 354
+; pageoptions_element.php line: 359
 pageoptions_element_extracted_metas = ""
 ;
-; pageoptions_element.php line: 388
+; pageoptions_element.php line: 393
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 392
+; pageoptions_element.php line: 397
 pageoptions_element_save_options = "Salva"
 ;
 ; resultseditor_element.php line: 58
diff --git a/locale/ja/configure.ini b/locale/ja/configure.ini
index 1791dee..d3bbc30 100755
--- a/locale/ja/configure.ini
+++ b/locale/ja/configure.ini
@@ -154,346 +154,346 @@ admin_controller_starting_new_crawl = "新しい検索を始まります"
 ; admin_controller.php line: 868
 admin_controller_no_description = "検索の説明ありません"
 ;
-; admin_controller.php line: 981
+; admin_controller.php line: 985
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 982
+; admin_controller.php line: 986
 admin_controller_use_defaults = ""
 ;
-; admin_controller.php line: 984
+; admin_controller.php line: 988
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 988
+; admin_controller.php line: 992
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1075
+; admin_controller.php line: 1084
 admin_controller_breadth_first = "幅優先"
 ;
-; admin_controller.php line: 1077
+; admin_controller.php line: 1086
 admin_controller_page_importance = "ページの重要性"
 ;
-; admin_controller.php line: 1143
+; admin_controller.php line: 1152
 admin_controller_urls_injected = ""
 ;
-; admin_controller.php line: 1154
+; admin_controller.php line: 1163
 admin_controller_update_seed_info = "シッド情報の更新"
 ;
-; admin_controller.php line: 1246
+; admin_controller.php line: 1255
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1247
+; admin_controller.php line: 1256
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1249
+; admin_controller.php line: 1258
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1251
+; admin_controller.php line: 1260
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1278
+; admin_controller.php line: 1287
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1283
+; admin_controller.php line: 1292
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1292
+; admin_controller.php line: 1301
 admin_controller_set_index = "指数のための検索設定する。"
 ;
-; admin_controller.php line: 1302
+; admin_controller.php line: 1311
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1310
+; admin_controller.php line: 1319
 admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1346
+; admin_controller.php line: 1355
 editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1348
+; admin_controller.php line: 1357
 editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1349
+; admin_controller.php line: 1358
 editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1350
+; admin_controller.php line: 1359
 editmix_element_weight = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1360
 editmix_element_name = ""
 ;
-; admin_controller.php line: 1352
+; admin_controller.php line: 1361
 editmix_add_keywords = ""
 ;
-; admin_controller.php line: 1353
+; admin_controller.php line: 1362
 editmix_element_actions = ""
 ;
-; admin_controller.php line: 1354
+; admin_controller.php line: 1363
 editmix_add_query = ""
 ;
-; admin_controller.php line: 1355
+; admin_controller.php line: 1364
 editmix_element_delete = ""
 ;
-; admin_controller.php line: 1407
+; admin_controller.php line: 1416
 admin_controller_mix_saved = ""
 ;
-; admin_controller.php line: 1458
+; admin_controller.php line: 1467
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 1459
+; admin_controller.php line: 1468
 admin_controller_use_defaults = ""
 ;
-; admin_controller.php line: 1461
+; admin_controller.php line: 1470
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 1465
+; admin_controller.php line: 1474
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1470
+; admin_controller.php line: 1479
 admin_controller_recrawl_never = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1480
 admin_controller_recrawl_1day = ""
 ;
-; admin_controller.php line: 1472
+; admin_controller.php line: 1481
 admin_controller_recrawl_2day = ""
 ;
-; admin_controller.php line: 1473
+; admin_controller.php line: 1482
 admin_controller_recrawl_3day = ""
 ;
-; admin_controller.php line: 1474
+; admin_controller.php line: 1483
 admin_controller_recrawl_7day = ""
 ;
-; admin_controller.php line: 1475
+; admin_controller.php line: 1484
 admin_controller_recrawl_14day = ""
 ;
-; admin_controller.php line: 1685
+; admin_controller.php line: 1705
 admin_controller_page_options_updated = ""
 ;
-; admin_controller.php line: 1711
+; admin_controller.php line: 1731
 admin_controller_page_options_running_tests = ""
 ;
-; admin_controller.php line: 1860
+; admin_controller.php line: 1881
 admin_controller_new_classifier = ""
 ;
-; admin_controller.php line: 1863
+; admin_controller.php line: 1884
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1875
+; admin_controller.php line: 1896
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1893
+; admin_controller.php line: 1914
 admin_controller_finalizing_classifier = ""
 ;
-; admin_controller.php line: 1916
+; admin_controller.php line: 1937
 admin_controller_classifier_deleted = ""
 ;
-; admin_controller.php line: 1920
+; admin_controller.php line: 1941
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1969
+; admin_controller.php line: 1990
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1980
+; admin_controller.php line: 2001
 editclassifier_load_failed = ""
 ;
-; admin_controller.php line: 1982
+; admin_controller.php line: 2003
 editclassifier_loading = ""
 ;
-; admin_controller.php line: 1984
+; admin_controller.php line: 2005
 editclassifier_added_examples = ""
 ;
-; admin_controller.php line: 1986
+; admin_controller.php line: 2007
 editclassifier_label_update_failed = ""
 ;
-; admin_controller.php line: 1988
+; admin_controller.php line: 2009
 editclassifier_updating = ""
 ;
-; admin_controller.php line: 1990
+; admin_controller.php line: 2011
 editclassifier_acc_update_failed = ""
 ;
-; admin_controller.php line: 1992
+; admin_controller.php line: 2013
 editclassifier_na = ""
 ;
-; admin_controller.php line: 1994
+; admin_controller.php line: 2015
 editclassifier_no_docs = ""
 ;
-; admin_controller.php line: 1996
+; admin_controller.php line: 2017
 editclassifier_num_docs = ""
 ;
-; admin_controller.php line: 1998
+; admin_controller.php line: 2019
 editclassifier_in_class = ""
 ;
-; admin_controller.php line: 2000
+; admin_controller.php line: 2021
 editclassifier_not_in_class = ""
 ;
-; admin_controller.php line: 2002
+; admin_controller.php line: 2023
 editclassifier_skip = ""
 ;
-; admin_controller.php line: 2004
+; admin_controller.php line: 2025
 editclassifier_prediction = ""
 ;
-; admin_controller.php line: 2006
+; admin_controller.php line: 2027
 editclassifier_scores = ""
 ;
-; admin_controller.php line: 2050
+; admin_controller.php line: 2071
 admin_controller_results_editor_update = ""
 ;
-; admin_controller.php line: 2064
+; admin_controller.php line: 2085
 admin_controller_edited_pages = ""
 ;
-; admin_controller.php line: 2077
+; admin_controller.php line: 2098
 admin_controller_results_editor_need_url = ""
 ;
-; admin_controller.php line: 2083
+; admin_controller.php line: 2104
 admin_controller_results_editor_page_updated = ""
 ;
-; admin_controller.php line: 2096
+; admin_controller.php line: 2117
 admin_controller_results_editor_page_loaded = ""
 ;
-; admin_controller.php line: 2141
+; admin_controller.php line: 2162
 admin_controller_select_machine = ""
 ;
-; admin_controller.php line: 2212
+; admin_controller.php line: 2233
 admin_controller_machine_added = ""
 ;
-; admin_controller.php line: 2219
+; admin_controller.php line: 2240
 admin_controller_machine_exists = ""
 ;
-; admin_controller.php line: 2223
+; admin_controller.php line: 2244
 admin_controller_machine_incomplete = ""
 ;
-; admin_controller.php line: 2232
+; admin_controller.php line: 2253
 admin_controller_machine_doesnt_exists = ""
 ;
-; admin_controller.php line: 2249
+; admin_controller.php line: 2270
 admin_controller_stop_service_first = ""
 ;
-; admin_controller.php line: 2262
+; admin_controller.php line: 2283
 admin_controller_machine_deleted = ""
 ;
-; admin_controller.php line: 2283
+; admin_controller.php line: 2304
 admin_controller_news_process_running = ""
 ;
-; admin_controller.php line: 2291
+; admin_controller.php line: 2312
 admin_controller_news_mode_updated = ""
 ;
-; admin_controller.php line: 2295
+; admin_controller.php line: 2316
 admin_controller_news_update_failed = ""
 ;
-; admin_controller.php line: 2358
+; admin_controller.php line: 2379
 admin_controller_no_machine_log = ""
 ;
-; admin_controller.php line: 2387
+; admin_controller.php line: 2408
 admin_controller_machine_servers_updated = ""
 ;
-; admin_controller.php line: 2391
+; admin_controller.php line: 2412
 admin_controller_machine_no_action = ""
 ;
-; admin_controller.php line: 2424
+; admin_controller.php line: 2445
 admin_controller_select_localename = "選択ローケル"
 ;
-; admin_controller.php line: 2468
+; admin_controller.php line: 2489
 admin_controller_locale_added = "ローケルが追加しました"
 ;
-; admin_controller.php line: 2475
+; admin_controller.php line: 2496
 admin_controller_localename_doesnt_exists = "ローケルは存在しません"
 ;
-; admin_controller.php line: 2484
+; admin_controller.php line: 2505
 admin_controller_localename_deleted = "ローケルを削除しました"
 ;
-; admin_controller.php line: 2493
+; admin_controller.php line: 2514
 admin_controller_select_staticpages = ""
 ;
-; admin_controller.php line: 2512
+; admin_controller.php line: 2533
 admin_controller_staticpage_updated = ""
 ;
-; admin_controller.php line: 2539
+; admin_controller.php line: 2560
 admin_controller_localestrings_updated = "ローケルストリングを編集しました"
 ;
-; admin_controller.php line: 2596
+; admin_controller.php line: 2617
 admin_controller_php_version = ""
 ;
-; admin_controller.php line: 2604
+; admin_controller.php line: 2625
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 2609
+; admin_controller.php line: 2630
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 2614
+; admin_controller.php line: 2635
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 2620
+; admin_controller.php line: 2641
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 2643
+; admin_controller.php line: 2664
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 2648
+; admin_controller.php line: 2669
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 2653
+; admin_controller.php line: 2674
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 2678
+; admin_controller.php line: 2699
 admin_controller_media_kind = ""
 ;
-; admin_controller.php line: 2679
+; admin_controller.php line: 2700
 admin_controller_video = ""
 ;
-; admin_controller.php line: 2680
+; admin_controller.php line: 2701
 admin_controller_rss_feed = ""
 ;
-; admin_controller.php line: 2694
+; admin_controller.php line: 2715
 admin_controller_sources_indexes = ""
 ;
-; admin_controller.php line: 2747
+; admin_controller.php line: 2768
 admin_controller_media_source_added = ""
 ;
-; admin_controller.php line: 2755
+; admin_controller.php line: 2776
 admin_controller_media_source_deleted = ""
 ;
-; admin_controller.php line: 2771
+; admin_controller.php line: 2792
 admin_controller_subsearch_added = ""
 ;
-; admin_controller.php line: 2779
+; admin_controller.php line: 2800
 admin_controller_subsearch_deleted = ""
 ;
-; admin_controller.php line: 2854
+; admin_controller.php line: 2875
 admin_controller_configure_use_absolute_path = ""
 ;
-; admin_controller.php line: 2866
+; admin_controller.php line: 2887
 admin_controller_configure_diff_base_dir = ""
 ;
-; admin_controller.php line: 2899
+; admin_controller.php line: 2920
 admin_controller_configure_work_dir_set = "作業ディレクトリの設定しました。もう一度ログインしてください。"
 ;
-; admin_controller.php line: 2913
+; admin_controller.php line: 2934
 admin_controller_name_your_bot = "ボット名を入力してください。"
 ;
-; admin_controller.php line: 2936
+; admin_controller.php line: 2957
 admin_controller_configure_work_profile_made = "作業ディレクトリとプロフィールの作成しました。"
 ;
-; admin_controller.php line: 2949
+; admin_controller.php line: 2970
 admin_controller_configure_no_set_config = "config.phpファイルのできない。更新"
 ;
-; admin_controller.php line: 2961
+; admin_controller.php line: 2982
 admin_controller_configure_no_create_profile = "プロフィールを作成できない。"
 ;
-; admin_controller.php line: 2972
+; admin_controller.php line: 2993
 admin_controller_configure_work_dir_invalid = "無効な作業ディレクト。プロフィールを作成できない。"
 ;
-; admin_controller.php line: 2984
+; admin_controller.php line: 3005
 admin_controller_configure_work_dir_invalid = "無効な作業ディレクト。プロフィールを作成できない。"
 ;
-; admin_controller.php line: 3032
+; admin_controller.php line: 3053
 admin_controller_configure_no_change_db = "ディータベースの更新ない"
 ;
-; admin_controller.php line: 3047
+; admin_controller.php line: 3068
 admin_controller_configure_profile_change = "プロフィールの変更できました。"
 ;
-; admin_controller.php line: 3062
+; admin_controller.php line: 3083
 admin_controller_configure_no_change_profile = "プロフィールの変更できない。"
 ;
-; admin_controller.php line: 3100
+; admin_controller.php line: 3121
 admin_controller_describe_robot = "ロボットの説明してください。"
 ;
 ; machine_controller.php line: 182
@@ -544,22 +544,22 @@ search_controller_crawl_delay = ""
 ; search_controller.php line: 1593
 search_controller_cache_comment = ""
 ;
-; search_controller.php line: 1637
+; search_controller.php line: 1638
 search_controller_cached_version = "％sのこのキャッシュされたバージョンは％sのウィオップから入手しました。"
 ;
-; search_controller.php line: 1752
+; search_controller.php line: 1753
 search_controller_header_summaries = ""
 ;
-; search_controller.php line: 1876
+; search_controller.php line: 1877
 search_controller_history = ""
 ;
-; search_controller.php line: 2052
+; search_controller.php line: 2053
 search_controller_all_cached = ""
 ;
-; search_controller.php line: 2083
+; search_controller.php line: 2084
 search_controller_year = ""
 ;
-; search_controller.php line: 2084
+; search_controller.php line: 2085
 search_controller_month = ""
 ;
 ; settings_controller.php line: 134
@@ -1254,111 +1254,114 @@ pageoptions_element_load_options = ""
 pageoptions_element_page_range = ""
 ;
 ; pageoptions_element.php line: 95
+pageoptions_element_max_description = ""
+;
+; pageoptions_element.php line: 100
 pageoptions_element_save_cache = ""
 ;
-; pageoptions_element.php line: 105
+; pageoptions_element.php line: 110
 pageoptions_element_allow_recrawl = ""
 ;
-; pageoptions_element.php line: 111
+; pageoptions_element.php line: 116
 pageoptions_element_file_types = ""
 ;
-; pageoptions_element.php line: 141
+; pageoptions_element.php line: 146
 pageoptions_element_classifiers_to_apply = ""
 ;
-; pageoptions_element.php line: 176
+; pageoptions_element.php line: 181
 pageoptions_element_no_classifiers = ""
 ;
-; pageoptions_element.php line: 179
+; pageoptions_element.php line: 184
 pageoptions_element_indexing_plugins = ""
 ;
-; pageoptions_element.php line: 183
+; pageoptions_element.php line: 188
 pageoptions_element_plugin = ""
 ;
-; pageoptions_element.php line: 186
+; pageoptions_element.php line: 191
 pageoptions_element_plugin_include = ""
 ;
-; pageoptions_element.php line: 207
+; pageoptions_element.php line: 212
 pageoptions_element_no_compatible_plugins = ""
 ;
-; pageoptions_element.php line: 210
+; pageoptions_element.php line: 215
 pageoptions_element_page_rules = ""
 ;
-; pageoptions_element.php line: 218
+; pageoptions_element.php line: 223
 page_element_search_page = ""
 ;
-; pageoptions_element.php line: 223
+; pageoptions_element.php line: 228
 pageoptions_element_wd_suggest = ""
 ;
-; pageoptions_element.php line: 231
+; pageoptions_element.php line: 236
 pageoptions_element_subsearch_link = ""
 ;
-; pageoptions_element.php line: 240
+; pageoptions_element.php line: 245
 pageoptions_element_signin_link = ""
 ;
-; pageoptions_element.php line: 247
+; pageoptions_element.php line: 252
 pageoptions_element_cache_link = ""
 ;
-; pageoptions_element.php line: 255
+; pageoptions_element.php line: 260
 pageoptions_element_similar_link = ""
 ;
-; pageoptions_element.php line: 263
+; pageoptions_element.php line: 268
 pageoptions_element_in_link = ""
 ;
-; pageoptions_element.php line: 269
+; pageoptions_element.php line: 274
 pageoptions_element_ip_link = ""
 ;
-; pageoptions_element.php line: 278
+; pageoptions_element.php line: 283
 pageoptions_element_ranking_factors = ""
 ;
-; pageoptions_element.php line: 281
+; pageoptions_element.php line: 286
 pageoptions_element_title_weight = ""
 ;
-; pageoptions_element.php line: 286
+; pageoptions_element.php line: 291
 pageoptions_element_description_weight = ""
 ;
-; pageoptions_element.php line: 291
+; pageoptions_element.php line: 296
 pageoptions_element_link_weight = ""
 ;
-; pageoptions_element.php line: 296
+; pageoptions_element.php line: 301
 pageoptions_element_results_grouping_options = ""
 ;
-; pageoptions_element.php line: 299
+; pageoptions_element.php line: 304
 pageoptions_element_min_results_to_group = ""
 ;
-; pageoptions_element.php line: 304
+; pageoptions_element.php line: 309
 pageoptions_element_server_alpha = ""
 ;
-; pageoptions_element.php line: 312
+; pageoptions_element.php line: 317
 pageoptions_element_test_page = ""
 ;
-; pageoptions_element.php line: 314
+; pageoptions_element.php line: 319
 pageoptions_element_page_type = ""
 ;
-; pageoptions_element.php line: 331
+; pageoptions_element.php line: 336
 pageoptions_element_save_options = ""
 ;
-; pageoptions_element.php line: 333
+; pageoptions_element.php line: 338
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 339
+; pageoptions_element.php line: 344
 pageoptions_element_test_results = ""
 ;
-; pageoptions_element.php line: 342
+; pageoptions_element.php line: 347
 pageoptions_element_after_process = ""
 ;
-; pageoptions_element.php line: 346
+; pageoptions_element.php line: 351
 pageoptions_element_after_rules = ""
 ;
-; pageoptions_element.php line: 350
+; pageoptions_element.php line: 355
 pageoptions_element_extracted_words = ""
 ;
-; pageoptions_element.php line: 354
+; pageoptions_element.php line: 359
 pageoptions_element_extracted_metas = ""
 ;
-; pageoptions_element.php line: 388
+; pageoptions_element.php line: 393
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 392
+; pageoptions_element.php line: 397
 pageoptions_element_save_options = ""
 ;
 ; resultseditor_element.php line: 58
diff --git a/locale/kn/configure.ini b/locale/kn/configure.ini
index d789c97..600a817 100755
--- a/locale/kn/configure.ini
+++ b/locale/kn/configure.ini
@@ -154,346 +154,346 @@ admin_controller_starting_new_crawl = "ಹೊಸ ಕ್ರಾವ್ಲ್  ಪ
 ; admin_controller.php line: 868
 admin_controller_no_description = "ಕ್ರಾವ್ಲಿನ ವಿವರಣೆ ಇಲ್ಲ"
 ;
-; admin_controller.php line: 981
+; admin_controller.php line: 985
 admin_controller_use_below = "ಐಚ್ಛಿಕ ಆಯ್ಕೆ ಉಪಯೋಗಿಸಿ"
 ;
-; admin_controller.php line: 982
+; admin_controller.php line: 986
 admin_controller_use_defaults = "ಯೂಪ್ ನ ಪೂರ್ವನಿಯೋಜಿತ ನಿಗದಿಗಳನ್ನು ಉಪಯೋಗಿಸಿ"
 ;
-; admin_controller.php line: 984
+; admin_controller.php line: 988
 admin_controller_use_below = "ಐಚ್ಛಿಕ ಆಯ್ಕೆ ಉಪಯೋಗಿಸಿ"
 ;
-; admin_controller.php line: 988
+; admin_controller.php line: 992
 admin_controller_previous_crawl = "ಮೊದಲಿನ ಕ್ರಾವ್ಲ:"
 ;
-; admin_controller.php line: 1075
+; admin_controller.php line: 1084
 admin_controller_breadth_first = "ಅಗಲ ಮೊದಲಾಗಿ"
 ;
-; admin_controller.php line: 1077
+; admin_controller.php line: 1086
 admin_controller_page_importance = "ಪುಟ ಪ್ರಾಮುಖ್ಯತೆ"
 ;
-; admin_controller.php line: 1143
+; admin_controller.php line: 1152
 admin_controller_urls_injected = ""
 ;
-; admin_controller.php line: 1154
+; admin_controller.php line: 1163
 admin_controller_update_seed_info = "ಮೂಲ ವೆಬ್ ಸೈಟಿನ ಮಾಹಿತಿಯನ್ನು ಪರಿಷ್ಕರಿಸಲಾಗುತ್ತಿದೆ"
 ;
-; admin_controller.php line: 1246
+; admin_controller.php line: 1255
 admin_controller_select_crawl = "ಕ್ರಾವ್ಲನ್ನು ಆಯ್ಕೆ ಮಾಡಿ"
 ;
-; admin_controller.php line: 1247
+; admin_controller.php line: 1256
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1249
+; admin_controller.php line: 1258
 admin_controller_select_crawl = "ಕ್ರಾವ್ಲನ್ನು ಆಯ್ಕೆ ಮಾಡಿ"
 ;
-; admin_controller.php line: 1251
+; admin_controller.php line: 1260
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1278
+; admin_controller.php line: 1287
 admin_controller_unnamed = "ಹೆಸರಿಡದ ಕ್ರಾವ್ಲ"
 ;
-; admin_controller.php line: 1283
+; admin_controller.php line: 1292
 admin_controller_mix_created = "ಕ್ರಾವ್ಲಗಳ ಮಿಶ್ರಣ ಸೃಜಿಸಲಾಯಿತು"
 ;
-; admin_controller.php line: 1292
+; admin_controller.php line: 1301
 admin_controller_set_index = "ಸೂಚಿಕೆಯಾಗಿ ಹೊಂದಿಸಲಾಗುತ್ತಿದೆ"
 ;
-; admin_controller.php line: 1302
+; admin_controller.php line: 1311
 admin_controller_mix_doesnt_exists = "ಅಳಿಸಬೇಕಾದ ಕ್ರಾವ್ಲ ಮಿಶ್ರಣ ಅಸ್ತಿತ್ವದಲ್ಲಿ ಇಲ್ಲ"
 ;
-; admin_controller.php line: 1310
+; admin_controller.php line: 1319
 admin_controller_mix_deleted = "ಕ್ರಾವ್ಲ ಮಿಶ್ರಣ ಅಳಿಸಲಾಗಿದೆ"
 ;
-; admin_controller.php line: 1346
+; admin_controller.php line: 1355
 editmix_element_add_crawls = "ಕ್ರಾವ್ಲಗಳನ್ನು ಸೇರಿಸಿ"
 ;
-; admin_controller.php line: 1348
+; admin_controller.php line: 1357
 editmix_element_num_results = "ಫಲಿತಾಂಶಗಳ ಸಂಖ್ಯೆ"
 ;
-; admin_controller.php line: 1349
+; admin_controller.php line: 1358
 editmix_element_del_grp = "ಗುಂಪನ್ನು ಅಳಿಸು"
 ;
-; admin_controller.php line: 1350
+; admin_controller.php line: 1359
 editmix_element_weight = "ಗೌರವ"
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1360
 editmix_element_name = "ಹೆಸರು"
 ;
-; admin_controller.php line: 1352
+; admin_controller.php line: 1361
 editmix_add_keywords = "ಮುಖ್ಯ ಪದ"
 ;
-; admin_controller.php line: 1353
+; admin_controller.php line: 1362
 editmix_element_actions = "ಕ್ರಿಯೆಗಳು"
 ;
-; admin_controller.php line: 1354
+; admin_controller.php line: 1363
 editmix_add_query = "ಪ್ರಶ್ನೆಯನ್ನು ಸೇರಿಸು"
 ;
-; admin_controller.php line: 1355
+; admin_controller.php line: 1364
 editmix_element_delete = "ಅಳಿಸು"
 ;
-; admin_controller.php line: 1407
+; admin_controller.php line: 1416
 admin_controller_mix_saved = "ಕ್ರಾವ್ಲ್ ಮಿಶ್ರಣದಲ್ಲಿ ಬದಲಾವಣೆಯನ್ನು ಉಳಿಸು"
 ;
-; admin_controller.php line: 1458
+; admin_controller.php line: 1467
 admin_controller_use_below = "ಐಚ್ಛಿಕ ಆಯ್ಕೆ ಉಪಯೋಗಿಸಿ"
 ;
-; admin_controller.php line: 1459
+; admin_controller.php line: 1468
 admin_controller_use_defaults = "ಯೂಪ್ ನ ಪೂರ್ವನಿಯೋಜಿತ ನಿಗದಿಗಳನ್ನು ಉಪಯೋಗಿಸಿ"
 ;
-; admin_controller.php line: 1461
+; admin_controller.php line: 1470
 admin_controller_use_below = "ಐಚ್ಛಿಕ ಆಯ್ಕೆ ಉಪಯೋಗಿಸಿ"
 ;
-; admin_controller.php line: 1465
+; admin_controller.php line: 1474
 admin_controller_previous_crawl = "ಮೊದಲಿನ ಕ್ರಾವ್ಲ:"
 ;
-; admin_controller.php line: 1470
+; admin_controller.php line: 1479
 admin_controller_recrawl_never = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1480
 admin_controller_recrawl_1day = ""
 ;
-; admin_controller.php line: 1472
+; admin_controller.php line: 1481
 admin_controller_recrawl_2day = ""
 ;
-; admin_controller.php line: 1473
+; admin_controller.php line: 1482
 admin_controller_recrawl_3day = ""
 ;
-; admin_controller.php line: 1474
+; admin_controller.php line: 1483
 admin_controller_recrawl_7day = ""
 ;
-; admin_controller.php line: 1475
+; admin_controller.php line: 1484
 admin_controller_recrawl_14day = ""
 ;
-; admin_controller.php line: 1685
+; admin_controller.php line: 1705
 admin_controller_page_options_updated = ""
 ;
-; admin_controller.php line: 1711
+; admin_controller.php line: 1731
 admin_controller_page_options_running_tests = ""
 ;
-; admin_controller.php line: 1860
+; admin_controller.php line: 1881
 admin_controller_new_classifier = ""
 ;
-; admin_controller.php line: 1863
+; admin_controller.php line: 1884
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1875
+; admin_controller.php line: 1896
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1893
+; admin_controller.php line: 1914
 admin_controller_finalizing_classifier = ""
 ;
-; admin_controller.php line: 1916
+; admin_controller.php line: 1937
 admin_controller_classifier_deleted = ""
 ;
-; admin_controller.php line: 1920
+; admin_controller.php line: 1941
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1969
+; admin_controller.php line: 1990
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1980
+; admin_controller.php line: 2001
 editclassifier_load_failed = ""
 ;
-; admin_controller.php line: 1982
+; admin_controller.php line: 2003
 editclassifier_loading = ""
 ;
-; admin_controller.php line: 1984
+; admin_controller.php line: 2005
 editclassifier_added_examples = ""
 ;
-; admin_controller.php line: 1986
+; admin_controller.php line: 2007
 editclassifier_label_update_failed = ""
 ;
-; admin_controller.php line: 1988
+; admin_controller.php line: 2009
 editclassifier_updating = ""
 ;
-; admin_controller.php line: 1990
+; admin_controller.php line: 2011
 editclassifier_acc_update_failed = ""
 ;
-; admin_controller.php line: 1992
+; admin_controller.php line: 2013
 editclassifier_na = ""
 ;
-; admin_controller.php line: 1994
+; admin_controller.php line: 2015
 editclassifier_no_docs = ""
 ;
-; admin_controller.php line: 1996
+; admin_controller.php line: 2017
 editclassifier_num_docs = ""
 ;
-; admin_controller.php line: 1998
+; admin_controller.php line: 2019
 editclassifier_in_class = ""
 ;
-; admin_controller.php line: 2000
+; admin_controller.php line: 2021
 editclassifier_not_in_class = ""
 ;
-; admin_controller.php line: 2002
+; admin_controller.php line: 2023
 editclassifier_skip = ""
 ;
-; admin_controller.php line: 2004
+; admin_controller.php line: 2025
 editclassifier_prediction = ""
 ;
-; admin_controller.php line: 2006
+; admin_controller.php line: 2027
 editclassifier_scores = ""
 ;
-; admin_controller.php line: 2050
+; admin_controller.php line: 2071
 admin_controller_results_editor_update = ""
 ;
-; admin_controller.php line: 2064
+; admin_controller.php line: 2085
 admin_controller_edited_pages = ""
 ;
-; admin_controller.php line: 2077
+; admin_controller.php line: 2098
 admin_controller_results_editor_need_url = ""
 ;
-; admin_controller.php line: 2083
+; admin_controller.php line: 2104
 admin_controller_results_editor_page_updated = ""
 ;
-; admin_controller.php line: 2096
+; admin_controller.php line: 2117
 admin_controller_results_editor_page_loaded = ""
 ;
-; admin_controller.php line: 2141
+; admin_controller.php line: 2162
 admin_controller_select_machine = ""
 ;
-; admin_controller.php line: 2212
+; admin_controller.php line: 2233
 admin_controller_machine_added = ""
 ;
-; admin_controller.php line: 2219
+; admin_controller.php line: 2240
 admin_controller_machine_exists = ""
 ;
-; admin_controller.php line: 2223
+; admin_controller.php line: 2244
 admin_controller_machine_incomplete = ""
 ;
-; admin_controller.php line: 2232
+; admin_controller.php line: 2253
 admin_controller_machine_doesnt_exists = ""
 ;
-; admin_controller.php line: 2249
+; admin_controller.php line: 2270
 admin_controller_stop_service_first = ""
 ;
-; admin_controller.php line: 2262
+; admin_controller.php line: 2283
 admin_controller_machine_deleted = ""
 ;
-; admin_controller.php line: 2283
+; admin_controller.php line: 2304
 admin_controller_news_process_running = ""
 ;
-; admin_controller.php line: 2291
+; admin_controller.php line: 2312
 admin_controller_news_mode_updated = ""
 ;
-; admin_controller.php line: 2295
+; admin_controller.php line: 2316
 admin_controller_news_update_failed = ""
 ;
-; admin_controller.php line: 2358
+; admin_controller.php line: 2379
 admin_controller_no_machine_log = ""
 ;
-; admin_controller.php line: 2387
+; admin_controller.php line: 2408
 admin_controller_machine_servers_updated = ""
 ;
-; admin_controller.php line: 2391
+; admin_controller.php line: 2412
 admin_controller_machine_no_action = ""
 ;
-; admin_controller.php line: 2424
+; admin_controller.php line: 2445
 admin_controller_select_localename = "ಪ್ರದೇಶದ ಶಿಷ್ಟತೆ ಆಯ್ಕೆ ಮಾಡಿ"
 ;
-; admin_controller.php line: 2468
+; admin_controller.php line: 2489
 admin_controller_locale_added = "ಪ್ರದೇಶದ ಶಿಷ್ಟತೆ ಸೇರಿಸಲಾಗಿದೆ"
 ;
-; admin_controller.php line: 2475
+; admin_controller.php line: 2496
 admin_controller_localename_doesnt_exists = "ಈ ಪ್ರದೇಶದ ಶಿಷ್ಟತೆ ಅಸ್ತಿತ್ವದಲ್ಲಿ ಇಲ್ಲ"
 ;
-; admin_controller.php line: 2484
+; admin_controller.php line: 2505
 admin_controller_localename_deleted = "ಪ್ರದೇಶದ ಶಿಷ್ಟತೆ ಅಳಿಸಲಾಗಿದೆ "
 ;
-; admin_controller.php line: 2493
+; admin_controller.php line: 2514
 admin_controller_select_staticpages = ""
 ;
-; admin_controller.php line: 2512
+; admin_controller.php line: 2533
 admin_controller_staticpage_updated = ""
 ;
-; admin_controller.php line: 2539
+; admin_controller.php line: 2560
 admin_controller_localestrings_updated = "ಪ್ರದೇಶ ಶಿಷ್ಟತೆಯ ಅಕ್ಷರ ಸಮೂಹವನ್ನು ಪರಿಷ್ಕರಿಸಲಾಯಿತು"
 ;
-; admin_controller.php line: 2596
+; admin_controller.php line: 2617
 admin_controller_php_version = ""
 ;
-; admin_controller.php line: 2604
+; admin_controller.php line: 2625
 admin_controller_no_write_config_php = "configs/config.php ವೆಬ್ ಸರ್ವರ್ ನಿಂದ ಬರೆಯಲು ಸಶಕ್ತವಲ್ಲ"
 ;
-; admin_controller.php line: 2609
+; admin_controller.php line: 2630
 admin_controller_no_write_work_dir = "ಕಾರ್ಯ ನಿರ್ದೇಶಿಕೆ ವೆಬ್ ಸರ್ವರ್ ನಿಂದ ಬರೆಯಲು ಸಶಕ್ತವಾಗಿರಬೇಕು"
 ;
-; admin_controller.php line: 2614
+; admin_controller.php line: 2635
 admin_controller_post_size_small = "php.ini ಕಡಿತದ ಚರಾಂಶ post_max_size ಕನಿಷ್ಠ ಪಕ್ಷ ೧೬ ಎಂ.ಬಿ. ಇರಬೇಕು"
 ;
-; admin_controller.php line: 2620
+; admin_controller.php line: 2641
 admin_controller_missing_required = "ಬರುವ ಅವಶ್ಯಕವಸ್ತುಗಳು ತಪ್ಪಿಹೋಗಿದ್ದಾವೆ:"
 ;
-; admin_controller.php line: 2643
+; admin_controller.php line: 2664
 admin_controller_missing_optional = "ಬರುವ ಕಡ್ಡಾಯವಲ್ಲದ ವಸ್ತುಗಳು ತಪ್ಪಿಹೋಗಿದ್ದಾವೆ:"
 ;
-; admin_controller.php line: 2648
+; admin_controller.php line: 2669
 admin_controller_check_passed = "ಪರಿಶೀಲನೆ ತೇರ್ಗಡೆಯಾಗಿದೆ"
 ;
-; admin_controller.php line: 2653
+; admin_controller.php line: 2674
 admin_controller_using_local_config = "configs/local_config.php ಉಪಯೋಗದಲ್ಲಿದೆ, ಅದರಿಂದ ಮೇಲಿನ ಕಾರ್ಯ ನಿರ್ದೇಶಿಕೆಯನ್ನು ಬದಲಾವಣೆ ನಿಷ್ಕ್ರಿಯವಾಗಬಹುದು "
 ;
-; admin_controller.php line: 2678
+; admin_controller.php line: 2699
 admin_controller_media_kind = ""
 ;
-; admin_controller.php line: 2679
+; admin_controller.php line: 2700
 admin_controller_video = ""
 ;
-; admin_controller.php line: 2680
+; admin_controller.php line: 2701
 admin_controller_rss_feed = ""
 ;
-; admin_controller.php line: 2694
+; admin_controller.php line: 2715
 admin_controller_sources_indexes = ""
 ;
-; admin_controller.php line: 2747
+; admin_controller.php line: 2768
 admin_controller_media_source_added = ""
 ;
-; admin_controller.php line: 2755
+; admin_controller.php line: 2776
 admin_controller_media_source_deleted = ""
 ;
-; admin_controller.php line: 2771
+; admin_controller.php line: 2792
 admin_controller_subsearch_added = ""
 ;
-; admin_controller.php line: 2779
+; admin_controller.php line: 2800
 admin_controller_subsearch_deleted = ""
 ;
-; admin_controller.php line: 2854
+; admin_controller.php line: 2875
 admin_controller_configure_use_absolute_path = ""
 ;
-; admin_controller.php line: 2866
+; admin_controller.php line: 2887
 admin_controller_configure_diff_base_dir = ""
 ;
-; admin_controller.php line: 2899
+; admin_controller.php line: 2920
 admin_controller_configure_work_dir_set = "ಕಾರ್ಯ ನಿರ್ದೇಶಿಕೆಯನ್ನು ನಿಗದಿಪಡಿಸಲಾಗಿದೆ!  ನೀವು ಮರು ಪ್ರವೇಶಿಸಬೇಕಾಗಬಹುದು"
 ;
-; admin_controller.php line: 2913
+; admin_controller.php line: 2934
 admin_controller_name_your_bot = ""
 ;
-; admin_controller.php line: 2936
+; admin_controller.php line: 2957
 admin_controller_configure_work_profile_made = ""
 ;
-; admin_controller.php line: 2949
+; admin_controller.php line: 2970
 admin_controller_configure_no_set_config = ""
 ;
-; admin_controller.php line: 2961
+; admin_controller.php line: 2982
 admin_controller_configure_no_create_profile = ""
 ;
-; admin_controller.php line: 2972
+; admin_controller.php line: 2993
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 2984
+; admin_controller.php line: 3005
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 3032
+; admin_controller.php line: 3053
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 3047
+; admin_controller.php line: 3068
 admin_controller_configure_profile_change = ""
 ;
-; admin_controller.php line: 3062
+; admin_controller.php line: 3083
 admin_controller_configure_no_change_profile = ""
 ;
-; admin_controller.php line: 3100
+; admin_controller.php line: 3121
 admin_controller_describe_robot = ""
 ;
 ; machine_controller.php line: 182
@@ -544,22 +544,22 @@ search_controller_crawl_delay = ""
 ; search_controller.php line: 1593
 search_controller_cache_comment = ""
 ;
-; search_controller.php line: 1637
+; search_controller.php line: 1638
 search_controller_cached_version = ""
 ;
-; search_controller.php line: 1752
+; search_controller.php line: 1753
 search_controller_header_summaries = ""
 ;
-; search_controller.php line: 1876
+; search_controller.php line: 1877
 search_controller_history = ""
 ;
-; search_controller.php line: 2052
+; search_controller.php line: 2053
 search_controller_all_cached = ""
 ;
-; search_controller.php line: 2083
+; search_controller.php line: 2084
 search_controller_year = ""
 ;
-; search_controller.php line: 2084
+; search_controller.php line: 2085
 search_controller_month = ""
 ;
 ; settings_controller.php line: 134
@@ -1254,111 +1254,114 @@ pageoptions_element_load_options = ""
 pageoptions_element_page_range = ""
 ;
 ; pageoptions_element.php line: 95
+pageoptions_element_max_description = ""
+;
+; pageoptions_element.php line: 100
 pageoptions_element_save_cache = ""
 ;
-; pageoptions_element.php line: 105
+; pageoptions_element.php line: 110
 pageoptions_element_allow_recrawl = ""
 ;
-; pageoptions_element.php line: 111
+; pageoptions_element.php line: 116
 pageoptions_element_file_types = ""
 ;
-; pageoptions_element.php line: 141
+; pageoptions_element.php line: 146
 pageoptions_element_classifiers_to_apply = ""
 ;
-; pageoptions_element.php line: 176
+; pageoptions_element.php line: 181
 pageoptions_element_no_classifiers = ""
 ;
-; pageoptions_element.php line: 179
+; pageoptions_element.php line: 184
 pageoptions_element_indexing_plugins = ""
 ;
-; pageoptions_element.php line: 183
+; pageoptions_element.php line: 188
 pageoptions_element_plugin = ""
 ;
-; pageoptions_element.php line: 186
+; pageoptions_element.php line: 191
 pageoptions_element_plugin_include = ""
 ;
-; pageoptions_element.php line: 207
+; pageoptions_element.php line: 212
 pageoptions_element_no_compatible_plugins = ""
 ;
-; pageoptions_element.php line: 210
+; pageoptions_element.php line: 215
 pageoptions_element_page_rules = ""
 ;
-; pageoptions_element.php line: 218
+; pageoptions_element.php line: 223
 page_element_search_page = ""
 ;
-; pageoptions_element.php line: 223
+; pageoptions_element.php line: 228
 pageoptions_element_wd_suggest = ""
 ;
-; pageoptions_element.php line: 231
+; pageoptions_element.php line: 236
 pageoptions_element_subsearch_link = ""
 ;
-; pageoptions_element.php line: 240
+; pageoptions_element.php line: 245
 pageoptions_element_signin_link = ""
 ;
-; pageoptions_element.php line: 247
+; pageoptions_element.php line: 252
 pageoptions_element_cache_link = ""
 ;
-; pageoptions_element.php line: 255
+; pageoptions_element.php line: 260
 pageoptions_element_similar_link = ""
 ;
-; pageoptions_element.php line: 263
+; pageoptions_element.php line: 268
 pageoptions_element_in_link = ""
 ;
-; pageoptions_element.php line: 269
+; pageoptions_element.php line: 274
 pageoptions_element_ip_link = ""
 ;
-; pageoptions_element.php line: 278
+; pageoptions_element.php line: 283
 pageoptions_element_ranking_factors = ""
 ;
-; pageoptions_element.php line: 281
+; pageoptions_element.php line: 286
 pageoptions_element_title_weight = ""
 ;
-; pageoptions_element.php line: 286
+; pageoptions_element.php line: 291
 pageoptions_element_description_weight = ""
 ;
-; pageoptions_element.php line: 291
+; pageoptions_element.php line: 296
 pageoptions_element_link_weight = ""
 ;
-; pageoptions_element.php line: 296
+; pageoptions_element.php line: 301
 pageoptions_element_results_grouping_options = ""
 ;
-; pageoptions_element.php line: 299
+; pageoptions_element.php line: 304
 pageoptions_element_min_results_to_group = ""
 ;
-; pageoptions_element.php line: 304
+; pageoptions_element.php line: 309
 pageoptions_element_server_alpha = ""
 ;
-; pageoptions_element.php line: 312
+; pageoptions_element.php line: 317
 pageoptions_element_test_page = ""
 ;
-; pageoptions_element.php line: 314
+; pageoptions_element.php line: 319
 pageoptions_element_page_type = ""
 ;
-; pageoptions_element.php line: 331
+; pageoptions_element.php line: 336
 pageoptions_element_save_options = ""
 ;
-; pageoptions_element.php line: 333
+; pageoptions_element.php line: 338
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 339
+; pageoptions_element.php line: 344
 pageoptions_element_test_results = ""
 ;
-; pageoptions_element.php line: 342
+; pageoptions_element.php line: 347
 pageoptions_element_after_process = ""
 ;
-; pageoptions_element.php line: 346
+; pageoptions_element.php line: 351
 pageoptions_element_after_rules = ""
 ;
-; pageoptions_element.php line: 350
+; pageoptions_element.php line: 355
 pageoptions_element_extracted_words = ""
 ;
-; pageoptions_element.php line: 354
+; pageoptions_element.php line: 359
 pageoptions_element_extracted_metas = ""
 ;
-; pageoptions_element.php line: 388
+; pageoptions_element.php line: 393
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 392
+; pageoptions_element.php line: 397
 pageoptions_element_save_options = ""
 ;
 ; resultseditor_element.php line: 58
diff --git a/locale/ko/configure.ini b/locale/ko/configure.ini
index f7392d2..9ca767b 100755
--- a/locale/ko/configure.ini
+++ b/locale/ko/configure.ini
@@ -154,346 +154,346 @@ admin_controller_starting_new_crawl = "크롤 시작!!"
 ; admin_controller.php line: 868
 admin_controller_no_description = "크롤에 대한 설명이 존재 하지 않습니다."
 ;
-; admin_controller.php line: 981
+; admin_controller.php line: 985
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 982
+; admin_controller.php line: 986
 admin_controller_use_defaults = ""
 ;
-; admin_controller.php line: 984
+; admin_controller.php line: 988
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 988
+; admin_controller.php line: 992
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1075
+; admin_controller.php line: 1084
 admin_controller_breadth_first = "너비 우선"
 ;
-; admin_controller.php line: 1077
+; admin_controller.php line: 1086
 admin_controller_page_importance = "페이지 중요성"
 ;
-; admin_controller.php line: 1143
+; admin_controller.php line: 1152
 admin_controller_urls_injected = ""
 ;
-; admin_controller.php line: 1154
+; admin_controller.php line: 1163
 admin_controller_update_seed_info = "씨드 사이트 업데이트"
 ;
-; admin_controller.php line: 1246
+; admin_controller.php line: 1255
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1247
+; admin_controller.php line: 1256
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1249
+; admin_controller.php line: 1258
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1251
+; admin_controller.php line: 1260
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1278
+; admin_controller.php line: 1287
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1283
+; admin_controller.php line: 1292
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1292
+; admin_controller.php line: 1301
 admin_controller_set_index = "크롤을 인덱스로써 사용하기 지정"
 ;
-; admin_controller.php line: 1302
+; admin_controller.php line: 1311
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1310
+; admin_controller.php line: 1319
 admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1346
+; admin_controller.php line: 1355
 editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1348
+; admin_controller.php line: 1357
 editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1349
+; admin_controller.php line: 1358
 editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1350
+; admin_controller.php line: 1359
 editmix_element_weight = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1360
 editmix_element_name = ""
 ;
-; admin_controller.php line: 1352
+; admin_controller.php line: 1361
 editmix_add_keywords = ""
 ;
-; admin_controller.php line: 1353
+; admin_controller.php line: 1362
 editmix_element_actions = ""
 ;
-; admin_controller.php line: 1354
+; admin_controller.php line: 1363
 editmix_add_query = ""
 ;
-; admin_controller.php line: 1355
+; admin_controller.php line: 1364
 editmix_element_delete = ""
 ;
-; admin_controller.php line: 1407
+; admin_controller.php line: 1416
 admin_controller_mix_saved = ""
 ;
-; admin_controller.php line: 1458
+; admin_controller.php line: 1467
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 1459
+; admin_controller.php line: 1468
 admin_controller_use_defaults = ""
 ;
-; admin_controller.php line: 1461
+; admin_controller.php line: 1470
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 1465
+; admin_controller.php line: 1474
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1470
+; admin_controller.php line: 1479
 admin_controller_recrawl_never = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1480
 admin_controller_recrawl_1day = ""
 ;
-; admin_controller.php line: 1472
+; admin_controller.php line: 1481
 admin_controller_recrawl_2day = ""
 ;
-; admin_controller.php line: 1473
+; admin_controller.php line: 1482
 admin_controller_recrawl_3day = ""
 ;
-; admin_controller.php line: 1474
+; admin_controller.php line: 1483
 admin_controller_recrawl_7day = ""
 ;
-; admin_controller.php line: 1475
+; admin_controller.php line: 1484
 admin_controller_recrawl_14day = ""
 ;
-; admin_controller.php line: 1685
+; admin_controller.php line: 1705
 admin_controller_page_options_updated = ""
 ;
-; admin_controller.php line: 1711
+; admin_controller.php line: 1731
 admin_controller_page_options_running_tests = ""
 ;
-; admin_controller.php line: 1860
+; admin_controller.php line: 1881
 admin_controller_new_classifier = ""
 ;
-; admin_controller.php line: 1863
+; admin_controller.php line: 1884
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1875
+; admin_controller.php line: 1896
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1893
+; admin_controller.php line: 1914
 admin_controller_finalizing_classifier = ""
 ;
-; admin_controller.php line: 1916
+; admin_controller.php line: 1937
 admin_controller_classifier_deleted = ""
 ;
-; admin_controller.php line: 1920
+; admin_controller.php line: 1941
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1969
+; admin_controller.php line: 1990
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1980
+; admin_controller.php line: 2001
 editclassifier_load_failed = ""
 ;
-; admin_controller.php line: 1982
+; admin_controller.php line: 2003
 editclassifier_loading = ""
 ;
-; admin_controller.php line: 1984
+; admin_controller.php line: 2005
 editclassifier_added_examples = ""
 ;
-; admin_controller.php line: 1986
+; admin_controller.php line: 2007
 editclassifier_label_update_failed = ""
 ;
-; admin_controller.php line: 1988
+; admin_controller.php line: 2009
 editclassifier_updating = ""
 ;
-; admin_controller.php line: 1990
+; admin_controller.php line: 2011
 editclassifier_acc_update_failed = ""
 ;
-; admin_controller.php line: 1992
+; admin_controller.php line: 2013
 editclassifier_na = ""
 ;
-; admin_controller.php line: 1994
+; admin_controller.php line: 2015
 editclassifier_no_docs = ""
 ;
-; admin_controller.php line: 1996
+; admin_controller.php line: 2017
 editclassifier_num_docs = ""
 ;
-; admin_controller.php line: 1998
+; admin_controller.php line: 2019
 editclassifier_in_class = ""
 ;
-; admin_controller.php line: 2000
+; admin_controller.php line: 2021
 editclassifier_not_in_class = ""
 ;
-; admin_controller.php line: 2002
+; admin_controller.php line: 2023
 editclassifier_skip = ""
 ;
-; admin_controller.php line: 2004
+; admin_controller.php line: 2025
 editclassifier_prediction = ""
 ;
-; admin_controller.php line: 2006
+; admin_controller.php line: 2027
 editclassifier_scores = ""
 ;
-; admin_controller.php line: 2050
+; admin_controller.php line: 2071
 admin_controller_results_editor_update = ""
 ;
-; admin_controller.php line: 2064
+; admin_controller.php line: 2085
 admin_controller_edited_pages = ""
 ;
-; admin_controller.php line: 2077
+; admin_controller.php line: 2098
 admin_controller_results_editor_need_url = ""
 ;
-; admin_controller.php line: 2083
+; admin_controller.php line: 2104
 admin_controller_results_editor_page_updated = ""
 ;
-; admin_controller.php line: 2096
+; admin_controller.php line: 2117
 admin_controller_results_editor_page_loaded = ""
 ;
-; admin_controller.php line: 2141
+; admin_controller.php line: 2162
 admin_controller_select_machine = ""
 ;
-; admin_controller.php line: 2212
+; admin_controller.php line: 2233
 admin_controller_machine_added = ""
 ;
-; admin_controller.php line: 2219
+; admin_controller.php line: 2240
 admin_controller_machine_exists = ""
 ;
-; admin_controller.php line: 2223
+; admin_controller.php line: 2244
 admin_controller_machine_incomplete = ""
 ;
-; admin_controller.php line: 2232
+; admin_controller.php line: 2253
 admin_controller_machine_doesnt_exists = ""
 ;
-; admin_controller.php line: 2249
+; admin_controller.php line: 2270
 admin_controller_stop_service_first = ""
 ;
-; admin_controller.php line: 2262
+; admin_controller.php line: 2283
 admin_controller_machine_deleted = ""
 ;
-; admin_controller.php line: 2283
+; admin_controller.php line: 2304
 admin_controller_news_process_running = ""
 ;
-; admin_controller.php line: 2291
+; admin_controller.php line: 2312
 admin_controller_news_mode_updated = ""
 ;
-; admin_controller.php line: 2295
+; admin_controller.php line: 2316
 admin_controller_news_update_failed = ""
 ;
-; admin_controller.php line: 2358
+; admin_controller.php line: 2379
 admin_controller_no_machine_log = ""
 ;
-; admin_controller.php line: 2387
+; admin_controller.php line: 2408
 admin_controller_machine_servers_updated = ""
 ;
-; admin_controller.php line: 2391
+; admin_controller.php line: 2412
 admin_controller_machine_no_action = ""
 ;
-; admin_controller.php line: 2424
+; admin_controller.php line: 2445
 admin_controller_select_localename = "로케일을 선택하여 주십시요."
 ;
-; admin_controller.php line: 2468
+; admin_controller.php line: 2489
 admin_controller_locale_added = "로케일 추가!!"
 ;
-; admin_controller.php line: 2475
+; admin_controller.php line: 2496
 admin_controller_localename_doesnt_exists = "로케일이 존재하지 않습니다."
 ;
-; admin_controller.php line: 2484
+; admin_controller.php line: 2505
 admin_controller_localename_deleted = "로케일을 삭제 하였습니다."
 ;
-; admin_controller.php line: 2493
+; admin_controller.php line: 2514
 admin_controller_select_staticpages = ""
 ;
-; admin_controller.php line: 2512
+; admin_controller.php line: 2533
 admin_controller_staticpage_updated = ""
 ;
-; admin_controller.php line: 2539
+; admin_controller.php line: 2560
 admin_controller_localestrings_updated = "로케일 지정 문자열을 업데이트 하였습니다."
 ;
-; admin_controller.php line: 2596
+; admin_controller.php line: 2617
 admin_controller_php_version = ""
 ;
-; admin_controller.php line: 2604
+; admin_controller.php line: 2625
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 2609
+; admin_controller.php line: 2630
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 2614
+; admin_controller.php line: 2635
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 2620
+; admin_controller.php line: 2641
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 2643
+; admin_controller.php line: 2664
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 2648
+; admin_controller.php line: 2669
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 2653
+; admin_controller.php line: 2674
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 2678
+; admin_controller.php line: 2699
 admin_controller_media_kind = ""
 ;
-; admin_controller.php line: 2679
+; admin_controller.php line: 2700
 admin_controller_video = ""
 ;
-; admin_controller.php line: 2680
+; admin_controller.php line: 2701
 admin_controller_rss_feed = ""
 ;
-; admin_controller.php line: 2694
+; admin_controller.php line: 2715
 admin_controller_sources_indexes = ""
 ;
-; admin_controller.php line: 2747
+; admin_controller.php line: 2768
 admin_controller_media_source_added = ""
 ;
-; admin_controller.php line: 2755
+; admin_controller.php line: 2776
 admin_controller_media_source_deleted = ""
 ;
-; admin_controller.php line: 2771
+; admin_controller.php line: 2792
 admin_controller_subsearch_added = ""
 ;
-; admin_controller.php line: 2779
+; admin_controller.php line: 2800
 admin_controller_subsearch_deleted = ""
 ;
-; admin_controller.php line: 2854
+; admin_controller.php line: 2875
 admin_controller_configure_use_absolute_path = ""
 ;
-; admin_controller.php line: 2866
+; admin_controller.php line: 2887
 admin_controller_configure_diff_base_dir = ""
 ;
-; admin_controller.php line: 2899
+; admin_controller.php line: 2920
 admin_controller_configure_work_dir_set = "작업 디렉토리가 지정 됐습니다. 다시 로그인이 필요할수 있습니다."
 ;
-; admin_controller.php line: 2913
+; admin_controller.php line: 2934
 admin_controller_name_your_bot = "로봇 이름을 정해 주십시요."
 ;
-; admin_controller.php line: 2936
+; admin_controller.php line: 2957
 admin_controller_configure_work_profile_made = "작업 디렉토리와 프로필이 생성됐습니다."
 ;
-; admin_controller.php line: 2949
+; admin_controller.php line: 2970
 admin_controller_configure_no_set_config = "config.php 파일을  업데이트 실패했습니다."
 ;
-; admin_controller.php line: 2961
+; admin_controller.php line: 2982
 admin_controller_configure_no_create_profile = "프로필을 생성할수 없습니다."
 ;
-; admin_controller.php line: 2972
+; admin_controller.php line: 2993
 admin_controller_configure_work_dir_invalid = "작업 디렉토리가 올바르지 않습니다. 프로필을 생성할수 없습니다."
 ;
-; admin_controller.php line: 2984
+; admin_controller.php line: 3005
 admin_controller_configure_work_dir_invalid = "작업 디렉토리가 올바르지 않습니다. 프로필을 생성할수 없습니다."
 ;
-; admin_controller.php line: 3032
+; admin_controller.php line: 3053
 admin_controller_configure_no_change_db = "데이터베이스를 업데이트하는데 문제가 발생했습니다."
 ;
-; admin_controller.php line: 3047
+; admin_controller.php line: 3068
 admin_controller_configure_profile_change = "프로필을 업데이트 했습니다."
 ;
-; admin_controller.php line: 3062
+; admin_controller.php line: 3083
 admin_controller_configure_no_change_profile = "프로필을 업데이트하는데 문제가 발생했습니다."
 ;
-; admin_controller.php line: 3100
+; admin_controller.php line: 3121
 admin_controller_describe_robot = "당신의 로봇을 기술해 주십시요."
 ;
 ; machine_controller.php line: 182
@@ -544,22 +544,22 @@ search_controller_crawl_delay = ""
 ; search_controller.php line: 1593
 search_controller_cache_comment = ""
 ;
-; search_controller.php line: 1637
+; search_controller.php line: 1638
 search_controller_cached_version = "현재 캐시 버젼 %s 은 Yioop 크롤 %s 에 의하여 얻어 졌습니다. "
 ;
-; search_controller.php line: 1752
+; search_controller.php line: 1753
 search_controller_header_summaries = ""
 ;
-; search_controller.php line: 1876
+; search_controller.php line: 1877
 search_controller_history = ""
 ;
-; search_controller.php line: 2052
+; search_controller.php line: 2053
 search_controller_all_cached = ""
 ;
-; search_controller.php line: 2083
+; search_controller.php line: 2084
 search_controller_year = ""
 ;
-; search_controller.php line: 2084
+; search_controller.php line: 2085
 search_controller_month = ""
 ;
 ; settings_controller.php line: 134
@@ -1254,111 +1254,114 @@ pageoptions_element_load_options = ""
 pageoptions_element_page_range = ""
 ;
 ; pageoptions_element.php line: 95
+pageoptions_element_max_description = ""
+;
+; pageoptions_element.php line: 100
 pageoptions_element_save_cache = ""
 ;
-; pageoptions_element.php line: 105
+; pageoptions_element.php line: 110
 pageoptions_element_allow_recrawl = ""
 ;
-; pageoptions_element.php line: 111
+; pageoptions_element.php line: 116
 pageoptions_element_file_types = ""
 ;
-; pageoptions_element.php line: 141
+; pageoptions_element.php line: 146
 pageoptions_element_classifiers_to_apply = ""
 ;
-; pageoptions_element.php line: 176
+; pageoptions_element.php line: 181
 pageoptions_element_no_classifiers = ""
 ;
-; pageoptions_element.php line: 179
+; pageoptions_element.php line: 184
 pageoptions_element_indexing_plugins = ""
 ;
-; pageoptions_element.php line: 183
+; pageoptions_element.php line: 188
 pageoptions_element_plugin = ""
 ;
-; pageoptions_element.php line: 186
+; pageoptions_element.php line: 191
 pageoptions_element_plugin_include = ""
 ;
-; pageoptions_element.php line: 207
+; pageoptions_element.php line: 212
 pageoptions_element_no_compatible_plugins = ""
 ;
-; pageoptions_element.php line: 210
+; pageoptions_element.php line: 215
 pageoptions_element_page_rules = ""
 ;
-; pageoptions_element.php line: 218
+; pageoptions_element.php line: 223
 page_element_search_page = ""
 ;
-; pageoptions_element.php line: 223
+; pageoptions_element.php line: 228
 pageoptions_element_wd_suggest = ""
 ;
-; pageoptions_element.php line: 231
+; pageoptions_element.php line: 236
 pageoptions_element_subsearch_link = ""
 ;
-; pageoptions_element.php line: 240
+; pageoptions_element.php line: 245
 pageoptions_element_signin_link = ""
 ;
-; pageoptions_element.php line: 247
+; pageoptions_element.php line: 252
 pageoptions_element_cache_link = ""
 ;
-; pageoptions_element.php line: 255
+; pageoptions_element.php line: 260
 pageoptions_element_similar_link = ""
 ;
-; pageoptions_element.php line: 263
+; pageoptions_element.php line: 268
 pageoptions_element_in_link = ""
 ;
-; pageoptions_element.php line: 269
+; pageoptions_element.php line: 274
 pageoptions_element_ip_link = ""
 ;
-; pageoptions_element.php line: 278
+; pageoptions_element.php line: 283
 pageoptions_element_ranking_factors = ""
 ;
-; pageoptions_element.php line: 281
+; pageoptions_element.php line: 286
 pageoptions_element_title_weight = ""
 ;
-; pageoptions_element.php line: 286
+; pageoptions_element.php line: 291
 pageoptions_element_description_weight = ""
 ;
-; pageoptions_element.php line: 291
+; pageoptions_element.php line: 296
 pageoptions_element_link_weight = ""
 ;
-; pageoptions_element.php line: 296
+; pageoptions_element.php line: 301
 pageoptions_element_results_grouping_options = ""
 ;
-; pageoptions_element.php line: 299
+; pageoptions_element.php line: 304
 pageoptions_element_min_results_to_group = ""
 ;
-; pageoptions_element.php line: 304
+; pageoptions_element.php line: 309
 pageoptions_element_server_alpha = ""
 ;
-; pageoptions_element.php line: 312
+; pageoptions_element.php line: 317
 pageoptions_element_test_page = ""
 ;
-; pageoptions_element.php line: 314
+; pageoptions_element.php line: 319
 pageoptions_element_page_type = ""
 ;
-; pageoptions_element.php line: 331
+; pageoptions_element.php line: 336
 pageoptions_element_save_options = ""
 ;
-; pageoptions_element.php line: 333
+; pageoptions_element.php line: 338
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 339
+; pageoptions_element.php line: 344
 pageoptions_element_test_results = ""
 ;
-; pageoptions_element.php line: 342
+; pageoptions_element.php line: 347
 pageoptions_element_after_process = ""
 ;
-; pageoptions_element.php line: 346
+; pageoptions_element.php line: 351
 pageoptions_element_after_rules = ""
 ;
-; pageoptions_element.php line: 350
+; pageoptions_element.php line: 355
 pageoptions_element_extracted_words = ""
 ;
-; pageoptions_element.php line: 354
+; pageoptions_element.php line: 359
 pageoptions_element_extracted_metas = ""
 ;
-; pageoptions_element.php line: 388
+; pageoptions_element.php line: 393
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 392
+; pageoptions_element.php line: 397
 pageoptions_element_save_options = ""
 ;
 ; resultseditor_element.php line: 58
diff --git a/locale/pl/configure.ini b/locale/pl/configure.ini
index 07bba23..4797cc5 100755
--- a/locale/pl/configure.ini
+++ b/locale/pl/configure.ini
@@ -154,346 +154,346 @@ admin_controller_starting_new_crawl = ""
 ; admin_controller.php line: 868
 admin_controller_no_description = ""
 ;
-; admin_controller.php line: 981
+; admin_controller.php line: 985
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 982
+; admin_controller.php line: 986
 admin_controller_use_defaults = ""
 ;
-; admin_controller.php line: 984
+; admin_controller.php line: 988
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 988
+; admin_controller.php line: 992
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1075
+; admin_controller.php line: 1084
 admin_controller_breadth_first = ""
 ;
-; admin_controller.php line: 1077
+; admin_controller.php line: 1086
 admin_controller_page_importance = ""
 ;
-; admin_controller.php line: 1143
+; admin_controller.php line: 1152
 admin_controller_urls_injected = ""
 ;
-; admin_controller.php line: 1154
+; admin_controller.php line: 1163
 admin_controller_update_seed_info = ""
 ;
-; admin_controller.php line: 1246
+; admin_controller.php line: 1255
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1247
+; admin_controller.php line: 1256
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1249
+; admin_controller.php line: 1258
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1251
+; admin_controller.php line: 1260
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1278
+; admin_controller.php line: 1287
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1283
+; admin_controller.php line: 1292
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1292
+; admin_controller.php line: 1301
 admin_controller_set_index = ""
 ;
-; admin_controller.php line: 1302
+; admin_controller.php line: 1311
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1310
+; admin_controller.php line: 1319
 admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1346
+; admin_controller.php line: 1355
 editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1348
+; admin_controller.php line: 1357
 editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1349
+; admin_controller.php line: 1358
 editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1350
+; admin_controller.php line: 1359
 editmix_element_weight = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1360
 editmix_element_name = ""
 ;
-; admin_controller.php line: 1352
+; admin_controller.php line: 1361
 editmix_add_keywords = ""
 ;
-; admin_controller.php line: 1353
+; admin_controller.php line: 1362
 editmix_element_actions = ""
 ;
-; admin_controller.php line: 1354
+; admin_controller.php line: 1363
 editmix_add_query = ""
 ;
-; admin_controller.php line: 1355
+; admin_controller.php line: 1364
 editmix_element_delete = ""
 ;
-; admin_controller.php line: 1407
+; admin_controller.php line: 1416
 admin_controller_mix_saved = ""
 ;
-; admin_controller.php line: 1458
+; admin_controller.php line: 1467
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 1459
+; admin_controller.php line: 1468
 admin_controller_use_defaults = ""
 ;
-; admin_controller.php line: 1461
+; admin_controller.php line: 1470
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 1465
+; admin_controller.php line: 1474
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1470
+; admin_controller.php line: 1479
 admin_controller_recrawl_never = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1480
 admin_controller_recrawl_1day = ""
 ;
-; admin_controller.php line: 1472
+; admin_controller.php line: 1481
 admin_controller_recrawl_2day = ""
 ;
-; admin_controller.php line: 1473
+; admin_controller.php line: 1482
 admin_controller_recrawl_3day = ""
 ;
-; admin_controller.php line: 1474
+; admin_controller.php line: 1483
 admin_controller_recrawl_7day = ""
 ;
-; admin_controller.php line: 1475
+; admin_controller.php line: 1484
 admin_controller_recrawl_14day = ""
 ;
-; admin_controller.php line: 1685
+; admin_controller.php line: 1705
 admin_controller_page_options_updated = ""
 ;
-; admin_controller.php line: 1711
+; admin_controller.php line: 1731
 admin_controller_page_options_running_tests = ""
 ;
-; admin_controller.php line: 1860
+; admin_controller.php line: 1881
 admin_controller_new_classifier = ""
 ;
-; admin_controller.php line: 1863
+; admin_controller.php line: 1884
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1875
+; admin_controller.php line: 1896
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1893
+; admin_controller.php line: 1914
 admin_controller_finalizing_classifier = ""
 ;
-; admin_controller.php line: 1916
+; admin_controller.php line: 1937
 admin_controller_classifier_deleted = ""
 ;
-; admin_controller.php line: 1920
+; admin_controller.php line: 1941
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1969
+; admin_controller.php line: 1990
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1980
+; admin_controller.php line: 2001
 editclassifier_load_failed = ""
 ;
-; admin_controller.php line: 1982
+; admin_controller.php line: 2003
 editclassifier_loading = ""
 ;
-; admin_controller.php line: 1984
+; admin_controller.php line: 2005
 editclassifier_added_examples = ""
 ;
-; admin_controller.php line: 1986
+; admin_controller.php line: 2007
 editclassifier_label_update_failed = ""
 ;
-; admin_controller.php line: 1988
+; admin_controller.php line: 2009
 editclassifier_updating = ""
 ;
-; admin_controller.php line: 1990
+; admin_controller.php line: 2011
 editclassifier_acc_update_failed = ""
 ;
-; admin_controller.php line: 1992
+; admin_controller.php line: 2013
 editclassifier_na = ""
 ;
-; admin_controller.php line: 1994
+; admin_controller.php line: 2015
 editclassifier_no_docs = ""
 ;
-; admin_controller.php line: 1996
+; admin_controller.php line: 2017
 editclassifier_num_docs = ""
 ;
-; admin_controller.php line: 1998
+; admin_controller.php line: 2019
 editclassifier_in_class = ""
 ;
-; admin_controller.php line: 2000
+; admin_controller.php line: 2021
 editclassifier_not_in_class = ""
 ;
-; admin_controller.php line: 2002
+; admin_controller.php line: 2023
 editclassifier_skip = ""
 ;
-; admin_controller.php line: 2004
+; admin_controller.php line: 2025
 editclassifier_prediction = ""
 ;
-; admin_controller.php line: 2006
+; admin_controller.php line: 2027
 editclassifier_scores = ""
 ;
-; admin_controller.php line: 2050
+; admin_controller.php line: 2071
 admin_controller_results_editor_update = ""
 ;
-; admin_controller.php line: 2064
+; admin_controller.php line: 2085
 admin_controller_edited_pages = ""
 ;
-; admin_controller.php line: 2077
+; admin_controller.php line: 2098
 admin_controller_results_editor_need_url = ""
 ;
-; admin_controller.php line: 2083
+; admin_controller.php line: 2104
 admin_controller_results_editor_page_updated = ""
 ;
-; admin_controller.php line: 2096
+; admin_controller.php line: 2117
 admin_controller_results_editor_page_loaded = ""
 ;
-; admin_controller.php line: 2141
+; admin_controller.php line: 2162
 admin_controller_select_machine = ""
 ;
-; admin_controller.php line: 2212
+; admin_controller.php line: 2233
 admin_controller_machine_added = ""
 ;
-; admin_controller.php line: 2219
+; admin_controller.php line: 2240
 admin_controller_machine_exists = ""
 ;
-; admin_controller.php line: 2223
+; admin_controller.php line: 2244
 admin_controller_machine_incomplete = ""
 ;
-; admin_controller.php line: 2232
+; admin_controller.php line: 2253
 admin_controller_machine_doesnt_exists = ""
 ;
-; admin_controller.php line: 2249
+; admin_controller.php line: 2270
 admin_controller_stop_service_first = ""
 ;
-; admin_controller.php line: 2262
+; admin_controller.php line: 2283
 admin_controller_machine_deleted = ""
 ;
-; admin_controller.php line: 2283
+; admin_controller.php line: 2304
 admin_controller_news_process_running = ""
 ;
-; admin_controller.php line: 2291
+; admin_controller.php line: 2312
 admin_controller_news_mode_updated = ""
 ;
-; admin_controller.php line: 2295
+; admin_controller.php line: 2316
 admin_controller_news_update_failed = ""
 ;
-; admin_controller.php line: 2358
+; admin_controller.php line: 2379
 admin_controller_no_machine_log = ""
 ;
-; admin_controller.php line: 2387
+; admin_controller.php line: 2408
 admin_controller_machine_servers_updated = ""
 ;
-; admin_controller.php line: 2391
+; admin_controller.php line: 2412
 admin_controller_machine_no_action = ""
 ;
-; admin_controller.php line: 2424
+; admin_controller.php line: 2445
 admin_controller_select_localename = ""
 ;
-; admin_controller.php line: 2468
+; admin_controller.php line: 2489
 admin_controller_locale_added = ""
 ;
-; admin_controller.php line: 2475
+; admin_controller.php line: 2496
 admin_controller_localename_doesnt_exists = ""
 ;
-; admin_controller.php line: 2484
+; admin_controller.php line: 2505
 admin_controller_localename_deleted = ""
 ;
-; admin_controller.php line: 2493
+; admin_controller.php line: 2514
 admin_controller_select_staticpages = ""
 ;
-; admin_controller.php line: 2512
+; admin_controller.php line: 2533
 admin_controller_staticpage_updated = ""
 ;
-; admin_controller.php line: 2539
+; admin_controller.php line: 2560
 admin_controller_localestrings_updated = ""
 ;
-; admin_controller.php line: 2596
+; admin_controller.php line: 2617
 admin_controller_php_version = ""
 ;
-; admin_controller.php line: 2604
+; admin_controller.php line: 2625
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 2609
+; admin_controller.php line: 2630
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 2614
+; admin_controller.php line: 2635
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 2620
+; admin_controller.php line: 2641
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 2643
+; admin_controller.php line: 2664
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 2648
+; admin_controller.php line: 2669
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 2653
+; admin_controller.php line: 2674
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 2678
+; admin_controller.php line: 2699
 admin_controller_media_kind = ""
 ;
-; admin_controller.php line: 2679
+; admin_controller.php line: 2700
 admin_controller_video = ""
 ;
-; admin_controller.php line: 2680
+; admin_controller.php line: 2701
 admin_controller_rss_feed = ""
 ;
-; admin_controller.php line: 2694
+; admin_controller.php line: 2715
 admin_controller_sources_indexes = ""
 ;
-; admin_controller.php line: 2747
+; admin_controller.php line: 2768
 admin_controller_media_source_added = ""
 ;
-; admin_controller.php line: 2755
+; admin_controller.php line: 2776
 admin_controller_media_source_deleted = ""
 ;
-; admin_controller.php line: 2771
+; admin_controller.php line: 2792
 admin_controller_subsearch_added = ""
 ;
-; admin_controller.php line: 2779
+; admin_controller.php line: 2800
 admin_controller_subsearch_deleted = ""
 ;
-; admin_controller.php line: 2854
+; admin_controller.php line: 2875
 admin_controller_configure_use_absolute_path = ""
 ;
-; admin_controller.php line: 2866
+; admin_controller.php line: 2887
 admin_controller_configure_diff_base_dir = ""
 ;
-; admin_controller.php line: 2899
+; admin_controller.php line: 2920
 admin_controller_configure_work_dir_set = ""
 ;
-; admin_controller.php line: 2913
+; admin_controller.php line: 2934
 admin_controller_name_your_bot = ""
 ;
-; admin_controller.php line: 2936
+; admin_controller.php line: 2957
 admin_controller_configure_work_profile_made = ""
 ;
-; admin_controller.php line: 2949
+; admin_controller.php line: 2970
 admin_controller_configure_no_set_config = ""
 ;
-; admin_controller.php line: 2961
+; admin_controller.php line: 2982
 admin_controller_configure_no_create_profile = ""
 ;
-; admin_controller.php line: 2972
+; admin_controller.php line: 2993
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 2984
+; admin_controller.php line: 3005
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 3032
+; admin_controller.php line: 3053
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 3047
+; admin_controller.php line: 3068
 admin_controller_configure_profile_change = ""
 ;
-; admin_controller.php line: 3062
+; admin_controller.php line: 3083
 admin_controller_configure_no_change_profile = ""
 ;
-; admin_controller.php line: 3100
+; admin_controller.php line: 3121
 admin_controller_describe_robot = ""
 ;
 ; machine_controller.php line: 182
@@ -544,22 +544,22 @@ search_controller_crawl_delay = ""
 ; search_controller.php line: 1593
 search_controller_cache_comment = ""
 ;
-; search_controller.php line: 1637
+; search_controller.php line: 1638
 search_controller_cached_version = ""
 ;
-; search_controller.php line: 1752
+; search_controller.php line: 1753
 search_controller_header_summaries = ""
 ;
-; search_controller.php line: 1876
+; search_controller.php line: 1877
 search_controller_history = ""
 ;
-; search_controller.php line: 2052
+; search_controller.php line: 2053
 search_controller_all_cached = ""
 ;
-; search_controller.php line: 2083
+; search_controller.php line: 2084
 search_controller_year = ""
 ;
-; search_controller.php line: 2084
+; search_controller.php line: 2085
 search_controller_month = ""
 ;
 ; settings_controller.php line: 134
@@ -1254,111 +1254,114 @@ pageoptions_element_load_options = ""
 pageoptions_element_page_range = ""
 ;
 ; pageoptions_element.php line: 95
+pageoptions_element_max_description = ""
+;
+; pageoptions_element.php line: 100
 pageoptions_element_save_cache = ""
 ;
-; pageoptions_element.php line: 105
+; pageoptions_element.php line: 110
 pageoptions_element_allow_recrawl = ""
 ;
-; pageoptions_element.php line: 111
+; pageoptions_element.php line: 116
 pageoptions_element_file_types = ""
 ;
-; pageoptions_element.php line: 141
+; pageoptions_element.php line: 146
 pageoptions_element_classifiers_to_apply = ""
 ;
-; pageoptions_element.php line: 176
+; pageoptions_element.php line: 181
 pageoptions_element_no_classifiers = ""
 ;
-; pageoptions_element.php line: 179
+; pageoptions_element.php line: 184
 pageoptions_element_indexing_plugins = ""
 ;
-; pageoptions_element.php line: 183
+; pageoptions_element.php line: 188
 pageoptions_element_plugin = ""
 ;
-; pageoptions_element.php line: 186
+; pageoptions_element.php line: 191
 pageoptions_element_plugin_include = ""
 ;
-; pageoptions_element.php line: 207
+; pageoptions_element.php line: 212
 pageoptions_element_no_compatible_plugins = ""
 ;
-; pageoptions_element.php line: 210
+; pageoptions_element.php line: 215
 pageoptions_element_page_rules = ""
 ;
-; pageoptions_element.php line: 218
+; pageoptions_element.php line: 223
 page_element_search_page = ""
 ;
-; pageoptions_element.php line: 223
+; pageoptions_element.php line: 228
 pageoptions_element_wd_suggest = ""
 ;
-; pageoptions_element.php line: 231
+; pageoptions_element.php line: 236
 pageoptions_element_subsearch_link = ""
 ;
-; pageoptions_element.php line: 240
+; pageoptions_element.php line: 245
 pageoptions_element_signin_link = ""
 ;
-; pageoptions_element.php line: 247
+; pageoptions_element.php line: 252
 pageoptions_element_cache_link = ""
 ;
-; pageoptions_element.php line: 255
+; pageoptions_element.php line: 260
 pageoptions_element_similar_link = ""
 ;
-; pageoptions_element.php line: 263
+; pageoptions_element.php line: 268
 pageoptions_element_in_link = ""
 ;
-; pageoptions_element.php line: 269
+; pageoptions_element.php line: 274
 pageoptions_element_ip_link = ""
 ;
-; pageoptions_element.php line: 278
+; pageoptions_element.php line: 283
 pageoptions_element_ranking_factors = ""
 ;
-; pageoptions_element.php line: 281
+; pageoptions_element.php line: 286
 pageoptions_element_title_weight = ""
 ;
-; pageoptions_element.php line: 286
+; pageoptions_element.php line: 291
 pageoptions_element_description_weight = ""
 ;
-; pageoptions_element.php line: 291
+; pageoptions_element.php line: 296
 pageoptions_element_link_weight = ""
 ;
-; pageoptions_element.php line: 296
+; pageoptions_element.php line: 301
 pageoptions_element_results_grouping_options = ""
 ;
-; pageoptions_element.php line: 299
+; pageoptions_element.php line: 304
 pageoptions_element_min_results_to_group = ""
 ;
-; pageoptions_element.php line: 304
+; pageoptions_element.php line: 309
 pageoptions_element_server_alpha = ""
 ;
-; pageoptions_element.php line: 312
+; pageoptions_element.php line: 317
 pageoptions_element_test_page = ""
 ;
-; pageoptions_element.php line: 314
+; pageoptions_element.php line: 319
 pageoptions_element_page_type = ""
 ;
-; pageoptions_element.php line: 331
+; pageoptions_element.php line: 336
 pageoptions_element_save_options = ""
 ;
-; pageoptions_element.php line: 333
+; pageoptions_element.php line: 338
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 339
+; pageoptions_element.php line: 344
 pageoptions_element_test_results = ""
 ;
-; pageoptions_element.php line: 342
+; pageoptions_element.php line: 347
 pageoptions_element_after_process = ""
 ;
-; pageoptions_element.php line: 346
+; pageoptions_element.php line: 351
 pageoptions_element_after_rules = ""
 ;
-; pageoptions_element.php line: 350
+; pageoptions_element.php line: 355
 pageoptions_element_extracted_words = ""
 ;
-; pageoptions_element.php line: 354
+; pageoptions_element.php line: 359
 pageoptions_element_extracted_metas = ""
 ;
-; pageoptions_element.php line: 388
+; pageoptions_element.php line: 393
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 392
+; pageoptions_element.php line: 397
 pageoptions_element_save_options = ""
 ;
 ; resultseditor_element.php line: 58
diff --git a/locale/pt/configure.ini b/locale/pt/configure.ini
index e1ac8a3..e828038 100755
--- a/locale/pt/configure.ini
+++ b/locale/pt/configure.ini
@@ -154,346 +154,346 @@ admin_controller_starting_new_crawl = ""
 ; admin_controller.php line: 868
 admin_controller_no_description = ""
 ;
-; admin_controller.php line: 981
+; admin_controller.php line: 985
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 982
+; admin_controller.php line: 986
 admin_controller_use_defaults = ""
 ;
-; admin_controller.php line: 984
+; admin_controller.php line: 988
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 988
+; admin_controller.php line: 992
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1075
+; admin_controller.php line: 1084
 admin_controller_breadth_first = ""
 ;
-; admin_controller.php line: 1077
+; admin_controller.php line: 1086
 admin_controller_page_importance = ""
 ;
-; admin_controller.php line: 1143
+; admin_controller.php line: 1152
 admin_controller_urls_injected = ""
 ;
-; admin_controller.php line: 1154
+; admin_controller.php line: 1163
 admin_controller_update_seed_info = ""
 ;
-; admin_controller.php line: 1246
+; admin_controller.php line: 1255
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1247
+; admin_controller.php line: 1256
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1249
+; admin_controller.php line: 1258
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1251
+; admin_controller.php line: 1260
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1278
+; admin_controller.php line: 1287
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1283
+; admin_controller.php line: 1292
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1292
+; admin_controller.php line: 1301
 admin_controller_set_index = ""
 ;
-; admin_controller.php line: 1302
+; admin_controller.php line: 1311
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1310
+; admin_controller.php line: 1319
 admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1346
+; admin_controller.php line: 1355
 editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1348
+; admin_controller.php line: 1357
 editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1349
+; admin_controller.php line: 1358
 editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1350
+; admin_controller.php line: 1359
 editmix_element_weight = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1360
 editmix_element_name = ""
 ;
-; admin_controller.php line: 1352
+; admin_controller.php line: 1361
 editmix_add_keywords = ""
 ;
-; admin_controller.php line: 1353
+; admin_controller.php line: 1362
 editmix_element_actions = ""
 ;
-; admin_controller.php line: 1354
+; admin_controller.php line: 1363
 editmix_add_query = ""
 ;
-; admin_controller.php line: 1355
+; admin_controller.php line: 1364
 editmix_element_delete = ""
 ;
-; admin_controller.php line: 1407
+; admin_controller.php line: 1416
 admin_controller_mix_saved = ""
 ;
-; admin_controller.php line: 1458
+; admin_controller.php line: 1467
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 1459
+; admin_controller.php line: 1468
 admin_controller_use_defaults = ""
 ;
-; admin_controller.php line: 1461
+; admin_controller.php line: 1470
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 1465
+; admin_controller.php line: 1474
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1470
+; admin_controller.php line: 1479
 admin_controller_recrawl_never = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1480
 admin_controller_recrawl_1day = ""
 ;
-; admin_controller.php line: 1472
+; admin_controller.php line: 1481
 admin_controller_recrawl_2day = ""
 ;
-; admin_controller.php line: 1473
+; admin_controller.php line: 1482
 admin_controller_recrawl_3day = ""
 ;
-; admin_controller.php line: 1474
+; admin_controller.php line: 1483
 admin_controller_recrawl_7day = ""
 ;
-; admin_controller.php line: 1475
+; admin_controller.php line: 1484
 admin_controller_recrawl_14day = ""
 ;
-; admin_controller.php line: 1685
+; admin_controller.php line: 1705
 admin_controller_page_options_updated = ""
 ;
-; admin_controller.php line: 1711
+; admin_controller.php line: 1731
 admin_controller_page_options_running_tests = ""
 ;
-; admin_controller.php line: 1860
+; admin_controller.php line: 1881
 admin_controller_new_classifier = ""
 ;
-; admin_controller.php line: 1863
+; admin_controller.php line: 1884
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1875
+; admin_controller.php line: 1896
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1893
+; admin_controller.php line: 1914
 admin_controller_finalizing_classifier = ""
 ;
-; admin_controller.php line: 1916
+; admin_controller.php line: 1937
 admin_controller_classifier_deleted = ""
 ;
-; admin_controller.php line: 1920
+; admin_controller.php line: 1941
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1969
+; admin_controller.php line: 1990
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1980
+; admin_controller.php line: 2001
 editclassifier_load_failed = ""
 ;
-; admin_controller.php line: 1982
+; admin_controller.php line: 2003
 editclassifier_loading = ""
 ;
-; admin_controller.php line: 1984
+; admin_controller.php line: 2005
 editclassifier_added_examples = ""
 ;
-; admin_controller.php line: 1986
+; admin_controller.php line: 2007
 editclassifier_label_update_failed = ""
 ;
-; admin_controller.php line: 1988
+; admin_controller.php line: 2009
 editclassifier_updating = ""
 ;
-; admin_controller.php line: 1990
+; admin_controller.php line: 2011
 editclassifier_acc_update_failed = ""
 ;
-; admin_controller.php line: 1992
+; admin_controller.php line: 2013
 editclassifier_na = ""
 ;
-; admin_controller.php line: 1994
+; admin_controller.php line: 2015
 editclassifier_no_docs = ""
 ;
-; admin_controller.php line: 1996
+; admin_controller.php line: 2017
 editclassifier_num_docs = ""
 ;
-; admin_controller.php line: 1998
+; admin_controller.php line: 2019
 editclassifier_in_class = ""
 ;
-; admin_controller.php line: 2000
+; admin_controller.php line: 2021
 editclassifier_not_in_class = ""
 ;
-; admin_controller.php line: 2002
+; admin_controller.php line: 2023
 editclassifier_skip = ""
 ;
-; admin_controller.php line: 2004
+; admin_controller.php line: 2025
 editclassifier_prediction = ""
 ;
-; admin_controller.php line: 2006
+; admin_controller.php line: 2027
 editclassifier_scores = ""
 ;
-; admin_controller.php line: 2050
+; admin_controller.php line: 2071
 admin_controller_results_editor_update = ""
 ;
-; admin_controller.php line: 2064
+; admin_controller.php line: 2085
 admin_controller_edited_pages = ""
 ;
-; admin_controller.php line: 2077
+; admin_controller.php line: 2098
 admin_controller_results_editor_need_url = ""
 ;
-; admin_controller.php line: 2083
+; admin_controller.php line: 2104
 admin_controller_results_editor_page_updated = ""
 ;
-; admin_controller.php line: 2096
+; admin_controller.php line: 2117
 admin_controller_results_editor_page_loaded = ""
 ;
-; admin_controller.php line: 2141
+; admin_controller.php line: 2162
 admin_controller_select_machine = ""
 ;
-; admin_controller.php line: 2212
+; admin_controller.php line: 2233
 admin_controller_machine_added = ""
 ;
-; admin_controller.php line: 2219
+; admin_controller.php line: 2240
 admin_controller_machine_exists = ""
 ;
-; admin_controller.php line: 2223
+; admin_controller.php line: 2244
 admin_controller_machine_incomplete = ""
 ;
-; admin_controller.php line: 2232
+; admin_controller.php line: 2253
 admin_controller_machine_doesnt_exists = ""
 ;
-; admin_controller.php line: 2249
+; admin_controller.php line: 2270
 admin_controller_stop_service_first = ""
 ;
-; admin_controller.php line: 2262
+; admin_controller.php line: 2283
 admin_controller_machine_deleted = ""
 ;
-; admin_controller.php line: 2283
+; admin_controller.php line: 2304
 admin_controller_news_process_running = ""
 ;
-; admin_controller.php line: 2291
+; admin_controller.php line: 2312
 admin_controller_news_mode_updated = ""
 ;
-; admin_controller.php line: 2295
+; admin_controller.php line: 2316
 admin_controller_news_update_failed = ""
 ;
-; admin_controller.php line: 2358
+; admin_controller.php line: 2379
 admin_controller_no_machine_log = ""
 ;
-; admin_controller.php line: 2387
+; admin_controller.php line: 2408
 admin_controller_machine_servers_updated = ""
 ;
-; admin_controller.php line: 2391
+; admin_controller.php line: 2412
 admin_controller_machine_no_action = ""
 ;
-; admin_controller.php line: 2424
+; admin_controller.php line: 2445
 admin_controller_select_localename = ""
 ;
-; admin_controller.php line: 2468
+; admin_controller.php line: 2489
 admin_controller_locale_added = ""
 ;
-; admin_controller.php line: 2475
+; admin_controller.php line: 2496
 admin_controller_localename_doesnt_exists = ""
 ;
-; admin_controller.php line: 2484
+; admin_controller.php line: 2505
 admin_controller_localename_deleted = ""
 ;
-; admin_controller.php line: 2493
+; admin_controller.php line: 2514
 admin_controller_select_staticpages = ""
 ;
-; admin_controller.php line: 2512
+; admin_controller.php line: 2533
 admin_controller_staticpage_updated = ""
 ;
-; admin_controller.php line: 2539
+; admin_controller.php line: 2560
 admin_controller_localestrings_updated = ""
 ;
-; admin_controller.php line: 2596
+; admin_controller.php line: 2617
 admin_controller_php_version = ""
 ;
-; admin_controller.php line: 2604
+; admin_controller.php line: 2625
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 2609
+; admin_controller.php line: 2630
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 2614
+; admin_controller.php line: 2635
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 2620
+; admin_controller.php line: 2641
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 2643
+; admin_controller.php line: 2664
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 2648
+; admin_controller.php line: 2669
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 2653
+; admin_controller.php line: 2674
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 2678
+; admin_controller.php line: 2699
 admin_controller_media_kind = ""
 ;
-; admin_controller.php line: 2679
+; admin_controller.php line: 2700
 admin_controller_video = ""
 ;
-; admin_controller.php line: 2680
+; admin_controller.php line: 2701
 admin_controller_rss_feed = ""
 ;
-; admin_controller.php line: 2694
+; admin_controller.php line: 2715
 admin_controller_sources_indexes = ""
 ;
-; admin_controller.php line: 2747
+; admin_controller.php line: 2768
 admin_controller_media_source_added = ""
 ;
-; admin_controller.php line: 2755
+; admin_controller.php line: 2776
 admin_controller_media_source_deleted = ""
 ;
-; admin_controller.php line: 2771
+; admin_controller.php line: 2792
 admin_controller_subsearch_added = ""
 ;
-; admin_controller.php line: 2779
+; admin_controller.php line: 2800
 admin_controller_subsearch_deleted = ""
 ;
-; admin_controller.php line: 2854
+; admin_controller.php line: 2875
 admin_controller_configure_use_absolute_path = ""
 ;
-; admin_controller.php line: 2866
+; admin_controller.php line: 2887
 admin_controller_configure_diff_base_dir = ""
 ;
-; admin_controller.php line: 2899
+; admin_controller.php line: 2920
 admin_controller_configure_work_dir_set = ""
 ;
-; admin_controller.php line: 2913
+; admin_controller.php line: 2934
 admin_controller_name_your_bot = ""
 ;
-; admin_controller.php line: 2936
+; admin_controller.php line: 2957
 admin_controller_configure_work_profile_made = ""
 ;
-; admin_controller.php line: 2949
+; admin_controller.php line: 2970
 admin_controller_configure_no_set_config = ""
 ;
-; admin_controller.php line: 2961
+; admin_controller.php line: 2982
 admin_controller_configure_no_create_profile = ""
 ;
-; admin_controller.php line: 2972
+; admin_controller.php line: 2993
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 2984
+; admin_controller.php line: 3005
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 3032
+; admin_controller.php line: 3053
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 3047
+; admin_controller.php line: 3068
 admin_controller_configure_profile_change = ""
 ;
-; admin_controller.php line: 3062
+; admin_controller.php line: 3083
 admin_controller_configure_no_change_profile = ""
 ;
-; admin_controller.php line: 3100
+; admin_controller.php line: 3121
 admin_controller_describe_robot = ""
 ;
 ; machine_controller.php line: 182
@@ -544,22 +544,22 @@ search_controller_crawl_delay = ""
 ; search_controller.php line: 1593
 search_controller_cache_comment = ""
 ;
-; search_controller.php line: 1637
+; search_controller.php line: 1638
 search_controller_cached_version = ""
 ;
-; search_controller.php line: 1752
+; search_controller.php line: 1753
 search_controller_header_summaries = ""
 ;
-; search_controller.php line: 1876
+; search_controller.php line: 1877
 search_controller_history = ""
 ;
-; search_controller.php line: 2052
+; search_controller.php line: 2053
 search_controller_all_cached = ""
 ;
-; search_controller.php line: 2083
+; search_controller.php line: 2084
 search_controller_year = ""
 ;
-; search_controller.php line: 2084
+; search_controller.php line: 2085
 search_controller_month = ""
 ;
 ; settings_controller.php line: 134
@@ -1254,111 +1254,114 @@ pageoptions_element_load_options = ""
 pageoptions_element_page_range = ""
 ;
 ; pageoptions_element.php line: 95
+pageoptions_element_max_description = ""
+;
+; pageoptions_element.php line: 100
 pageoptions_element_save_cache = ""
 ;
-; pageoptions_element.php line: 105
+; pageoptions_element.php line: 110
 pageoptions_element_allow_recrawl = ""
 ;
-; pageoptions_element.php line: 111
+; pageoptions_element.php line: 116
 pageoptions_element_file_types = ""
 ;
-; pageoptions_element.php line: 141
+; pageoptions_element.php line: 146
 pageoptions_element_classifiers_to_apply = ""
 ;
-; pageoptions_element.php line: 176
+; pageoptions_element.php line: 181
 pageoptions_element_no_classifiers = ""
 ;
-; pageoptions_element.php line: 179
+; pageoptions_element.php line: 184
 pageoptions_element_indexing_plugins = ""
 ;
-; pageoptions_element.php line: 183
+; pageoptions_element.php line: 188
 pageoptions_element_plugin = ""
 ;
-; pageoptions_element.php line: 186
+; pageoptions_element.php line: 191
 pageoptions_element_plugin_include = ""
 ;
-; pageoptions_element.php line: 207
+; pageoptions_element.php line: 212
 pageoptions_element_no_compatible_plugins = ""
 ;
-; pageoptions_element.php line: 210
+; pageoptions_element.php line: 215
 pageoptions_element_page_rules = ""
 ;
-; pageoptions_element.php line: 218
+; pageoptions_element.php line: 223
 page_element_search_page = ""
 ;
-; pageoptions_element.php line: 223
+; pageoptions_element.php line: 228
 pageoptions_element_wd_suggest = ""
 ;
-; pageoptions_element.php line: 231
+; pageoptions_element.php line: 236
 pageoptions_element_subsearch_link = ""
 ;
-; pageoptions_element.php line: 240
+; pageoptions_element.php line: 245
 pageoptions_element_signin_link = ""
 ;
-; pageoptions_element.php line: 247
+; pageoptions_element.php line: 252
 pageoptions_element_cache_link = ""
 ;
-; pageoptions_element.php line: 255
+; pageoptions_element.php line: 260
 pageoptions_element_similar_link = ""
 ;
-; pageoptions_element.php line: 263
+; pageoptions_element.php line: 268
 pageoptions_element_in_link = ""
 ;
-; pageoptions_element.php line: 269
+; pageoptions_element.php line: 274
 pageoptions_element_ip_link = ""
 ;
-; pageoptions_element.php line: 278
+; pageoptions_element.php line: 283
 pageoptions_element_ranking_factors = ""
 ;
-; pageoptions_element.php line: 281
+; pageoptions_element.php line: 286
 pageoptions_element_title_weight = ""
 ;
-; pageoptions_element.php line: 286
+; pageoptions_element.php line: 291
 pageoptions_element_description_weight = ""
 ;
-; pageoptions_element.php line: 291
+; pageoptions_element.php line: 296
 pageoptions_element_link_weight = ""
 ;
-; pageoptions_element.php line: 296
+; pageoptions_element.php line: 301
 pageoptions_element_results_grouping_options = ""
 ;
-; pageoptions_element.php line: 299
+; pageoptions_element.php line: 304
 pageoptions_element_min_results_to_group = ""
 ;
-; pageoptions_element.php line: 304
+; pageoptions_element.php line: 309
 pageoptions_element_server_alpha = ""
 ;
-; pageoptions_element.php line: 312
+; pageoptions_element.php line: 317
 pageoptions_element_test_page = ""
 ;
-; pageoptions_element.php line: 314
+; pageoptions_element.php line: 319
 pageoptions_element_page_type = ""
 ;
-; pageoptions_element.php line: 331
+; pageoptions_element.php line: 336
 pageoptions_element_save_options = ""
 ;
-; pageoptions_element.php line: 333
+; pageoptions_element.php line: 338
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 339
+; pageoptions_element.php line: 344
 pageoptions_element_test_results = ""
 ;
-; pageoptions_element.php line: 342
+; pageoptions_element.php line: 347
 pageoptions_element_after_process = ""
 ;
-; pageoptions_element.php line: 346
+; pageoptions_element.php line: 351
 pageoptions_element_after_rules = ""
 ;
-; pageoptions_element.php line: 350
+; pageoptions_element.php line: 355
 pageoptions_element_extracted_words = ""
 ;
-; pageoptions_element.php line: 354
+; pageoptions_element.php line: 359
 pageoptions_element_extracted_metas = ""
 ;
-; pageoptions_element.php line: 388
+; pageoptions_element.php line: 393
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 392
+; pageoptions_element.php line: 397
 pageoptions_element_save_options = ""
 ;
 ; resultseditor_element.php line: 58
diff --git a/locale/ru/configure.ini b/locale/ru/configure.ini
index adfb000..ad3b8c9 100755
--- a/locale/ru/configure.ini
+++ b/locale/ru/configure.ini
@@ -154,346 +154,346 @@ admin_controller_starting_new_crawl = ""
 ; admin_controller.php line: 868
 admin_controller_no_description = ""
 ;
-; admin_controller.php line: 981
+; admin_controller.php line: 985
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 982
+; admin_controller.php line: 986
 admin_controller_use_defaults = ""
 ;
-; admin_controller.php line: 984
+; admin_controller.php line: 988
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 988
+; admin_controller.php line: 992
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1075
+; admin_controller.php line: 1084
 admin_controller_breadth_first = ""
 ;
-; admin_controller.php line: 1077
+; admin_controller.php line: 1086
 admin_controller_page_importance = ""
 ;
-; admin_controller.php line: 1143
+; admin_controller.php line: 1152
 admin_controller_urls_injected = ""
 ;
-; admin_controller.php line: 1154
+; admin_controller.php line: 1163
 admin_controller_update_seed_info = ""
 ;
-; admin_controller.php line: 1246
+; admin_controller.php line: 1255
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1247
+; admin_controller.php line: 1256
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1249
+; admin_controller.php line: 1258
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1251
+; admin_controller.php line: 1260
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1278
+; admin_controller.php line: 1287
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1283
+; admin_controller.php line: 1292
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1292
+; admin_controller.php line: 1301
 admin_controller_set_index = ""
 ;
-; admin_controller.php line: 1302
+; admin_controller.php line: 1311
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1310
+; admin_controller.php line: 1319
 admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1346
+; admin_controller.php line: 1355
 editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1348
+; admin_controller.php line: 1357
 editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1349
+; admin_controller.php line: 1358
 editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1350
+; admin_controller.php line: 1359
 editmix_element_weight = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1360
 editmix_element_name = ""
 ;
-; admin_controller.php line: 1352
+; admin_controller.php line: 1361
 editmix_add_keywords = ""
 ;
-; admin_controller.php line: 1353
+; admin_controller.php line: 1362
 editmix_element_actions = ""
 ;
-; admin_controller.php line: 1354
+; admin_controller.php line: 1363
 editmix_add_query = ""
 ;
-; admin_controller.php line: 1355
+; admin_controller.php line: 1364
 editmix_element_delete = ""
 ;
-; admin_controller.php line: 1407
+; admin_controller.php line: 1416
 admin_controller_mix_saved = ""
 ;
-; admin_controller.php line: 1458
+; admin_controller.php line: 1467
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 1459
+; admin_controller.php line: 1468
 admin_controller_use_defaults = ""
 ;
-; admin_controller.php line: 1461
+; admin_controller.php line: 1470
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 1465
+; admin_controller.php line: 1474
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1470
+; admin_controller.php line: 1479
 admin_controller_recrawl_never = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1480
 admin_controller_recrawl_1day = ""
 ;
-; admin_controller.php line: 1472
+; admin_controller.php line: 1481
 admin_controller_recrawl_2day = ""
 ;
-; admin_controller.php line: 1473
+; admin_controller.php line: 1482
 admin_controller_recrawl_3day = ""
 ;
-; admin_controller.php line: 1474
+; admin_controller.php line: 1483
 admin_controller_recrawl_7day = ""
 ;
-; admin_controller.php line: 1475
+; admin_controller.php line: 1484
 admin_controller_recrawl_14day = ""
 ;
-; admin_controller.php line: 1685
+; admin_controller.php line: 1705
 admin_controller_page_options_updated = ""
 ;
-; admin_controller.php line: 1711
+; admin_controller.php line: 1731
 admin_controller_page_options_running_tests = ""
 ;
-; admin_controller.php line: 1860
+; admin_controller.php line: 1881
 admin_controller_new_classifier = ""
 ;
-; admin_controller.php line: 1863
+; admin_controller.php line: 1884
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1875
+; admin_controller.php line: 1896
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1893
+; admin_controller.php line: 1914
 admin_controller_finalizing_classifier = ""
 ;
-; admin_controller.php line: 1916
+; admin_controller.php line: 1937
 admin_controller_classifier_deleted = ""
 ;
-; admin_controller.php line: 1920
+; admin_controller.php line: 1941
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1969
+; admin_controller.php line: 1990
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1980
+; admin_controller.php line: 2001
 editclassifier_load_failed = ""
 ;
-; admin_controller.php line: 1982
+; admin_controller.php line: 2003
 editclassifier_loading = ""
 ;
-; admin_controller.php line: 1984
+; admin_controller.php line: 2005
 editclassifier_added_examples = ""
 ;
-; admin_controller.php line: 1986
+; admin_controller.php line: 2007
 editclassifier_label_update_failed = ""
 ;
-; admin_controller.php line: 1988
+; admin_controller.php line: 2009
 editclassifier_updating = ""
 ;
-; admin_controller.php line: 1990
+; admin_controller.php line: 2011
 editclassifier_acc_update_failed = ""
 ;
-; admin_controller.php line: 1992
+; admin_controller.php line: 2013
 editclassifier_na = ""
 ;
-; admin_controller.php line: 1994
+; admin_controller.php line: 2015
 editclassifier_no_docs = ""
 ;
-; admin_controller.php line: 1996
+; admin_controller.php line: 2017
 editclassifier_num_docs = ""
 ;
-; admin_controller.php line: 1998
+; admin_controller.php line: 2019
 editclassifier_in_class = ""
 ;
-; admin_controller.php line: 2000
+; admin_controller.php line: 2021
 editclassifier_not_in_class = ""
 ;
-; admin_controller.php line: 2002
+; admin_controller.php line: 2023
 editclassifier_skip = ""
 ;
-; admin_controller.php line: 2004
+; admin_controller.php line: 2025
 editclassifier_prediction = ""
 ;
-; admin_controller.php line: 2006
+; admin_controller.php line: 2027
 editclassifier_scores = ""
 ;
-; admin_controller.php line: 2050
+; admin_controller.php line: 2071
 admin_controller_results_editor_update = ""
 ;
-; admin_controller.php line: 2064
+; admin_controller.php line: 2085
 admin_controller_edited_pages = ""
 ;
-; admin_controller.php line: 2077
+; admin_controller.php line: 2098
 admin_controller_results_editor_need_url = ""
 ;
-; admin_controller.php line: 2083
+; admin_controller.php line: 2104
 admin_controller_results_editor_page_updated = ""
 ;
-; admin_controller.php line: 2096
+; admin_controller.php line: 2117
 admin_controller_results_editor_page_loaded = ""
 ;
-; admin_controller.php line: 2141
+; admin_controller.php line: 2162
 admin_controller_select_machine = ""
 ;
-; admin_controller.php line: 2212
+; admin_controller.php line: 2233
 admin_controller_machine_added = ""
 ;
-; admin_controller.php line: 2219
+; admin_controller.php line: 2240
 admin_controller_machine_exists = ""
 ;
-; admin_controller.php line: 2223
+; admin_controller.php line: 2244
 admin_controller_machine_incomplete = ""
 ;
-; admin_controller.php line: 2232
+; admin_controller.php line: 2253
 admin_controller_machine_doesnt_exists = ""
 ;
-; admin_controller.php line: 2249
+; admin_controller.php line: 2270
 admin_controller_stop_service_first = ""
 ;
-; admin_controller.php line: 2262
+; admin_controller.php line: 2283
 admin_controller_machine_deleted = ""
 ;
-; admin_controller.php line: 2283
+; admin_controller.php line: 2304
 admin_controller_news_process_running = ""
 ;
-; admin_controller.php line: 2291
+; admin_controller.php line: 2312
 admin_controller_news_mode_updated = ""
 ;
-; admin_controller.php line: 2295
+; admin_controller.php line: 2316
 admin_controller_news_update_failed = ""
 ;
-; admin_controller.php line: 2358
+; admin_controller.php line: 2379
 admin_controller_no_machine_log = ""
 ;
-; admin_controller.php line: 2387
+; admin_controller.php line: 2408
 admin_controller_machine_servers_updated = ""
 ;
-; admin_controller.php line: 2391
+; admin_controller.php line: 2412
 admin_controller_machine_no_action = ""
 ;
-; admin_controller.php line: 2424
+; admin_controller.php line: 2445
 admin_controller_select_localename = ""
 ;
-; admin_controller.php line: 2468
+; admin_controller.php line: 2489
 admin_controller_locale_added = ""
 ;
-; admin_controller.php line: 2475
+; admin_controller.php line: 2496
 admin_controller_localename_doesnt_exists = ""
 ;
-; admin_controller.php line: 2484
+; admin_controller.php line: 2505
 admin_controller_localename_deleted = ""
 ;
-; admin_controller.php line: 2493
+; admin_controller.php line: 2514
 admin_controller_select_staticpages = ""
 ;
-; admin_controller.php line: 2512
+; admin_controller.php line: 2533
 admin_controller_staticpage_updated = ""
 ;
-; admin_controller.php line: 2539
+; admin_controller.php line: 2560
 admin_controller_localestrings_updated = ""
 ;
-; admin_controller.php line: 2596
+; admin_controller.php line: 2617
 admin_controller_php_version = ""
 ;
-; admin_controller.php line: 2604
+; admin_controller.php line: 2625
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 2609
+; admin_controller.php line: 2630
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 2614
+; admin_controller.php line: 2635
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 2620
+; admin_controller.php line: 2641
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 2643
+; admin_controller.php line: 2664
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 2648
+; admin_controller.php line: 2669
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 2653
+; admin_controller.php line: 2674
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 2678
+; admin_controller.php line: 2699
 admin_controller_media_kind = ""
 ;
-; admin_controller.php line: 2679
+; admin_controller.php line: 2700
 admin_controller_video = ""
 ;
-; admin_controller.php line: 2680
+; admin_controller.php line: 2701
 admin_controller_rss_feed = ""
 ;
-; admin_controller.php line: 2694
+; admin_controller.php line: 2715
 admin_controller_sources_indexes = ""
 ;
-; admin_controller.php line: 2747
+; admin_controller.php line: 2768
 admin_controller_media_source_added = ""
 ;
-; admin_controller.php line: 2755
+; admin_controller.php line: 2776
 admin_controller_media_source_deleted = ""
 ;
-; admin_controller.php line: 2771
+; admin_controller.php line: 2792
 admin_controller_subsearch_added = ""
 ;
-; admin_controller.php line: 2779
+; admin_controller.php line: 2800
 admin_controller_subsearch_deleted = ""
 ;
-; admin_controller.php line: 2854
+; admin_controller.php line: 2875
 admin_controller_configure_use_absolute_path = ""
 ;
-; admin_controller.php line: 2866
+; admin_controller.php line: 2887
 admin_controller_configure_diff_base_dir = ""
 ;
-; admin_controller.php line: 2899
+; admin_controller.php line: 2920
 admin_controller_configure_work_dir_set = ""
 ;
-; admin_controller.php line: 2913
+; admin_controller.php line: 2934
 admin_controller_name_your_bot = ""
 ;
-; admin_controller.php line: 2936
+; admin_controller.php line: 2957
 admin_controller_configure_work_profile_made = ""
 ;
-; admin_controller.php line: 2949
+; admin_controller.php line: 2970
 admin_controller_configure_no_set_config = ""
 ;
-; admin_controller.php line: 2961
+; admin_controller.php line: 2982
 admin_controller_configure_no_create_profile = ""
 ;
-; admin_controller.php line: 2972
+; admin_controller.php line: 2993
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 2984
+; admin_controller.php line: 3005
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 3032
+; admin_controller.php line: 3053
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 3047
+; admin_controller.php line: 3068
 admin_controller_configure_profile_change = ""
 ;
-; admin_controller.php line: 3062
+; admin_controller.php line: 3083
 admin_controller_configure_no_change_profile = ""
 ;
-; admin_controller.php line: 3100
+; admin_controller.php line: 3121
 admin_controller_describe_robot = ""
 ;
 ; machine_controller.php line: 182
@@ -544,22 +544,22 @@ search_controller_crawl_delay = ""
 ; search_controller.php line: 1593
 search_controller_cache_comment = ""
 ;
-; search_controller.php line: 1637
+; search_controller.php line: 1638
 search_controller_cached_version = ""
 ;
-; search_controller.php line: 1752
+; search_controller.php line: 1753
 search_controller_header_summaries = ""
 ;
-; search_controller.php line: 1876
+; search_controller.php line: 1877
 search_controller_history = ""
 ;
-; search_controller.php line: 2052
+; search_controller.php line: 2053
 search_controller_all_cached = ""
 ;
-; search_controller.php line: 2083
+; search_controller.php line: 2084
 search_controller_year = ""
 ;
-; search_controller.php line: 2084
+; search_controller.php line: 2085
 search_controller_month = ""
 ;
 ; settings_controller.php line: 134
@@ -1254,111 +1254,114 @@ pageoptions_element_load_options = ""
 pageoptions_element_page_range = ""
 ;
 ; pageoptions_element.php line: 95
+pageoptions_element_max_description = ""
+;
+; pageoptions_element.php line: 100
 pageoptions_element_save_cache = ""
 ;
-; pageoptions_element.php line: 105
+; pageoptions_element.php line: 110
 pageoptions_element_allow_recrawl = ""
 ;
-; pageoptions_element.php line: 111
+; pageoptions_element.php line: 116
 pageoptions_element_file_types = ""
 ;
-; pageoptions_element.php line: 141
+; pageoptions_element.php line: 146
 pageoptions_element_classifiers_to_apply = ""
 ;
-; pageoptions_element.php line: 176
+; pageoptions_element.php line: 181
 pageoptions_element_no_classifiers = ""
 ;
-; pageoptions_element.php line: 179
+; pageoptions_element.php line: 184
 pageoptions_element_indexing_plugins = ""
 ;
-; pageoptions_element.php line: 183
+; pageoptions_element.php line: 188
 pageoptions_element_plugin = ""
 ;
-; pageoptions_element.php line: 186
+; pageoptions_element.php line: 191
 pageoptions_element_plugin_include = ""
 ;
-; pageoptions_element.php line: 207
+; pageoptions_element.php line: 212
 pageoptions_element_no_compatible_plugins = ""
 ;
-; pageoptions_element.php line: 210
+; pageoptions_element.php line: 215
 pageoptions_element_page_rules = ""
 ;
-; pageoptions_element.php line: 218
+; pageoptions_element.php line: 223
 page_element_search_page = ""
 ;
-; pageoptions_element.php line: 223
+; pageoptions_element.php line: 228
 pageoptions_element_wd_suggest = ""
 ;
-; pageoptions_element.php line: 231
+; pageoptions_element.php line: 236
 pageoptions_element_subsearch_link = ""
 ;
-; pageoptions_element.php line: 240
+; pageoptions_element.php line: 245
 pageoptions_element_signin_link = ""
 ;
-; pageoptions_element.php line: 247
+; pageoptions_element.php line: 252
 pageoptions_element_cache_link = ""
 ;
-; pageoptions_element.php line: 255
+; pageoptions_element.php line: 260
 pageoptions_element_similar_link = ""
 ;
-; pageoptions_element.php line: 263
+; pageoptions_element.php line: 268
 pageoptions_element_in_link = ""
 ;
-; pageoptions_element.php line: 269
+; pageoptions_element.php line: 274
 pageoptions_element_ip_link = ""
 ;
-; pageoptions_element.php line: 278
+; pageoptions_element.php line: 283
 pageoptions_element_ranking_factors = ""
 ;
-; pageoptions_element.php line: 281
+; pageoptions_element.php line: 286
 pageoptions_element_title_weight = ""
 ;
-; pageoptions_element.php line: 286
+; pageoptions_element.php line: 291
 pageoptions_element_description_weight = ""
 ;
-; pageoptions_element.php line: 291
+; pageoptions_element.php line: 296
 pageoptions_element_link_weight = ""
 ;
-; pageoptions_element.php line: 296
+; pageoptions_element.php line: 301
 pageoptions_element_results_grouping_options = ""
 ;
-; pageoptions_element.php line: 299
+; pageoptions_element.php line: 304
 pageoptions_element_min_results_to_group = ""
 ;
-; pageoptions_element.php line: 304
+; pageoptions_element.php line: 309
 pageoptions_element_server_alpha = ""
 ;
-; pageoptions_element.php line: 312
+; pageoptions_element.php line: 317
 pageoptions_element_test_page = ""
 ;
-; pageoptions_element.php line: 314
+; pageoptions_element.php line: 319
 pageoptions_element_page_type = ""
 ;
-; pageoptions_element.php line: 331
+; pageoptions_element.php line: 336
 pageoptions_element_save_options = ""
 ;
-; pageoptions_element.php line: 333
+; pageoptions_element.php line: 338
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 339
+; pageoptions_element.php line: 344
 pageoptions_element_test_results = ""
 ;
-; pageoptions_element.php line: 342
+; pageoptions_element.php line: 347
 pageoptions_element_after_process = ""
 ;
-; pageoptions_element.php line: 346
+; pageoptions_element.php line: 351
 pageoptions_element_after_rules = ""
 ;
-; pageoptions_element.php line: 350
+; pageoptions_element.php line: 355
 pageoptions_element_extracted_words = ""
 ;
-; pageoptions_element.php line: 354
+; pageoptions_element.php line: 359
 pageoptions_element_extracted_metas = ""
 ;
-; pageoptions_element.php line: 388
+; pageoptions_element.php line: 393
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 392
+; pageoptions_element.php line: 397
 pageoptions_element_save_options = ""
 ;
 ; resultseditor_element.php line: 58
diff --git a/locale/te/configure.ini b/locale/te/configure.ini
index eb86e53..bc6cad2 100755
--- a/locale/te/configure.ini
+++ b/locale/te/configure.ini
@@ -154,346 +154,346 @@ admin_controller_starting_new_crawl = "కొత్త క్రాల్ మొ
 ; admin_controller.php line: 868
 admin_controller_no_description = "క్రాల్ కు వివరణ లేదు"
 ;
-; admin_controller.php line: 981
+; admin_controller.php line: 985
 admin_controller_use_below = "కింది ఆప్సం ఉపయొగిచండి"
 ;
-; admin_controller.php line: 982
+; admin_controller.php line: 986
 admin_controller_use_defaults = "యూప్ డిఫాల్టస ఉపయొగిచండి"
 ;
-; admin_controller.php line: 984
+; admin_controller.php line: 988
 admin_controller_use_below = "కింది ఆప్సం ఉపయొగిచండి"
 ;
-; admin_controller.php line: 988
+; admin_controller.php line: 992
 admin_controller_previous_crawl = "ముందటి క్రాల్"
 ;
-; admin_controller.php line: 1075
+; admin_controller.php line: 1084
 admin_controller_breadth_first = ""
 ;
-; admin_controller.php line: 1077
+; admin_controller.php line: 1086
 admin_controller_page_importance = "పేజ్ పా్రముఖ్యత"
 ;
-; admin_controller.php line: 1143
+; admin_controller.php line: 1152
 admin_controller_urls_injected = ""
 ;
-; admin_controller.php line: 1154
+; admin_controller.php line: 1163
 admin_controller_update_seed_info = ""
 ;
-; admin_controller.php line: 1246
+; admin_controller.php line: 1255
 admin_controller_select_crawl = "క్రాల్ ఎంచుకోండి"
 ;
-; admin_controller.php line: 1247
+; admin_controller.php line: 1256
 admin_controller_default_crawl = "డిఫాల్ట  క్రాల్"
 ;
-; admin_controller.php line: 1249
+; admin_controller.php line: 1258
 admin_controller_select_crawl = "క్రాల్ ఎంచుకోండి"
 ;
-; admin_controller.php line: 1251
+; admin_controller.php line: 1260
 admin_controller_default_crawl = "డిఫాల్ట  క్రాల్"
 ;
-; admin_controller.php line: 1278
+; admin_controller.php line: 1287
 admin_controller_unnamed = "పేరు లేని క్రాల్"
 ;
-; admin_controller.php line: 1283
+; admin_controller.php line: 1292
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1292
+; admin_controller.php line: 1301
 admin_controller_set_index = ""
 ;
-; admin_controller.php line: 1302
+; admin_controller.php line: 1311
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1310
+; admin_controller.php line: 1319
 admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1346
+; admin_controller.php line: 1355
 editmix_element_add_crawls = "క్రాల్ లు జోడించుము"
 ;
-; admin_controller.php line: 1348
+; admin_controller.php line: 1357
 editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1349
+; admin_controller.php line: 1358
 editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1350
+; admin_controller.php line: 1359
 editmix_element_weight = "బరువు"
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1360
 editmix_element_name = "పేరు"
 ;
-; admin_controller.php line: 1352
+; admin_controller.php line: 1361
 editmix_add_keywords = "ముఖ్య పదాలు"
 ;
-; admin_controller.php line: 1353
+; admin_controller.php line: 1362
 editmix_element_actions = "యాక్సన్ లు"
 ;
-; admin_controller.php line: 1354
+; admin_controller.php line: 1363
 editmix_add_query = "క్వెరి జోడించుము"
 ;
-; admin_controller.php line: 1355
+; admin_controller.php line: 1364
 editmix_element_delete = "డిలీట్"
 ;
-; admin_controller.php line: 1407
+; admin_controller.php line: 1416
 admin_controller_mix_saved = ""
 ;
-; admin_controller.php line: 1458
+; admin_controller.php line: 1467
 admin_controller_use_below = "కింది ఆప్సం ఉపయొగిచండి"
 ;
-; admin_controller.php line: 1459
+; admin_controller.php line: 1468
 admin_controller_use_defaults = "యూప్ డిఫాల్టస ఉపయొగిచండి"
 ;
-; admin_controller.php line: 1461
+; admin_controller.php line: 1470
 admin_controller_use_below = "కింది ఆప్సం ఉపయొగిచండి"
 ;
-; admin_controller.php line: 1465
+; admin_controller.php line: 1474
 admin_controller_previous_crawl = "ముందటి క్రాల్"
 ;
-; admin_controller.php line: 1470
+; admin_controller.php line: 1479
 admin_controller_recrawl_never = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1480
 admin_controller_recrawl_1day = ""
 ;
-; admin_controller.php line: 1472
+; admin_controller.php line: 1481
 admin_controller_recrawl_2day = ""
 ;
-; admin_controller.php line: 1473
+; admin_controller.php line: 1482
 admin_controller_recrawl_3day = ""
 ;
-; admin_controller.php line: 1474
+; admin_controller.php line: 1483
 admin_controller_recrawl_7day = ""
 ;
-; admin_controller.php line: 1475
+; admin_controller.php line: 1484
 admin_controller_recrawl_14day = ""
 ;
-; admin_controller.php line: 1685
+; admin_controller.php line: 1705
 admin_controller_page_options_updated = ""
 ;
-; admin_controller.php line: 1711
+; admin_controller.php line: 1731
 admin_controller_page_options_running_tests = ""
 ;
-; admin_controller.php line: 1860
+; admin_controller.php line: 1881
 admin_controller_new_classifier = ""
 ;
-; admin_controller.php line: 1863
+; admin_controller.php line: 1884
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1875
+; admin_controller.php line: 1896
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1893
+; admin_controller.php line: 1914
 admin_controller_finalizing_classifier = ""
 ;
-; admin_controller.php line: 1916
+; admin_controller.php line: 1937
 admin_controller_classifier_deleted = ""
 ;
-; admin_controller.php line: 1920
+; admin_controller.php line: 1941
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1969
+; admin_controller.php line: 1990
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1980
+; admin_controller.php line: 2001
 editclassifier_load_failed = ""
 ;
-; admin_controller.php line: 1982
+; admin_controller.php line: 2003
 editclassifier_loading = ""
 ;
-; admin_controller.php line: 1984
+; admin_controller.php line: 2005
 editclassifier_added_examples = ""
 ;
-; admin_controller.php line: 1986
+; admin_controller.php line: 2007
 editclassifier_label_update_failed = ""
 ;
-; admin_controller.php line: 1988
+; admin_controller.php line: 2009
 editclassifier_updating = ""
 ;
-; admin_controller.php line: 1990
+; admin_controller.php line: 2011
 editclassifier_acc_update_failed = ""
 ;
-; admin_controller.php line: 1992
+; admin_controller.php line: 2013
 editclassifier_na = ""
 ;
-; admin_controller.php line: 1994
+; admin_controller.php line: 2015
 editclassifier_no_docs = ""
 ;
-; admin_controller.php line: 1996
+; admin_controller.php line: 2017
 editclassifier_num_docs = ""
 ;
-; admin_controller.php line: 1998
+; admin_controller.php line: 2019
 editclassifier_in_class = ""
 ;
-; admin_controller.php line: 2000
+; admin_controller.php line: 2021
 editclassifier_not_in_class = ""
 ;
-; admin_controller.php line: 2002
+; admin_controller.php line: 2023
 editclassifier_skip = ""
 ;
-; admin_controller.php line: 2004
+; admin_controller.php line: 2025
 editclassifier_prediction = ""
 ;
-; admin_controller.php line: 2006
+; admin_controller.php line: 2027
 editclassifier_scores = ""
 ;
-; admin_controller.php line: 2050
+; admin_controller.php line: 2071
 admin_controller_results_editor_update = ""
 ;
-; admin_controller.php line: 2064
+; admin_controller.php line: 2085
 admin_controller_edited_pages = ""
 ;
-; admin_controller.php line: 2077
+; admin_controller.php line: 2098
 admin_controller_results_editor_need_url = ""
 ;
-; admin_controller.php line: 2083
+; admin_controller.php line: 2104
 admin_controller_results_editor_page_updated = ""
 ;
-; admin_controller.php line: 2096
+; admin_controller.php line: 2117
 admin_controller_results_editor_page_loaded = ""
 ;
-; admin_controller.php line: 2141
+; admin_controller.php line: 2162
 admin_controller_select_machine = ""
 ;
-; admin_controller.php line: 2212
+; admin_controller.php line: 2233
 admin_controller_machine_added = ""
 ;
-; admin_controller.php line: 2219
+; admin_controller.php line: 2240
 admin_controller_machine_exists = ""
 ;
-; admin_controller.php line: 2223
+; admin_controller.php line: 2244
 admin_controller_machine_incomplete = ""
 ;
-; admin_controller.php line: 2232
+; admin_controller.php line: 2253
 admin_controller_machine_doesnt_exists = ""
 ;
-; admin_controller.php line: 2249
+; admin_controller.php line: 2270
 admin_controller_stop_service_first = ""
 ;
-; admin_controller.php line: 2262
+; admin_controller.php line: 2283
 admin_controller_machine_deleted = ""
 ;
-; admin_controller.php line: 2283
+; admin_controller.php line: 2304
 admin_controller_news_process_running = ""
 ;
-; admin_controller.php line: 2291
+; admin_controller.php line: 2312
 admin_controller_news_mode_updated = ""
 ;
-; admin_controller.php line: 2295
+; admin_controller.php line: 2316
 admin_controller_news_update_failed = ""
 ;
-; admin_controller.php line: 2358
+; admin_controller.php line: 2379
 admin_controller_no_machine_log = ""
 ;
-; admin_controller.php line: 2387
+; admin_controller.php line: 2408
 admin_controller_machine_servers_updated = ""
 ;
-; admin_controller.php line: 2391
+; admin_controller.php line: 2412
 admin_controller_machine_no_action = ""
 ;
-; admin_controller.php line: 2424
+; admin_controller.php line: 2445
 admin_controller_select_localename = ""
 ;
-; admin_controller.php line: 2468
+; admin_controller.php line: 2489
 admin_controller_locale_added = ""
 ;
-; admin_controller.php line: 2475
+; admin_controller.php line: 2496
 admin_controller_localename_doesnt_exists = ""
 ;
-; admin_controller.php line: 2484
+; admin_controller.php line: 2505
 admin_controller_localename_deleted = ""
 ;
-; admin_controller.php line: 2493
+; admin_controller.php line: 2514
 admin_controller_select_staticpages = ""
 ;
-; admin_controller.php line: 2512
+; admin_controller.php line: 2533
 admin_controller_staticpage_updated = ""
 ;
-; admin_controller.php line: 2539
+; admin_controller.php line: 2560
 admin_controller_localestrings_updated = ""
 ;
-; admin_controller.php line: 2596
+; admin_controller.php line: 2617
 admin_controller_php_version = ""
 ;
-; admin_controller.php line: 2604
+; admin_controller.php line: 2625
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 2609
+; admin_controller.php line: 2630
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 2614
+; admin_controller.php line: 2635
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 2620
+; admin_controller.php line: 2641
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 2643
+; admin_controller.php line: 2664
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 2648
+; admin_controller.php line: 2669
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 2653
+; admin_controller.php line: 2674
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 2678
+; admin_controller.php line: 2699
 admin_controller_media_kind = ""
 ;
-; admin_controller.php line: 2679
+; admin_controller.php line: 2700
 admin_controller_video = ""
 ;
-; admin_controller.php line: 2680
+; admin_controller.php line: 2701
 admin_controller_rss_feed = ""
 ;
-; admin_controller.php line: 2694
+; admin_controller.php line: 2715
 admin_controller_sources_indexes = ""
 ;
-; admin_controller.php line: 2747
+; admin_controller.php line: 2768
 admin_controller_media_source_added = ""
 ;
-; admin_controller.php line: 2755
+; admin_controller.php line: 2776
 admin_controller_media_source_deleted = ""
 ;
-; admin_controller.php line: 2771
+; admin_controller.php line: 2792
 admin_controller_subsearch_added = ""
 ;
-; admin_controller.php line: 2779
+; admin_controller.php line: 2800
 admin_controller_subsearch_deleted = ""
 ;
-; admin_controller.php line: 2854
+; admin_controller.php line: 2875
 admin_controller_configure_use_absolute_path = ""
 ;
-; admin_controller.php line: 2866
+; admin_controller.php line: 2887
 admin_controller_configure_diff_base_dir = ""
 ;
-; admin_controller.php line: 2899
+; admin_controller.php line: 2920
 admin_controller_configure_work_dir_set = ""
 ;
-; admin_controller.php line: 2913
+; admin_controller.php line: 2934
 admin_controller_name_your_bot = ""
 ;
-; admin_controller.php line: 2936
+; admin_controller.php line: 2957
 admin_controller_configure_work_profile_made = ""
 ;
-; admin_controller.php line: 2949
+; admin_controller.php line: 2970
 admin_controller_configure_no_set_config = ""
 ;
-; admin_controller.php line: 2961
+; admin_controller.php line: 2982
 admin_controller_configure_no_create_profile = ""
 ;
-; admin_controller.php line: 2972
+; admin_controller.php line: 2993
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 2984
+; admin_controller.php line: 3005
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 3032
+; admin_controller.php line: 3053
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 3047
+; admin_controller.php line: 3068
 admin_controller_configure_profile_change = ""
 ;
-; admin_controller.php line: 3062
+; admin_controller.php line: 3083
 admin_controller_configure_no_change_profile = ""
 ;
-; admin_controller.php line: 3100
+; admin_controller.php line: 3121
 admin_controller_describe_robot = ""
 ;
 ; machine_controller.php line: 182
@@ -544,22 +544,22 @@ search_controller_crawl_delay = "యూప్ బాట్ క్రాల్ 
 ; search_controller.php line: 1593
 search_controller_cache_comment = "యూప్కా ష్ పేజ్ ... ఈ పేజీకి, ఒక రోబోట్ ఆదేశం జోడించండి లింకులు సంపూర్ణ తయారు, సేకరించిన సారాంశాలు జోడించడానికి మరియు ప్రశ్న నిబంధనలు హైలైట్ కు మార్చబడింది"
 ;
-; search_controller.php line: 1637
+; search_controller.php line: 1638
 search_controller_cached_version = "ఈ కేషెడ్ వెర్షన్ %s యూప్ క్రాలర్ ద్వారా పొందారు %s"
 ;
-; search_controller.php line: 1752
+; search_controller.php line: 1753
 search_controller_header_summaries = ""
 ;
-; search_controller.php line: 1876
+; search_controller.php line: 1877
 search_controller_history = ""
 ;
-; search_controller.php line: 2052
+; search_controller.php line: 2053
 search_controller_all_cached = ""
 ;
-; search_controller.php line: 2083
+; search_controller.php line: 2084
 search_controller_year = ""
 ;
-; search_controller.php line: 2084
+; search_controller.php line: 2085
 search_controller_month = ""
 ;
 ; settings_controller.php line: 134
@@ -1254,111 +1254,114 @@ pageoptions_element_load_options = ""
 pageoptions_element_page_range = ""
 ;
 ; pageoptions_element.php line: 95
+pageoptions_element_max_description = ""
+;
+; pageoptions_element.php line: 100
 pageoptions_element_save_cache = ""
 ;
-; pageoptions_element.php line: 105
+; pageoptions_element.php line: 110
 pageoptions_element_allow_recrawl = ""
 ;
-; pageoptions_element.php line: 111
+; pageoptions_element.php line: 116
 pageoptions_element_file_types = ""
 ;
-; pageoptions_element.php line: 141
+; pageoptions_element.php line: 146
 pageoptions_element_classifiers_to_apply = ""
 ;
-; pageoptions_element.php line: 176
+; pageoptions_element.php line: 181
 pageoptions_element_no_classifiers = ""
 ;
-; pageoptions_element.php line: 179
+; pageoptions_element.php line: 184
 pageoptions_element_indexing_plugins = ""
 ;
-; pageoptions_element.php line: 183
+; pageoptions_element.php line: 188
 pageoptions_element_plugin = ""
 ;
-; pageoptions_element.php line: 186
+; pageoptions_element.php line: 191
 pageoptions_element_plugin_include = ""
 ;
-; pageoptions_element.php line: 207
+; pageoptions_element.php line: 212
 pageoptions_element_no_compatible_plugins = ""
 ;
-; pageoptions_element.php line: 210
+; pageoptions_element.php line: 215
 pageoptions_element_page_rules = ""
 ;
-; pageoptions_element.php line: 218
+; pageoptions_element.php line: 223
 page_element_search_page = ""
 ;
-; pageoptions_element.php line: 223
+; pageoptions_element.php line: 228
 pageoptions_element_wd_suggest = ""
 ;
-; pageoptions_element.php line: 231
+; pageoptions_element.php line: 236
 pageoptions_element_subsearch_link = ""
 ;
-; pageoptions_element.php line: 240
+; pageoptions_element.php line: 245
 pageoptions_element_signin_link = ""
 ;
-; pageoptions_element.php line: 247
+; pageoptions_element.php line: 252
 pageoptions_element_cache_link = ""
 ;
-; pageoptions_element.php line: 255
+; pageoptions_element.php line: 260
 pageoptions_element_similar_link = ""
 ;
-; pageoptions_element.php line: 263
+; pageoptions_element.php line: 268
 pageoptions_element_in_link = ""
 ;
-; pageoptions_element.php line: 269
+; pageoptions_element.php line: 274
 pageoptions_element_ip_link = ""
 ;
-; pageoptions_element.php line: 278
+; pageoptions_element.php line: 283
 pageoptions_element_ranking_factors = ""
 ;
-; pageoptions_element.php line: 281
+; pageoptions_element.php line: 286
 pageoptions_element_title_weight = ""
 ;
-; pageoptions_element.php line: 286
+; pageoptions_element.php line: 291
 pageoptions_element_description_weight = ""
 ;
-; pageoptions_element.php line: 291
+; pageoptions_element.php line: 296
 pageoptions_element_link_weight = ""
 ;
-; pageoptions_element.php line: 296
+; pageoptions_element.php line: 301
 pageoptions_element_results_grouping_options = ""
 ;
-; pageoptions_element.php line: 299
+; pageoptions_element.php line: 304
 pageoptions_element_min_results_to_group = ""
 ;
-; pageoptions_element.php line: 304
+; pageoptions_element.php line: 309
 pageoptions_element_server_alpha = ""
 ;
-; pageoptions_element.php line: 312
+; pageoptions_element.php line: 317
 pageoptions_element_test_page = ""
 ;
-; pageoptions_element.php line: 314
+; pageoptions_element.php line: 319
 pageoptions_element_page_type = ""
 ;
-; pageoptions_element.php line: 331
+; pageoptions_element.php line: 336
 pageoptions_element_save_options = ""
 ;
-; pageoptions_element.php line: 333
+; pageoptions_element.php line: 338
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 339
+; pageoptions_element.php line: 344
 pageoptions_element_test_results = ""
 ;
-; pageoptions_element.php line: 342
+; pageoptions_element.php line: 347
 pageoptions_element_after_process = ""
 ;
-; pageoptions_element.php line: 346
+; pageoptions_element.php line: 351
 pageoptions_element_after_rules = ""
 ;
-; pageoptions_element.php line: 350
+; pageoptions_element.php line: 355
 pageoptions_element_extracted_words = ""
 ;
-; pageoptions_element.php line: 354
+; pageoptions_element.php line: 359
 pageoptions_element_extracted_metas = ""
 ;
-; pageoptions_element.php line: 388
+; pageoptions_element.php line: 393
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 392
+; pageoptions_element.php line: 397
 pageoptions_element_save_options = ""
 ;
 ; resultseditor_element.php line: 58
diff --git a/locale/th/configure.ini b/locale/th/configure.ini
index 87153af..b26c8cf 100755
--- a/locale/th/configure.ini
+++ b/locale/th/configure.ini
@@ -154,346 +154,346 @@ admin_controller_starting_new_crawl = ""
 ; admin_controller.php line: 868
 admin_controller_no_description = ""
 ;
-; admin_controller.php line: 981
+; admin_controller.php line: 985
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 982
+; admin_controller.php line: 986
 admin_controller_use_defaults = ""
 ;
-; admin_controller.php line: 984
+; admin_controller.php line: 988
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 988
+; admin_controller.php line: 992
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1075
+; admin_controller.php line: 1084
 admin_controller_breadth_first = ""
 ;
-; admin_controller.php line: 1077
+; admin_controller.php line: 1086
 admin_controller_page_importance = ""
 ;
-; admin_controller.php line: 1143
+; admin_controller.php line: 1152
 admin_controller_urls_injected = ""
 ;
-; admin_controller.php line: 1154
+; admin_controller.php line: 1163
 admin_controller_update_seed_info = ""
 ;
-; admin_controller.php line: 1246
+; admin_controller.php line: 1255
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1247
+; admin_controller.php line: 1256
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1249
+; admin_controller.php line: 1258
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1251
+; admin_controller.php line: 1260
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1278
+; admin_controller.php line: 1287
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1283
+; admin_controller.php line: 1292
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1292
+; admin_controller.php line: 1301
 admin_controller_set_index = ""
 ;
-; admin_controller.php line: 1302
+; admin_controller.php line: 1311
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1310
+; admin_controller.php line: 1319
 admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1346
+; admin_controller.php line: 1355
 editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1348
+; admin_controller.php line: 1357
 editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1349
+; admin_controller.php line: 1358
 editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1350
+; admin_controller.php line: 1359
 editmix_element_weight = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1360
 editmix_element_name = ""
 ;
-; admin_controller.php line: 1352
+; admin_controller.php line: 1361
 editmix_add_keywords = ""
 ;
-; admin_controller.php line: 1353
+; admin_controller.php line: 1362
 editmix_element_actions = ""
 ;
-; admin_controller.php line: 1354
+; admin_controller.php line: 1363
 editmix_add_query = ""
 ;
-; admin_controller.php line: 1355
+; admin_controller.php line: 1364
 editmix_element_delete = ""
 ;
-; admin_controller.php line: 1407
+; admin_controller.php line: 1416
 admin_controller_mix_saved = ""
 ;
-; admin_controller.php line: 1458
+; admin_controller.php line: 1467
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 1459
+; admin_controller.php line: 1468
 admin_controller_use_defaults = ""
 ;
-; admin_controller.php line: 1461
+; admin_controller.php line: 1470
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 1465
+; admin_controller.php line: 1474
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1470
+; admin_controller.php line: 1479
 admin_controller_recrawl_never = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1480
 admin_controller_recrawl_1day = ""
 ;
-; admin_controller.php line: 1472
+; admin_controller.php line: 1481
 admin_controller_recrawl_2day = ""
 ;
-; admin_controller.php line: 1473
+; admin_controller.php line: 1482
 admin_controller_recrawl_3day = ""
 ;
-; admin_controller.php line: 1474
+; admin_controller.php line: 1483
 admin_controller_recrawl_7day = ""
 ;
-; admin_controller.php line: 1475
+; admin_controller.php line: 1484
 admin_controller_recrawl_14day = ""
 ;
-; admin_controller.php line: 1685
+; admin_controller.php line: 1705
 admin_controller_page_options_updated = ""
 ;
-; admin_controller.php line: 1711
+; admin_controller.php line: 1731
 admin_controller_page_options_running_tests = ""
 ;
-; admin_controller.php line: 1860
+; admin_controller.php line: 1881
 admin_controller_new_classifier = ""
 ;
-; admin_controller.php line: 1863
+; admin_controller.php line: 1884
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1875
+; admin_controller.php line: 1896
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1893
+; admin_controller.php line: 1914
 admin_controller_finalizing_classifier = ""
 ;
-; admin_controller.php line: 1916
+; admin_controller.php line: 1937
 admin_controller_classifier_deleted = ""
 ;
-; admin_controller.php line: 1920
+; admin_controller.php line: 1941
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1969
+; admin_controller.php line: 1990
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1980
+; admin_controller.php line: 2001
 editclassifier_load_failed = ""
 ;
-; admin_controller.php line: 1982
+; admin_controller.php line: 2003
 editclassifier_loading = ""
 ;
-; admin_controller.php line: 1984
+; admin_controller.php line: 2005
 editclassifier_added_examples = ""
 ;
-; admin_controller.php line: 1986
+; admin_controller.php line: 2007
 editclassifier_label_update_failed = ""
 ;
-; admin_controller.php line: 1988
+; admin_controller.php line: 2009
 editclassifier_updating = ""
 ;
-; admin_controller.php line: 1990
+; admin_controller.php line: 2011
 editclassifier_acc_update_failed = ""
 ;
-; admin_controller.php line: 1992
+; admin_controller.php line: 2013
 editclassifier_na = ""
 ;
-; admin_controller.php line: 1994
+; admin_controller.php line: 2015
 editclassifier_no_docs = ""
 ;
-; admin_controller.php line: 1996
+; admin_controller.php line: 2017
 editclassifier_num_docs = ""
 ;
-; admin_controller.php line: 1998
+; admin_controller.php line: 2019
 editclassifier_in_class = ""
 ;
-; admin_controller.php line: 2000
+; admin_controller.php line: 2021
 editclassifier_not_in_class = ""
 ;
-; admin_controller.php line: 2002
+; admin_controller.php line: 2023
 editclassifier_skip = ""
 ;
-; admin_controller.php line: 2004
+; admin_controller.php line: 2025
 editclassifier_prediction = ""
 ;
-; admin_controller.php line: 2006
+; admin_controller.php line: 2027
 editclassifier_scores = ""
 ;
-; admin_controller.php line: 2050
+; admin_controller.php line: 2071
 admin_controller_results_editor_update = ""
 ;
-; admin_controller.php line: 2064
+; admin_controller.php line: 2085
 admin_controller_edited_pages = ""
 ;
-; admin_controller.php line: 2077
+; admin_controller.php line: 2098
 admin_controller_results_editor_need_url = ""
 ;
-; admin_controller.php line: 2083
+; admin_controller.php line: 2104
 admin_controller_results_editor_page_updated = ""
 ;
-; admin_controller.php line: 2096
+; admin_controller.php line: 2117
 admin_controller_results_editor_page_loaded = ""
 ;
-; admin_controller.php line: 2141
+; admin_controller.php line: 2162
 admin_controller_select_machine = ""
 ;
-; admin_controller.php line: 2212
+; admin_controller.php line: 2233
 admin_controller_machine_added = ""
 ;
-; admin_controller.php line: 2219
+; admin_controller.php line: 2240
 admin_controller_machine_exists = ""
 ;
-; admin_controller.php line: 2223
+; admin_controller.php line: 2244
 admin_controller_machine_incomplete = ""
 ;
-; admin_controller.php line: 2232
+; admin_controller.php line: 2253
 admin_controller_machine_doesnt_exists = ""
 ;
-; admin_controller.php line: 2249
+; admin_controller.php line: 2270
 admin_controller_stop_service_first = ""
 ;
-; admin_controller.php line: 2262
+; admin_controller.php line: 2283
 admin_controller_machine_deleted = ""
 ;
-; admin_controller.php line: 2283
+; admin_controller.php line: 2304
 admin_controller_news_process_running = ""
 ;
-; admin_controller.php line: 2291
+; admin_controller.php line: 2312
 admin_controller_news_mode_updated = ""
 ;
-; admin_controller.php line: 2295
+; admin_controller.php line: 2316
 admin_controller_news_update_failed = ""
 ;
-; admin_controller.php line: 2358
+; admin_controller.php line: 2379
 admin_controller_no_machine_log = ""
 ;
-; admin_controller.php line: 2387
+; admin_controller.php line: 2408
 admin_controller_machine_servers_updated = ""
 ;
-; admin_controller.php line: 2391
+; admin_controller.php line: 2412
 admin_controller_machine_no_action = ""
 ;
-; admin_controller.php line: 2424
+; admin_controller.php line: 2445
 admin_controller_select_localename = ""
 ;
-; admin_controller.php line: 2468
+; admin_controller.php line: 2489
 admin_controller_locale_added = ""
 ;
-; admin_controller.php line: 2475
+; admin_controller.php line: 2496
 admin_controller_localename_doesnt_exists = ""
 ;
-; admin_controller.php line: 2484
+; admin_controller.php line: 2505
 admin_controller_localename_deleted = ""
 ;
-; admin_controller.php line: 2493
+; admin_controller.php line: 2514
 admin_controller_select_staticpages = ""
 ;
-; admin_controller.php line: 2512
+; admin_controller.php line: 2533
 admin_controller_staticpage_updated = ""
 ;
-; admin_controller.php line: 2539
+; admin_controller.php line: 2560
 admin_controller_localestrings_updated = ""
 ;
-; admin_controller.php line: 2596
+; admin_controller.php line: 2617
 admin_controller_php_version = ""
 ;
-; admin_controller.php line: 2604
+; admin_controller.php line: 2625
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 2609
+; admin_controller.php line: 2630
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 2614
+; admin_controller.php line: 2635
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 2620
+; admin_controller.php line: 2641
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 2643
+; admin_controller.php line: 2664
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 2648
+; admin_controller.php line: 2669
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 2653
+; admin_controller.php line: 2674
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 2678
+; admin_controller.php line: 2699
 admin_controller_media_kind = ""
 ;
-; admin_controller.php line: 2679
+; admin_controller.php line: 2700
 admin_controller_video = ""
 ;
-; admin_controller.php line: 2680
+; admin_controller.php line: 2701
 admin_controller_rss_feed = ""
 ;
-; admin_controller.php line: 2694
+; admin_controller.php line: 2715
 admin_controller_sources_indexes = ""
 ;
-; admin_controller.php line: 2747
+; admin_controller.php line: 2768
 admin_controller_media_source_added = ""
 ;
-; admin_controller.php line: 2755
+; admin_controller.php line: 2776
 admin_controller_media_source_deleted = ""
 ;
-; admin_controller.php line: 2771
+; admin_controller.php line: 2792
 admin_controller_subsearch_added = ""
 ;
-; admin_controller.php line: 2779
+; admin_controller.php line: 2800
 admin_controller_subsearch_deleted = ""
 ;
-; admin_controller.php line: 2854
+; admin_controller.php line: 2875
 admin_controller_configure_use_absolute_path = ""
 ;
-; admin_controller.php line: 2866
+; admin_controller.php line: 2887
 admin_controller_configure_diff_base_dir = ""
 ;
-; admin_controller.php line: 2899
+; admin_controller.php line: 2920
 admin_controller_configure_work_dir_set = ""
 ;
-; admin_controller.php line: 2913
+; admin_controller.php line: 2934
 admin_controller_name_your_bot = ""
 ;
-; admin_controller.php line: 2936
+; admin_controller.php line: 2957
 admin_controller_configure_work_profile_made = ""
 ;
-; admin_controller.php line: 2949
+; admin_controller.php line: 2970
 admin_controller_configure_no_set_config = ""
 ;
-; admin_controller.php line: 2961
+; admin_controller.php line: 2982
 admin_controller_configure_no_create_profile = ""
 ;
-; admin_controller.php line: 2972
+; admin_controller.php line: 2993
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 2984
+; admin_controller.php line: 3005
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 3032
+; admin_controller.php line: 3053
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 3047
+; admin_controller.php line: 3068
 admin_controller_configure_profile_change = ""
 ;
-; admin_controller.php line: 3062
+; admin_controller.php line: 3083
 admin_controller_configure_no_change_profile = ""
 ;
-; admin_controller.php line: 3100
+; admin_controller.php line: 3121
 admin_controller_describe_robot = ""
 ;
 ; machine_controller.php line: 182
@@ -544,22 +544,22 @@ search_controller_crawl_delay = ""
 ; search_controller.php line: 1593
 search_controller_cache_comment = ""
 ;
-; search_controller.php line: 1637
+; search_controller.php line: 1638
 search_controller_cached_version = ""
 ;
-; search_controller.php line: 1752
+; search_controller.php line: 1753
 search_controller_header_summaries = ""
 ;
-; search_controller.php line: 1876
+; search_controller.php line: 1877
 search_controller_history = ""
 ;
-; search_controller.php line: 2052
+; search_controller.php line: 2053
 search_controller_all_cached = ""
 ;
-; search_controller.php line: 2083
+; search_controller.php line: 2084
 search_controller_year = ""
 ;
-; search_controller.php line: 2084
+; search_controller.php line: 2085
 search_controller_month = ""
 ;
 ; settings_controller.php line: 134
@@ -1254,111 +1254,114 @@ pageoptions_element_load_options = ""
 pageoptions_element_page_range = ""
 ;
 ; pageoptions_element.php line: 95
+pageoptions_element_max_description = ""
+;
+; pageoptions_element.php line: 100
 pageoptions_element_save_cache = ""
 ;
-; pageoptions_element.php line: 105
+; pageoptions_element.php line: 110
 pageoptions_element_allow_recrawl = ""
 ;
-; pageoptions_element.php line: 111
+; pageoptions_element.php line: 116
 pageoptions_element_file_types = ""
 ;
-; pageoptions_element.php line: 141
+; pageoptions_element.php line: 146
 pageoptions_element_classifiers_to_apply = ""
 ;
-; pageoptions_element.php line: 176
+; pageoptions_element.php line: 181
 pageoptions_element_no_classifiers = ""
 ;
-; pageoptions_element.php line: 179
+; pageoptions_element.php line: 184
 pageoptions_element_indexing_plugins = ""
 ;
-; pageoptions_element.php line: 183
+; pageoptions_element.php line: 188
 pageoptions_element_plugin = ""
 ;
-; pageoptions_element.php line: 186
+; pageoptions_element.php line: 191
 pageoptions_element_plugin_include = ""
 ;
-; pageoptions_element.php line: 207
+; pageoptions_element.php line: 212
 pageoptions_element_no_compatible_plugins = ""
 ;
-; pageoptions_element.php line: 210
+; pageoptions_element.php line: 215
 pageoptions_element_page_rules = ""
 ;
-; pageoptions_element.php line: 218
+; pageoptions_element.php line: 223
 page_element_search_page = ""
 ;
-; pageoptions_element.php line: 223
+; pageoptions_element.php line: 228
 pageoptions_element_wd_suggest = ""
 ;
-; pageoptions_element.php line: 231
+; pageoptions_element.php line: 236
 pageoptions_element_subsearch_link = ""
 ;
-; pageoptions_element.php line: 240
+; pageoptions_element.php line: 245
 pageoptions_element_signin_link = ""
 ;
-; pageoptions_element.php line: 247
+; pageoptions_element.php line: 252
 pageoptions_element_cache_link = ""
 ;
-; pageoptions_element.php line: 255
+; pageoptions_element.php line: 260
 pageoptions_element_similar_link = ""
 ;
-; pageoptions_element.php line: 263
+; pageoptions_element.php line: 268
 pageoptions_element_in_link = ""
 ;
-; pageoptions_element.php line: 269
+; pageoptions_element.php line: 274
 pageoptions_element_ip_link = ""
 ;
-; pageoptions_element.php line: 278
+; pageoptions_element.php line: 283
 pageoptions_element_ranking_factors = ""
 ;
-; pageoptions_element.php line: 281
+; pageoptions_element.php line: 286
 pageoptions_element_title_weight = ""
 ;
-; pageoptions_element.php line: 286
+; pageoptions_element.php line: 291
 pageoptions_element_description_weight = ""
 ;
-; pageoptions_element.php line: 291
+; pageoptions_element.php line: 296
 pageoptions_element_link_weight = ""
 ;
-; pageoptions_element.php line: 296
+; pageoptions_element.php line: 301
 pageoptions_element_results_grouping_options = ""
 ;
-; pageoptions_element.php line: 299
+; pageoptions_element.php line: 304
 pageoptions_element_min_results_to_group = ""
 ;
-; pageoptions_element.php line: 304
+; pageoptions_element.php line: 309
 pageoptions_element_server_alpha = ""
 ;
-; pageoptions_element.php line: 312
+; pageoptions_element.php line: 317
 pageoptions_element_test_page = ""
 ;
-; pageoptions_element.php line: 314
+; pageoptions_element.php line: 319
 pageoptions_element_page_type = ""
 ;
-; pageoptions_element.php line: 331
+; pageoptions_element.php line: 336
 pageoptions_element_save_options = ""
 ;
-; pageoptions_element.php line: 333
+; pageoptions_element.php line: 338
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 339
+; pageoptions_element.php line: 344
 pageoptions_element_test_results = ""
 ;
-; pageoptions_element.php line: 342
+; pageoptions_element.php line: 347
 pageoptions_element_after_process = ""
 ;
-; pageoptions_element.php line: 346
+; pageoptions_element.php line: 351
 pageoptions_element_after_rules = ""
 ;
-; pageoptions_element.php line: 350
+; pageoptions_element.php line: 355
 pageoptions_element_extracted_words = ""
 ;
-; pageoptions_element.php line: 354
+; pageoptions_element.php line: 359
 pageoptions_element_extracted_metas = ""
 ;
-; pageoptions_element.php line: 388
+; pageoptions_element.php line: 393
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 392
+; pageoptions_element.php line: 397
 pageoptions_element_save_options = ""
 ;
 ; resultseditor_element.php line: 58
diff --git a/locale/tr/configure.ini b/locale/tr/configure.ini
index 18a9801..e7eeedc 100755
--- a/locale/tr/configure.ini
+++ b/locale/tr/configure.ini
@@ -154,346 +154,346 @@ admin_controller_starting_new_crawl = ""
 ; admin_controller.php line: 868
 admin_controller_no_description = ""
 ;
-; admin_controller.php line: 981
+; admin_controller.php line: 985
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 982
+; admin_controller.php line: 986
 admin_controller_use_defaults = ""
 ;
-; admin_controller.php line: 984
+; admin_controller.php line: 988
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 988
+; admin_controller.php line: 992
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1075
+; admin_controller.php line: 1084
 admin_controller_breadth_first = ""
 ;
-; admin_controller.php line: 1077
+; admin_controller.php line: 1086
 admin_controller_page_importance = ""
 ;
-; admin_controller.php line: 1143
+; admin_controller.php line: 1152
 admin_controller_urls_injected = ""
 ;
-; admin_controller.php line: 1154
+; admin_controller.php line: 1163
 admin_controller_update_seed_info = ""
 ;
-; admin_controller.php line: 1246
+; admin_controller.php line: 1255
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1247
+; admin_controller.php line: 1256
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1249
+; admin_controller.php line: 1258
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1251
+; admin_controller.php line: 1260
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1278
+; admin_controller.php line: 1287
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1283
+; admin_controller.php line: 1292
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1292
+; admin_controller.php line: 1301
 admin_controller_set_index = ""
 ;
-; admin_controller.php line: 1302
+; admin_controller.php line: 1311
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1310
+; admin_controller.php line: 1319
 admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1346
+; admin_controller.php line: 1355
 editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1348
+; admin_controller.php line: 1357
 editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1349
+; admin_controller.php line: 1358
 editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1350
+; admin_controller.php line: 1359
 editmix_element_weight = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1360
 editmix_element_name = ""
 ;
-; admin_controller.php line: 1352
+; admin_controller.php line: 1361
 editmix_add_keywords = ""
 ;
-; admin_controller.php line: 1353
+; admin_controller.php line: 1362
 editmix_element_actions = ""
 ;
-; admin_controller.php line: 1354
+; admin_controller.php line: 1363
 editmix_add_query = ""
 ;
-; admin_controller.php line: 1355
+; admin_controller.php line: 1364
 editmix_element_delete = ""
 ;
-; admin_controller.php line: 1407
+; admin_controller.php line: 1416
 admin_controller_mix_saved = ""
 ;
-; admin_controller.php line: 1458
+; admin_controller.php line: 1467
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 1459
+; admin_controller.php line: 1468
 admin_controller_use_defaults = ""
 ;
-; admin_controller.php line: 1461
+; admin_controller.php line: 1470
 admin_controller_use_below = ""
 ;
-; admin_controller.php line: 1465
+; admin_controller.php line: 1474
 admin_controller_previous_crawl = ""
 ;
-; admin_controller.php line: 1470
+; admin_controller.php line: 1479
 admin_controller_recrawl_never = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1480
 admin_controller_recrawl_1day = ""
 ;
-; admin_controller.php line: 1472
+; admin_controller.php line: 1481
 admin_controller_recrawl_2day = ""
 ;
-; admin_controller.php line: 1473
+; admin_controller.php line: 1482
 admin_controller_recrawl_3day = ""
 ;
-; admin_controller.php line: 1474
+; admin_controller.php line: 1483
 admin_controller_recrawl_7day = ""
 ;
-; admin_controller.php line: 1475
+; admin_controller.php line: 1484
 admin_controller_recrawl_14day = ""
 ;
-; admin_controller.php line: 1685
+; admin_controller.php line: 1705
 admin_controller_page_options_updated = ""
 ;
-; admin_controller.php line: 1711
+; admin_controller.php line: 1731
 admin_controller_page_options_running_tests = ""
 ;
-; admin_controller.php line: 1860
+; admin_controller.php line: 1881
 admin_controller_new_classifier = ""
 ;
-; admin_controller.php line: 1863
+; admin_controller.php line: 1884
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1875
+; admin_controller.php line: 1896
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1893
+; admin_controller.php line: 1914
 admin_controller_finalizing_classifier = ""
 ;
-; admin_controller.php line: 1916
+; admin_controller.php line: 1937
 admin_controller_classifier_deleted = ""
 ;
-; admin_controller.php line: 1920
+; admin_controller.php line: 1941
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1969
+; admin_controller.php line: 1990
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1980
+; admin_controller.php line: 2001
 editclassifier_load_failed = ""
 ;
-; admin_controller.php line: 1982
+; admin_controller.php line: 2003
 editclassifier_loading = ""
 ;
-; admin_controller.php line: 1984
+; admin_controller.php line: 2005
 editclassifier_added_examples = ""
 ;
-; admin_controller.php line: 1986
+; admin_controller.php line: 2007
 editclassifier_label_update_failed = ""
 ;
-; admin_controller.php line: 1988
+; admin_controller.php line: 2009
 editclassifier_updating = ""
 ;
-; admin_controller.php line: 1990
+; admin_controller.php line: 2011
 editclassifier_acc_update_failed = ""
 ;
-; admin_controller.php line: 1992
+; admin_controller.php line: 2013
 editclassifier_na = ""
 ;
-; admin_controller.php line: 1994
+; admin_controller.php line: 2015
 editclassifier_no_docs = ""
 ;
-; admin_controller.php line: 1996
+; admin_controller.php line: 2017
 editclassifier_num_docs = ""
 ;
-; admin_controller.php line: 1998
+; admin_controller.php line: 2019
 editclassifier_in_class = ""
 ;
-; admin_controller.php line: 2000
+; admin_controller.php line: 2021
 editclassifier_not_in_class = ""
 ;
-; admin_controller.php line: 2002
+; admin_controller.php line: 2023
 editclassifier_skip = ""
 ;
-; admin_controller.php line: 2004
+; admin_controller.php line: 2025
 editclassifier_prediction = ""
 ;
-; admin_controller.php line: 2006
+; admin_controller.php line: 2027
 editclassifier_scores = ""
 ;
-; admin_controller.php line: 2050
+; admin_controller.php line: 2071
 admin_controller_results_editor_update = ""
 ;
-; admin_controller.php line: 2064
+; admin_controller.php line: 2085
 admin_controller_edited_pages = ""
 ;
-; admin_controller.php line: 2077
+; admin_controller.php line: 2098
 admin_controller_results_editor_need_url = ""
 ;
-; admin_controller.php line: 2083
+; admin_controller.php line: 2104
 admin_controller_results_editor_page_updated = ""
 ;
-; admin_controller.php line: 2096
+; admin_controller.php line: 2117
 admin_controller_results_editor_page_loaded = ""
 ;
-; admin_controller.php line: 2141
+; admin_controller.php line: 2162
 admin_controller_select_machine = ""
 ;
-; admin_controller.php line: 2212
+; admin_controller.php line: 2233
 admin_controller_machine_added = ""
 ;
-; admin_controller.php line: 2219
+; admin_controller.php line: 2240
 admin_controller_machine_exists = ""
 ;
-; admin_controller.php line: 2223
+; admin_controller.php line: 2244
 admin_controller_machine_incomplete = ""
 ;
-; admin_controller.php line: 2232
+; admin_controller.php line: 2253
 admin_controller_machine_doesnt_exists = ""
 ;
-; admin_controller.php line: 2249
+; admin_controller.php line: 2270
 admin_controller_stop_service_first = ""
 ;
-; admin_controller.php line: 2262
+; admin_controller.php line: 2283
 admin_controller_machine_deleted = ""
 ;
-; admin_controller.php line: 2283
+; admin_controller.php line: 2304
 admin_controller_news_process_running = ""
 ;
-; admin_controller.php line: 2291
+; admin_controller.php line: 2312
 admin_controller_news_mode_updated = ""
 ;
-; admin_controller.php line: 2295
+; admin_controller.php line: 2316
 admin_controller_news_update_failed = ""
 ;
-; admin_controller.php line: 2358
+; admin_controller.php line: 2379
 admin_controller_no_machine_log = ""
 ;
-; admin_controller.php line: 2387
+; admin_controller.php line: 2408
 admin_controller_machine_servers_updated = ""
 ;
-; admin_controller.php line: 2391
+; admin_controller.php line: 2412
 admin_controller_machine_no_action = ""
 ;
-; admin_controller.php line: 2424
+; admin_controller.php line: 2445
 admin_controller_select_localename = ""
 ;
-; admin_controller.php line: 2468
+; admin_controller.php line: 2489
 admin_controller_locale_added = ""
 ;
-; admin_controller.php line: 2475
+; admin_controller.php line: 2496
 admin_controller_localename_doesnt_exists = ""
 ;
-; admin_controller.php line: 2484
+; admin_controller.php line: 2505
 admin_controller_localename_deleted = ""
 ;
-; admin_controller.php line: 2493
+; admin_controller.php line: 2514
 admin_controller_select_staticpages = ""
 ;
-; admin_controller.php line: 2512
+; admin_controller.php line: 2533
 admin_controller_staticpage_updated = ""
 ;
-; admin_controller.php line: 2539
+; admin_controller.php line: 2560
 admin_controller_localestrings_updated = ""
 ;
-; admin_controller.php line: 2596
+; admin_controller.php line: 2617
 admin_controller_php_version = ""
 ;
-; admin_controller.php line: 2604
+; admin_controller.php line: 2625
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 2609
+; admin_controller.php line: 2630
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 2614
+; admin_controller.php line: 2635
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 2620
+; admin_controller.php line: 2641
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 2643
+; admin_controller.php line: 2664
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 2648
+; admin_controller.php line: 2669
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 2653
+; admin_controller.php line: 2674
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 2678
+; admin_controller.php line: 2699
 admin_controller_media_kind = ""
 ;
-; admin_controller.php line: 2679
+; admin_controller.php line: 2700
 admin_controller_video = ""
 ;
-; admin_controller.php line: 2680
+; admin_controller.php line: 2701
 admin_controller_rss_feed = ""
 ;
-; admin_controller.php line: 2694
+; admin_controller.php line: 2715
 admin_controller_sources_indexes = ""
 ;
-; admin_controller.php line: 2747
+; admin_controller.php line: 2768
 admin_controller_media_source_added = ""
 ;
-; admin_controller.php line: 2755
+; admin_controller.php line: 2776
 admin_controller_media_source_deleted = ""
 ;
-; admin_controller.php line: 2771
+; admin_controller.php line: 2792
 admin_controller_subsearch_added = ""
 ;
-; admin_controller.php line: 2779
+; admin_controller.php line: 2800
 admin_controller_subsearch_deleted = ""
 ;
-; admin_controller.php line: 2854
+; admin_controller.php line: 2875
 admin_controller_configure_use_absolute_path = ""
 ;
-; admin_controller.php line: 2866
+; admin_controller.php line: 2887
 admin_controller_configure_diff_base_dir = ""
 ;
-; admin_controller.php line: 2899
+; admin_controller.php line: 2920
 admin_controller_configure_work_dir_set = ""
 ;
-; admin_controller.php line: 2913
+; admin_controller.php line: 2934
 admin_controller_name_your_bot = ""
 ;
-; admin_controller.php line: 2936
+; admin_controller.php line: 2957
 admin_controller_configure_work_profile_made = ""
 ;
-; admin_controller.php line: 2949
+; admin_controller.php line: 2970
 admin_controller_configure_no_set_config = ""
 ;
-; admin_controller.php line: 2961
+; admin_controller.php line: 2982
 admin_controller_configure_no_create_profile = ""
 ;
-; admin_controller.php line: 2972
+; admin_controller.php line: 2993
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 2984
+; admin_controller.php line: 3005
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 3032
+; admin_controller.php line: 3053
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 3047
+; admin_controller.php line: 3068
 admin_controller_configure_profile_change = ""
 ;
-; admin_controller.php line: 3062
+; admin_controller.php line: 3083
 admin_controller_configure_no_change_profile = ""
 ;
-; admin_controller.php line: 3100
+; admin_controller.php line: 3121
 admin_controller_describe_robot = ""
 ;
 ; machine_controller.php line: 182
@@ -544,22 +544,22 @@ search_controller_crawl_delay = ""
 ; search_controller.php line: 1593
 search_controller_cache_comment = ""
 ;
-; search_controller.php line: 1637
+; search_controller.php line: 1638
 search_controller_cached_version = ""
 ;
-; search_controller.php line: 1752
+; search_controller.php line: 1753
 search_controller_header_summaries = ""
 ;
-; search_controller.php line: 1876
+; search_controller.php line: 1877
 search_controller_history = ""
 ;
-; search_controller.php line: 2052
+; search_controller.php line: 2053
 search_controller_all_cached = ""
 ;
-; search_controller.php line: 2083
+; search_controller.php line: 2084
 search_controller_year = ""
 ;
-; search_controller.php line: 2084
+; search_controller.php line: 2085
 search_controller_month = ""
 ;
 ; settings_controller.php line: 134
@@ -1254,111 +1254,114 @@ pageoptions_element_load_options = ""
 pageoptions_element_page_range = ""
 ;
 ; pageoptions_element.php line: 95
+pageoptions_element_max_description = ""
+;
+; pageoptions_element.php line: 100
 pageoptions_element_save_cache = ""
 ;
-; pageoptions_element.php line: 105
+; pageoptions_element.php line: 110
 pageoptions_element_allow_recrawl = ""
 ;
-; pageoptions_element.php line: 111
+; pageoptions_element.php line: 116
 pageoptions_element_file_types = ""
 ;
-; pageoptions_element.php line: 141
+; pageoptions_element.php line: 146
 pageoptions_element_classifiers_to_apply = ""
 ;
-; pageoptions_element.php line: 176
+; pageoptions_element.php line: 181
 pageoptions_element_no_classifiers = ""
 ;
-; pageoptions_element.php line: 179
+; pageoptions_element.php line: 184
 pageoptions_element_indexing_plugins = ""
 ;
-; pageoptions_element.php line: 183
+; pageoptions_element.php line: 188
 pageoptions_element_plugin = ""
 ;
-; pageoptions_element.php line: 186
+; pageoptions_element.php line: 191
 pageoptions_element_plugin_include = ""
 ;
-; pageoptions_element.php line: 207
+; pageoptions_element.php line: 212
 pageoptions_element_no_compatible_plugins = ""
 ;
-; pageoptions_element.php line: 210
+; pageoptions_element.php line: 215
 pageoptions_element_page_rules = ""
 ;
-; pageoptions_element.php line: 218
+; pageoptions_element.php line: 223
 page_element_search_page = ""
 ;
-; pageoptions_element.php line: 223
+; pageoptions_element.php line: 228
 pageoptions_element_wd_suggest = ""
 ;
-; pageoptions_element.php line: 231
+; pageoptions_element.php line: 236
 pageoptions_element_subsearch_link = ""
 ;
-; pageoptions_element.php line: 240
+; pageoptions_element.php line: 245
 pageoptions_element_signin_link = ""
 ;
-; pageoptions_element.php line: 247
+; pageoptions_element.php line: 252
 pageoptions_element_cache_link = ""
 ;
-; pageoptions_element.php line: 255
+; pageoptions_element.php line: 260
 pageoptions_element_similar_link = ""
 ;
-; pageoptions_element.php line: 263
+; pageoptions_element.php line: 268
 pageoptions_element_in_link = ""
 ;
-; pageoptions_element.php line: 269
+; pageoptions_element.php line: 274
 pageoptions_element_ip_link = ""
 ;
-; pageoptions_element.php line: 278
+; pageoptions_element.php line: 283
 pageoptions_element_ranking_factors = ""
 ;
-; pageoptions_element.php line: 281
+; pageoptions_element.php line: 286
 pageoptions_element_title_weight = ""
 ;
-; pageoptions_element.php line: 286
+; pageoptions_element.php line: 291
 pageoptions_element_description_weight = ""
 ;
-; pageoptions_element.php line: 291
+; pageoptions_element.php line: 296
 pageoptions_element_link_weight = ""
 ;
-; pageoptions_element.php line: 296
+; pageoptions_element.php line: 301
 pageoptions_element_results_grouping_options = ""
 ;
-; pageoptions_element.php line: 299
+; pageoptions_element.php line: 304
 pageoptions_element_min_results_to_group = ""
 ;
-; pageoptions_element.php line: 304
+; pageoptions_element.php line: 309
 pageoptions_element_server_alpha = ""
 ;
-; pageoptions_element.php line: 312
+; pageoptions_element.php line: 317
 pageoptions_element_test_page = ""
 ;
-; pageoptions_element.php line: 314
+; pageoptions_element.php line: 319
 pageoptions_element_page_type = ""
 ;
-; pageoptions_element.php line: 331
+; pageoptions_element.php line: 336
 pageoptions_element_save_options = ""
 ;
-; pageoptions_element.php line: 333
+; pageoptions_element.php line: 338
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 339
+; pageoptions_element.php line: 344
 pageoptions_element_test_results = ""
 ;
-; pageoptions_element.php line: 342
+; pageoptions_element.php line: 347
 pageoptions_element_after_process = ""
 ;
-; pageoptions_element.php line: 346
+; pageoptions_element.php line: 351
 pageoptions_element_after_rules = ""
 ;
-; pageoptions_element.php line: 350
+; pageoptions_element.php line: 355
 pageoptions_element_extracted_words = ""
 ;
-; pageoptions_element.php line: 354
+; pageoptions_element.php line: 359
 pageoptions_element_extracted_metas = ""
 ;
-; pageoptions_element.php line: 388
+; pageoptions_element.php line: 393
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 392
+; pageoptions_element.php line: 397
 pageoptions_element_save_options = ""
 ;
 ; resultseditor_element.php line: 58
diff --git a/locale/vi-VN/configure.ini b/locale/vi-VN/configure.ini
index 8c0e7c7..f75255b 100755
--- a/locale/vi-VN/configure.ini
+++ b/locale/vi-VN/configure.ini
@@ -154,346 +154,346 @@ admin_controller_starting_new_crawl = "Bắt đầu sự b&ograve; mới"
 ; admin_controller.php line: 868
 admin_controller_no_description = "Kh&ocirc;ng c&oacute; sự m&ocirc; tả n&agrave;o"
 ;
-; admin_controller.php line: 981
+; admin_controller.php line: 985
 admin_controller_use_below = "Sử dụng dưới đ&acirc;y"
 ;
-; admin_controller.php line: 982
+; admin_controller.php line: 986
 admin_controller_use_defaults = "Sử dụng mặc định"
 ;
-; admin_controller.php line: 984
+; admin_controller.php line: 988
 admin_controller_use_below = "Sử dụng dưới đ&acirc;y"
 ;
-; admin_controller.php line: 988
+; admin_controller.php line: 992
 admin_controller_previous_crawl = "trước thu thập dữ liệu"
 ;
-; admin_controller.php line: 1075
+; admin_controller.php line: 1084
 admin_controller_breadth_first = "Bề rộng đầu ti&ecirc;n"
 ;
-; admin_controller.php line: 1077
+; admin_controller.php line: 1086
 admin_controller_page_importance = "Trang quan trọng"
 ;
-; admin_controller.php line: 1143
+; admin_controller.php line: 1152
 admin_controller_urls_injected = ""
 ;
-; admin_controller.php line: 1154
+; admin_controller.php line: 1163
 admin_controller_update_seed_info = "Cập nhật th&ocirc;ng tin trang mạng lươi hạt giống"
 ;
-; admin_controller.php line: 1246
+; admin_controller.php line: 1255
 admin_controller_select_crawl = "Chọn thu thập th&ocirc;ng tin"
 ;
-; admin_controller.php line: 1247
+; admin_controller.php line: 1256
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1249
+; admin_controller.php line: 1258
 admin_controller_select_crawl = "Chọn thu thập th&ocirc;ng tin"
 ;
-; admin_controller.php line: 1251
+; admin_controller.php line: 1260
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1278
+; admin_controller.php line: 1287
 admin_controller_unnamed = "V&ocirc; danh"
 ;
-; admin_controller.php line: 1283
+; admin_controller.php line: 1292
 admin_controller_mix_created = "Tạo ra hỗn hợp "
 ;
-; admin_controller.php line: 1292
+; admin_controller.php line: 1301
 admin_controller_set_index = "Thiết lập thu thập dữ liệu để sử dụng l&agrave;m chỉ mục"
 ;
-; admin_controller.php line: 1302
+; admin_controller.php line: 1311
 admin_controller_mix_doesnt_exists = "Kết hợp n&agrave;y kh&ocirc;ng tồn tại"
 ;
-; admin_controller.php line: 1310
+; admin_controller.php line: 1319
 admin_controller_mix_deleted = "X&oacute;a kết hợp "
 ;
-; admin_controller.php line: 1346
+; admin_controller.php line: 1355
 editmix_element_add_crawls = "Cộng th&ecirc;m thu thập"
 ;
-; admin_controller.php line: 1348
+; admin_controller.php line: 1357
 editmix_element_num_results = "Số kết quả"
 ;
-; admin_controller.php line: 1349
+; admin_controller.php line: 1358
 editmix_element_del_grp = "Nh&oacute;m bị x&oacute;a "
 ;
-; admin_controller.php line: 1350
+; admin_controller.php line: 1359
 editmix_element_weight = "Trọng lượng"
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1360
 editmix_element_name = "T&ecirc;n"
 ;
-; admin_controller.php line: 1352
+; admin_controller.php line: 1361
 editmix_add_keywords = "Từ kh&oacute;a "
 ;
-; admin_controller.php line: 1353
+; admin_controller.php line: 1362
 editmix_element_actions = "H&agrave;nh động"
 ;
-; admin_controller.php line: 1354
+; admin_controller.php line: 1363
 editmix_add_query = "Cộng th&ecirc;m truy vấn"
 ;
-; admin_controller.php line: 1355
+; admin_controller.php line: 1364
 editmix_element_delete = "X&oacute;a"
 ;
-; admin_controller.php line: 1407
+; admin_controller.php line: 1416
 admin_controller_mix_saved = "Kết hợp đ&atilde; được lưu dữ"
 ;
-; admin_controller.php line: 1458
+; admin_controller.php line: 1467
 admin_controller_use_below = "Sử dụng dưới đ&acirc;y"
 ;
-; admin_controller.php line: 1459
+; admin_controller.php line: 1468
 admin_controller_use_defaults = "Sử dụng mặc định"
 ;
-; admin_controller.php line: 1461
+; admin_controller.php line: 1470
 admin_controller_use_below = "Sử dụng dưới đ&acirc;y"
 ;
-; admin_controller.php line: 1465
+; admin_controller.php line: 1474
 admin_controller_previous_crawl = "trước thu thập dữ liệu"
 ;
-; admin_controller.php line: 1470
+; admin_controller.php line: 1479
 admin_controller_recrawl_never = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1480
 admin_controller_recrawl_1day = ""
 ;
-; admin_controller.php line: 1472
+; admin_controller.php line: 1481
 admin_controller_recrawl_2day = ""
 ;
-; admin_controller.php line: 1473
+; admin_controller.php line: 1482
 admin_controller_recrawl_3day = ""
 ;
-; admin_controller.php line: 1474
+; admin_controller.php line: 1483
 admin_controller_recrawl_7day = ""
 ;
-; admin_controller.php line: 1475
+; admin_controller.php line: 1484
 admin_controller_recrawl_14day = ""
 ;
-; admin_controller.php line: 1685
+; admin_controller.php line: 1705
 admin_controller_page_options_updated = ""
 ;
-; admin_controller.php line: 1711
+; admin_controller.php line: 1731
 admin_controller_page_options_running_tests = ""
 ;
-; admin_controller.php line: 1860
+; admin_controller.php line: 1881
 admin_controller_new_classifier = ""
 ;
-; admin_controller.php line: 1863
+; admin_controller.php line: 1884
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1875
+; admin_controller.php line: 1896
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1893
+; admin_controller.php line: 1914
 admin_controller_finalizing_classifier = ""
 ;
-; admin_controller.php line: 1916
+; admin_controller.php line: 1937
 admin_controller_classifier_deleted = ""
 ;
-; admin_controller.php line: 1920
+; admin_controller.php line: 1941
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1969
+; admin_controller.php line: 1990
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1980
+; admin_controller.php line: 2001
 editclassifier_load_failed = ""
 ;
-; admin_controller.php line: 1982
+; admin_controller.php line: 2003
 editclassifier_loading = ""
 ;
-; admin_controller.php line: 1984
+; admin_controller.php line: 2005
 editclassifier_added_examples = ""
 ;
-; admin_controller.php line: 1986
+; admin_controller.php line: 2007
 editclassifier_label_update_failed = ""
 ;
-; admin_controller.php line: 1988
+; admin_controller.php line: 2009
 editclassifier_updating = ""
 ;
-; admin_controller.php line: 1990
+; admin_controller.php line: 2011
 editclassifier_acc_update_failed = ""
 ;
-; admin_controller.php line: 1992
+; admin_controller.php line: 2013
 editclassifier_na = ""
 ;
-; admin_controller.php line: 1994
+; admin_controller.php line: 2015
 editclassifier_no_docs = ""
 ;
-; admin_controller.php line: 1996
+; admin_controller.php line: 2017
 editclassifier_num_docs = ""
 ;
-; admin_controller.php line: 1998
+; admin_controller.php line: 2019
 editclassifier_in_class = ""
 ;
-; admin_controller.php line: 2000
+; admin_controller.php line: 2021
 editclassifier_not_in_class = ""
 ;
-; admin_controller.php line: 2002
+; admin_controller.php line: 2023
 editclassifier_skip = ""
 ;
-; admin_controller.php line: 2004
+; admin_controller.php line: 2025
 editclassifier_prediction = ""
 ;
-; admin_controller.php line: 2006
+; admin_controller.php line: 2027
 editclassifier_scores = ""
 ;
-; admin_controller.php line: 2050
+; admin_controller.php line: 2071
 admin_controller_results_editor_update = ""
 ;
-; admin_controller.php line: 2064
+; admin_controller.php line: 2085
 admin_controller_edited_pages = ""
 ;
-; admin_controller.php line: 2077
+; admin_controller.php line: 2098
 admin_controller_results_editor_need_url = ""
 ;
-; admin_controller.php line: 2083
+; admin_controller.php line: 2104
 admin_controller_results_editor_page_updated = ""
 ;
-; admin_controller.php line: 2096
+; admin_controller.php line: 2117
 admin_controller_results_editor_page_loaded = ""
 ;
-; admin_controller.php line: 2141
+; admin_controller.php line: 2162
 admin_controller_select_machine = ""
 ;
-; admin_controller.php line: 2212
+; admin_controller.php line: 2233
 admin_controller_machine_added = ""
 ;
-; admin_controller.php line: 2219
+; admin_controller.php line: 2240
 admin_controller_machine_exists = ""
 ;
-; admin_controller.php line: 2223
+; admin_controller.php line: 2244
 admin_controller_machine_incomplete = ""
 ;
-; admin_controller.php line: 2232
+; admin_controller.php line: 2253
 admin_controller_machine_doesnt_exists = ""
 ;
-; admin_controller.php line: 2249
+; admin_controller.php line: 2270
 admin_controller_stop_service_first = ""
 ;
-; admin_controller.php line: 2262
+; admin_controller.php line: 2283
 admin_controller_machine_deleted = ""
 ;
-; admin_controller.php line: 2283
+; admin_controller.php line: 2304
 admin_controller_news_process_running = ""
 ;
-; admin_controller.php line: 2291
+; admin_controller.php line: 2312
 admin_controller_news_mode_updated = ""
 ;
-; admin_controller.php line: 2295
+; admin_controller.php line: 2316
 admin_controller_news_update_failed = ""
 ;
-; admin_controller.php line: 2358
+; admin_controller.php line: 2379
 admin_controller_no_machine_log = ""
 ;
-; admin_controller.php line: 2387
+; admin_controller.php line: 2408
 admin_controller_machine_servers_updated = ""
 ;
-; admin_controller.php line: 2391
+; admin_controller.php line: 2412
 admin_controller_machine_no_action = ""
 ;
-; admin_controller.php line: 2424
+; admin_controller.php line: 2445
 admin_controller_select_localename = "Chọn miền địa phương"
 ;
-; admin_controller.php line: 2468
+; admin_controller.php line: 2489
 admin_controller_locale_added = "Miền địa phương th&ecirc;m v&agrave;o"
 ;
-; admin_controller.php line: 2475
+; admin_controller.php line: 2496
 admin_controller_localename_doesnt_exists = "Miền địa phương kh&ocirc;ng tồn tại"
 ;
-; admin_controller.php line: 2484
+; admin_controller.php line: 2505
 admin_controller_localename_deleted = "X&oacute;a miền địa phương"
 ;
-; admin_controller.php line: 2493
+; admin_controller.php line: 2514
 admin_controller_select_staticpages = ""
 ;
-; admin_controller.php line: 2512
+; admin_controller.php line: 2533
 admin_controller_staticpage_updated = ""
 ;
-; admin_controller.php line: 2539
+; admin_controller.php line: 2560
 admin_controller_localestrings_updated = "Chuỗi Địa phương được cập nhật"
 ;
-; admin_controller.php line: 2596
+; admin_controller.php line: 2617
 admin_controller_php_version = ""
 ;
-; admin_controller.php line: 2604
+; admin_controller.php line: 2625
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 2609
+; admin_controller.php line: 2630
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 2614
+; admin_controller.php line: 2635
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 2620
+; admin_controller.php line: 2641
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 2643
+; admin_controller.php line: 2664
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 2648
+; admin_controller.php line: 2669
 admin_controller_check_passed = "Kiểm tra được th&ocirc;ng qua"
 ;
-; admin_controller.php line: 2653
+; admin_controller.php line: 2674
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 2678
+; admin_controller.php line: 2699
 admin_controller_media_kind = ""
 ;
-; admin_controller.php line: 2679
+; admin_controller.php line: 2700
 admin_controller_video = ""
 ;
-; admin_controller.php line: 2680
+; admin_controller.php line: 2701
 admin_controller_rss_feed = ""
 ;
-; admin_controller.php line: 2694
+; admin_controller.php line: 2715
 admin_controller_sources_indexes = ""
 ;
-; admin_controller.php line: 2747
+; admin_controller.php line: 2768
 admin_controller_media_source_added = ""
 ;
-; admin_controller.php line: 2755
+; admin_controller.php line: 2776
 admin_controller_media_source_deleted = ""
 ;
-; admin_controller.php line: 2771
+; admin_controller.php line: 2792
 admin_controller_subsearch_added = ""
 ;
-; admin_controller.php line: 2779
+; admin_controller.php line: 2800
 admin_controller_subsearch_deleted = ""
 ;
-; admin_controller.php line: 2854
+; admin_controller.php line: 2875
 admin_controller_configure_use_absolute_path = ""
 ;
-; admin_controller.php line: 2866
+; admin_controller.php line: 2887
 admin_controller_configure_diff_base_dir = ""
 ;
-; admin_controller.php line: 2899
+; admin_controller.php line: 2920
 admin_controller_configure_work_dir_set = "C&ocirc;ng việc thiết lập thư mục bị đ&ocirc;ng cứng (Bạn c&oacute; thể cần phải đăng nhập)"
 ;
-; admin_controller.php line: 2913
+; admin_controller.php line: 2934
 admin_controller_name_your_bot = "Đặt t&ecirc;n cho r&ocirc; b&ocirc; của bạn"
 ;
-; admin_controller.php line: 2936
+; admin_controller.php line: 2957
 admin_controller_configure_work_profile_made = "Thư mục l&agrave;m việc v&agrave; hồ sơ được tạo ra"
 ;
-; admin_controller.php line: 2949
+; admin_controller.php line: 2970
 admin_controller_configure_no_set_config = "Kh&ocirc;ng thể cập nhật hồ sơ config.php"
 ;
-; admin_controller.php line: 2961
+; admin_controller.php line: 2982
 admin_controller_configure_no_create_profile = "Kh&ocirc;ng thể tạo hồ sơ"
 ;
-; admin_controller.php line: 2972
+; admin_controller.php line: 2993
 admin_controller_configure_work_dir_invalid = "C&ocirc;ng t&aacute;c thư mục kh&ocirc;ng hợp lệ"
 ;
-; admin_controller.php line: 2984
+; admin_controller.php line: 3005
 admin_controller_configure_work_dir_invalid = "C&ocirc;ng t&aacute;c thư mục kh&ocirc;ng hợp lệ"
 ;
-; admin_controller.php line: 3032
+; admin_controller.php line: 3053
 admin_controller_configure_no_change_db = "Vấn đề cập nhật cơ sở dữ liệu"
 ;
-; admin_controller.php line: 3047
+; admin_controller.php line: 3068
 admin_controller_configure_profile_change = "Hồ sơ được cập nhật"
 ;
-; admin_controller.php line: 3062
+; admin_controller.php line: 3083
 admin_controller_configure_no_change_profile = "C&oacute; sự trở ngaị về việc cập nhật hồ sơ "
 ;
-; admin_controller.php line: 3100
+; admin_controller.php line: 3121
 admin_controller_describe_robot = "Diễn tả r&ocirc; b&ocirc; của bạn"
 ;
 ; machine_controller.php line: 182
@@ -544,22 +544,22 @@ search_controller_crawl_delay = ""
 ; search_controller.php line: 1593
 search_controller_cache_comment = ""
 ;
-; search_controller.php line: 1637
+; search_controller.php line: 1638
 search_controller_cached_version = "Trang gốc n&agrave;y: %s đ&atilde; t&igrave;m được bởi c&ocirc;ng cụ t&igrave;m kiẽm Yioop v&agrave;o ng&agrave;y %s."
 ;
-; search_controller.php line: 1752
+; search_controller.php line: 1753
 search_controller_header_summaries = ""
 ;
-; search_controller.php line: 1876
+; search_controller.php line: 1877
 search_controller_history = ""
 ;
-; search_controller.php line: 2052
+; search_controller.php line: 2053
 search_controller_all_cached = ""
 ;
-; search_controller.php line: 2083
+; search_controller.php line: 2084
 search_controller_year = ""
 ;
-; search_controller.php line: 2084
+; search_controller.php line: 2085
 search_controller_month = ""
 ;
 ; settings_controller.php line: 134
@@ -1254,111 +1254,114 @@ pageoptions_element_load_options = ""
 pageoptions_element_page_range = ""
 ;
 ; pageoptions_element.php line: 95
+pageoptions_element_max_description = ""
+;
+; pageoptions_element.php line: 100
 pageoptions_element_save_cache = ""
 ;
-; pageoptions_element.php line: 105
+; pageoptions_element.php line: 110
 pageoptions_element_allow_recrawl = ""
 ;
-; pageoptions_element.php line: 111
+; pageoptions_element.php line: 116
 pageoptions_element_file_types = ""
 ;
-; pageoptions_element.php line: 141
+; pageoptions_element.php line: 146
 pageoptions_element_classifiers_to_apply = ""
 ;
-; pageoptions_element.php line: 176
+; pageoptions_element.php line: 181
 pageoptions_element_no_classifiers = ""
 ;
-; pageoptions_element.php line: 179
+; pageoptions_element.php line: 184
 pageoptions_element_indexing_plugins = ""
 ;
-; pageoptions_element.php line: 183
+; pageoptions_element.php line: 188
 pageoptions_element_plugin = ""
 ;
-; pageoptions_element.php line: 186
+; pageoptions_element.php line: 191
 pageoptions_element_plugin_include = ""
 ;
-; pageoptions_element.php line: 207
+; pageoptions_element.php line: 212
 pageoptions_element_no_compatible_plugins = ""
 ;
-; pageoptions_element.php line: 210
+; pageoptions_element.php line: 215
 pageoptions_element_page_rules = ""
 ;
-; pageoptions_element.php line: 218
+; pageoptions_element.php line: 223
 page_element_search_page = ""
 ;
-; pageoptions_element.php line: 223
+; pageoptions_element.php line: 228
 pageoptions_element_wd_suggest = ""
 ;
-; pageoptions_element.php line: 231
+; pageoptions_element.php line: 236
 pageoptions_element_subsearch_link = ""
 ;
-; pageoptions_element.php line: 240
+; pageoptions_element.php line: 245
 pageoptions_element_signin_link = ""
 ;
-; pageoptions_element.php line: 247
+; pageoptions_element.php line: 252
 pageoptions_element_cache_link = ""
 ;
-; pageoptions_element.php line: 255
+; pageoptions_element.php line: 260
 pageoptions_element_similar_link = ""
 ;
-; pageoptions_element.php line: 263
+; pageoptions_element.php line: 268
 pageoptions_element_in_link = ""
 ;
-; pageoptions_element.php line: 269
+; pageoptions_element.php line: 274
 pageoptions_element_ip_link = ""
 ;
-; pageoptions_element.php line: 278
+; pageoptions_element.php line: 283
 pageoptions_element_ranking_factors = ""
 ;
-; pageoptions_element.php line: 281
+; pageoptions_element.php line: 286
 pageoptions_element_title_weight = ""
 ;
-; pageoptions_element.php line: 286
+; pageoptions_element.php line: 291
 pageoptions_element_description_weight = ""
 ;
-; pageoptions_element.php line: 291
+; pageoptions_element.php line: 296
 pageoptions_element_link_weight = ""
 ;
-; pageoptions_element.php line: 296
+; pageoptions_element.php line: 301
 pageoptions_element_results_grouping_options = ""
 ;
-; pageoptions_element.php line: 299
+; pageoptions_element.php line: 304
 pageoptions_element_min_results_to_group = ""
 ;
-; pageoptions_element.php line: 304
+; pageoptions_element.php line: 309
 pageoptions_element_server_alpha = ""
 ;
-; pageoptions_element.php line: 312
+; pageoptions_element.php line: 317
 pageoptions_element_test_page = ""
 ;
-; pageoptions_element.php line: 314
+; pageoptions_element.php line: 319
 pageoptions_element_page_type = ""
 ;
-; pageoptions_element.php line: 331
+; pageoptions_element.php line: 336
 pageoptions_element_save_options = ""
 ;
-; pageoptions_element.php line: 333
+; pageoptions_element.php line: 338
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 339
+; pageoptions_element.php line: 344
 pageoptions_element_test_results = ""
 ;
-; pageoptions_element.php line: 342
+; pageoptions_element.php line: 347
 pageoptions_element_after_process = ""
 ;
-; pageoptions_element.php line: 346
+; pageoptions_element.php line: 351
 pageoptions_element_after_rules = ""
 ;
-; pageoptions_element.php line: 350
+; pageoptions_element.php line: 355
 pageoptions_element_extracted_words = ""
 ;
-; pageoptions_element.php line: 354
+; pageoptions_element.php line: 359
 pageoptions_element_extracted_metas = ""
 ;
-; pageoptions_element.php line: 388
+; pageoptions_element.php line: 393
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 392
+; pageoptions_element.php line: 397
 pageoptions_element_save_options = ""
 ;
 ; resultseditor_element.php line: 58
diff --git a/locale/zh-CN/configure.ini b/locale/zh-CN/configure.ini
index 42a97d9..f123a38 100755
--- a/locale/zh-CN/configure.ini
+++ b/locale/zh-CN/configure.ini
@@ -154,346 +154,346 @@ admin_controller_starting_new_crawl = "開始新的搜尋"
 ; admin_controller.php line: 868
 admin_controller_no_description = "沒有任何項目"
 ;
-; admin_controller.php line: 981
+; admin_controller.php line: 985
 admin_controller_use_below = "以下使用者"
 ;
-; admin_controller.php line: 982
+; admin_controller.php line: 986
 admin_controller_use_defaults = "使用者預設"
 ;
-; admin_controller.php line: 984
+; admin_controller.php line: 988
 admin_controller_use_below = "以下使用者"
 ;
-; admin_controller.php line: 988
+; admin_controller.php line: 992
 admin_controller_previous_crawl = "前一搜尋"
 ;
-; admin_controller.php line: 1075
+; admin_controller.php line: 1084
 admin_controller_breadth_first = "深度優先"
 ;
-; admin_controller.php line: 1077
+; admin_controller.php line: 1086
 admin_controller_page_importance = "網頁重要性"
 ;
-; admin_controller.php line: 1143
+; admin_controller.php line: 1152
 admin_controller_urls_injected = "插入網址"
 ;
-; admin_controller.php line: 1154
+; admin_controller.php line: 1163
 admin_controller_update_seed_info = "更新種子資訊"
 ;
-; admin_controller.php line: 1246
+; admin_controller.php line: 1255
 admin_controller_select_crawl = "搜尋選擇"
 ;
-; admin_controller.php line: 1247
+; admin_controller.php line: 1256
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1249
+; admin_controller.php line: 1258
 admin_controller_select_crawl = "搜尋選擇"
 ;
-; admin_controller.php line: 1251
+; admin_controller.php line: 1260
 admin_controller_default_crawl = ""
 ;
-; admin_controller.php line: 1278
+; admin_controller.php line: 1287
 admin_controller_unnamed = "未命名"
 ;
-; admin_controller.php line: 1283
+; admin_controller.php line: 1292
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1292
+; admin_controller.php line: 1301
 admin_controller_set_index = "設置索引"
 ;
-; admin_controller.php line: 1302
+; admin_controller.php line: 1311
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1310
+; admin_controller.php line: 1319
 admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1346
+; admin_controller.php line: 1355
 editmix_element_add_crawls = "增加索引"
 ;
-; admin_controller.php line: 1348
+; admin_controller.php line: 1357
 editmix_element_num_results = "結果數量"
 ;
-; admin_controller.php line: 1349
+; admin_controller.php line: 1358
 editmix_element_del_grp = "刪除群組"
 ;
-; admin_controller.php line: 1350
+; admin_controller.php line: 1359
 editmix_element_weight = "元素重量"
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1360
 editmix_element_name = "元素名稱"
 ;
-; admin_controller.php line: 1352
+; admin_controller.php line: 1361
 editmix_add_keywords = "增加關鍵字"
 ;
-; admin_controller.php line: 1353
+; admin_controller.php line: 1362
 editmix_element_actions = "元素活動"
 ;
-; admin_controller.php line: 1354
+; admin_controller.php line: 1363
 editmix_add_query = "增加查詢"
 ;
-; admin_controller.php line: 1355
+; admin_controller.php line: 1364
 editmix_element_delete = "刪除元素"
 ;
-; admin_controller.php line: 1407
+; admin_controller.php line: 1416
 admin_controller_mix_saved = ""
 ;
-; admin_controller.php line: 1458
+; admin_controller.php line: 1467
 admin_controller_use_below = "以下使用者"
 ;
-; admin_controller.php line: 1459
+; admin_controller.php line: 1468
 admin_controller_use_defaults = "使用者預設"
 ;
-; admin_controller.php line: 1461
+; admin_controller.php line: 1470
 admin_controller_use_below = "以下使用者"
 ;
-; admin_controller.php line: 1465
+; admin_controller.php line: 1474
 admin_controller_previous_crawl = "前一搜尋"
 ;
-; admin_controller.php line: 1470
+; admin_controller.php line: 1479
 admin_controller_recrawl_never = "取消重新搜尋"
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1480
 admin_controller_recrawl_1day = "每日重新搜尋"
 ;
-; admin_controller.php line: 1472
+; admin_controller.php line: 1481
 admin_controller_recrawl_2day = "兩日重新搜尋"
 ;
-; admin_controller.php line: 1473
+; admin_controller.php line: 1482
 admin_controller_recrawl_3day = "三日重新搜尋"
 ;
-; admin_controller.php line: 1474
+; admin_controller.php line: 1483
 admin_controller_recrawl_7day = "一週重新搜尋"
 ;
-; admin_controller.php line: 1475
+; admin_controller.php line: 1484
 admin_controller_recrawl_14day = "兩週重新搜尋"
 ;
-; admin_controller.php line: 1685
+; admin_controller.php line: 1705
 admin_controller_page_options_updated = "更新頁面選項"
 ;
-; admin_controller.php line: 1711
+; admin_controller.php line: 1731
 admin_controller_page_options_running_tests = ""
 ;
-; admin_controller.php line: 1860
+; admin_controller.php line: 1881
 admin_controller_new_classifier = ""
 ;
-; admin_controller.php line: 1863
+; admin_controller.php line: 1884
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1875
+; admin_controller.php line: 1896
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1893
+; admin_controller.php line: 1914
 admin_controller_finalizing_classifier = ""
 ;
-; admin_controller.php line: 1916
+; admin_controller.php line: 1937
 admin_controller_classifier_deleted = ""
 ;
-; admin_controller.php line: 1920
+; admin_controller.php line: 1941
 admin_controller_no_classifier = ""
 ;
-; admin_controller.php line: 1969
+; admin_controller.php line: 1990
 admin_controller_classifier_exists = ""
 ;
-; admin_controller.php line: 1980
+; admin_controller.php line: 2001
 editclassifier_load_failed = ""
 ;
-; admin_controller.php line: 1982
+; admin_controller.php line: 2003
 editclassifier_loading = ""
 ;
-; admin_controller.php line: 1984
+; admin_controller.php line: 2005
 editclassifier_added_examples = ""
 ;
-; admin_controller.php line: 1986
+; admin_controller.php line: 2007
 editclassifier_label_update_failed = ""
 ;
-; admin_controller.php line: 1988
+; admin_controller.php line: 2009
 editclassifier_updating = ""
 ;
-; admin_controller.php line: 1990
+; admin_controller.php line: 2011
 editclassifier_acc_update_failed = ""
 ;
-; admin_controller.php line: 1992
+; admin_controller.php line: 2013
 editclassifier_na = ""
 ;
-; admin_controller.php line: 1994
+; admin_controller.php line: 2015
 editclassifier_no_docs = ""
 ;
-; admin_controller.php line: 1996
+; admin_controller.php line: 2017
 editclassifier_num_docs = ""
 ;
-; admin_controller.php line: 1998
+; admin_controller.php line: 2019
 editclassifier_in_class = ""
 ;
-; admin_controller.php line: 2000
+; admin_controller.php line: 2021
 editclassifier_not_in_class = ""
 ;
-; admin_controller.php line: 2002
+; admin_controller.php line: 2023
 editclassifier_skip = ""
 ;
-; admin_controller.php line: 2004
+; admin_controller.php line: 2025
 editclassifier_prediction = ""
 ;
-; admin_controller.php line: 2006
+; admin_controller.php line: 2027
 editclassifier_scores = ""
 ;
-; admin_controller.php line: 2050
+; admin_controller.php line: 2071
 admin_controller_results_editor_update = "編輯者更新結果"
 ;
-; admin_controller.php line: 2064
+; admin_controller.php line: 2085
 admin_controller_edited_pages = "編輯頁面"
 ;
-; admin_controller.php line: 2077
+; admin_controller.php line: 2098
 admin_controller_results_editor_need_url = "需要網址"
 ;
-; admin_controller.php line: 2083
+; admin_controller.php line: 2104
 admin_controller_results_editor_page_updated = "更新頁面"
 ;
-; admin_controller.php line: 2096
+; admin_controller.php line: 2117
 admin_controller_results_editor_page_loaded = "載入頁面"
 ;
-; admin_controller.php line: 2141
+; admin_controller.php line: 2162
 admin_controller_select_machine = ""
 ;
-; admin_controller.php line: 2212
+; admin_controller.php line: 2233
 admin_controller_machine_added = "加入"
 ;
-; admin_controller.php line: 2219
+; admin_controller.php line: 2240
 admin_controller_machine_exists = "已存在"
 ;
-; admin_controller.php line: 2223
+; admin_controller.php line: 2244
 admin_controller_machine_incomplete = "未完成"
 ;
-; admin_controller.php line: 2232
+; admin_controller.php line: 2253
 admin_controller_machine_doesnt_exists = "不存在"
 ;
-; admin_controller.php line: 2249
+; admin_controller.php line: 2270
 admin_controller_stop_service_first = "停止服務"
 ;
-; admin_controller.php line: 2262
+; admin_controller.php line: 2283
 admin_controller_machine_deleted = "刪除"
 ;
-; admin_controller.php line: 2283
+; admin_controller.php line: 2304
 admin_controller_news_process_running = ""
 ;
-; admin_controller.php line: 2291
+; admin_controller.php line: 2312
 admin_controller_news_mode_updated = ""
 ;
-; admin_controller.php line: 2295
+; admin_controller.php line: 2316
 admin_controller_news_update_failed = ""
 ;
-; admin_controller.php line: 2358
+; admin_controller.php line: 2379
 admin_controller_no_machine_log = "無紀錄"
 ;
-; admin_controller.php line: 2387
+; admin_controller.php line: 2408
 admin_controller_machine_servers_updated = "服務更新"
 ;
-; admin_controller.php line: 2391
+; admin_controller.php line: 2412
 admin_controller_machine_no_action = "無動作"
 ;
-; admin_controller.php line: 2424
+; admin_controller.php line: 2445
 admin_controller_select_localename = "選擇當地語言"
 ;
-; admin_controller.php line: 2468
+; admin_controller.php line: 2489
 admin_controller_locale_added = "增加語言"
 ;
-; admin_controller.php line: 2475
+; admin_controller.php line: 2496
 admin_controller_localename_doesnt_exists = "語言不存在"
 ;
-; admin_controller.php line: 2484
+; admin_controller.php line: 2505
 admin_controller_localename_deleted = "刪除語言"
 ;
-; admin_controller.php line: 2493
+; admin_controller.php line: 2514
 admin_controller_select_staticpages = "靜態頁面選取"
 ;
-; admin_controller.php line: 2512
+; admin_controller.php line: 2533
 admin_controller_staticpage_updated = "靜態頁面更新"
 ;
-; admin_controller.php line: 2539
+; admin_controller.php line: 2560
 admin_controller_localestrings_updated = "語言更新"
 ;
-; admin_controller.php line: 2596
+; admin_controller.php line: 2617
 admin_controller_php_version = "PHP版本"
 ;
-; admin_controller.php line: 2604
+; admin_controller.php line: 2625
 admin_controller_no_write_config_php = "PHP未寫入"
 ;
-; admin_controller.php line: 2609
+; admin_controller.php line: 2630
 admin_controller_no_write_work_dir = "未寫入目錄"
 ;
-; admin_controller.php line: 2614
+; admin_controller.php line: 2635
 admin_controller_post_size_small = "張貼小容量"
 ;
-; admin_controller.php line: 2620
+; admin_controller.php line: 2641
 admin_controller_missing_required = "缺少必要項目"
 ;
-; admin_controller.php line: 2643
+; admin_controller.php line: 2664
 admin_controller_missing_optional = "缺少選擇項目"
 ;
-; admin_controller.php line: 2648
+; admin_controller.php line: 2669
 admin_controller_check_passed = "通過檢查"
 ;
-; admin_controller.php line: 2653
+; admin_controller.php line: 2674
 admin_controller_using_local_config = "使用當地語言"
 ;
-; admin_controller.php line: 2678
+; admin_controller.php line: 2699
 admin_controller_media_kind = "多媒體類別"
 ;
-; admin_controller.php line: 2679
+; admin_controller.php line: 2700
 admin_controller_video = "影片"
 ;
-; admin_controller.php line: 2680
+; admin_controller.php line: 2701
 admin_controller_rss_feed = "RSS"
 ;
-; admin_controller.php line: 2694
+; admin_controller.php line: 2715
 admin_controller_sources_indexes = ""
 ;
-; admin_controller.php line: 2747
+; admin_controller.php line: 2768
 admin_controller_media_source_added = "增加多媒體"
 ;
-; admin_controller.php line: 2755
+; admin_controller.php line: 2776
 admin_controller_media_source_deleted = "刪除多媒體"
 ;
-; admin_controller.php line: 2771
+; admin_controller.php line: 2792
 admin_controller_subsearch_added = ""
 ;
-; admin_controller.php line: 2779
+; admin_controller.php line: 2800
 admin_controller_subsearch_deleted = ""
 ;
-; admin_controller.php line: 2854
+; admin_controller.php line: 2875
 admin_controller_configure_use_absolute_path = "使用絕對路徑"
 ;
-; admin_controller.php line: 2866
+; admin_controller.php line: 2887
 admin_controller_configure_diff_base_dir = ""
 ;
-; admin_controller.php line: 2899
+; admin_controller.php line: 2920
 admin_controller_configure_work_dir_set = "工作目錄配置"
 ;
-; admin_controller.php line: 2913
+; admin_controller.php line: 2934
 admin_controller_name_your_bot = "取名"
 ;
-; admin_controller.php line: 2936
+; admin_controller.php line: 2957
 admin_controller_configure_work_profile_made = "工作設置已建立"
 ;
-; admin_controller.php line: 2949
+; admin_controller.php line: 2970
 admin_controller_configure_no_set_config = "無設置"
 ;
-; admin_controller.php line: 2961
+; admin_controller.php line: 2982
 admin_controller_configure_no_create_profile = "未建立簡歷"
 ;
-; admin_controller.php line: 2972
+; admin_controller.php line: 2993
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 2984
+; admin_controller.php line: 3005
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 3032
+; admin_controller.php line: 3053
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 3047
+; admin_controller.php line: 3068
 admin_controller_configure_profile_change = ""
 ;
-; admin_controller.php line: 3062
+; admin_controller.php line: 3083
 admin_controller_configure_no_change_profile = ""
 ;
-; admin_controller.php line: 3100
+; admin_controller.php line: 3121
 admin_controller_describe_robot = ""
 ;
 ; machine_controller.php line: 182
@@ -544,22 +544,22 @@ search_controller_crawl_delay = ""
 ; search_controller.php line: 1593
 search_controller_cache_comment = ""
 ;
-; search_controller.php line: 1637
+; search_controller.php line: 1638
 search_controller_cached_version = ""
 ;
-; search_controller.php line: 1752
+; search_controller.php line: 1753
 search_controller_header_summaries = ""
 ;
-; search_controller.php line: 1876
+; search_controller.php line: 1877
 search_controller_history = ""
 ;
-; search_controller.php line: 2052
+; search_controller.php line: 2053
 search_controller_all_cached = ""
 ;
-; search_controller.php line: 2083
+; search_controller.php line: 2084
 search_controller_year = ""
 ;
-; search_controller.php line: 2084
+; search_controller.php line: 2085
 search_controller_month = ""
 ;
 ; settings_controller.php line: 134
@@ -1254,111 +1254,114 @@ pageoptions_element_load_options = ""
 pageoptions_element_page_range = ""
 ;
 ; pageoptions_element.php line: 95
+pageoptions_element_max_description = ""
+;
+; pageoptions_element.php line: 100
 pageoptions_element_save_cache = ""
 ;
-; pageoptions_element.php line: 105
+; pageoptions_element.php line: 110
 pageoptions_element_allow_recrawl = ""
 ;
-; pageoptions_element.php line: 111
+; pageoptions_element.php line: 116
 pageoptions_element_file_types = ""
 ;
-; pageoptions_element.php line: 141
+; pageoptions_element.php line: 146
 pageoptions_element_classifiers_to_apply = ""
 ;
-; pageoptions_element.php line: 176
+; pageoptions_element.php line: 181
 pageoptions_element_no_classifiers = ""
 ;
-; pageoptions_element.php line: 179
+; pageoptions_element.php line: 184
 pageoptions_element_indexing_plugins = ""
 ;
-; pageoptions_element.php line: 183
+; pageoptions_element.php line: 188
 pageoptions_element_plugin = ""
 ;
-; pageoptions_element.php line: 186
+; pageoptions_element.php line: 191
 pageoptions_element_plugin_include = ""
 ;
-; pageoptions_element.php line: 207
+; pageoptions_element.php line: 212
 pageoptions_element_no_compatible_plugins = ""
 ;
-; pageoptions_element.php line: 210
+; pageoptions_element.php line: 215
 pageoptions_element_page_rules = ""
 ;
-; pageoptions_element.php line: 218
+; pageoptions_element.php line: 223
 page_element_search_page = ""
 ;
-; pageoptions_element.php line: 223
+; pageoptions_element.php line: 228
 pageoptions_element_wd_suggest = ""
 ;
-; pageoptions_element.php line: 231
+; pageoptions_element.php line: 236
 pageoptions_element_subsearch_link = ""
 ;
-; pageoptions_element.php line: 240
+; pageoptions_element.php line: 245
 pageoptions_element_signin_link = ""
 ;
-; pageoptions_element.php line: 247
+; pageoptions_element.php line: 252
 pageoptions_element_cache_link = ""
 ;
-; pageoptions_element.php line: 255
+; pageoptions_element.php line: 260
 pageoptions_element_similar_link = ""
 ;
-; pageoptions_element.php line: 263
+; pageoptions_element.php line: 268
 pageoptions_element_in_link = ""
 ;
-; pageoptions_element.php line: 269
+; pageoptions_element.php line: 274
 pageoptions_element_ip_link = ""
 ;
-; pageoptions_element.php line: 278
+; pageoptions_element.php line: 283
 pageoptions_element_ranking_factors = ""
 ;
-; pageoptions_element.php line: 281
+; pageoptions_element.php line: 286
 pageoptions_element_title_weight = ""
 ;
-; pageoptions_element.php line: 286
+; pageoptions_element.php line: 291
 pageoptions_element_description_weight = ""
 ;
-; pageoptions_element.php line: 291
+; pageoptions_element.php line: 296
 pageoptions_element_link_weight = ""
 ;
-; pageoptions_element.php line: 296
+; pageoptions_element.php line: 301
 pageoptions_element_results_grouping_options = ""
 ;
-; pageoptions_element.php line: 299
+; pageoptions_element.php line: 304
 pageoptions_element_min_results_to_group = ""
 ;
-; pageoptions_element.php line: 304
+; pageoptions_element.php line: 309
 pageoptions_element_server_alpha = ""
 ;
-; pageoptions_element.php line: 312
+; pageoptions_element.php line: 317
 pageoptions_element_test_page = ""
 ;
-; pageoptions_element.php line: 314
+; pageoptions_element.php line: 319
 pageoptions_element_page_type = ""
 ;
-; pageoptions_element.php line: 331
+; pageoptions_element.php line: 336
 pageoptions_element_save_options = ""
 ;
-; pageoptions_element.php line: 333
+; pageoptions_element.php line: 338
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 339
+; pageoptions_element.php line: 344
 pageoptions_element_test_results = ""
 ;
-; pageoptions_element.php line: 342
+; pageoptions_element.php line: 347
 pageoptions_element_after_process = ""
 ;
-; pageoptions_element.php line: 346
+; pageoptions_element.php line: 351
 pageoptions_element_after_rules = ""
 ;
-; pageoptions_element.php line: 350
+; pageoptions_element.php line: 355
 pageoptions_element_extracted_words = ""
 ;
-; pageoptions_element.php line: 354
+; pageoptions_element.php line: 359
 pageoptions_element_extracted_metas = ""
 ;
-; pageoptions_element.php line: 388
+; pageoptions_element.php line: 393
 pageoptions_element_run_tests = ""
 ;
-; pageoptions_element.php line: 392
+; pageoptions_element.php line: 397
 pageoptions_element_save_options = ""
 ;
 ; resultseditor_element.php line: 58
diff --git a/models/crawl_model.php b/models/crawl_model.php
index abde204..f38f76b 100755
--- a/models/crawl_model.php
+++ b/models/crawl_model.php
@@ -444,6 +444,9 @@ EOT;
         if(!isset($info['general']['page_recrawl_frequency'])) {
             $info['general']['page_recrawl_frequency'] = PAGE_RECRAWL_FREQUENCY;
         }
+        if(!isset($info['general']['max_description_len'])) {
+            $info['general']['max_description_len'] = MAX_DESCRIPTION_LEN;
+        }
         $n[] = '[general]';
         $n[] = "crawl_order = '".$info['general']['crawl_order']."';";
         $n[] = "crawl_type = '".$info['general']['crawl_type']."';";
@@ -454,6 +457,8 @@ EOT;
             $info['general']['page_recrawl_frequency']."';";
         $n[] = "page_range_request = '".
             $info['general']['page_range_request']."';";
+        $n[] = "max_description_len = '".
+            $info['general']['max_description_len']."';";
         $bool_string =
             ($info['general']['cache_pages']) ? "true" : "false";
         $n[] = "cache_pages = $bool_string;";
@@ -558,6 +563,8 @@ EOT;
                     -1),
                 "page_range_request" => array(self::PAGE_RANGE_REQUEST,
                     PAGE_RANGE_REQUEST),
+                "max_description_len" => array(self::MAX_DESCRIPTION_LEN,
+                    MAX_DESCRIPTION_LEN),
             );
             foreach($general_params as $param => $info) {
                 $seed_info['general'][$param] = (isset($index_info[$info[0]])) ?
@@ -793,7 +800,6 @@ EOT;
                 $machine_urls, serialize($params));
             return;
         }
-
         $info_string = serialize($crawl_params);
         file_put_contents(
             CRAWL_DIR."/schedules/queue_server_messages.txt",
diff --git a/models/locale_model.php b/models/locale_model.php
old mode 100644
new mode 100755
diff --git a/views/elements/pageoptions_element.php b/views/elements/pageoptions_element.php
index ff5b266..ce0c52b 100644
--- a/views/elements/pageoptions_element.php
+++ b/views/elements/pageoptions_element.php
@@ -92,6 +92,11 @@ class PageOptionsElement extends Element
             <?php $this->view->optionsHelper->render("page-range-request",
             "page_range_request", $data['SIZE_VALUES'], $data['PAGE_SIZE']);
             ?></div>
+        <div class="top-margin"><b><label for="max-description-len"><?php
+            e(tl('pageoptions_element_max_description'))?></label></b>
+            <?php $this->view->optionsHelper->render("max-description-len",
+            "max_description_len", $data['LEN_VALUES'], $data['MAX_LEN']);
+            ?></div>
         <div class="top-margin"><b><label for="cache-pages"><?php
             e(tl('pageoptions_element_save_cache'))?>
             </label><input
@@ -399,4 +404,4 @@ class PageOptionsElement extends Element
     <?php
     }
 }
-?>
\ No newline at end of file
+?>
-- 
1.7.11.msysgit.1


From 76af95547a5511df00cc1329912ef50c818f7cbb Mon Sep 17 00:00:00 2001
From: Akshat Kukreti <akshatkukreti@gmail.com>
Date: Sun, 19 May 2013 01:33:58 -0700
Subject: [PATCH 06/13] changes made to btree code and added btree test code

---
 configs/config.php   |   4 +-
 lib/btree.php        |  16 +++--
 tests/btree_test.php | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 3 files changed, 201 insertions(+), 11 deletions(-)

diff --git a/configs/config.php b/configs/config.php
index 7f188ab..46184c8 100644
--- a/configs/config.php
+++ b/configs/config.php
@@ -78,9 +78,9 @@ if(MAINTENANCE_MODE && $_SERVER["SERVER_ADDR"] != $_SERVER["REMOTE_ADDR"]) {
 }
 
 if(!defined('WORK_DIRECTORY')) {
-/*+++ The next block of code is machine edited, change at
+/*+++ The next block of code is machine edited, change at 
 your own risk, please use configure web page instead +++*/
-define('WORK_DIRECTORY', '');
+define('WORK_DIRECTORY', '/yioopMay17');
 /*++++++*/
 // end machine edited code
 }
diff --git a/lib/btree.php b/lib/btree.php
index efdafb3..d6fc389 100644
--- a/lib/btree.php
+++ b/lib/btree.php
@@ -35,12 +35,12 @@
 /**
  * Load Node class
  */
-require_once('btree_node.php');
+require_once(BASE_DIR.'/lib/btree_node.php');
 
 /**
  * Default value of minimum degree. The minimum degree determines the minimum 
- * and maximum number of keys and child nodes for nodes 
- * other than root node.
+ * and maximum number of keys and child nodes, for nodes 
+ * other than root node
  */
 define('MIN_DEGREE', 501);
 
@@ -550,7 +550,7 @@ class BTree
                 $pred = $this->readNode($pred_id);
                 if($pred->count >= $this->min_degree) {
                     $this->adjustChildUsingLeftSiblingAndParent($parent, $child,
-                        $pred, $pos - 1);
+                        $pred, $pos);
                     return $child;
                 } else {
                     $this->mergeChildWithParentKeyAndRightSibling($parent, 
@@ -592,7 +592,7 @@ class BTree
         }
         $pred->count -= 1;
         $this->writeNode($pred);
-        $parent_pair = $parent->keys[$pos];
+        $parent_pair = $parent->keys[$pos - 1];
         for($i = $child->count - 1;$i >= 0;$i--) {
             $child->keys[$i + 1] = $child->keys[$i];
         }
@@ -605,7 +605,7 @@ class BTree
         }
         $child->count += 1;
         $this->writeNode($child);
-        $parent->keys[$pos] = $pred_pair;
+        $parent->keys[$pos - 1] = $pred_pair;
         $this->writeNode($parent);
     }
 
@@ -639,7 +639,9 @@ class BTree
         $parent_pair = $parent->keys[$pos];
         $child->keys[$child->count] = $parent_pair;
         $child->count += 1;
-        $child->links[$child->count] = $next_link;
+        if($child->is_leaf == false) {
+            $child->links[$child->count] = $next_link;
+        }
         $this->writeNode($child);
         $parent->keys[$pos] = $next_pair;
         $this->writeNode($parent);
diff --git a/tests/btree_test.php b/tests/btree_test.php
index 591c1fb..7a03cc3 100644
--- a/tests/btree_test.php
+++ b/tests/btree_test.php
@@ -40,7 +40,7 @@
  require_once BASE_DIR."/lib/btree.php";
 
  /**
- * Used to test insert, lookup, and delete operations on the BTree.
+ * Used to test insert, lookup,  and deletion of key-value pairs on the B-Tree.
  *
  * @author Akshat Kukreti
  * @package seek_quarry
@@ -49,5 +49,193 @@
 
  class BTreeTest extends UnitTest
  {
-    
+    /**
+     * We will test with a smaller minimum degree 2.
+     */
+    function setUp()
+    {
+        if(!defined('BTREE_TEST_DIR')) {
+            define('BTREE_TEST_DIR', WORK_DIRECTORY."/btreeTest");
+        }
+        if(!defined('DEGREE')) {
+            define('DEGREE', 2);
+        }
+        $this->test_objects['FILE1'] = new BTree(BTREE_TEST_DIR, DEGREE);
+        if(!defined('NUM_VALS')) {
+            define('NUM_VALS', 10);
+        }
+    }
+
+    /**
+     * Delete the B-Tree files created during the test
+     */
+    function tearDown()
+    {
+        $all_files = glob(BTREE_TEST_DIR."/*.txt");
+        if($all_files !== NULL) {
+            foreach($all_files as $file) {
+                unlink($file);
+            }
+        }
+    }
+
+    /** 
+     * Test to check that an empty B-Tree is not saved to disk. 
+     * A B-Tree object is created. The test directory is checked for B-Tree 
+     * files. A value is inserted, the test directory is again checked. The 
+     * inserted value is removed and the test directory is again checked for 
+     * B-Tree files.
+     */
+    function emptyBTreeNoSaveTestCase()
+    {
+        $all_files = glob(BTREE_TEST_DIR.'/*.txt');
+        $this->assertEqual(0, count($all_files), 'Empty B-Tree not saved 
+            saved to disk');
+        $this->test_objects['FILE1']->insert(array(1, 1));
+        $all_files = glob(BTREE_TEST_DIR.'/*.txt');
+        $this->assertEqual(2, count($all_files), 'Non-empty B-Tree successfully 
+            saved to disk');
+        $this->test_objects['FILE1']->remove(1);
+        $all_files = glob(BTREE_TEST_DIR.'/*.txt');
+        $this->assertEqual(0, count($all_files), 'Empty B-Tree not saved 
+            saved to disk');
+    }
+
+    /**
+     * Test to check insertion and lookup in a B-Tree
+     * Key-value pairs are inserted in the B-Tree and then looked up using keys.
+     */
+    function insertLookupTestCase()
+    {
+        //Insert values
+        $key_value_pairs = array();
+        for($i = 1;$i <= 20;$i++) {
+            $value = md5($i);
+            $key = md5($value);
+            $key_value_pairs[] = array($key, $value);
+            $this->test_objects['FILE1']->insert(array($key, $value));
+        }
+
+        //Lookup values
+        foreach($key_value_pairs as $key_value_pair) {
+            $key = $key_value_pair[0];
+            $value = $key_value_pair[1];
+            $lookup_entry = $this->test_objects['FILE1']->findValue($key);
+            $lookup_value = $lookup_entry[1];
+            $this->assertEqual($value, $lookup_value, 'Inserted value is equal
+                to lookup value');
+        }
+    }
+
+    /**
+     * Test to check deletion from a non-leaf node
+     * Key-value pairs are inserted in the B-Tree. Key-value pairs are deleted
+     * from leaf nodes. The deleted key-value pairs are then looked up using 
+     * their keys.
+     */
+    function deleteFromLeafNodeTestCase()
+    {
+        //Insert values
+        for($i = 1; $i <= 10;$i++) {
+            $this->test_objects['FILE1']->insert(array($i, $i));
+        }
+
+        //Delete values from leaf nodes
+        $this->test_objects['FILE1']->remove(1);
+        $this->test_objects['FILE1']->remove(10);
+        $this->test_objects['FILE1']->remove(5);
+
+        //Lookup deleted values
+        $this->assertEqual(null, $this->test_objects['FILE1']->findValue(1),
+            'Value successfully deleted from leaf node');
+        $this->assertEqual(null, $this->test_objects['FILE1']->findValue(10),
+            'Value successfully deleted from leaf node');
+        $this->assertEqual(null, $this->test_objects['FILE1']->findValue(5),
+            'Value successfully deleted from leaf node');
+    }
+
+    /**
+     * Test to check deletion from a non-leaf node
+     * Key-value pairs are inserted in the B-Tree. Key-value pairs are deleted
+     * from non-leaf nodes. The deleted key-value pairs are then looked up using 
+     * their keys.
+     */
+    function deleteFromNonLeafNodeTestCase()
+    {
+        //Insert values
+        for($i = 1; $i <= 10;$i++) {
+            $this->test_objects['FILE1']->insert(array($i, $i));
+        }
+
+        //Delete values from leaf nodes
+        $this->test_objects['FILE1']->remove(2);
+        $this->test_objects['FILE1']->remove(6);
+        $this->test_objects['FILE1']->remove(8);
+
+        //Lookup deleted values
+        $this->assertEqual(null, $this->test_objects['FILE1']->findValue(2),
+            'Value successfully deleted from leaf node');
+        $this->assertEqual(null, $this->test_objects['FILE1']->findValue(6),
+            'Value successfully deleted from leaf node');
+        $this->assertEqual(null, $this->test_objects['FILE1']->findValue(8),
+            'Value successfully deleted from leaf node');
+    }
+
+    /**
+     * Test to check deletion of entire B-Tree
+     * Test to check deletion from a non-leaf node
+     * Key-value pairs are inserted in the B-Tree. All key-value pairs are 
+     * deleted from the B-Tree. The deleted key-value pairs are then looked up 
+     * using their keys.
+     */
+    function entireBTreeDeleteTestCase()
+    {
+        //Insert key-value pairs
+        for($i = 1; $i <= 10;$i++) {
+            $this->test_objects['FILE1']->insert(array($i, $i));
+        }
+
+        //Delete all key-value pairs
+        for($i = 10; $i >= 1;$i--) {
+            $this->test_objects['FILE1']->remove($i);
+        }
+
+        //Lookup deleted keys
+        for($i = 1; $i <= 10;$i++) {
+            $this->assertEqual(null, 
+                $this->test_objects['FILE1']->findValue($i),
+                'Value successfully deleted from leaf node');
+        }
+
+        //Check that test directory has no B-Tree files
+        $all_files = glob(BTREE_TEST_DIR.'/*.txt');
+        $this->assertEqual(0, count($all_files), 'Empty B-Tree not saved 
+            saved to disk');
+
+        $this->tearDown();
+
+        //Insert key-value pairs
+        for($i = 10; $i >= 1;$i--) {
+            $this->test_objects['FILE1']->insert(array($i, $i));
+        }
+
+        //Delete all key-value pairs
+        for($i = 1; $i <= 10;$i++) {
+            $this->test_objects['FILE1']->remove($i);
+        }
+
+        //Lookup deleted keys
+        for($i = 10; $i >= 1;$i--) {
+            $this->assertEqual(null, 
+                $this->test_objects['FILE1']->findValue($i),
+                'Value successfully deleted from leaf node');
+        }
+
+        //Check that test directory has no B-Tree files
+        $all_files = glob(BTREE_TEST_DIR.'/*.txt');
+        $this->assertEqual(0, count($all_files), 'Empty B-Tree not saved 
+            saved to disk');
+    }
+
+
  }
\ No newline at end of file
-- 
1.7.11.msysgit.1


From a8c86e666300fc73b1bd3a54d15c43e40dd7507a Mon Sep 17 00:00:00 2001
From: Akshat Kukreti <akshatkukreti@gmail.com>
Date: Sun, 19 May 2013 01:42:58 -0700
Subject: [PATCH 07/13] constants added for cache page validation

---
 lib/crawl_constants.php | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/crawl_constants.php b/lib/crawl_constants.php
index 18ebde8..0292c99 100644
--- a/lib/crawl_constants.php
+++ b/lib/crawl_constants.php
@@ -65,6 +65,7 @@ interface CrawlConstants
     const schedule_data_base_name = "ScheduleData";
     const schedule_name = "FetchSchedule";
     const robot_data_base_name = "RobotData";
+    const cache_page_validation_data_base_name = "CachePageValidationData";
     const index_data_base_name = "IndexData";
     const network_base_name = "Network";
     const network_crawllist_base_name = "NetworkCrawlList";
@@ -222,6 +223,8 @@ interface CrawlConstants
     const ACTIVE_CLASSIFIERS = 'cu';
     const ACTIVE_CLASSIFIERS_DATA = 'cv';
     const MAX_DESCRIPTION_LEN = 'cw';
+    const CACHE_PAGE_VALIDATORS = 'cx';
+    const CACHE_PAGE_VALIDATION_DATA = 'cy';
 
     const NEEDS_OFFSET_FLAG = 0x7FFFFFFF;
 }
-- 
1.7.11.msysgit.1


From 6cae03c5a776b45df3a00a4170f8cad6c5f33550 Mon Sep 17 00:00:00 2001
From: Akshat Kukreti <akshatkukreti@gmail.com>
Date: Sun, 19 May 2013 23:24:13 -0700
Subject: [PATCH 08/13] B-Tree now readjusts every internal node when deleting
 from an internal node. B-Tree test code added.

---
 lib/btree.php        |  27 +++++++--
 lib/fetch_url.php    |  21 +++++++
 tests/btree_test.php | 160 +++++++++++++++++++++++----------------------------
 3 files changed, 116 insertions(+), 92 deletions(-)

diff --git a/lib/btree.php b/lib/btree.php
index d6fc389..63a2417 100644
--- a/lib/btree.php
+++ b/lib/btree.php
@@ -398,22 +398,41 @@ class BTree
     function delete($node, $key)
     {
         list($flag, $pos) = $this->binarySearch($node->keys, $key);
+        if($flag == 1 && $node->is_leaf == false) {
+            $this->reArrange($node, $pos);
+        }
+        list($flag, $pos) = $this->binarySearch($node->keys, $key);
         if($flag == 1 && $node->is_leaf == true) {
-            $this->deleteFromLeaf($node, $pos);
+                $this->deleteFromLeaf($node, $pos);
         } else if($flag == 1 && $node->is_leaf == false) {
-            $this->deleteFromNonLeaf($node, $pos);
+                $this->deleteFromNonLeaf($node, $pos);
         } else if($flag !== 1 && $node->is_leaf == false) {
             $sub_tree_root = $this->getDescendant($node, $pos);
             $this->delete($sub_tree_root, $key);
         }
     }
 
+    function reArrange(&$node, $pos)
+    {
+        $pred_id = $node->links[$pos];
+        $pred = $this->readNode($pred_id);
+        $next_id = $node->links[$pos + 1];
+        $next = $this->readNode($next_id);
+        if($pred->count >= $this->min_degree) {
+            $this->adjustChildUsingLeftSiblingAndParent($node, $next, $pred, 
+                $pos + 1);
+        } else if($next->count >= $this->min_degree) {
+            $this->adjustChildUsingRightSiblingAndParent($node, $pred, 
+                $next, $pos);
+        }
+    }
+
     /**
      * Deletes key-value pair from a leaf node in a B-Tree
      * @param object $node is the leaf node containing the key-value pair
      * @param int $key is the key to be deleted
      */
-    function deleteFromLeaf($node, $pos)
+    function deleteFromLeaf(&$node, $pos)
     {
         if($pos == $node->count - 1) {
             array_pop($node->keys);
@@ -438,7 +457,7 @@ class BTree
      * @param object $node is the non-leaf node containing the key-value pair
      * @param int $key is the key to be deleted
      */
-    function deleteFromNonLeaf($node, $pos)
+    function deleteFromNonLeaf(&$node, $pos)
     {
         $pred_id = $node->links[$pos];
         $pred = $this->readNode($pred_id);
diff --git a/lib/fetch_url.php b/lib/fetch_url.php
index cceb260..1523a0c 100755
--- a/lib/fetch_url.php
+++ b/lib/fetch_url.php
@@ -246,6 +246,22 @@ class FetchUrl implements CrawlConstants
     static function prepareUrlHeaders($url, $minimal = false)
     {
         $url = str_replace("&amp;", "&", $url);
+
+        /*Check if an ETag was added by the queue server. If found, create
+          If-None_Match header with the ETag and add it to the headers. Remove
+          ETag from URL
+         */
+        $if_none_match = "If-None-Match";
+        $etag = null;
+        if(stristr($url, "ETag:")) {
+            crawlLog("ETag found, adding If-None-Match header to headers");
+            $etag_parts = preg_split("/ETag\:/i", $url);
+            $etag_data = explode(" ", $etag_parts[1]);
+            $etag = $etag_data[1];
+            $pos = strrpos($url, "ETag:");
+            $url = substr_replace($url, "", $pos, strlen("ETag: ".$etag));
+        }
+
         /* in queue_server we added the ip (if available)
           after the url followed by ###
          */
@@ -286,6 +302,11 @@ class FetchUrl implements CrawlConstants
             $url_with_ip_if_possible = $url;
         }
         $headers[] = 'Expect:';
+        if($etag !== null) {
+            $etag_header = $if_none_match.": ".$etag;
+            $headers[] = $etag_header;
+            crawlLog("...done");
+        }
         $results = array($url, $url_with_ip_if_possible, $headers);
         return $results;
     }
diff --git a/tests/btree_test.php b/tests/btree_test.php
index 7a03cc3..d870a19 100644
--- a/tests/btree_test.php
+++ b/tests/btree_test.php
@@ -39,6 +39,11 @@
   */
  require_once BASE_DIR."/lib/btree.php";
 
+  /**
+  * Load crawlHash
+  */
+ require_once BASE_DIR."/lib/utility.php";
+
  /**
  * Used to test insert, lookup,  and deletion of key-value pairs on the B-Tree.
  *
@@ -50,7 +55,7 @@
  class BTreeTest extends UnitTest
  {
     /**
-     * We will test with a smaller minimum degree 2.
+     * Minimum degree is set to 2 and the number of key-value pairs is set to 25
      */
     function setUp()
     {
@@ -62,7 +67,7 @@
         }
         $this->test_objects['FILE1'] = new BTree(BTREE_TEST_DIR, DEGREE);
         if(!defined('NUM_VALS')) {
-            define('NUM_VALS', 10);
+            define('NUM_VALS', 25);
         }
     }
 
@@ -109,11 +114,11 @@
     {
         //Insert values
         $key_value_pairs = array();
-        for($i = 1;$i <= 20;$i++) {
-            $value = md5($i);
-            $key = md5($value);
-            $key_value_pairs[] = array($key, $value);
+        for($i = 1;$i <= NUM_VALS;$i++) {
+            $value = crawlHash(rand(1, 1000), true);
+            $key = crawlHash($value, true);
             $this->test_objects['FILE1']->insert(array($key, $value));
+            $key_value_pairs[] = array($key, $value);
         }
 
         //Lookup values
@@ -127,115 +132,94 @@
         }
     }
 
-    /**
-     * Test to check deletion from a non-leaf node
-     * Key-value pairs are inserted in the B-Tree. Key-value pairs are deleted
-     * from leaf nodes. The deleted key-value pairs are then looked up using 
-     * their keys.
+    /** 
+     * Test to check that a key is deleted successfully from a leaf node
+     * Key-value pairs are inserted in the B-Tree. key-value pairs present in 
+     * leaf nodes are then deleted from the B-Tree. The deleted key-value pairs
+     * are looked up to check if they were removed successfully. 
      */
     function deleteFromLeafNodeTestCase()
     {
         //Insert values
-        for($i = 1; $i <= 10;$i++) {
+        for($i = 1;$i <= NUM_VALS;$i++) {
             $this->test_objects['FILE1']->insert(array($i, $i));
         }
 
-        //Delete values from leaf nodes
-        $this->test_objects['FILE1']->remove(1);
-        $this->test_objects['FILE1']->remove(10);
-        $this->test_objects['FILE1']->remove(5);
-
-        //Lookup deleted values
-        $this->assertEqual(null, $this->test_objects['FILE1']->findValue(1),
-            'Value successfully deleted from leaf node');
-        $this->assertEqual(null, $this->test_objects['FILE1']->findValue(10),
-            'Value successfully deleted from leaf node');
-        $this->assertEqual(null, $this->test_objects['FILE1']->findValue(5),
-            'Value successfully deleted from leaf node');
-    }
+        //Keys in leaf nodes
+        $leaf_keys = array(1,3,5,9,10);
+        foreach($leaf_keys as $key) {
+            $this->test_objects['FILE1']->remove($key);
+        }
 
-    /**
-     * Test to check deletion from a non-leaf node
-     * Key-value pairs are inserted in the B-Tree. Key-value pairs are deleted
-     * from non-leaf nodes. The deleted key-value pairs are then looked up using 
-     * their keys.
-     */
-    function deleteFromNonLeafNodeTestCase()
-    {
-        //Insert values
-        for($i = 1; $i <= 10;$i++) {
-            $this->test_objects['FILE1']->insert(array($i, $i));
+        //Lookup deleted keys
+        foreach($leaf_keys as $key) {
+            $this->assertEqual(null, 
+                $this->test_objects['FILE1']->findValue($key), 
+                'Key successfully deleted from leaf node');
         }
 
-        //Delete values from leaf nodes
-        $this->test_objects['FILE1']->remove(2);
-        $this->test_objects['FILE1']->remove(6);
-        $this->test_objects['FILE1']->remove(8);
-
-        //Lookup deleted values
-        $this->assertEqual(null, $this->test_objects['FILE1']->findValue(2),
-            'Value successfully deleted from leaf node');
-        $this->assertEqual(null, $this->test_objects['FILE1']->findValue(6),
-            'Value successfully deleted from leaf node');
-        $this->assertEqual(null, $this->test_objects['FILE1']->findValue(8),
-            'Value successfully deleted from leaf node');
     }
 
     /**
-     * Test to check deletion of entire B-Tree
-     * Test to check deletion from a non-leaf node
-     * Key-value pairs are inserted in the B-Tree. All key-value pairs are 
-     * deleted from the B-Tree. The deleted key-value pairs are then looked up 
-     * using their keys.
+     * Test to check that a key is deleted successfully from an internal node
+     * Key-value pairs are first added to the B-Tree. Key-value pairs are then
+     * deleted successively from the root node. The deleted key-value pairs are 
+     * then looked up to check if they were successfully
      */
-    function entireBTreeDeleteTestCase()
+    function deleteFromInternalNodeTestCase()
     {
-        //Insert key-value pairs
-        for($i = 1; $i <= 10;$i++) {
-            $this->test_objects['FILE1']->insert(array($i, $i));
-        }
-
-        //Delete all key-value pairs
-        for($i = 10; $i >= 1;$i--) {
-            $this->test_objects['FILE1']->remove($i);
+        //Insert values
+        for($i = 1;$i <= NUM_VALS;$i++) {
+            $value = crawlHash(rand(1, 1000));
+            $key = crawlHash($value);
+            $this->test_objects['FILE1']->insert(array($key, $value));
         }
 
-        //Lookup deleted keys
-        for($i = 1; $i <= 10;$i++) {
+        $deleted = array();
+        for($i = 1;$i <= NUM_VALS - 10; $i++) {
+            $internal_key = $this->test_objects['FILE1']->root->keys[0][0];
+            $this->test_objects['FILE1']->remove($internal_key);
             $this->assertEqual(null, 
-                $this->test_objects['FILE1']->findValue($i),
-                'Value successfully deleted from leaf node');
+                $this->test_objects['FILE1']->findValue($internal_key), 
+                'Key deleted successfully from internal node');
         }
 
-        //Check that test directory has no B-Tree files
-        $all_files = glob(BTREE_TEST_DIR.'/*.txt');
-        $this->assertEqual(0, count($all_files), 'Empty B-Tree not saved 
-            saved to disk');
-
-        $this->tearDown();
+    }
 
-        //Insert key-value pairs
-        for($i = 10; $i >= 1;$i--) {
-            $this->test_objects['FILE1']->insert(array($i, $i));
+    /**
+     * Function to check that keys are successfully deleted from the B-Tree
+     * Random key-value pairs are firs inserted in the B-Tree. From the inserted
+     * key-value pairs, key-value pairs are randomly selected and deleted from
+     * the B-Tree. The deleted key-value pairs are then looked up using their 
+     * keys to check if they were successfully deleted.
+     */
+    function deleteLookupTestCase()
+    {
+        //Insert values
+        $key_value_pairs = array();
+        for($i = 1;$i <= NUM_VALS;$i++) {
+            $value = crawlHash(rand(1, 1000));
+            $key = crawlHash($value);
+            $this->test_objects['FILE1']->insert(array($key, $value));
+            $key_value_pairs[] = array($key, $key);
         }
 
-        //Delete all key-value pairs
-        for($i = 1; $i <= 10;$i++) {
-            $this->test_objects['FILE1']->remove($i);
+        //Delete Values
+        $deleted = array();
+
+        for($i = 1;$i <= NUM_VALS;$i++) {
+            $index = mt_rand(0, NUM_VALS - 1);
+            $key = $key_value_pairs[$index][0];
+            $this->test_objects['FILE1']->remove($key);
+            $deleted[] = $key;
         }
 
-        //Lookup deleted keys
-        for($i = 10; $i >= 1;$i--) {
+        //Lookup values
+        foreach($deleted as $deleted_key) {
             $this->assertEqual(null, 
-                $this->test_objects['FILE1']->findValue($i),
-                'Value successfully deleted from leaf node');
+                $this->test_objects['FILE1']->findValue($deleted_key),
+                'Deleted Value not found');
         }
-
-        //Check that test directory has no B-Tree files
-        $all_files = glob(BTREE_TEST_DIR.'/*.txt');
-        $this->assertEqual(0, count($all_files), 'Empty B-Tree not saved 
-            saved to disk');
     }
 
-
  }
\ No newline at end of file
-- 
1.7.11.msysgit.1


From a3395e24bad771a0437c5fb6e8eddb1fd73acb96 Mon Sep 17 00:00:00 2001
From: Akshat Kukreti <akshatkukreti@gmail.com>
Date: Sun, 19 May 2013 23:30:08 -0700
Subject: [PATCH 09/13] modified fetch_url.php to extract ETag and Expires
 headers. If a scheduled URL has an ETag,
 If-None-Match header is added to the HTTP headers

---
 lib/fetch_url.php | 37 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 36 insertions(+), 1 deletion(-)

diff --git a/lib/fetch_url.php b/lib/fetch_url.php
index 1523a0c..9daf327 100755
--- a/lib/fetch_url.php
+++ b/lib/fetch_url.php
@@ -254,7 +254,7 @@ class FetchUrl implements CrawlConstants
         $if_none_match = "If-None-Match";
         $etag = null;
         if(stristr($url, "ETag:")) {
-            crawlLog("ETag found, adding If-None-Match header to headers");
+            crawlLog("Adding ETag header");
             $etag_parts = preg_split("/ETag\:/i", $url);
             $etag_data = explode(" ", $etag_parts[1]);
             $etag = $etag_data[1];
@@ -356,6 +356,9 @@ class FetchUrl implements CrawlConstants
     static function parseHeaderPage(&$header_and_page,
         $value=CrawlConstants::PAGE)
     {
+        $cache_page_validators = array();
+        $cache_page_validators['etag'] = -1;
+        $cache_page_validators['expires'] = -1;
         $new_offset = 0;
         // header will include all redirect headers
         $site = array();
@@ -446,6 +449,38 @@ class FetchUrl implements CrawlConstants
                         trim($robot_meta));
                 }
             }
+            if(stristr($line, 'ETag:')) {
+                $line_parts = preg_split("/ETag\:/i", $line);
+                $etag_data = explode(" ", $line_parts[1]);
+                $etag = $etag_data[1];
+                $cache_page_validators['etag'] = $etag;
+            }
+            if(stristr($line, 'Expires:')) {
+                $line_parts = preg_split("/Expires\:/i", $line);
+                $all_dates = $line_parts[1];
+                $date_parts = explode(",", $all_dates);
+                if(count($date_parts) == 2) {
+                    $date_dt = new DateTime($date_parts[1]);
+                    $date_ts = $date_dt->getTimestamp();
+                    $cache_page_validators['expires'] = $date_ts;
+                } else if(count($date_parts) > 2) {
+                    /*Encountered some pages with more than one Expires date
+                      :O */
+                    $timestamps = array();
+                    for($i = 1;$i < count($date_parts);$i += 2) {
+                        $dt = new DateTime($date_parts[$i]);
+                        $ds = $dt->getTimestamp();
+                        $timestamps[] = $ds;
+                    }
+                    $lowest = min($timestamps);
+                    $cache_page_validators['expires'] = $lowest;
+                }
+            }
+            if(!($cache_page_validators['etag'] == -1 &&
+                $cache_page_validators['expires'] == -1)) {
+                $site[CrawlConstants::CACHE_PAGE_VALIDATORS] = 
+                    $cache_page_validators;
+            }
         }
         /*
            If the doc is HTML and it uses a http-equiv to set the encoding
-- 
1.7.11.msysgit.1


From 553a57bbcce126dce9fb835c23489252f4a1c636 Mon Sep 17 00:00:00 2001
From: Akshat Kukreti <akshatkukreti@gmail.com>
Date: Sun, 19 May 2013 23:45:46 -0700
Subject: [PATCH 10/13] modified fetcher to send cache page validation data to
 queue server

---
 bin/fetcher.php                  | 28 ++++++++++++++++++++++++++--
 controllers/fetch_controller.php |  9 +++++++++
 2 files changed, 35 insertions(+), 2 deletions(-)

diff --git a/bin/fetcher.php b/bin/fetcher.php
index 60d3bba..e1289ba 100755
--- a/bin/fetcher.php
+++ b/bin/fetcher.php
@@ -432,6 +432,7 @@ class Fetcher implements CrawlConstants
         $this->to_crawl = array();
         $this->to_crawl_again = array();
         $this->found_sites = array();
+        $this->found_sites[self::CACHE_PAGE_VALIDATION_DATA] = array();
         $this->page_range_request = PAGE_RANGE_REQUEST;
         $this->max_description_len = MAX_DESCRIPTION_LEN;
         $this->fetcher_num = false;
@@ -1714,7 +1715,8 @@ class Fetcher implements CrawlConstants
             self::OPERATING_SYSTEM, self::MODIFIED, self::ROBOT_INSTANCE,
             self::LOCATION, self::SIZE, self::TOTAL_TIME, self::DNS_TIME,
             self::ROBOT_PATHS, self::GOT_ROBOT_TXT, self::CRAWL_DELAY,
-            self::AGENT_LIST, self::ROBOT_METAS, self::WARC_ID);
+            self::AGENT_LIST, self::ROBOT_METAS, self::WARC_ID,
+            self::CACHE_PAGE_VALIDATORS);
 
         foreach($summary_fields as $field) {
             if(isset($site[$field])) {
@@ -1843,6 +1845,12 @@ class Fetcher implements CrawlConstants
                 }
             } //end else
 
+            //Add cache page validation data
+            if(isset($site[self::CACHE_PAGE_VALIDATORS])) {
+                $this->found_sites[self::CACHE_PAGE_VALIDATION_DATA][] = 
+                    array($site[self::URL], $site[self::CACHE_PAGE_VALIDATORS]);
+            }
+
             if(isset($this->hosts_with_errors[$host]) &&
                 $this->hosts_with_errors[$host] > DOWNLOAD_ERROR_THRESHOLD) {
                 $this->found_sites[self::ROBOT_TXT][$host][
@@ -2029,7 +2037,7 @@ class Fetcher implements CrawlConstants
             footprint.
          */
         $byte_counts = array("TOTAL" => 0, "ROBOT" => 0, "SCHEDULE" => 0,
-            "INDEX" => 0);
+            "INDEX" => 0, "CACHE_PAGE_VALIDATION" => 0);
         $post_data = array('c'=>'fetch', 'a'=>'update',
             'crawl_time' => $this->crawl_time, 'machine_uri' => WEB_URI,
             'robot_instance' => $prefix.ROBOT_INSTANCE, 'data' => '');
@@ -2046,6 +2054,22 @@ class Fetcher implements CrawlConstants
             $byte_counts["ROBOT"] = $bytes_robot;
         }
 
+        //handle cache validation data
+        if(isset($this->found_sites[self::CACHE_PAGE_VALIDATION_DATA])) {
+            $cache_page_validation_data = webencode(
+                gzcompress(serialize(
+                    $this->found_sites[self::CACHE_PAGE_VALIDATION_DATA])));
+
+            unset($this->found_sites[self::CACHE_PAGE_VALIDATION_DATA]);
+            $bytes_cache_page_validation = strlen($cache_page_validation_data);
+            $post_data['data'] .= $cache_page_validation_data;
+            crawlLog("...".$bytes_cache_page_validation.
+                " bytes of cache page validation data");
+            $byte_counts["TOTAL"] += $bytes_cache_page_validation;
+            $byte_counts["CACHE_PAGE_VALIDATION"] = 
+                $bytes_cache_page_validation;
+        }
+
         //handle schedule data
         $schedule_data = array();
         if(isset($this->found_sites[self::TO_CRAWL][$current_server])) {
diff --git a/controllers/fetch_controller.php b/controllers/fetch_controller.php
index 21ed1f6..93bbb99 100755
--- a/controllers/fetch_controller.php
+++ b/controllers/fetch_controller.php
@@ -414,6 +414,7 @@ class FetchController extends Controller implements CrawlConstants
             $byte_counts = unserialize(webdecode($_REQUEST['byte_counts']));
         }
         $robot_data = "";
+        $cache_page_validation_data = "";
         $schedule_data = "";
         $index_data = "";
         if(isset($byte_counts["TOTAL"]) &&
@@ -421,6 +422,9 @@ class FetchController extends Controller implements CrawlConstants
             $pos = 0;
             $robot_data = substr($uploaded, $pos,$byte_counts["ROBOT"]);
             $pos += $byte_counts["ROBOT"];
+            $cache_page_validation_data = substr($uploaded, $pos, 
+                $byte_counts["CACHE_PAGE_VALIDATION"]);
+            $pos += $byte_counts["CACHE_PAGE_VALIDATION"];
             $schedule_data =
                 substr($uploaded, $pos, $byte_counts["SCHEDULE"]);
             $pos += $byte_counts["SCHEDULE"];
@@ -431,6 +435,11 @@ class FetchController extends Controller implements CrawlConstants
             $this->addScheduleToScheduleDirectory(self::robot_data_base_name,
                 $robot_data);
         }
+        if(strlen($cache_page_validation_data) > 0) {
+            $this->addScheduleToScheduleDirectory(
+                self::cache_page_validation_data_base_name, 
+                $cache_page_validation_data);
+        }
         if(strlen($schedule_data) > 0) {
             $this->addScheduleToScheduleDirectory(self::schedule_data_base_name,
                 $schedule_data);
-- 
1.7.11.msysgit.1


From 3eafc9d1ba61e330e5e442feea592f7b4b4f4ee1 Mon Sep 17 00:00:00 2001
From: Akshat Kukreti <akshatkukreti@gmail.com>
Date: Mon, 20 May 2013 00:25:14 -0700
Subject: [PATCH 11/13] code for adjusting non-leaf root node for deletion
 added

---
 lib/btree.php | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/lib/btree.php b/lib/btree.php
index 63a2417..b2442e3 100644
--- a/lib/btree.php
+++ b/lib/btree.php
@@ -391,7 +391,11 @@ class BTree
     }
 
     /**
-     * Deletes a key-value pair from the B-Tree starting at a node
+     * Deletes a key-value pair from the B-Tree from a node. 
+     * Handles deletion from leaf node and internal node. If the key-value pair
+     * is not found in an internal node. The recrusion descends to the root
+     * of the sub-tree until a leaf node is encoutered that does not have the 
+     * key-value pair to be deleted.
      * @param object $node is from where the key search starts
      * @param int $key is the key to be deleted
      */
@@ -412,6 +416,18 @@ class BTree
         }
     }
 
+    /**
+     * Shifts a key from a non-leaf root to it's child node using nodes 
+     * preceding and next to the key-value pair to be deleted. If the 
+     * preceding child node has atleast minimum MIN_DEGREE keys, a the last 
+     * key-value pair from the preceding node is moved to the position of the 
+     * key-value pair that is to be deleted. Otherwise the same process is done 
+     * using the first key-value pair of the child node next to the key-value 
+     * pair to be deleted.
+     * @param object $node is the internal node containing the key-value pair to
+     * be deleted
+     * @param int $pos is the position of the key-value pair within $pos.
+     */
     function reArrange(&$node, $pos)
     {
         $pred_id = $node->links[$pos];
-- 
1.7.11.msysgit.1


From 535581fab66a5d260c530aae53814aeefefe36e0 Mon Sep 17 00:00:00 2001
From: Akshat Kukreti <akshatkukreti@gmail.com>
Date: Mon, 20 May 2013 00:53:19 -0700
Subject: [PATCH 12/13] modified queue server for saving and lookup of cache
 page validation data

---
 bin/queue_server.php | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 103 insertions(+)

diff --git a/bin/queue_server.php b/bin/queue_server.php
index d1a97e5..08acb21 100755
--- a/bin/queue_server.php
+++ b/bin/queue_server.php
@@ -86,6 +86,8 @@ require_once BASE_DIR."/lib/phrase_parser.php";
 /** Include marker interface to say we support join() method*/
 require_once BASE_DIR."/lib/join.php";
 
+/** Include B-Tree class for storing cache page validation data*/
+require_once BASE_DIR."/lib/btree.php";
 
 /** get any indexing plugins */
 foreach(glob(BASE_DIR."/lib/indexing_plugins/*_plugin.php") as $filename) {
@@ -111,6 +113,14 @@ if(USE_MEMCACHE) {
     unset($mc);
 }
 
+if(!defined("CACHE_PAGE_VALIDATORS")) {
+    define("CACHE_PAGE_VALIDATORS",CRAWL_DIR.'/CachePageValidators');
+}
+if(!is_dir(CACHE_PAGE_VALIDATORS)) {
+    mkdir(CACHE_PAGE_VALIDATORS);
+    chmod(CACHE_PAGE_VALIDATORS, 0777);
+}
+
 /**
  * Command line program responsible for managing Yioop crawls.
  *
@@ -230,6 +240,10 @@ class QueueServer implements CrawlConstants, Join
      */
     var $index_archive;
     /**
+     * Holds the B-Tree used for saving cache page validation data
+     */
+    var $btree;
+    /**
      * The timestamp of the current active crawl
      * @var int
      */
@@ -338,6 +352,7 @@ class QueueServer implements CrawlConstants, Join
         $this->indexing_plugins = array();
         $this->video_sources = array();
         $this->server_name = "IndexerAndScheduler";
+        $this->btree = false;
     }
 
     /**
@@ -477,6 +492,7 @@ class QueueServer implements CrawlConstants, Join
             case self::WEB_CRAWL:
                 if($this->isOnlyIndexer()) return;
                 $this->processRobotUrls();
+                $this->processCachePageValidators();
 
                 $count = $this->web_queue->to_crawl_queue->count;
                 $max_links = max(MAX_LINKS_PER_PAGE, MAX_LINKS_PER_SITEMAP);
@@ -800,6 +816,8 @@ class QueueServer implements CrawlConstants, Join
         } else {
             file_put_contents($close_file, "1");
         }
+        //Write B-Tree root node to disk before before exiting
+        $this->btree->writeNode($this->btree->root);
     }
 
     /**
@@ -963,6 +981,9 @@ class QueueServer implements CrawlConstants, Join
     {
         //to get here we at least have to have a crawl_time
         $this->crawl_time = $info[self::CRAWL_TIME];
+        //Initialize B-Tree for storing cache page validation data
+        $this->btree = new BTree(CACHE_PAGE_VALIDATORS.'/CachePageValidators'.
+            $this->crawl_time);
 
         $read_from_info = array(
             "crawl_order" => self::CRAWL_ORDER,
@@ -1601,6 +1622,47 @@ class QueueServer implements CrawlConstants, Join
         unlink($file);
     }
 
+    /** 
+     * Process cache page validation data files sent by Fetchers
+     */
+    function processCachePageValidators()
+    {
+        crawlLog("Checking for cache page validation data");
+        $cache_page_validators_dir = CRAWL_DIR."/schedules/".
+            self::cache_page_validation_data_base_name.$this->crawl_time;
+        $this->processDataFile($cache_page_validators_dir, 
+            "processCachePageValidatorsArchive");
+        crawlLog("...done");
+    }
+
+    /**
+     * Processes a cache page validation data file. Extracts key-value pairs 
+     * from the file and inserts into the B-Tree used for storing cache
+     * page validation data.
+     * @param string $file is the cache page validation data file written by
+     * Fetchers.
+     */
+    function processCachePageValidatorsArchive($file)
+    {
+        crawlLog("Processing cache page validation data in $file");
+        $start_time = microtime();
+
+        $cache_page_validation_data = 
+            unserialize(gzuncompress(webdecode(file_get_contents($file))));
+        foreach($cache_page_validation_data as $data) {
+            $link = $data[0];
+            $value = $data[1];
+            $key = crawlHash($link);
+            $entry = array($key, $value);
+            $this->btree->insert($entry);
+        }
+
+        crawlLog(" time: ".(changeInMicrotime($start_time))."\n");
+        crawlLog("Done processing cache page validation data file: $file");
+
+        unlink($file);
+    }
+
     /**
      * Deletes all Robot informations stored by the QueueServer.
      *
@@ -2143,12 +2205,53 @@ class QueueServer implements CrawlConstants, Join
                 self::schedule_name.$this->crawl_time.".txt", "wb");
             fwrite($fh, $first_line);
             foreach($sites as $site) {
+                $extracted_etag = null;
                 list($url, $weight, $delay) = $site;
+
+                /*check if we have cache validation data for a URL. If both 
+                  ETag and Expires timestamp are found or only an expires
+                  timestamp is found, the timestamp is compared with the current
+                  time. If the current time is less than the expires timestamp,
+                  the URL is not added to the fetch batch. If only an ETag is 
+                  found, the ETag is appended to the URL so that it can be
+                  processed by the fetcher.
+                 */
+                $key = crawlHash($url);
+                $value = $this->btree->findValue($key);
+                if($value !== null) {
+                    $cache_validation_data = $value[1];
+                    if($cache_validation_data['etag'] !== -1 && 
+                        $cache_validation_data['expires'] !== -1) {
+                        $expires_timestamp = $cache_validation_data['expires'];
+                        $current_time = time();
+                        if($current_time < $expires_timestamp) {
+                            continue;
+                        } else {
+                            $etag = $cache_validation_data['etag'];
+                            $extracted_etag = "ETag: ".$etag;
+                        }
+                    } else if($cache_validation_data['etag'] !== -1) {
+                        $etag = $cache_validation_data['etag'];
+                        $extracted_etag = "ETag: ".$etag;
+                    } else if($cache_validation_data['expires'] !== -1){
+                        $expires_timestamp = $cache_validation_data['expires'];
+                        $current_time = time();
+                        if($current_time < $expires_timestamp) {
+                            continue;
+                        }
+                    }
+                }
+
                 $host_url = UrlParser::getHost($url);
                 $dns_lookup = $this->web_queue->dnsLookup($host_url);
                 if($dns_lookup) {
                     $url .= "###".urlencode($dns_lookup);
                 }
+
+                if($extracted_etag !== null) {
+                    $url .= $extracted_etag;
+                }
+
                 $out_string = base64_encode(
                     packFloat($weight).packInt($delay).$url)."\n";
                 fwrite($fh, $out_string);
-- 
1.7.11.msysgit.1


From e9b80ebea0fc2fcce7313e0f45b90fd7cabe3f8a Mon Sep 17 00:00:00 2001
From: Akshat Kukreti <akshatkukreti@gmail.com>
Date: Mon, 20 May 2013 01:09:46 -0700
Subject: [PATCH 13/13] changed directory name for B-Tree

---
 bin/queue_server.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/bin/queue_server.php b/bin/queue_server.php
index 08acb21..4aa3f9f 100755
--- a/bin/queue_server.php
+++ b/bin/queue_server.php
@@ -114,7 +114,7 @@ if(USE_MEMCACHE) {
 }
 
 if(!defined("CACHE_PAGE_VALIDATORS")) {
-    define("CACHE_PAGE_VALIDATORS",CRAWL_DIR.'/CachePageValidators');
+    define("CACHE_PAGE_VALIDATORS",CRAWL_DIR.'/cachePageValidators');
 }
 if(!is_dir(CACHE_PAGE_VALIDATORS)) {
     mkdir(CACHE_PAGE_VALIDATORS);
@@ -982,7 +982,7 @@ class QueueServer implements CrawlConstants, Join
         //to get here we at least have to have a crawl_time
         $this->crawl_time = $info[self::CRAWL_TIME];
         //Initialize B-Tree for storing cache page validation data
-        $this->btree = new BTree(CACHE_PAGE_VALIDATORS.'/CachePageValidators'.
+        $this->btree = new BTree(CACHE_PAGE_VALIDATORS.'/cachePageValidators'.
             $this->crawl_time);
 
         $read_from_info = array(
-- 
1.7.11.msysgit.1

