Fix for updating the mailbox cache concernig flags
[squirrelmail.git] / plugins / translate / functions.php
index 4ae847f409f448d8052b9c611eac938485c8bf7a..edde502567051ce5c2f16bb3cfca928aeaacab59 100644 (file)
@@ -1,10 +1,10 @@
 <?php
+
 /**
  * SquirrelMail translate plugin functions
  *
- * Copyright (c) 2004 The SquirrelMail Project Team
- * Licensed under the GNU GPL. For full terms see the file COPYING.
- *
+ * @copyright &copy; 2004-2006 The SquirrelMail Project Team
+ * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  * @version $Id$
  * @package plugins
  * @subpackage translate
@@ -71,6 +71,13 @@ function translate_read_form_function() {
     global $imapConnection, $wrap_at, $passed_id, $mailbox;
     global $translate_gpltrans_url;
 
+    global $translate_babelfish_enabled, $translate_go_enabled,
+        $translate_dictionary_enabled, $translate_google_enabled,
+        $translate_gpltrans_enabled, $translate_intertran_enabled,
+        $translate_promt_enabled, $translate_otenet_enabled;
+    global $translate_custom_enabled;
+
+
     if (!$translate_show_read) {
         return;
     }
@@ -87,7 +94,7 @@ function translate_read_form_function() {
     $body = '';
     if ($trans_ar[0] != '') {
         for ($i = 0; $i < count($trans_ar); $i++) {
-            $body .= formatBody($imapConnection, $message, $color, $wrap_at, $trans_ar[$i], $passed_id, $mailbox);
+            $body .= formatBody($imapConnection, $message, $color, $wrap_at, $trans_ar[$i], $passed_id, $mailbox, true);
         }
         $hookResults = do_hook('message_body', $body);
         $body = $hookResults[1];
@@ -96,11 +103,6 @@ function translate_read_form_function() {
     }
 
     $new_body = $body;
-    $pos = strpos($new_body,
-        '">'. _("Download this as a file") . '</a></center><br /></small>');
-    if (is_int($pos)) {
-        $new_body = substr($new_body, 0, $pos);
-    }
 
     $trans = get_html_translation_table(HTML_ENTITIES);
     $trans[' '] = '&nbsp;';
@@ -417,9 +419,11 @@ function translate_lang_opt($from, $to, $value, $text) {
  * Starts translation box
  *
  * @param string $action url that has to recieve message for translation
+ * @param string $charset (since sm 1.5.1) character set, that should be used 
+ * to submit 8bit information.
  * @access private
  */
-function translate_new_form($action) {
+function translate_new_form($action,$charset=null) {
     global $translate_dir, $translate_location;
     global $color, $translate_same_window;
 
@@ -436,6 +440,9 @@ function translate_new_form($action) {
     if (!$translate_same_window) {
         echo ' target="_blank"';
     }
+    
+    if (! is_null($charset))
+        echo ' accept-charset="'.htmlspecialchars($charset).'"';
 
     echo ">\n";
 
@@ -454,12 +461,12 @@ function translate_new_form($action) {
  * @access private
  */
 function translate_form_babelfish($message) {
-    translate_new_form('http://babelfish.altavista.com/babelfish/tr');
+    translate_new_form('http://babelfish.altavista.com/babelfish/tr','utf-8');
 ?>
     <input type="hidden" name="doit" value="done" />
     <input type="hidden" name="intl" value="1" />
     <input type="hidden" name="tt" value="urltext" />
-    <input type="hidden" name="trtext" value="<?php echo $message; ?>" />
+    <input type="hidden" name="trtext" value="<?php echo htmlspecialchars($message); ?>" />
     <select name="lp"><?php
         echo translate_lang_opt('zh_CN',  '',     'zh_en',
                             sprintf( _("%s to %s"),_("Chinese, Simplified"),_("English"))) .
@@ -584,7 +591,7 @@ function translate_form_go($message) {
  * @access private
  */
 function translate_form_intertran($message) {
-    translate_new_form('http://www.tranexp.com:2000/InterTran');
+    translate_new_form('http://intertran.tranexp.com/Translate/result.shtml');
     echo '<input type="hidden" name="topframe" value="yes" />'.
          '<input type="hidden" name="type" value="text" />'.
          '<input type="hidden" name="keyb" value="non" />'.
@@ -666,7 +673,13 @@ function translate_form_intertran($message) {
  * @access private
  */
 function translate_form_gpltrans($message) {
-    translate_new_form('http://www.translator.cx/cgi-bin/gplTrans');
+    global $translate_gpltrans_url;
+
+    // make sure that it is not empty
+    if ($translate_gpltrans_url=='')
+        $translate_gpltrans_url='http://www.translator.cx/cgi-bin/gplTrans';
+
+    translate_new_form($translate_gpltrans_url);
     echo '<select name="language">'.
         translate_lang_opt('', 'nl_NL', 'dutch_dict',      _("Dutch")).
         translate_lang_opt('', 'fr_FR', 'french_dict',     _("French")).
@@ -760,7 +773,7 @@ function translate_form_dictionary($message) {
  * @access private
  */
 function translate_form_otenet($message) {
-    translate_new_form('http://systran.otenet.gr/cgi-bin/systran.cgi');
+    translate_new_form('http://trans.otenet.gr/systran/box','windows-1253');
 ?>
     <input type="hidden" name="doit" value="done" />
     <input type="hidden" name="partner" value="OTEnet-en" />
@@ -820,7 +833,7 @@ function translate_form_otenet($message) {
  * @access private
  */
 function translate_form_promt($message) {
-    translate_new_form('http://www.online-translator.com/text.asp#tr_form');
+    translate_new_form('http://www.online-translator.com/text.asp#tr_form','windows-1251');
     echo '<input type="hidden" name="status" value="translate" />';
     echo '<input type="hidden" name="source" value="'.$message.'" />';
     echo _("Interface language")." : ";
@@ -880,7 +893,7 @@ function translate_form_promt($message) {
  * @access private
  */
 function translate_form_google($message) {
-    translate_new_form('http://www.google.com/translate_t');
+    translate_new_form('http://www.google.com/translate_t','utf-8');
     echo '<input type="hidden" name="ie" value="Unknown" />' .
          '<input type="hidden" name="oe" value="ASCII" />' .
          '<input type="hidden" name="hl" value="en" />' .
@@ -915,4 +928,4 @@ function translate_form_google($message) {
 
     translate_table_end();
 }
-?>
\ No newline at end of file
+?>