? boost-592886.1.patch
? boost-592886.patch
Index: boost.admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/boost/boost.admin.inc,v
retrieving revision 1.1.2.1.2.3.2.79
diff -u -p -r1.1.2.1.2.3.2.79 boost.admin.inc
--- boost.admin.inc	30 Sep 2009 09:17:31 -0000	1.1.2.1.2.3.2.79
+++ boost.admin.inc	1 Oct 2009 09:57:25 -0000
@@ -41,7 +41,7 @@ function boost_admin_performance_page_su
       drupal_set_message(t('Boost: Static page cache cleared.'));
     }
   }
-  else if ($boost_ignore_flush == 0 && (variable_get('preprocess_css', FALSE)==TRUE || variable_get('preprocess_js', FALSE)==TRUE)) {
+  elseif ($boost_ignore_flush == 0 && (variable_get('preprocess_css', FALSE)==TRUE || variable_get('preprocess_js', FALSE)==TRUE)) {
     if (boost_cache_clear_all()) {
       drupal_set_message(t('Boost: Static page cache cleared.'), 'warning');
     }
@@ -361,7 +361,7 @@ function boost_admin_boost_performance_p
     '#options'       => array(
       0 => t('Disabled'),
       1 => t('Enabled'),
-     ),
+      ),
     '#description'   => t('Caution - If disabled you will need some other method of clearing cached pages. If Disabled, files have to be manually deleted from server or cleared using the administrative interface (<a href="@blocks">Enable</a> the <a href="@status">Boost: Pages cache status</a> block).', array('@blocks' => url('admin/build/block'), '@status' => url('admin/build/block/configure/boost/status'))),
   );
   $form['advanced']['boost_check_before_cron_expire'] = array(
@@ -486,7 +486,7 @@ function boost_admin_boost_performance_p
     '#type'          => 'checkbox',
     '#title'         => t('Do not flush expired content on cron run, instead recrawl and overwrite it.'),
     '#default_value' => BOOST_LOOPBACK_BYPASS,
-    '#description'   => !BOOST_CRAWL_ON_CRON ? t('Enable the crawler first to enable this checkbox.') :!BOOST_OVERWRITE_FILE ? t('The "Overwrite the cached file if it already exits" must be turnned on inorder to enable this') : t('Bypass cron cache expiration and load to be expired content in the crawler. Allow this servers IP to bypass the boost cache. Check for fast but potentially stale; uncheck for slow but always fresh.'),
+    '#description'   => !BOOST_CRAWL_ON_CRON ? t('Enable the crawler first to enable this checkbox.') :!BOOST_OVERWRITE_FILE ? t('The "Overwrite the cached file if it already exists" must be turned on in order to enable this') : t('Bypass cron cache expiration and load to be expired content in the crawler. Allow this servers IP to bypass the boost cache. Check for fast but potentially stale; uncheck for slow but always fresh.'),
     '#disabled' => !BOOST_CRAWL_ON_CRON || !BOOST_OVERWRITE_FILE,
   );
   $form['crawler']['boost_push_html'] = array(
@@ -587,7 +587,7 @@ function boost_admin_boost_performance_p
   $form['htaccess'] = array(
     '#type'          => 'fieldset',
     '#title'         => t('Boost Apache .htaccess settings generation'),
-    '#description'   => t('<a href="!link">Explanation of .htaccess variables</a> <br><br> <strong>Be sure to save the configuration and then go to the <a href="!rules">htaccess rules generation page</a> and copy the rules.</strong>', array('!link' => url('http://www.askapache.com/htaccess/mod_rewrite-variables-cheatsheet.html'), '!rules' => url('admin/settings/performance/boost-rules'))),
+    '#description'   => t('<a href="!link">Explanation of .htaccess variables</a> <br /><br /> <strong>Be sure to save the configuration and then go to the <a href="!rules">htaccess rules generation page</a> and copy the rules.</strong>', array('!link' => url('http://www.askapache.com/htaccess/mod_rewrite-variables-cheatsheet.html'), '!rules' => url('admin/settings/performance/boost-rules'))),
   );
   $form['htaccess']['boost_server_name_http_host'] = array(
     '#type'          => 'radios',
@@ -610,7 +610,7 @@ function boost_admin_boost_performance_p
   $rejects = array('SCRIPT_FILENAME', 'DOCUMENT_ROOT'); // values to ignore
   $output = boost_array_find($document_root, $_SERVER, $rejects); //search for values that match getcwd
   if (!empty($output)) {
-    foreach ($output as $key=>$value) {
+    foreach ($output as $key => $value) {
       $temp = '%{ENV:' . $key . '}';
       $options[$temp] = $temp; // adding values to options
       if ($value == $document_root) {
@@ -621,7 +621,7 @@ function boost_admin_boost_performance_p
   if ($_SERVER['DOCUMENT_ROOT'] == $document_root) {
     $best = '%{DOCUMENT_ROOT}';
   }
-  $description = t("Value of $best is recommended for this server.");
+  $description = t('Value of %best is recommended for this server.', array('%best' => $best));
   if (!isset($best)) {
     $best = $document_root;
     $description .= t(' Please open an boost issue on drupal.org, since apache and php are not configured correctly.');
@@ -944,7 +944,7 @@ function boost_count_core_db($all = FALS
 /**
  * Flushes boost page cache
  */
-function boost_clear_cache_submit () {
+function boost_clear_cache_submit() {
   if (boost_cache_clear_all()) {
     drupal_set_message(t('Boost: Static page cache cleared.'));
   }
@@ -957,19 +957,19 @@ function boost_clear_cache_submit () {
 /**
  * Flushes all expired pages from database
  */
-function boost_clear_expired_cache_submit () {
+function boost_clear_expired_cache_submit() {
   if (boost_cache_db_expire()) {
     drupal_set_message(t('Boost: Expired stale files from static page cache.'));
   }
   else {
-   drupal_set_message(t('Boost: Set "Ignore cache flushing:" to \'Disabled\' OR \'Only Ignore Complete Flushes\' in the <a href="@link">boost advanced settings</a> & try again.', array('@link' => url('admin/settings/performance/boost', array('fragment' => 'edit-boost-ignore-flush-0-wrapper')))), 'warning');
+    drupal_set_message(t('Boost: Set "Ignore cache flushing:" to \'Disabled\' OR \'Only Ignore Complete Flushes\' in the <a href="@link">boost advanced settings</a> & try again.', array('@link' => url('admin/settings/performance/boost', array('fragment' => 'edit-boost-ignore-flush-0-wrapper')))), 'warning');
   }
 }
 
 /**
  * Flushes core page cache
  */
-function boost_clear_core_page_cache_submit () {
+function boost_clear_core_page_cache_submit() {
   cache_clear_all('*', 'cache_page', TRUE);
   drupal_set_message(t('Core page cache cleared.'));
 }
@@ -977,7 +977,7 @@ function boost_clear_core_page_cache_sub
 /**
  * Resets boost database & cache
  */
-function boost_reset_database_submit () {
+function boost_reset_database_submit() {
   if (boost_cache_clear_all()) {
     db_query("TRUNCATE {boost_cache}");
     db_query("TRUNCATE {boost_cache_settings}");
@@ -1020,10 +1020,10 @@ function boost_reset_crawler_submit() {
  */
 function boost_array_find($needle, $haystack, $a_not = array()) {
   $out = array();
-  foreach($haystack as $key=>$value) {
+  foreach ($haystack as $key => $value) {
     if ($value == $needle) {
       $good = TRUE;
-      foreach($a_not as $not) {
+      foreach ($a_not as $not) {
         if (strpos($key, $not) !== FALSE) {
           $good = FALSE;
         }
Index: boost.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/boost/boost.install,v
retrieving revision 1.2.2.1.2.3.2.48
diff -u -p -r1.2.2.1.2.3.2.48 boost.install
--- boost.install	30 Sep 2009 09:17:31 -0000	1.2.2.1.2.3.2.48
+++ boost.install	1 Oct 2009 09:57:26 -0000
@@ -81,7 +81,7 @@ function boost_requirements($phase) {
         $crawler_response = drupal_http_request(BOOST_CRAWLER_SELF . '&test=1');
         $crawler_response = $crawler_response->code;
       }
-      foreach($cache_directories as $cache_directory) {
+      foreach ($cache_directories as $cache_directory) {
         _boost_mkdir_p($cache_directory);
         $root_file = file_put_contents($cache_directory . '/' . variable_get('boost_root_file', '.boost'), $cache_directory);
         if (!is_dir($cache_directory)) {
@@ -120,7 +120,7 @@ function boost_requirements($phase) {
       if (!boost_chk_module_versions()) {
         $requirements['boost_other_modules'] = array(
           'title'       => $t('Boost'),
-          'description' => $t('You need to get a newer version of <a href="@url">poormanscron</a>, most likely the latest dev.', array('@url' => "http://drupal.org/project/poormanscron")),
+          'description' => $t('You need to get a newer version of <a href="@url">poormanscron</a>, most likely the latest dev, or the 2.0 branch.', array('@url' => "http://drupal.org/project/poormanscron")),
           'severity'    => REQUIREMENT_ERROR,
           'value'       => $t('poormanscron is the wrong version'),
         );
@@ -128,13 +128,7 @@ function boost_requirements($phase) {
       if (variable_get('language_negotiation', LANGUAGE_NEGOTIATION_NONE) == LANGUAGE_NEGOTIATION_PATH) {
         $requirements['boost_language'] = array(
           'title'       => $t('Boost'),
-          'description' => $t('Boost is not compatible with '.
-            '<a href="!url">language negotiation</a> set to "language '.
-            'fallback".  An anonymous user with their browser set to a '.
-            "language other than the site's default language will navigate ".
-            "to a non-cached page.  The page will be displayed in the user's ".
-            'browser language.  Boost will cache the non-default-language '.
-            'page. ', array('!url' => url('admin/settings/language/configure'))),
+          'description' => $t('Boost is not compatible with <a href="!url">language negotiation</a> set to "language fallback".  An anonymous user with their browser set to a language other than the site\'s default language will navigate to a non-cached page.  The page will be displayed in the user\'s browser language.  Boost will cache the non-default-language page. ', array('!url' => url('admin/settings/language/configure'))),
           'severity'    => REQUIREMENT_ERROR,
           'value'       => $t('Cannot use "language fallback" language negotiation'),
         );
@@ -694,8 +688,8 @@ function boost_update_6109() {
 }
 
 /**
-* Update 6110 - Flush core caches
-*/
+ * Update 6110 - Flush core caches
+ */
 function boost_update_6110() {
   // Flush caches, needed since the menus where changed around.
   drupal_flush_all_caches();
Index: boost.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/boost/boost.module,v
retrieving revision 1.3.2.2.2.5.2.162
diff -u -p -r1.3.2.2.2.5.2.162 boost.module
--- boost.module	30 Sep 2009 19:57:36 -0000	1.3.2.2.2.5.2.162
+++ boost.module	1 Oct 2009 09:57:26 -0000
@@ -407,7 +407,7 @@ function boost_nodeapi(&$node, $op, $tea
 function boost_votingapi_insert($votes) {
   if (!BOOST_ENABLED) return;
 
-  foreach($votes as $vote) {
+  foreach ($votes as $vote) {
     $node = node_load($vote['content_id']);
     boost_expire_node($node);
   }
@@ -422,7 +422,7 @@ function boost_votingapi_insert($votes) 
 function boost_votingapi_delete($votes) {
   if (!BOOST_ENABLED) return;
 
-  foreach($votes as $vote) {
+  foreach ($votes as $vote) {
     $node = node_load($vote['content_id']);
     boost_expire_node($node);
   }
@@ -447,10 +447,10 @@ function boost_expire_node($node) {
   if (module_exists('taxonomy') && BOOST_FLUSH_NODE_TERMS) {
     $tids = boost_taxonomy_node_get_tids($node->nid);
     $filenames = array();
-    foreach($tids as $tid) {
+    foreach ($tids as $tid) {
       $filenames = array_merge($filenames, boost_get_db_term($tid));
     }
-    foreach($filenames as $filename) {
+    foreach ($filenames as $filename) {
       boost_cache_kill($filename);
     }
   }
@@ -576,10 +576,7 @@ function boost_block($op = 'list', $delt
             if (boost_is_cached($GLOBALS['_boost_path'])) {
               $ttl = boost_db_get_ttl(boost_file_path($GLOBALS['_boost_path']));
               $output = t('This page is being served to anonymous visitors from the static page cache.') . ' ';
-              $output .= t($ttl < 0 ?
-                '<strong>The cached copy expired %interval ago.</strong>' :
-                'The cached copy will expire in %interval.',
-                array('%interval' => format_interval(abs($ttl))));
+              $output .= $ttl < 0 ? t('<strong>The cached copy expired %interval ago.</strong>', array('%interval' => format_interval(abs($ttl)))) : t('The cached copy will expire in %interval.', array('%interval' => format_interval(abs($ttl))));
               $output .=  drupal_get_form('boost_block_flush_form');
             }
             $error = FALSE;
@@ -896,11 +893,10 @@ function _boost_ob_handler() {
   }
 
 
-  // Check the currently set content type and the HTTP response code. We're
-  // going to be exceedingly conservative here and only cache 'text' pages that
-  // were output with a 200 OK status. If it didn't get a 200 then remove that
-  // entry from the cache.
-  if ($GLOBALS['_boost_cache_this'] && strlen($buffer) > 0) {
+  // Check the currently set content type and the HTTP response code. only cache
+  // 'text/*' pages that were output with a 200 OK status. If it didn't get a
+  // 200 then TODO: remove that entry from the cache.
+  if ($GLOBALS['_boost_cache_this'] && !empty($buffer) > 0) {
     switch (_boost_get_content_type()) {
       case 'text/html':
         if (boost_check_http_status()) {
@@ -1039,7 +1035,7 @@ function _boost_get_http_header($regex, 
  */
 function boost_is_cacheable($path) {
   $path = (empty($path)) ? variable_get('site_frontpage', 'node') : $path;
-  $normal_path = drupal_get_normal_path($path); // normalize pathW
+  $normal_path = drupal_get_normal_path($path); // normalize path
   $full = $normal_path . '-' . $GLOBALS['_boost_query'];
 
   // Never cache
@@ -1081,7 +1077,7 @@ function boost_is_cacheable($path) {
   // http://en.wikipedia.org/wiki/Filename#Reserved_characters_and_words
   // " * : < > |
   $chars = '"*:<>|';
-  if (stristr(PHP_OS, 'WIN') && preg_match("/[".$chars."]/", $full)) {
+  if (stristr(PHP_OS, 'WIN') && preg_match("/[" . $chars . "]/", $full)) {
     return FALSE;
   }
 
@@ -1589,9 +1585,9 @@ function boost_get_settings_db($router_i
  * Returns all cached pages associated with the taxonomy term.
  */
 function boost_get_db_term($term) {
- $filenames = array();
- $result = db_query("SELECT filename FROM {boost_cache} WHERE expire > 0 AND page_id = %d AND page_callback = 'taxonomy'", $term);
- while ($filename = db_fetch_array($result)) {
+  $filenames = array();
+  $result = db_query("SELECT filename FROM {boost_cache} WHERE expire > 0 AND page_id = %d AND page_callback = 'taxonomy'", $term);
+  while ($filename = db_fetch_array($result)) {
     $filenames[] = $filename['filename'];
   }
   return $filenames;
@@ -1893,7 +1889,7 @@ function boost_cache_css_js_files($buffe
  * Based on return_array() By Matthew Ruivo (mruivo at gmail)
  * (http://www.php.net/manual/en/function.print-r.php#73436)
  */
-function boost_print_r($var, $return = false, $html = false, $level = 0) {
+function boost_print_r($var, $return = FALSE, $html = FALSE, $level = 0) {
   $spaces = "";
   $space = $html ? "&nbsp;" : " ";
   $newline = $html ? "<br />" : "\n";
@@ -1908,15 +1904,15 @@ function boost_print_r($var, $return = f
     $title = "Array";
   }
   elseif (is_object($var)) {
-    $title = get_class($var)." Object";
+    $title = get_class($var) . " Object";
   }
   $output = $title . $newline . $newline;
 
   // Recursive boost_print_r
-  foreach($var as $key => $value) {
+  foreach ($var as $key => $value) {
     if (is_array($value) || is_object($value)) {
       $level++;
-      $value = boost_print_r($value, true, $html, $level);
+      $value = boost_print_r($value, TRUE, $html, $level);
       $level--;
     }
     $output .= $tabs . "[" . $key . "] => " . $value . $newline;
@@ -1938,10 +1934,10 @@ function boost_print_r($var, $return = f
  */
 function boost_glue_url($parsed) {
   if (!is_array($parsed)) {
-    return false;
+    return FALSE;
   }
 
-  $uri = isset($parsed['scheme']) ? $parsed['scheme'] . ':' . ((strtolower($parsed['scheme']) == 'mailto') ? '' : '//') : '';
+  $uri = isset($parsed['scheme']) ? $parsed['scheme'] . ':' . ((drupal_strtolower($parsed['scheme']) == 'mailto') ? '' : '//') : '';
   $uri .= isset($parsed['user']) ? $parsed['user'] . (isset($parsed['pass']) ? ': ' . $parsed['pass'] : '') . '@' : '';
   $uri .= isset($parsed['host']) ? $parsed['host'] : '';
   $uri .= isset($parsed['port']) ? ':' . $parsed['port'] : '';
@@ -2152,7 +2148,7 @@ function _boost_get_menu_router() {
   $original_map = arg(NULL, $_GET['q']);
   $parts = array_slice($original_map, 0, MENU_MAX_PARTS);
   list($ancestors, $placeholders) = menu_get_ancestors($parts);
-  $router_item = db_fetch_array(db_query_range('SELECT page_callback, page_arguments FROM {menu_router} WHERE path IN ('. implode (',', $placeholders) .') ORDER BY fit DESC', $ancestors, 0, 1));
+  $router_item = db_fetch_array(db_query_range('SELECT page_callback, page_arguments FROM {menu_router} WHERE path IN ('. implode(',', $placeholders) .') ORDER BY fit DESC', $ancestors, 0, 1));
   $router_item['page_arguments'] = unserialize($router_item['page_arguments']);
   // Handle nodes
   if (arg(0) == 'node' && is_numeric(arg(1))) {
@@ -2269,7 +2265,7 @@ function _boost_rmdir_rf($dirname, $flus
             $empty = FALSE;
           }
         }
-        else if (is_file($file) || is_link($file)) {
+        elseif (is_file($file) || is_link($file)) {
           if (!$flush && !boost_db_is_expired($file)) {
             $empty = FALSE;
             continue;
@@ -2346,7 +2342,7 @@ ETO;
  * Inject iframe gzip cookie test.
  */
 function _boost_gzip_test_inject_iframe($data) {
- return str_replace('</body>', '<iframe src="/boost-gzip-cookie-test.html" style="width:0px; height:0px; border: 0px"></iframe>' . "\n" . '</body>', $data);
+  return str_replace('</body>', '<iframe src="/boost-gzip-cookie-test.html" style="width:0px; height:0px; border: 0px"></iframe>' . "\n" . '</body>', $data);
 }
 
 /**
@@ -2519,8 +2515,8 @@ function boost_crawler_run($expire = -1)
 
     // Start the clock on first run
     if (!_boost_variable_get('boost_crawler_start_time')) {
-     _boost_variable_set('boost_crawler_start_time', BOOST_TIME);
-     _boost_variable_set('boost_crawler_number_of_threads', (int)$threads);
+      _boost_variable_set('boost_crawler_start_time', BOOST_TIME);
+      _boost_variable_set('boost_crawler_number_of_threads', (int)$threads);
       // Clock in
       _boost_variable_set('boost_crawler_thread_num_' . $this_thread , BOOST_TIME);
       if (BOOST_VERBOSE >= 5) {
@@ -2639,7 +2635,7 @@ function boost_crawler_run($expire = -1)
   elseif (boost_crawler_threads_alive() || _boost_variable_get('boost_crawler_sleeping')) {
     if (BOOST_VERBOSE >= 3) {
       watchdog('boost', 'Crawler already running');
-     }
+    }
     drupal_set_message(t('Boost: Crawler is already running. Attempt to start crawler failed.'), 'warning');
   }
   elseif (!BOOST_CRAWL_ON_CRON) {
@@ -2649,7 +2645,7 @@ function boost_crawler_run($expire = -1)
   elseif (variable_get('cron_semaphore', FALSE) == TRUE) {
     // This function called from cron; reset & call self.
     if (BOOST_VERBOSE >= 5) {
-      watchdog('boost', 'Crawler Start ' . $self);
+      watchdog('boost', 'Crawler Start %self', array('%self' => $self));
     }
     db_query('TRUNCATE {boost_crawler}');
     variable_set('boost_crawler_position', 0);
@@ -2682,7 +2678,8 @@ function boost_crawler_run($expire = -1)
  * @param $content_type
  *  string - Content type header.
  */
-function boost_async_opp($output, $wait = TRUE, $content_type = "text/html") {
+function boost_async_opp($output, $wait = TRUE, $content_type = "text/html", $lenght = 0) {
+  $lenght = ($length == 0) ? (strlen($output)-1) : $length;
   // Prime php for background operations
   while (ob_get_level()) {
     ob_end_clean();
@@ -2696,19 +2693,9 @@ function boost_async_opp($output, $wait 
   header("Expires: Sun, 19 Nov 1978 05:00:00 GMT");
   header("Cache-Control: no-cache");
   header("Cache-Control: must-revalidate");
-  if ($content_type == 'image/gif') {
-    header("Content-Length: 43");
-  }
-  else {
-    header("Content-Length: " . (strlen($output)-1));
-  }
+  header("Content-Length: " . $lenght);
   header("Connection: close");
-  if ($content_type == 'image/gif') {
-    printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",71,73,70,56,57,97,1,0,1,0,128,255,0,192,192,192,0,0,0,33,249,4,1,0,0,0,0,44,0,0,0,0,1,0,1,0,0,2,2,68,1,0,59);
-  }
-  else {
-    print($output);
-  }
+  print($output);
   ob_end_flush();
   flush();
   // wait for 1 second
@@ -2795,10 +2782,10 @@ function boost_crawler_add_to_table($pus
 function boost_crawler_count($push_setting, $extension, $expire) {
   if ($push_setting) {
     if ($expire && BOOST_LOOPBACK_BYPASS) {
-      return db_result(db_query("SELECT COUNT(*) FROM {boost_cache} WHERE push != 0 AND extension = '%s' AND expire BETWEEN 0 AND %d", $extension, BOOST_TIME));
+      return db_result(db_query("SELECT COUNT(*) FROM {boost_cache} WHERE push <> 0 AND extension = '%s' AND expire BETWEEN 0 AND %d", $extension, BOOST_TIME));
     }
     else {
-      return db_result(db_query("SELECT COUNT(*) FROM {boost_cache} WHERE push != 0 AND extension = '%s' AND expire = 0", $extension));
+      return db_result(db_query("SELECT COUNT(*) FROM {boost_cache} WHERE push <> 0 AND extension = '%s' AND expire = 0", $extension));
     }
   }
   else {
Index: boost.test
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/boost/Attic/boost.test,v
retrieving revision 1.1.2.1
diff -u -p -r1.1.2.1 boost.test
--- boost.test	25 Oct 2008 00:53:08 -0000	1.1.2.1
+++ boost.test	1 Oct 2009 09:57:26 -0000
@@ -1,6 +1,11 @@
 <?php
 // $Id: boost.test,v 1.1.2.1 2008/10/25 00:53:08 arto Exp $
 
+/**
+ * @file
+ * Boost unit testings; currently very incomplete.
+ */
+
 //////////////////////////////////////////////////////////////////////////////
 // Unit tests for Simpletest 2.x
 
Index: stats/boost_stats.ajax.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/boost/stats/Attic/boost_stats.ajax.inc,v
retrieving revision 1.1.2.5
diff -u -p -r1.1.2.5 boost_stats.ajax.inc
--- stats/boost_stats.ajax.inc	24 Sep 2009 10:35:24 -0000	1.1.2.5
+++ stats/boost_stats.ajax.inc	1 Oct 2009 09:57:26 -0000
@@ -2,12 +2,17 @@
 // $Id: boost_stats.ajax.inc,v 1.1.2.5 2009/09/24 10:35:24 mikeytown2 Exp $
 
 /**
+ * @file
+ * Boost & core stats logic
+ */
+
+/**
  * AJAX Menu Callback.
  */
 function boost_stats_ajax_callback() {
   if (!isset($_GET['js'])) {
     // stats not called via JS, send image out & close connection.
-    boost_async_opp('1px image', TRUE, 'image/gif');
+    boost_async_opp("\x47\x49\x46\x38\x39\x61\x1\x0\x1\x0\x80\xff\x0\xc0\xc0\xc0\x0\x0\x0\x21\xf9\x4\x1\x0\x0\x0\x0\x2c\x0\x0\x0\x0\x1\x0\x1\x0\x0\x2\x2\x44\x1\x0\x3b", TRUE, 'image/gif', 43);
   }
 
   // Exit if nothing was passed to this.
Index: stats/boost_stats.php
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/boost/stats/Attic/boost_stats.php,v
retrieving revision 1.1.2.11
diff -u -p -r1.1.2.11 boost_stats.php
--- stats/boost_stats.php	12 Sep 2009 23:03:58 -0000	1.1.2.11
+++ stats/boost_stats.php	1 Oct 2009 09:57:26 -0000
@@ -1,6 +1,11 @@
 <?php
 // $Id: boost_stats.php,v 1.1.2.11 2009/09/12 23:03:58 mikeytown2 Exp $
 
+/**
+ * @file
+ * Place in webroot, for faster stats if needed.
+ */
+
 if (!isset($_GET['js'])) {
   // stats not called via JS, send image out & close connection.
   boost_stats_async_image();
Index: translations/boost.pot
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/boost/translations/Attic/boost.pot,v
retrieving revision 1.1.2.1
diff -u -p -r1.1.2.1 boost.pot
--- translations/boost.pot	28 Oct 2008 10:48:45 -0000	1.1.2.1
+++ translations/boost.pot	1 Oct 2009 09:57:27 -0000
@@ -1,19 +1,18 @@
-# $Id: boost.pot,v 1.1.2.1 2008/10/28 10:48:45 arto Exp $
+# $Id$
 #
 # LANGUAGE translation of Drupal (general)
 # Copyright YEAR NAME <EMAIL@ADDRESS>
 # Generated from files:
-#  boost.admin.inc,v 1.1.2.1.2.1 2007/08/06 14:48:24 arto
-#  boost.api.inc,v 1.3.2.1.2.1 2007/08/06 14:48:24 arto
-#  boost.module,v 1.3.2.2.2.1 2007/08/06 14:48:24 arto
-#  boost.info,v 1.1.2.1.2.1 2007/08/06 14:48:24 arto
-#  boost.install,v 1.2.2.1.2.1 2007/08/06 14:48:24 arto
+#  boost.admin.inc,v 1.1.2.1.2.3.2.79 2009/09/30 09:17:31 mikeytown2
+#  boost.module,v 1.3.2.2.2.5.2.162 2009/09/30 19:57:36 mikeytown2
+#  boost.install,v 1.2.2.1.2.3.2.48 2009/09/30 09:17:31 mikeytown2
+#  boost.info,v 1.1.2.1.2.3.2.1 2008/10/24 23:10:23 arto
 #
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2007-12-03 20:55+0100\n"
+"POT-Creation-Date: 2009-10-01 02:38-0700\n"
 "PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
 "Last-Translator: NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <EMAIL@ADDRESS>\n"
@@ -22,144 +21,956 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
 
+#: boost.admin.inc:19
+msgid "Anonymous page caching"
+msgstr ""
+
+#: boost.admin.inc:20;94
+msgid "Gzip page compression (Boost & Core)"
+msgstr ""
+
 #: boost.admin.inc:21
-msgid "Static page cache"
+msgid "The page must first be visited by an anonymous user in order for the cache to work on subsequent requests for that page. Boost & Core caching do not work for logged in users."
+msgstr ""
+
+#: boost.admin.inc:24
+msgid "Clear core page cached data: !count pages"
+msgstr ""
+
+#: boost.admin.inc:41;46;683;692;700;949
+msgid "Boost: Static page cache cleared."
+msgstr ""
+
+#: boost.admin.inc:57
+msgid "Static page cache (boost) and all other caches cleared."
+msgstr ""
+
+#: boost.admin.inc:61
+msgid "Boost: Static page cache NOT cleared. To clear Boosts cache set \"Ignore cache flushing:\" to 'Disabled' in the <a href=\"@link\">boost advanced settings</a> & try again."
 msgstr ""
 
-#: boost.admin.inc:23
+#: boost.admin.inc:62
+msgid "All other caches cleared."
+msgstr ""
+
+#: boost.admin.inc:75 boost.module:659
+msgid "none"
+msgstr ""
+
+#: boost.admin.inc:79
+msgid "Boost File Cache"
+msgstr ""
+
+#: boost.admin.inc:83
+msgid "Boost - Static page cache"
+msgstr ""
+
+#: boost.admin.inc:86;96;362;456
 msgid "Disabled"
 msgstr ""
 
-#: boost.admin.inc:24
+#: boost.admin.inc:87;96;363
 msgid "Enabled"
 msgstr ""
 
-#: boost.admin.inc:25
-msgid "Static page caching is a mechanism which stores dynamically generated web pages as HTML files in a special cache directory located under the Drupal installation directory. By caching a web page in this manner, the web server can serve it out in the fastest possible manner, without invoking PHP or Drupal at all. While this does provide a significant performance and scalability boost, you should note that it could have negative usability side-effects unless your site is targeted at an audience consisting mostly of \"anonymous\" visitors."
+#: boost.admin.inc:88
+msgid "(Not Recommended) Set Boost & Core (if enabled) cache for each page"
 msgstr ""
 
-#: boost.admin.inc:28
-msgid "On high-traffic sites it can become necessary to enforce a minimum cache lifetime. The minimum cache lifetime is the minimum amount of time that will go by before the cache is emptied and recreated. A larger minimum cache lifetime offers better performance, but users will not see new content for a longer period of time."
+#: boost.admin.inc:90
+msgid "Static page caching is a mechanism that stores dynamically generated web pages as HTML files in a special cache directory located under the Drupal installation directory. By caching a web page in this manner, the web server can serve it out in the fastest possible manner, without invoking PHP or Drupal at all. While this does provide a significant performance and scalability boost, you should note that it could have negative usability side-effects unless your site is targeted at an audience consisting mostly of \"anonymous\" visitors."
 msgstr ""
 
-#: boost.admin.inc:33
-msgid "Cache file path"
+#: boost.admin.inc:97
+msgid "By default, Drupal compresses the pages it caches in order to save bandwidth and improve download times. This option should be disabled when using a webserver that performs compression."
+msgstr ""
+
+#: boost.admin.inc:101
+msgid "Boost - HTML - Default minimum cache lifetime"
 msgstr ""
 
-#: boost.admin.inc:38
-msgid "A file system path where the cache files will be stored. This directory has to exist and be writable by Drupal. The default setting is to store the files in a directory named 'cache' under the Drupal installation directory. If you change this, you must also change the URL rewrite rules in your web server configuration (.htaccess for Apache, lighttpd.conf for Lighttpd), or caching will not work."
+#: boost.admin.inc:104;112;120
+msgid "Enable the caching of this content type to enable this selection box."
 msgstr ""
 
-#: boost.admin.inc:54
+#: boost.admin.inc:104;112;120
+msgid "The minimum cache lifetime is the minimum amount of time that will elapse before the cache is emptied. Cache lifetime gets checked on cron runs."
+msgstr ""
+
+#: boost.admin.inc:109
+msgid "Boost - XML - Default minimum cache lifetime"
+msgstr ""
+
+#: boost.admin.inc:117
+msgid "Boost - JSON - Default minimum cache lifetime"
+msgstr ""
+
+#: boost.admin.inc:125
+msgid "Clear ALL Boost cached data: !count pages"
+msgstr ""
+
+#: boost.admin.inc:130
+msgid "Clear Boost expired data: !count pages"
+msgstr ""
+
+#: boost.admin.inc:135
 msgid "Cache every page except the listed pages."
 msgstr ""
 
-#: boost.admin.inc:54
+#: boost.admin.inc:135
 msgid "Cache only the listed pages."
 msgstr ""
 
-#: boost.admin.inc:55
-msgid "Enter one page per line as Drupal paths. The '*' character is a wildcard. Example paths are '%blog' for the blog page and %blog-wildcard for every personal blog. %front is the front page."
+#: boost.admin.inc:136
+msgid "Enter one page per line as Drupal paths. The '*' character is a wild-card. Example paths are '%blog' for the blog page and %blog-wild-card for every personal blog. %front is the front page."
 msgstr ""
 
-#: boost.admin.inc:57
+#: boost.admin.inc:138
 msgid "Cache pages for which the following PHP code returns <code>TRUE</code> (PHP-mode, experts only)."
 msgstr ""
 
-#: boost.admin.inc:58
+#: boost.admin.inc:139
 msgid "If the PHP-mode is chosen, enter PHP code between %php. Note that executing incorrect PHP-code can severely break your Drupal site."
 msgstr ""
 
-#: boost.admin.inc:62
-msgid "Cacheability settings"
+#: boost.admin.inc:143
+msgid "Boost cacheability settings"
+msgstr ""
+
+#: boost.admin.inc:147
+msgid "Cache pages that contain URL Variables"
+msgstr ""
+
+#: boost.admin.inc:149
+msgid "Boost will cache pages that end with \"?page=1\" among others (anything with a \"?\" in the url)."
+msgstr ""
+
+#: boost.admin.inc:153
+msgid "Cache html documents/pages"
+msgstr ""
+
+#: boost.admin.inc:155
+msgid "Boost will cache most drupal pages."
+msgstr ""
+
+#: boost.admin.inc:159
+msgid "Cache .xml & /feed"
+msgstr ""
+
+#: boost.admin.inc:161
+msgid "Boost will cache .xml and /feed urls as xml data."
+msgstr ""
+
+#: boost.admin.inc:165
+msgid "Cache ajax/json"
+msgstr ""
+
+#: boost.admin.inc:167
+msgid "Boost will cache ajax/json responses."
+msgstr ""
+
+#: boost.admin.inc:171
+msgid "Cache .css"
+msgstr ""
+
+#: boost.admin.inc:173
+msgid "Boost will cache CSS files."
 msgstr ""
 
-#: boost.admin.inc:67
-msgid "Cache specific pages"
+#: boost.admin.inc:177
+msgid "Cache .js"
 msgstr ""
 
-#: boost.admin.inc:73
+#: boost.admin.inc:179
+msgid "Boost will cache javascript files."
+msgstr ""
+
+#: boost.admin.inc:183
+msgid "Statically cache specific pages"
+msgstr ""
+
+#: boost.admin.inc:189
 msgid "Pages"
 msgstr ""
 
-#: boost.admin.inc:94
-msgid "Advanced settings"
+#: boost.admin.inc:198
+msgid "Boost directories and file extensions"
+msgstr ""
+
+#: boost.admin.inc:202
+msgid "Cache Dir"
+msgstr ""
+
+#: boost.admin.inc:207 boost.module:120
+msgid ""
+msgstr ""
+
+#: boost.admin.inc:211
+msgid "Do not store the cache file path in the database"
+msgstr ""
+
+#: boost.admin.inc:213
+msgid "Enabling will allow for correct multi-site caching, in cases where different content is served from the same Drupal installation, based on domain. Examples: Multi-site with a single/shared database, site translation detection based on domain, and the contributed \"Domain Access\" module."
+msgstr ""
+
+#: boost.admin.inc:226
+msgid "Cache file path"
+msgstr ""
+
+#: boost.admin.inc:231
+msgid "A file system path where the static cache files will be stored. This directory has to exist and be writable by Drupal. The default setting is to store the files in a directory named %default-path under the Drupal installation directory. If you change this, you must also change the URL rewrite rules in your web server configuration (.htaccess for Apache, lighttpd.conf for Lighttpd), or caching will not work."
+msgstr ""
+
+#: boost.admin.inc:238
+msgid "Generated output storage (HTML, XML, AJAX)"
 msgstr ""
 
-#: boost.admin.inc:100
-msgid "Cache file extension"
+#: boost.admin.inc:242
+msgid "Dir for non compressed files"
 msgstr ""
 
-#: boost.admin.inc:105
+#: boost.admin.inc:246;254;310;318
+msgid "Leave blank to not use a subdir"
+msgstr ""
+
+#: boost.admin.inc:250
+msgid "Dir for compressed files"
+msgstr ""
+
+#: boost.admin.inc:258
+msgid "Character used to replace \"?\""
+msgstr ""
+
+#: boost.admin.inc:263;327
+msgid "Best to leave at _"
+msgstr ""
+
+#: boost.admin.inc:268
+msgid "Cache html file extension"
+msgstr ""
+
+#: boost.admin.inc:273
 msgid "The file extension to append to the file name of the generated cache files. Note that this setting is of no relevance to any public URLs, and it is strongly recommended to leave this as the default '.html' unless you know what you are doing. If you change this, you must also change the URL rewrite rules in your web server configuration (.htaccess for Apache, lighttpd.conf for Lighttpd), or caching will not work."
 msgstr ""
 
-#: boost.admin.inc:109
-msgid "Page fetch method"
+#: boost.admin.inc:279
+msgid "Cache xml file extension"
+msgstr ""
+
+#: boost.admin.inc:284
+msgid "The file extension to append to the file name of the generated cache files. Note that this setting is of no relevance to any public URLs, and it is strongly recommended to leave this as the default '.xml' unless you know what you are doing. If you change this, you must also change the URL rewrite rules in your web server configuration (.htaccess for Apache, lighttpd.conf for Lighttpd), or caching will not work."
 msgstr ""
 
-#: boost.admin.inc:111
-msgid "PHP fopen() wrapper"
+#: boost.admin.inc:290
+msgid "Cache ajax/json file extension"
 msgstr ""
 
-#: boost.admin.inc:111
-msgid "Wget shell command"
+#: boost.admin.inc:295;348
+msgid "The file extension to append to the file name of the generated cache files. Note that this setting is of no relevance to any public URLs, and it is strongly recommended to leave this as the default '.js' unless you know what you are doing. If you change this, you must also change the URL rewrite rules in your web server configuration (.htaccess for Apache, lighttpd.conf for Lighttpd), or caching will not work."
 msgstr ""
 
-#: boost.admin.inc:111
-msgid "curl shell command"
+#: boost.admin.inc:302
+msgid "Static storage (CSS, JS)"
 msgstr ""
 
-#: boost.admin.inc:112
-msgid "The method used to retrieve the contents of the Drupal pages to be cached. The default should work in most cases."
+#: boost.admin.inc:306
+msgid "Dir for more permanent files (css/js)"
 msgstr ""
 
-#: boost.admin.inc:116
+#: boost.admin.inc:314
+msgid "Dir for compressed more permanent files (css/js)"
+msgstr ""
+
+#: boost.admin.inc:322
+msgid "Character used to replace \"?\" in the permanent dir"
+msgstr ""
+
+#: boost.admin.inc:332
+msgid "Cache css file extension"
+msgstr ""
+
+#: boost.admin.inc:337
+msgid "The file extension to append to the file name of the generated cache files. Note that this setting is of no relevance to any public URLs, and it is strongly recommended to leave this as the default '.css' unless you know what you are doing. If you change this, you must also change the URL rewrite rules in your web server configuration (.htaccess for Apache, lighttpd.conf for Lighttpd), or caching will not work."
+msgstr ""
+
+#: boost.admin.inc:343
+msgid "Cache javascript file extension"
+msgstr ""
+
+#: boost.admin.inc:355
+msgid "Boost advanced settings"
+msgstr ""
+
+#: boost.admin.inc:359
+msgid "Clear expired pages on cron runs"
+msgstr ""
+
+#: boost.admin.inc:365
+msgid "Caution - If disabled you will need some other method of clearing cached pages. If Disabled, files have to be manually deleted from server or cleared using the administrative interface (<a href=\"@blocks\">Enable</a> the <a href=\"@status\">Boost: Pages cache status</a> block)."
+msgstr ""
+
+#: boost.admin.inc:369
+msgid "Check database timestamps for any site changes. Only if theres been a change will boost flush the expired content on cron."
+msgstr ""
+
+#: boost.admin.inc:374
 msgid "Pre-process function"
 msgstr ""
 
-#: boost.admin.inc:119
+#: boost.admin.inc:377
 msgid "The name of a PHP function used to pre-process the contents of each page before writing them out to static files. The function is called with the contents of the page passed as a string argument, and its return value is used as the data written out to the disk."
 msgstr ""
 
-#: boost.api.inc:138
-msgid "Unable to write file: %file"
+#: boost.admin.inc:381
+msgid "Only allow ASCII characters in path"
+msgstr ""
+
+#: boost.admin.inc:383
+msgid "Only allowing ACSII characters is a safe way to cache pages. It severely limits i18n support so this can be turned off. Fair warning, disabling this may cause \"page not found\" errors depending on your url structure (spaces are bad, ect...). If you follow RFC 3986 you should be ok."
+msgstr ""
+
+#: boost.admin.inc:387
+msgid "Asynchronous Operation: output HTML, close connection, then store static file."
+msgstr ""
+
+#: boost.admin.inc:389
+msgid "Run php in the background. When a cached page is generated, this will allow for faster page generation; downside is the headers are not the standard ones outputted by drupal; sends \"Connection: close\" instead of \"Connection: Keep-Alive\"."
+msgstr ""
+
+#: boost.admin.inc:393
+msgid "Clear all empty folders from cache."
+msgstr ""
+
+#: boost.admin.inc:395
+msgid "Disable this if you have to set settings for each dir/subdir, due to the way your server operates (permissions, etc...)."
+msgstr ""
+
+#: boost.admin.inc:399
+msgid "Clear all cached terms pages associated with a node on insert/update/delete"
+msgstr ""
+
+#: boost.admin.inc:401
+msgid "Works with view's taxonomy/term/% path as well as core."
+msgstr ""
+
+#: boost.admin.inc:405
+msgid "Clear Boosts cache when site goes offline"
+msgstr ""
+
+#: boost.admin.inc:407
+msgid "Under site maintenance when the status is set to offline, boost clears its cache. If you do not want this to happen, clear this checkbox. Pages that are not cached will still send out a Site off-line message, so be smart if turning this off."
+msgstr ""
+
+#: boost.admin.inc:411
+msgid "Overwrite the cached file if it already exits"
+msgstr ""
+
+#: boost.admin.inc:413
+msgid "This is useful if crawling a site before it goes live."
+msgstr ""
+
+#: boost.admin.inc:417
+msgid "Do not cache if php error on page"
+msgstr ""
+
+#: boost.admin.inc:419
+msgid "Selected - Do not cache the page if there are PHP errors. Not Selected - Cache pages even if it might contain errors."
+msgstr ""
+
+#: boost.admin.inc:423
+msgid "Do not cache if a message is on the page"
+msgstr ""
+
+#: boost.admin.inc:425
+msgid "Selected - Do not cache the page if there are drupal messages. Not Selected - Cache pages even if it might contain a drupal message."
+msgstr ""
+
+#: boost.admin.inc:429
+msgid "Turn off clean url's for logged in users"
+msgstr ""
+
+#: boost.admin.inc:431
+msgid "Drupal will output non clean url's for non anonymous users. This allows for the browser to cache the page and still have logging in work. This is more on the extreme side of tweaks."
+msgstr ""
+
+#: boost.admin.inc:435
+msgid "Aggressive Gzip: Deliver gzipped content independent of the request header."
+msgstr ""
+
+#: boost.admin.inc:437
+msgid "In order to deliver gzipped content independent of the header, this will test for gzip compression in a small iframe by sending it compressed content. This compressed content is javascript which creates a cookie with a note of gzip support. On the server side it checks for the cookie and then sends out gzipped content accordingly. See <a href=\"@url\">Website Performance - Activate Gzip</a>. In short some firewalls/proxies mangle the gzip header; this gets around that. iframe is on non compressed version of the frontpage only."
+msgstr ""
+
+#: boost.admin.inc:441
+msgid "Files: Enter in a 4 digit number (octal) that will be used by !link. Example 0664"
+msgstr ""
+
+#: boost.admin.inc:441;447
+msgid "chmod()"
+msgstr ""
+
+#: boost.admin.inc:443;449
+msgid "Sometimes because of funky servers you need it use a different file mode then the default."
+msgstr ""
+
+#: boost.admin.inc:447
+msgid "Directories: Enter in a 4 digit number (octal) that will be used by !link. Example 0775"
+msgstr ""
+
+#: boost.admin.inc:453
+msgid "Ignore cache flushing"
+msgstr ""
+
+#: boost.admin.inc:457
+msgid "Only Ignore Clear Entire Cache Commands (Recommended if caching css/js files)"
+msgstr ""
+
+#: boost.admin.inc:458
+msgid "Ignore Clear Entire Cache Commands & Cron Expiration"
+msgstr ""
+
+#: boost.admin.inc:459
+msgid "Ignore All Delete Commands (Not Recommended)"
+msgstr ""
+
+#: boost.admin.inc:461
+msgid "Make a selection to put your site into a static cached state. Recommend turning on CSS & JS caching if enabled."
+msgstr ""
+
+#: boost.admin.inc:465
+msgid "Watchdog Verbose Setting"
+msgstr ""
+
+#: boost.admin.inc:468
+msgid "1 Record almost no errors"
+msgstr ""
+
+#: boost.admin.inc:469
+msgid "3"
+msgstr ""
+
+#: boost.admin.inc:470
+msgid "5 Record all errors to the db log (watchdog)"
+msgstr ""
+
+#: boost.admin.inc:477
+msgid "Boost crawler"
+msgstr ""
+
+#: boost.admin.inc:481
+msgid "Enable the cron crawler"
+msgstr ""
+
+#: boost.admin.inc:483
+msgid "Pre-cache boosted URL's so they get cached before anyone accesses them. Enable the crawler first and save settings to use Preemptive Cache settings."
+msgstr ""
+
+#: boost.admin.inc:487
+msgid "Do not flush expired content on cron run, instead recrawl and overwrite it."
+msgstr ""
+
+#: boost.admin.inc:489;496;503;510;517
+msgid "Enable the crawler first to enable this checkbox."
+msgstr ""
+
+#: boost.admin.inc:489
+msgid "The \"Overwrite the cached file if it already exits\" must be turned on in order to enable this"
+msgstr ""
+
+#: boost.admin.inc:489
+msgid "Bypass cron cache expiration and load to be expired content in the crawler. Allow this servers IP to bypass the boost cache. Check for fast but potentially stale; uncheck for slow but always fresh."
+msgstr ""
+
+#: boost.admin.inc:494
+msgid "Preemptive Cache HTML"
+msgstr ""
+
+#: boost.admin.inc:496;503;510
+msgid "Enable the caching of this content type to enable this checkbox"
+msgstr ""
+
+#: boost.admin.inc:496;503;510
+msgid "Crawl Site after cron runs, so the cache is primed."
+msgstr ""
+
+#: boost.admin.inc:501
+msgid "Preemptive Cache XML"
+msgstr ""
+
+#: boost.admin.inc:508
+msgid "Preemptive Cache AJAX/JSON"
+msgstr ""
+
+#: boost.admin.inc:515
+msgid "Crawl All URL's in the url_alias table"
+msgstr ""
+
+#: boost.admin.inc:517
+msgid "Preemptively cache all urls found in the Drupal url_alias table. This will crawl that page even if it is not expired. Enable & run cron to get the boost cache loaded."
+msgstr ""
+
+#: boost.admin.inc:522
+msgid "Crawler Throttle"
+msgstr ""
+
+#: boost.admin.inc:524
+msgid "Wait X micro seconds in between hitting each url. 1000000 is 1 second."
+msgstr ""
+
+#: boost.admin.inc:528
+msgid "Crawler Batch Size"
+msgstr ""
+
+#: boost.admin.inc:530
+msgid "Number of URL's each thread grabs per database operation."
 msgstr ""
 
-#: boost.api.inc:150
-msgid "Unable to create symlink: %link to %target"
+#: boost.admin.inc:535
+msgid "Number Of Threads"
 msgstr ""
 
-#: boost.api.inc:138;150 boost.module:52;192;0
+#: boost.admin.inc:547
+msgid "Be careful when choosing more then 2 threads."
+msgstr ""
+
+#: boost.admin.inc:556
+msgid "Boost crawler - Live info"
+msgstr ""
+
+#: boost.admin.inc:560
+msgid "Crawl Rate - Seconds Per Node (highly inaccurate)"
+msgstr ""
+
+#: boost.admin.inc:566
+msgid "Crawl ETA - highly inaccurate"
+msgstr ""
+
+#: boost.admin.inc:572
+msgid "Stop Crawler. !count URL's left."
+msgstr ""
+
+#: boost.admin.inc:579
+msgid "Reset Crawler & Cron Semaphore"
+msgstr ""
+
+#: boost.admin.inc:589
+msgid "Boost Apache .htaccess settings generation"
+msgstr ""
+
+#: boost.admin.inc:590
+msgid "<a href=\"!link\">Explanation of .htaccess variables</a> <br /><br /> <strong>Be sure to save the configuration and then go to the <a href=\"!rules\">htaccess rules generation page</a> and copy the rules.</strong>"
+msgstr ""
+
+#: boost.admin.inc:594
+msgid "Servers URL or Name"
+msgstr ""
+
+#: boost.admin.inc:602
+msgid "Best to leave these as %{}, only try the last option(s) if boost is still not working."
+msgstr ""
+
+#: boost.admin.inc:624
+msgid "Value of %best is recommended for this server."
+msgstr ""
+
+#: boost.admin.inc:627
+msgid " Please open an boost issue on drupal.org, since apache and php are not configured correctly."
+msgstr ""
+
+#: boost.admin.inc:631
+msgid "Document Root"
+msgstr ""
+
+#: boost.admin.inc:640
+msgid "Clear Boost's Database"
+msgstr ""
+
+#: boost.admin.inc:641
+msgid "Warning: This gives you a clean slate for the boost database, use with caution. If you change the directories or file extensions (in \"Boost directories and file extensions\"), then clearing the database would be a good idea, but not required."
+msgstr ""
+
+#: boost.admin.inc:645
+msgid "Reset boost database: !records records"
+msgstr ""
+
+#: boost.admin.inc:675
+msgid "Pre-process function %function() does not exist."
+msgstr ""
+
+#: boost.admin.inc:715
+msgid "Generated Rules"
+msgstr ""
+
+#: boost.admin.inc:719
+msgid "Copy this into your .htaccess file below <pre><tt>  # RewriteBase / </tt></pre> and above <pre><tt>  # Rewrite URLs of the form 'x' to the form 'index.php?q=x'</tt></pre>"
+msgstr ""
+
+#: boost.admin.inc:952;987
+msgid "Boost: Set \"Ignore cache flushing:\" to 'Disabled' in the <a href=\"!link\">boost advanced settings</a> & try again."
+msgstr ""
+
+#: boost.admin.inc:962
+msgid "Boost: Expired stale files from static page cache."
+msgstr ""
+
+#: boost.admin.inc:965
+msgid "Boost: Set \"Ignore cache flushing:\" to 'Disabled' OR 'Only Ignore Complete Flushes' in the <a href=\"@link\">boost advanced settings</a> & try again."
+msgstr ""
+
+#: boost.admin.inc:974
+msgid "Core page cache cleared."
+msgstr ""
+
+#: boost.admin.inc:984
+msgid "Boost: Static page cache & database cleared."
+msgstr ""
+
+#: boost.admin.inc:997
+msgid "Boost: Stop crawler signal given; all crawler threads should be stopped in less then %time"
+msgstr ""
+
+#: boost.admin.inc:1008
+msgid "Boost: Crawler variables reset & cron semaphore cleared (cron reset)"
+msgstr ""
+
+#: boost.module:313
+msgid "Boost: Static page cache cleared. See <a href=\"http://drupal.org/node/276615\">http://drupal.org/node/276615</a> for reason why (core bug that is fixed in 6.14+)."
+msgstr ""
+
+#: boost.module:529
+msgid "Boost: Pages cache status"
+msgstr ""
+
+#: boost.module:535
+msgid "Boost: Pages cache configuration"
+msgstr ""
+
+#: boost.module:541
+msgid "Boost: AJAX core statistics"
+msgstr ""
+
+#: boost.module:551
+msgid "Display Statistics."
+msgstr ""
+
+#: boost.module:553
+msgid "If false, uses Javascript to hide the block via \"parent().parent().hide()\"."
+msgstr ""
+
+#: boost.module:557
+msgid "Cache Statistics Block"
+msgstr ""
+
+#: boost.module:574
+msgid "This page is being served <strong>live</strong> to anonymous visitors, as it is not currently in the static page cache."
+msgstr ""
+
+#: boost.module:578
+msgid "This page is being served to anonymous visitors from the static page cache."
+msgstr ""
+
+#: boost.module:579
+msgid "<strong>The cached copy expired %interval ago.</strong>"
+msgstr ""
+
+#: boost.module:579
+msgid "The cached copy will expire in %interval."
+msgstr ""
+
+#: boost.module:589
+msgid "There are <strong>php errors</strong> or <strong>drupal messages</strong> on this page, preventing boost from caching."
+msgstr ""
+
+#: boost.module:591
+msgid " ERROR: <pre>%error</pre> !link <br /> !performance"
+msgstr ""
+
+#: boost.module:591;880
+msgid "Lookup Error Type"
+msgstr ""
+
+#: boost.module:591;594;880;889
+msgid "Turn Off Error Checking"
+msgstr ""
+
+#: boost.module:594
+msgid " MESSAGES: %msg <br /> !performance"
+msgstr ""
+
+#: boost.module:646
+msgid "Flush Page"
+msgstr ""
+
+#: boost.module:660
+msgid "default"
+msgstr ""
+
+#: boost.module:679
+msgid "Minimum cache lifetime"
+msgstr ""
+
+#: boost.module:682
+msgid "Default: %default"
+msgstr ""
+
+#: boost.module:686
+msgid "Preemptive Cache"
+msgstr ""
+
+#: boost.module:696
+msgid "Scope"
+msgstr ""
+
+#: boost.module:706
+msgid "Set Configuration"
+msgstr ""
+
+#: boost.module:712
+msgid "Page ID"
+msgstr ""
+
+#: boost.module:719
+msgid "id_value"
+msgstr ""
+
+#: boost.module:725
+msgid "Content Type"
+msgstr ""
+
+#: boost.module:732
+msgid "type_value"
+msgstr ""
+
+#: boost.module:738
+msgid "Content Container"
+msgstr ""
+
+#: boost.module:745
+msgid "container_value"
+msgstr ""
+
+#: boost.module:751
+msgid "Delete Configuration"
+msgstr ""
+
+#: boost.module:753
+msgid "Check the box to delete it"
+msgstr ""
+
+#: boost.module:2639
+msgid "Boost: Crawler is already running. Attempt to start crawler failed."
+msgstr ""
+
+#: boost.module:334;880;889;1127;1654;1660;1675;1696;2437;2447;2471;2488;2523;2536;2551;2564;2597;2607;2637;2648
 msgid "boost"
 msgstr ""
 
-#: boost.module:54 boost.info:0
-msgid "Provides a performance and scalability boost through caching Drupal pages as static HTML files."
+#: boost.module:334
+msgid "Expired stale files from static page cache."
+msgstr ""
+
+#: boost.module:880
+msgid "There are <strong>php errors</strong> on this page, preventing boost from caching. ERROR: <pre>%error</pre> !link <br /> !performance"
 msgstr ""
 
-#: boost.module:81 boost.info:0
+#: boost.module:889
+msgid "There are <strong>drupal messages</strong> on this page, preventing boost from caching. MESSAGES: %msg <br /> !performance"
+msgstr ""
+
+#: boost.module:1127
+msgid "Flushed ALL files from static page cache."
+msgstr ""
+
+#: boost.module:1654
+msgid "Unable to create directory: %dir<br /> Group ID: %gid<br /> User ID: %uid<br /> Current script owner: %user<br />"
+msgstr ""
+
+#: boost.module:1660
+msgid "Unable to write temp file: %file<br /> Group ID: %gid<br /> User ID: %uid<br /> Current script owner: %user<br />"
+msgstr ""
+
+#: boost.module:1675
+msgid "Unable to rename file: %temp  to  %file<br /> Group ID: %gid<br /> User ID: %uid<br /> Current script owner: %user<br />"
+msgstr ""
+
+#: boost.module:1696
+msgid "base_url is not set in your settings.php file. Please read #7 in boosts INSTALL.txt file."
+msgstr ""
+
+#: boost.module:2437
+msgid "Crawler - Thread %num stopped."
+msgstr ""
+
+#: boost.module:2447
+msgid "Crawler - Rogue thread killed."
+msgstr ""
+
+#: boost.module:2471
+msgid "Crawler Sleep for 15 seconds"
+msgstr ""
+
+#: boost.module:2488
+msgid "Crawler sleeping for @x seconds, do to forced shutdown."
+msgstr ""
+
+#: boost.module:2523;2536
+msgid "Crawler - Thread @num of @total started"
+msgstr ""
+
+#: boost.module:2551
+msgid "Crawler - Thread %num of %total Killed."
+msgstr ""
+
+#: boost.module:2564;2607
+msgid "Crawler - Restarting with 1 thread, to try & get the stubborn urls cached."
+msgstr ""
+
+#: boost.module:2597
+msgid "Crawler - Thread %num of %total Done."
+msgstr ""
+
+#: boost.module:2637
+msgid "Crawler already running"
+msgstr ""
+
+#: boost.module:2648
+msgid "Crawler Start %self"
+msgstr ""
+
+#: boost.module:226
+msgid "Performance"
+msgstr ""
+
+#: boost.module:231
+msgid "Boost Settings"
+msgstr ""
+
+#: boost.module:232
+msgid "Advanced boost configuration."
+msgstr ""
+
+#: boost.module:241
+msgid "Boost htaccess rules generation"
+msgstr ""
+
+#: boost.module:242
+msgid "htaccess boost rules."
+msgstr ""
+
+#: boost.install:16
+msgid "Boost successfully installed. Please review the available <a href=\"@settings\">configuration settings</a>. There are 2 new <a href=\"@blocks\">blocks</a> that you can add to help with the administrative side (<a href=\"@status\">status</a>, <a href=\"@config\">page configuration</a>), and 1 to support core <a href=\"@stats\">stats</a>."
+msgstr ""
+
+#: boost.install:27
+msgid "Drupal's <a href=\"@config\">standard page caching</a> disabled by Boost."
+msgstr ""
+
+#: boost.install:37
+msgid "Static page cache cleared."
+msgstr ""
+
+#: boost.install:164
+msgid "Boost Installed correctly, should be working if properly <a href=\"@settings\">configured</a>."
+msgstr ""
+
+#: boost.install:196;392
+msgid "List of the cached page"
+msgstr ""
+
+#: boost.install:213;409
+msgid "UNIX timestamp for the expiration date of cached page."
+msgstr ""
+
+#: boost.install:220;339;416;473
+msgid "Number of seconds this page should be considered fresh. Used to set the expiration column."
+msgstr ""
+
+#: boost.install:295;450
+msgid "Boost cache settings"
+msgstr ""
+
+#: boost.install:362;634
+msgid "Boost crawler - temp table"
+msgstr ""
+
+#: boost.install:686
+msgid "Be sure to update your htaccess rules."
+msgstr ""
+
+#: (duplicate) boost.install:89 ;97 ;106 ;114 ;122 ;130 ;138 ;146 ;154 ;162  boost.info:0
 msgid "Boost"
 msgstr ""
 
-#: boost.module:82
-msgid "Enable or disable page caching for anonymous users and set CSS and JS bandwidth optimization options."
+#: (duplicate) boost.install:90 
+msgid "!cache_dir: does not exist."
 msgstr ""
 
-#: boost.module:192
-msgid "Expired stale files from static page cache."
+#: (duplicate) boost.install:92 ;109 
+msgid "Cache path"
+msgstr ""
+
+#: (duplicate) boost.install:98 
+msgid "Directory %dir credentials - Permissions: %fp. Owner %fo. Group %fg.<br /> Your credentials - Group ID: %gid. User ID: %uid. Current script owner: %user."
 msgstr ""
 
-#: boost.module:69
-msgid "administer cache"
+#: (duplicate) boost.install:100 
+msgid "Can not write to file-system"
 msgstr ""
 
-#: boost.install:21
-msgid "Drupal standard page caching disabled by Boost."
+#: (duplicate) boost.install:107 
+msgid "<a href=\"@url\">Cache file path</a>: is not set to the default(!default). "
 msgstr ""
 
-#: boost.install:24
-msgid "Boost module successfully installed."
+#: (duplicate) boost.install:115 
+msgid ".htaccess file does not contain the boost specific rewrite rules, or the rewrite rules have changed and they need to be updated. Get rules: <a href=\"@url\">Boost Apache .htaccess settings generation</a>."
+msgstr ""
+
+#: (duplicate) boost.install:117 
+msgid ".htaccess file"
+msgstr ""
+
+#: (duplicate) boost.install:123 
+msgid "You need to get a newer version of <a href=\"@url\">poormanscron</a>, most likely the latest dev, or the 2.0 branch."
+msgstr ""
+
+#: (duplicate) boost.install:125 
+msgid "poormanscron is the wrong version"
+msgstr ""
+
+#: (duplicate) boost.install:131 
+msgid "Boost is not compatible with <a href=\"!url\">language negotiation</a> set to \"language fallback\".  An anonymous user with their browser set to a language other than the site's default language will navigate to a non-cached page.  The page will be displayed in the user's browser language.  Boost will cache the non-default-language page. "
+msgstr ""
+
+#: (duplicate) boost.install:133 
+msgid "Cannot use \"language fallback\" language negotiation"
+msgstr ""
+
+#: (duplicate) boost.install:139 
+msgid "Please Run the database update, as the crawler key is not generated yet."
+msgstr ""
+
+#: (duplicate) boost.install:141 
+msgid "Boost Crawler Key Not Found."
+msgstr ""
+
+#: (duplicate) boost.install:147 
+msgid "@number returned. Crawler URL (@url) is not available, please <a href=\"@link\">report this issue</a>"
+msgstr ""
+
+#: (duplicate) boost.install:149 
+msgid "Boost crawler did not get a 200 response."
+msgstr ""
+
+#: (duplicate) boost.install:155 
+msgid "Boost is disabled. <a href=\"@performance\">Enable</a> it."
+msgstr ""
+
+#: (duplicate) boost.install:157 
+msgid "Boost Disabled"
+msgstr ""
+
+#: boost.info:0
+msgid "Provides a performance and scalability boost through caching Drupal pages as static HTML files."
 msgstr ""
 
 #: boost.info:0
