findDisplayEntity(array(), array('text/plain')); $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); } $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); } $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); } function translate_table_end() { ?> _("Translation Options"), 'url' => '../plugins/translate/options.php', 'desc' => _("Which translator should be used when you get messages in a different language?"), 'js' => false ); } function translate_pref() { global $username, $data_dir; global $translate_server, $translate_location; global $translate_show_send, $translate_show_read; global $translate_same_window; $translate_server = getPref($data_dir, $username, 'translate_server'); if ($translate_server == '') { $translate_server = 'babelfish'; } $translate_location = getPref($data_dir, $username, 'translate_location'); if ($translate_location == '') { $translate_location = 'center'; } $translate_show_send = getPref($data_dir, $username, 'translate_show_send'); $translate_show_read = getPref($data_dir, $username, 'translate_show_read'); $translate_same_window = getPref($data_dir, $username, 'translate_same_window'); } /** * This function could be sped up. * It basically negates the process if a ! is found in the beginning and * matches a * at the end with 0 or more characters. */ function translate_does_it_match_language($test) { global $squirrelmail_language; $true = 1; $false = 0; $index = 0; $smindex = 0; if (! $test || ! $squirrelmail_language) { return $false; } if ($test[$index] == '!') { $index ++; $true = 0; $false = 1; } if (($index == 0) && ($test == $squirrelmail_language)) { return $true; } while (isset($test[$index]) && $test[$index]) { if ($test[$index] == '*') { return $true; } if ($test[$index] != $squirrelmail_language[$smindex]) { return $false; } $index ++; $smindex ++; } return $false; } function translate_lang_opt($from, $to, $value, $text) { global $translate_dir; $ret = ' \n"; return( $ret ); } function translate_new_form($action) { global $translate_dir, $translate_new_window, $translate_location; global $color, $translate_same_window; echo '\n"; ?>> '. 'Babelfish: '; translate_table_end(); } function translate_form_go($message) { translate_new_form('http://translator.go.com/cb/trans_entry'); ?> '. "". 'Go.com: '; translate_table_end(); } function translate_form_intertran($message) { translate_new_form('http://www.tranexp.com:2000/InterTran'); echo ''. ''. ""; $left = '' . translate_lang_opt('pt_BR', '', 'pob', _("Brazilian Portuguese")). translate_lang_opt('', '', 'bul', _("Bulgarian") . ' (CP 1251)'). translate_lang_opt('', '', 'cro', _("Croatian") . ' (CP 1250)'). translate_lang_opt('cs', '', 'che', _("Czech") . ' (CP 1250)'). translate_lang_opt('', '', 'dan', _("Danish")). translate_lang_opt('nl', '', 'dut', _("Dutch")). translate_lang_opt('en', '!en', 'eng', _("English")). translate_lang_opt('', '', 'spe', _("European Spanish")). translate_lang_opt('', '', 'fin', _("Finnish")). translate_lang_opt('fr', '', 'fre', _("French")). translate_lang_opt('de', '', 'ger', _("German")). translate_lang_opt('', '', 'grk', _("Greek")). translate_lang_opt('', '', 'hun', _("Hungarian") . ' (CP 1250)'). translate_lang_opt('', '', 'ice', _("Icelandic")). translate_lang_opt('it', '', 'ita', _("Italian")). translate_lang_opt('', '', 'jpn', _("Japanese") . ' (Shift JIS)'). translate_lang_opt('', '', 'spl', _("Latin American Spanish")). translate_lang_opt('no*', '', 'nor', _("Norwegian")). translate_lang_opt('pl', '', 'pol', _("Polish") . ' (ISO 8859-2)'). translate_lang_opt('', '', 'poe', _("Portuguese")). translate_lang_opt('', '', 'rom', _("Romanian") . ' (CP 1250)'). translate_lang_opt('ru', '', 'rus', _("Russian") . ' (CP 1251)'). translate_lang_opt('', '', 'sel', _("Serbian") . ' (CP 1250)'). translate_lang_opt('', '', 'slo', _("Slovenian") . ' (CP 1250)'). translate_lang_opt('es', '', 'spa', _("Spanish")). translate_lang_opt('sv', '', 'swe', _("Swedish")). translate_lang_opt('', '', 'tur', _("Turkish") . ' (CP 1254)'). translate_lang_opt('', '', 'wel', _("Welsh")). ''; $right = ''. translate_lang_opt('', 'pt_BR', 'pob', _("Brazilian Portuguese")). translate_lang_opt('', '', 'bul', _("Bulgarian") . ' (CP 1251)'). translate_lang_opt('', '', 'cro', _("Croatian") . ' (CP 1250)'). translate_lang_opt('', 'cs', 'che', _("Czech") . ' (CP 1250)'). translate_lang_opt('', '', 'dan', _("Danish")). translate_lang_opt('', 'nl', 'dut', _("Dutch")). translate_lang_opt('!en', 'en', 'eng', _("English")). translate_lang_opt('', '', 'spe', _("European Spanish")). translate_lang_opt('', '', 'fin', _("Finnish")). translate_lang_opt('', 'fr', 'fre', _("French")). translate_lang_opt('', 'de', 'ger', _("German")). translate_lang_opt('', '', 'grk', _("Greek")). translate_lang_opt('', '', 'hun', _("Hungarian") . ' (CP 1250)'). translate_lang_opt('', '', 'ice', _("Icelandic")). translate_lang_opt('', 'it', 'ita', _("Italian")). translate_lang_opt('', '', 'jpn', _("Japanese") . ' (Shift JIS)'). translate_lang_opt('', '', 'spl', _("Latin American Spanish")). translate_lang_opt('', 'no*', 'nor', _("Norwegian")). translate_lang_opt('', 'pl', 'pol', _("Polish") . ' (ISO 8859-2)'). translate_lang_opt('', '', 'poe', _("Portuguese")). translate_lang_opt('', '', 'rom', _("Romanian") . ' (CP 1250)'). translate_lang_opt('', 'ru', 'rus', _("Russian") . ' (CP 1251)'). translate_lang_opt('', '', 'sel', _("Serbian") . ' (CP 1250)'). translate_lang_opt('', '', 'slo', _("Slovenian") . ' (CP 1250)'). translate_lang_opt('', 'es', 'spa', _("Spanish")). translate_lang_opt('', 'sv', 'swe', _("Swedish")). translate_lang_opt('', '', 'tur', _("Turkish") . ' (CP 1254)'). translate_lang_opt('', '', 'wel', _("Welsh")). ''; printf( _("%s to %s"), $left, $right ); echo 'InterTran: '; translate_table_end(); } function translate_form_gpltrans($message) { translate_new_form('http://www.translator.cx/cgi-bin/gplTrans'); echo ''. translate_lang_opt('nl', 'nl', 'dutch_dict', _("Dutch")). translate_lang_opt('fr', 'fr', 'french_dict', _("French")). translate_lang_opt('de', 'de', 'german_dict', _("German")). translate_lang_opt('', '', 'indonesian_dict', _("Indonesian")). translate_lang_opt('it', 'it', 'italian_dict', _("Italian")). translate_lang_opt('', '', 'latin_dict', _("Latin")). translate_lang_opt('pt', 'pt', 'portuguese_dict', _("Portuguese")). translate_lang_opt('es', 'es', 'spanish_dict', _("Spanish")). ''; echo ''; echo ''. _("to English") . ''; echo '' . _("from English") . ''; echo "". 'GPLTrans: '; translate_table_end(); } function translate_form_dictionary($message) { translate_new_form('http://dictionary.reference.com/translate/text.html'); list($usec, $sec) = explode(" ",microtime()); $time = $sec . (float)$usec*100000000; echo "". "". ''. translate_lang_opt('en', 'fr', 'en_fr', sprintf( _("%s to %s"), _("English"), _("French"))) . translate_lang_opt('', 'ge', 'en_ge', sprintf( _("%s to %s"), _("English"), _("German"))) . translate_lang_opt('', 'it', 'en_it', sprintf( _("%s to %s"), _("English"), _("Italian"))) . translate_lang_opt('', 'pt*', 'en_pt', sprintf( _("%s to %s"), _("English"), _("Portuguese"))) . translate_lang_opt('', 'es', 'en_es', sprintf( _("%s to %s"), _("English"), _("Spanish"))) . translate_lang_opt('fr', '', 'fr_en', sprintf( _("%s to %s"), _("French"), _("English"))) . translate_lang_opt('', '', 'fr_ge', sprintf( _("%s to %s"), _("French"), _("German"))) . translate_lang_opt('', '', 'ge_fr', sprintf( _("%s to %s"), _("German"), _("French"))) . translate_lang_opt('de', '', 'ge_en', sprintf( _("%s to %s"), _("German"), _("English"))) . translate_lang_opt('it', '', 'it_en', sprintf( _("%s to %s"), _("Italian"), _("English"))) . translate_lang_opt('pt*', '', 'pt_en', sprintf( _("%s to %s"), _("Portuguese"), _("English"))) . translate_lang_opt('es', '', 'es_en', sprintf( _("%s to %s"), _("Spanish"), _("English"))) . ''. 'Dictionary.com: '; translate_table_end(); } function translate_form_otenet($message) { translate_new_form('http://systran.otenet.gr/cgi-bin/systran.cgi'); ?> '. 'OTEnet: '; translate_table_end(); } function translate_form_promt($message) { translate_new_form('http://www.translate.ru/text.asp#tr_form'); echo ''; echo ""; echo _("Interface language")." : "; echo "\n"; echo "" . _("English") . "\n"; echo "" . _("Russian") . "\n"; echo "" . _("German") . "\n"; echo "" . _("French") . "\n"; echo "" . _("Spanish") . "\n"; echo "\n"; echo _("Translation direction")." : "; echo ''; echo translate_lang_opt('en', 'ru', 'er', sprintf( _("%s to %s"), _("English"), _("Russian"))) . translate_lang_opt('ru', 'en', 're', sprintf( _("%s to %s"), _("Russian"), _("English"))) . translate_lang_opt('de', 'ru', 'gr', sprintf( _("%s to %s"), _("German"), _("Russian"))) . translate_lang_opt('ru', 'de', 'rg', sprintf( _("%s to %s"), _("Russian"), _("German"))) . translate_lang_opt('fr', 'ru', 'fr', sprintf( _("%s to %s"), _("French"), _("Russian"))) . translate_lang_opt('ru', 'fr', 'rf', sprintf( _("%s to %s"), _("Russian"), _("French"))) . translate_lang_opt('es', 'ru', 'sr', sprintf( _("%s to %s"), _("Spanish"), _("Russian"))) . translate_lang_opt('it', 'ru', 'ir', sprintf( _("%s to %s"), _("Italian"), _("Russian"))) . translate_lang_opt('en', 'de', 'eg', sprintf( _("%s to %s"), _("English"), _("German"))) . translate_lang_opt('de', 'en', 'ge', sprintf( _("%s to %s"), _("German"), _("English"))) . translate_lang_opt('en', 'es', 'es', sprintf( _("%s to %s"), _("English"), _("Spanish"))) . translate_lang_opt('es', 'en', 'se', sprintf( _("%s to %s"), _("Spanish"), _("English"))) ; echo "\n"; echo "\n"; echo 'PROMT: '; translate_table_end(); } ?>