X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=plugins%2Ftranslate%2Ffunctions.php;h=0d77939d0f0a1ed48be95469b70c444deab1724b;hb=505e00aad983adab70d4b001f450064cbda37b86;hp=3847af1cea9c92d93747d5710523607e9126387a;hpb=b609fef00426298547d3cdc15f5446fa6e167764;p=squirrelmail.git diff --git a/plugins/translate/functions.php b/plugins/translate/functions.php index 3847af1c..0d77939d 100644 --- a/plugins/translate/functions.php +++ b/plugins/translate/functions.php @@ -1,23 +1,23 @@ findDisplayEntity(array(), array('text/plain')); $body = ''; - if ($trans_ar[0] != '') { + $final_body = ''; + if ( !empty($trans_ar[0]) ) { for ($i = 0; $i < count($trans_ar); $i++) { - $body .= formatBody($imapConnection, $message, $color, $wrap_at, $trans_ar[$i], $passed_id, $mailbox); + /* reduced version of formatBody and translateText functions */ + + // get message entity information + $body_message = getEntity($message, $trans_ar[$i]); + // get message body + $body = mime_fetch_body ($imapConnection, $passed_id, $trans_ar[$i]); + // convert encoded messages + $body = decodeBody($body, $body_message->header->encoding); + + /* + * if message part is html formated - convert spaces, html line feeds, + * less than and greater than html entities and remove tags + */ + if ($body_message->header->type1 == 'html') { + $entity_conv = array(' ' => ' ', + '

' => "\n", + '

' => "\n", + '
' => "\n", + '
' => "\n", + '
' => "\n", + '
' => "\n", + '>' => '>', + '<' => '<'); + $body = strtr($body, $entity_conv); + $body = strip_tags($body); + } + // remove whitespace + $body = trim($body); + // save processed text and parse other entity + $final_body.= charset_decode($body_message->header->getParameter('charset'),$body); } - $hookResults = do_hook('message_body', $body); - $body = $hookResults[1]; - } else { - $body = 'Message can\'t be translated'; - } - $new_body = $body; - $pos = strpos($new_body, - '">'. _("Download this as a file") . '
'); - if (is_int($pos)) { - $new_body = substr($new_body, 0, $pos); + // add form if message is not empty + if (!empty($final_body)) { + $function = 'translate_form_' . $translate_server; + $function($final_body); + } } - - $trans = get_html_translation_table(HTML_ENTITIES); - $trans[' '] = ' '; - $trans = array_flip($trans); - $new_body = strtr($new_body, $trans); - - $new_body = urldecode($new_body); - $new_body = strip_tags($new_body); - - /* I really don't like this next part ... */ - $new_body = str_replace('"', "''", $new_body); - $new_body = strtr($new_body, "\n", ' '); - - $function = 'translate_form_' . $translate_server; - $function($new_body); } /** @@ -232,7 +243,7 @@ function translate_showoption() { $translate_dictionary_enabled, $translate_google_enabled, $translate_gpltrans_enabled, $translate_intertran_enabled, $translate_promt_enabled, $translate_otenet_enabled; - global $translate_custom_enabled; + global $translate_custom_enabled, $translate_gpltrans_url; if ($translate_babelfish_enabled) translate_showoption_internal('server','babelfish', 'Babelfish'); if ($translate_go_enabled) translate_showoption_internal('server','go', 'Go.com'); @@ -273,7 +284,7 @@ function translate_showtrad() { 'http://www.dictionary.com/translate' ); if ($translate_google_enabled) translate_showtrad_internal( 'Google Translate', _("No known limits, powered by Systran"). - '
'.sprintf(_("Number of supported language pairs: %s"),'12').' ' , + '
'.sprintf(_("Number of supported language pairs: %s"),'20').' ' , 'http://www.google.com/translate' ); if ($translate_gpltrans_enabled && $translate_gpltrans_url!='') translate_showtrad_internal( 'GPLTrans', _("No known limits, powered by GPLTrans (free, open source)"). @@ -423,10 +434,12 @@ 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) { - global $translate_dir, $translate_new_window, $translate_location; +function translate_new_form($action,$charset=null) { + global $translate_dir, $translate_location; global $color, $translate_same_window; echo '

\n"; ?> @@ -460,7 +476,7 @@ 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'); ?> @@ -590,7 +606,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 ''. ''. ''. @@ -672,7 +688,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 ' @@ -826,7 +848,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 ''; echo ''; echo _("Interface language")." : "; @@ -886,11 +908,8 @@ function translate_form_promt($message) { * @access private */ function translate_form_google($message) { - translate_new_form('http://www.google.com/translate_t'); - echo '' . - '' . - '' . - ''; + translate_new_form('http://www.google.com/translate_t','utf-8'); + echo ''; echo ''. - 'Google: '; + '' . + '' . + '' . + 'Google: '; translate_table_end(); } -?> \ No newline at end of file