Source for file setup.php

Documentation is available at setup.php

  1. <?php
  2.  
  3. /**
  4.  * setup.php
  5.  *
  6.  * Copyright (c) 1999-2020 The SquirrelMail Project Team
  7.  * Licensed under the GNU GPL. For full terms see the file COPYING.
  8.  *
  9.  * @version $Id: setup.php 14840 2020-01-07 07:42:38Z pdontthink $
  10.  * @package plugins
  11.  * @subpackage translate
  12.  */
  13.  
  14. /* Easy plugin that sends the body of the message to a new browser
  15. window using the specified translator.  It can also translate your
  16. outgoing message if you send it to someone in a different country.
  17.  
  18.   Languages from i18n, incorporated in the auto-language selection:
  19.     en - English
  20.     no - Norwegian (Bokm&aring;l)
  21.     no_NO_ny - Norwegian (Nynorsk)
  22.     de - Deutsch
  23.     ru - Russian KOI8-R
  24.     pl - Polish
  25.     sv - Swedish
  26.     nl - Dutch
  27.     pt_BR - Portuguese (Brazil)
  28.     fr - French
  29.     it - Italian
  30.     cs - Czech
  31.     es - Spanish
  32.     ko - Korean
  33. */
  34.  
  35. /** Initialize the translation plugin */
  36.     global $squirrelmail_plugin_hooks;
  37.  
  38.     $squirrelmail_plugin_hooks['read_body_bottom']['translate''translate_read_form';
  39.     $squirrelmail_plugin_hooks['optpage_register_block']['translate''translate_optpage_register_block';
  40.     $squirrelmail_plugin_hooks['loading_prefs']['translate''translate_pref';
  41.     $squirrelmail_plugin_hooks['compose_button_row']['translate''translate_button';
  42. }
  43.  
  44. /** Show the translation for a message you're reading */
  45. function translate_read_form({
  46.     global $color$translate_server;
  47.     global $message$translate_dir;
  48.     global $translate_show_read;
  49.     global $imapConnection$wrap_at$passed_id$mailbox;
  50.  
  51.     if (!$translate_show_read{
  52.         return;
  53.     }
  54.  
  55.     $translate_dir 'to';
  56.  
  57.     $trans_ar $message->findDisplayEntity(array()array('text/plain'));
  58.     $body '';
  59.     if !empty($trans_ar[0]) ) {
  60.         for ($i 0$i count($trans_ar)$i++{
  61.             $body .= formatBody($imapConnection$message$color$wrap_at$trans_ar[$i]$passed_id$mailboxtrue);
  62.         }
  63.         $hookResults do_hook('message_body'$body);
  64.         $body $hookResults[1];
  65.     else {
  66.         $body 'Message can\'t be translated';
  67.     }
  68.  
  69.     $new_body $body;
  70.  
  71.     $trans get_html_translation_table(HTML_ENTITIES);
  72.     $trans[' ''&nbsp;';
  73.     $trans array_flip($trans);
  74.     $new_body strtr($new_body$trans);
  75.  
  76.     $new_body urldecode($new_body);
  77.     $new_body strip_tags($new_body);
  78.  
  79.     /* I really don't like this next part ... */
  80.     $new_body str_replace('"'"''"$new_body);
  81.     $new_body strtr($new_body"\n"' ');
  82.  
  83.     $function 'translate_form_' $translate_server;
  84.     $function($new_body);
  85. }
  86.  
  87. /** Closes translation engine form */
  88. function translate_table_end({
  89.     ?></td>
  90.           </tr>
  91.         </table>
  92.       </td>
  93.     </tr>
  94.   </table>
  95.   </form>
  96.   <?php
  97. }
  98.  
  99. /** Unimplemented. Translation in compose*/
  100. function translate_button({
  101.     global $translate_show_send;
  102.  
  103.     if ($translate_show_send{
  104.         return;
  105.     }
  106. }
  107.  
  108. /** Registers translation option block */
  109.     global $optpage_blocks;
  110.     $optpage_blocks[array(
  111.         'name' => _("Translation Options"),
  112.         'url'  => '../plugins/translate/options.php',
  113.         'desc' => _("Which translator should be used when you get messages in a different language?"),
  114.         'js'   => false
  115.     );
  116. }
  117.  
  118. /** gets translation preferences */
  119. function translate_pref({
  120.     global $username$data_dir;
  121.     global $translate_server$translate_location;
  122.     global $translate_show_send$translate_show_read;
  123.     global $translate_same_window;
  124.  
  125.     $translate_server getPref($data_dir$username'translate_server');
  126.     if ($translate_server == ''{
  127.         $translate_server 'babelfish';
  128.     }
  129.  
  130.     $translate_location getPref($data_dir$username'translate_location');
  131.     if ($translate_location == ''{
  132.         $translate_location 'center';
  133.     }
  134.  
  135.     $translate_show_send getPref($data_dir$username'translate_show_send');
  136.     $translate_show_read getPref($data_dir$username'translate_show_read');
  137.     $translate_same_window getPref($data_dir$username'translate_same_window');
  138. }
  139.  
  140.  
  141. /**
  142.  * This function could be sped up.
  143.  * It basically negates the process if a ! is found in the beginning and
  144.  * matches a * at the end with 0 or more characters.
  145.  */
  146.     global $squirrelmail_language;
  147.     $true 1;
  148.     $false 0;
  149.     $index 0;
  150.     $smindex 0;
  151.  
  152.     if ($test || $squirrelmail_language{
  153.         return $false;
  154.     }
  155.  
  156.     if ($test[$index== '!'{
  157.         $index ++;
  158.         $true 0;
  159.         $false 1;
  160.     }
  161.  
  162.     if (($index == 0&& ($test == $squirrelmail_language)) {
  163.         return $true;
  164.     }
  165.  
  166.     while (isset($test[$index]&& $test[$index]{
  167.         if ($test[$index== '*'{
  168.             return $true;
  169.         }
  170.         if ($test[$index!= $squirrelmail_language[$smindex]{
  171.             return $false;
  172.         }
  173.         $index ++;
  174.         $smindex ++;
  175.     }
  176.  
  177.     return $false;
  178. }
  179.  
  180. /** creates translation engine language selection */
  181. function translate_lang_opt($from$to$value$text{
  182.     global $translate_dir;
  183.  
  184.     $ret '  <option value="' $value '"';
  185.  
  186.     if (translate_does_it_match_language($to&& ($translate_dir == 'to')) {
  187.         $ret .= ' selected';
  188.     }
  189.  
  190.     if (translate_does_it_match_language($from&& ($translate_dir == 'from')) {
  191.         $ret .= ' selected';
  192.     }
  193.  
  194.     $ret .= '>' $text "</option>\n";
  195.  
  196.     return$ret );
  197. }
  198.  
  199. /**
  200.  * Starts translation box
  201.  *
  202.  * @param string $action url that has to recieve message for translation
  203.  * @param string $charset (since sm 1.5.1 and 1.4.9) character set, that
  204.  *  should be used to submit 8bit information.
  205.  * @access private
  206.  */
  207. function translate_new_form($action,$charset=null{
  208.     global $translate_dir$translate_new_window$translate_location;
  209.     global $color$translate_same_window;
  210.  
  211.     echo '<form action="';
  212.  
  213.     if ($translate_dir == 'to'{
  214.         echo $action;
  215.     else {
  216.         echo 'translate.php';
  217.     }
  218.  
  219.     echo '" method="post"';
  220.  
  221.     if (!$translate_same_window{
  222.         echo ' target="_blank"';
  223.     }
  224.  
  225.     if (is_null($charset))
  226.         echo ' accept-charset="'.sm_encode_html_special_chars($charset).'"';
  227.  
  228.     echo ">\n";
  229.  
  230.     ?><table align="<?php echo $translate_location ?>" cellpadding="3"
  231.         cellspacing="0" border="0" bgcolor="<?php echo $color[10?>">
  232.     <tr>
  233.       <td>
  234.         <table cellpadding="2" cellspacing="1" border="0" bgcolor="<?php echo $color[5?>">
  235.           <tr>
  236.             <td><?php
  237. }
  238.  
  239. /**
  240.  * Babelfish translation engine functions
  241.  *
  242.  * @param string $message text that has to be translated.
  243.  * @access private
  244.  */
  245. function translate_form_babelfish($message{
  246.     translate_new_form('http://babelfish.altavista.com/babelfish/tr');
  247. ?>
  248.     <input type="hidden" name="doit" value="done" />
  249.     <input type="hidden" name="intl" value="1" />
  250.     <input type="hidden" name="tt" value="urltext" />
  251.     <input type="hidden" name="urltext" value="<?php echo sm_encode_html_special_chars($message)?>" />
  252.     <select name="lp"><?php
  253.         echo translate_lang_opt('zh_CN',  '',     'zh_en',
  254.                             sprintf_("%s to %s"),_("Chinese, Simplified"),_("English"))) .
  255.          translate_lang_opt('zh_TW',  '',     'zt_en',
  256.                             sprintf_("%s to %s"),_("Chinese, Traditional"),_("English"))) .
  257.          translate_lang_opt('en_US''zh_CN''en_zh',
  258.                             sprintf_("%s to %s"),_("English"),_("Chinese, Simplified"))) .
  259.          translate_lang_opt('en_US''zh_TW''en_zt',
  260.                             sprintf_("%s to %s"),_("English"),_("Chinese, Traditional"))) .
  261.          translate_lang_opt('en_US''nl_NL',  'en_nl',
  262.                             sprintf_("%s to %s"),_("English"),_("Dutch"))) .
  263.          translate_lang_opt('en_US''fr_FR',  'en_fr',
  264.                             sprintf_("%s to %s"),_("English"),_("French"))) .
  265.          translate_lang_opt('en_US''de_DE''en_de',
  266.                             sprintf_("%s to %s"),_("English"),_("German"))) .
  267.          translate_lang_opt('en_US''el_GR',  'en_el',
  268.                             sprintf_("%s to %s"),_("English"),_("Greek"))) .
  269.          translate_lang_opt('en_US''it_IT''en_it',
  270.                             sprintf_("%s to %s"),_("English"),_("Italian"))) .
  271.          translate_lang_opt('en_US''ja_JP''en_ja',
  272.                             sprintf_("%s to %s"),_("English"),_("Japanese"))) .
  273.          translate_lang_opt('en_US''ko_KR''en_ko',
  274.                             sprintf_("%s to %s"),_("English"),_("Korean"))) .
  275.          translate_lang_opt('en_US''pt*',   'en_pt',
  276.                             sprintf_("%s to %s"),_("English"),_("Portuguese"))) .
  277.          translate_lang_opt('en_US''ru_RU',  'en_ru',
  278.                             sprintf_("%s to %s"),_("English"),_("Russian"))) .
  279.          translate_lang_opt('en_US''es_ES''en_es',
  280.                             sprintf_("%s to %s"),_("English"),_("Spanish"))) .
  281.          translate_lang_opt('nl_NL''',      'nl_en',
  282.                             sprintf_("%s to %s"),_("Dutch"),_("English"))) .
  283.          translate_lang_opt('nl_NL''',      'nl_fr',
  284.                             sprintf_("%s to %s"),_("Dutch"),_("French"))) .
  285.          translate_lang_opt('fr_FR''',      'fr_en',
  286.                             sprintf_("%s to %s"),_("French"),_("English"))) .
  287.          translate_lang_opt('fr_FR',  '',     'fr_de',
  288.                             sprintf_("%s to %s"),_("French"),_("German"))) .
  289.          translate_lang_opt('fr_FR',  '',     'fr_el',
  290.                             sprintf_("%s to %s"),_("French"),_("Greek"))) .
  291.          translate_lang_opt('fr_FR',  '',     'fr_it',
  292.                             sprintf_("%s to %s"),_("French"),_("Italian"))) .
  293.          translate_lang_opt('fr_FR',  '',     'fr_pt',
  294.                             sprintf_("%s to %s"),_("French"),_("Portuguese"))) .
  295.          translate_lang_opt('fr_FR',  '',     'fr_nl',
  296.                             sprintf_("%s to %s"),_("French"),_("Dutch"))) .
  297.          translate_lang_opt('fr_FR',  '',     'fr_es',
  298.                             sprintf_("%s to %s"),_("French"),_("Spanish"))) .
  299.          translate_lang_opt('de_DE''en_US''de_en',
  300.                             sprintf_("%s to %s"),_("German"),_("English"))) .
  301.          translate_lang_opt('de_DE',  '',     'de_fr',
  302.                             sprintf_("%s to %s"),_("German"),_("French"))) .
  303.          translate_lang_opt('el_GR''',      'el_en',
  304.                             sprintf_("%s to %s"),_("Greek"),_("English"))) .
  305.          translate_lang_opt('el_GR''',      'el_fr',
  306.                             sprintf_("%s to %s"),_("Greek"),_("French"))) .
  307.          translate_lang_opt('it_IT''',      'it_en',
  308.                             sprintf_("%s to %s"),_("Italian"),_("English"))) .
  309.          translate_lang_opt('it_IT''',      'it_fr',
  310.                             sprintf_("%s to %s"),_("Italian"),_("French"))) .
  311.          translate_lang_opt('ja_JP',  '',     'ja_en',
  312.                             sprintf_("%s to %s"),_("Japanese"),_("English"))) .
  313.          translate_lang_opt('ko_KR',  '',     'ko_en',
  314.                             sprintf_("%s to %s"),_("Korean"),_("English"))) .
  315.          translate_lang_opt('pt*',    '',     'pt_en',
  316.                             sprintf_("%s to %s"),_("Portuguese"),_("English"))) .
  317.          translate_lang_opt('pt*',    '',     'pt_fr',
  318.                             sprintf_("%s to %s"),_("Portuguese"),_("French"))) .
  319.          translate_lang_opt('ru_RU',  '',     'ru_en',
  320.                             sprintf_("%s to %s"),_("Russian"),_("English"))) .
  321.          translate_lang_opt('es_ES',  '',     'es_en',
  322.                             sprintf_("%s to %s"),_("Spanish"),_("English"))) .
  323.          translate_lang_opt('es_ES',  '',     'es_fr',
  324.                             sprintf_("%s to %s"),_("Spanish"),_("French")));
  325.     echo '</select>'.
  326.          'Babelfish: <input type="Submit" value="' _("Translate"'" />';
  327.  
  328. }
  329.  
  330. /**
  331.  * go.com translation engine (disabled)
  332.  *
  333.  * @param string $message text that has to be translated
  334.  * @access private
  335.  */
  336. function translate_form_go($message{
  337.     translate_new_form('http://translator.go.com/cb/trans_entry');
  338. ?>
  339.     <input type="hidden" name="input_type" value="text" />
  340.     <select name="lp"><?php
  341.         echo translate_lang_opt('en''es''en_sp',
  342.                                 sprintf_("%s to %s"),
  343.                                          _("English"),
  344.                                          _("Spanish"))) .
  345.              translate_lang_opt('',   'fr''en_fr',
  346.                                 sprintf_("%s to %s"),
  347.                                          _("English"),
  348.                                          _("French"))) .
  349.              translate_lang_opt('',   'de''en_ge',
  350.                                 sprintf_("%s to %s"),
  351.                                          _("English"),
  352.                                          _("German"))) .
  353.              translate_lang_opt('',   'it''en_it',
  354.                                 sprintf_("%s to %s"),
  355.                                          _("English"),
  356.                                          _("Italian"))) .
  357.              translate_lang_opt('',   'pt''en_pt',
  358.                                 sprintf_("%s to %s"),
  359.                                          _("English"),
  360.                                          _("Portuguese"))) .
  361.              translate_lang_opt('es''en''sp_en',
  362.                                 sprintf_("%s to %s"),
  363.                                          _("Spanish"),
  364.                                          _("English"))) .
  365.              translate_lang_opt('fr''',   'fr_en',
  366.                                 sprintf_("%s to %s"),
  367.                                          _("French"),
  368.                                          _("English"))) .
  369.              translate_lang_opt('de''',   'ge_en',
  370.                                 sprintf_("%s to %s"),
  371.                                          _("German"),
  372.                                          _("English"))) .
  373.              translate_lang_opt('it''',   'it_en',
  374.                                 sprintf_("%s to %s"),
  375.                                          _("Italian"),
  376.                                          _("English"))) .
  377.              translate_lang_opt('pt''',   'pt_en',
  378.                                 sprintf_("%s to %s"),
  379.                                          _("Portuguese"),
  380.                                          _("English")));
  381.     echo '</select>'.
  382.          "<input type=\"hidden\" name=\"text\" value=\"$message\" />".
  383.          'Go.com: <input type="submit" value="' _("Translate"'" />';
  384.  
  385. }
  386.  
  387. /**
  388.  * intertran translation engine
  389.  *
  390.  * @param string $message text that has to be translated
  391.  * @access private
  392.  */
  393. function translate_form_intertran($message{
  394.     translate_new_form('http://intertran.tranexp.com/Translate/result.shtml');
  395.     echo '<input type="hidden" name="topframe" value="yes" />'.
  396.          '<input type="hidden" name="type" value="text" />'.
  397.          '<input type="hidden" name="keyb" value="non" />'.
  398.          "<input type=\"hidden\" name=\"text\" value=\"$message\" />";
  399.  
  400.     $left '<select name="from">' .
  401.         translate_lang_opt('pt_BR''',    'pob'_("Brazilian Portuguese")).
  402.         translate_lang_opt('bg_BG''',    'bul'_("Bulgarian"' (CP 1251)').
  403.         translate_lang_opt('hr_HR''',    'cro'_("Croatian"' (CP 1250)').
  404.         translate_lang_opt('cs_CZ''',    'che'_("Czech"' (CP 1250)').
  405.         translate_lang_opt('da_DK''',    'dan'_("Danish")).
  406.         translate_lang_opt('nl_NL''',    'dut'_("Dutch")).
  407.         translate_lang_opt('en_US''!en''eng'_("English")).
  408.         translate_lang_opt('tl_PH''',    'tag'_("Filipino (Tagalog)")).
  409.         translate_lang_opt('fi_FI''',    'fin'_("Finnish")).
  410.         translate_lang_opt('fr_FR''',    'fre'_("French")).
  411.         translate_lang_opt('de_DE''',    'ger'_("German")).
  412.         translate_lang_opt('el_GR''',    'grk'_("Greek")).
  413.         translate_lang_opt('hu_HU''',    'hun'_("Hungarian"' (CP 1250)').
  414.         translate_lang_opt('is_IS''',    'ice'_("Icelandic")).
  415.         translate_lang_opt('it_IT''',    'ita'_("Italian")).
  416.         translate_lang_opt('ja_JP''',    'jpn'_("Japanese"' (Shift JIS)').
  417.         translate_lang_opt('la',    '',    'ltt'_("Latin")).
  418.         translate_lang_opt('es*',   '',    'spl'_("Latin American Spanish")).
  419.         translate_lang_opt('no*',   '',    'nor'_("Norwegian")).
  420.         translate_lang_opt('pl_PL''',    'pol'_("Polish"' (ISO 8859-2)').
  421.         translate_lang_opt('pt*',   '',    'poe'_("Portuguese")).
  422.         translate_lang_opt('ro_RO''',    'rom'_("Romanian"' (CP 1250)').
  423.         translate_lang_opt('ru_RU''',    'rus'_("Russian"' (CP 1251)').
  424.         translate_lang_opt('sr_YU''',    'sel'_("Serbian"' (CP 1250)').
  425.         translate_lang_opt('sl_SI''',    'slo'_("Slovenian"' (CP 1250)').
  426.         translate_lang_opt('es_ES''',    'spa'_("Spanish")).
  427.         translate_lang_opt('sv_SE''',    'swe'_("Swedish")).
  428.         translate_lang_opt('tr_TR''',    'tur'_("Turkish"' (CP 1254)').
  429.         translate_lang_opt('cy_GB''',    'wel'_("Welsh")).
  430.         '</select>';
  431.  
  432.     $right '<select name="to">'.
  433.         translate_lang_opt('',    'pt_BR''pob'_("Brazilian Portuguese")).
  434.         translate_lang_opt('',    'bg_BG''bul'_("Bulgarian"' (CP 1251)').
  435.         translate_lang_opt('',    'hr_HR''cro'_("Croatian"' (CP 1250)').
  436.         translate_lang_opt('',    'cs_CZ''che'_("Czech"' (CP 1250)').
  437.         translate_lang_opt('',    'da_DK''dan'_("Danish")).
  438.         translate_lang_opt('',    'nl_NL''dut'_("Dutch")).
  439.         translate_lang_opt('!en''en_US''eng'_("English")).
  440.         translate_lang_opt('',    'tl_PH''tag'_("Filipino (Tagalog)")).
  441.         translate_lang_opt('',    'fi_FI''fin'_("Finnish")).
  442.         translate_lang_opt('',    'fr_FR''fre'_("French")).
  443.         translate_lang_opt('',    'de_DE''ger'_("German")).
  444.         translate_lang_opt('',    'el_GR''grk'_("Greek")).
  445.         translate_lang_opt('',    'hu_HU''hun'_("Hungarian"' (CP 1250)').
  446.         translate_lang_opt('',    'is_IS''ice'_("Icelandic")).
  447.         translate_lang_opt('',    'it_IT''ita'_("Italian")).
  448.         translate_lang_opt('',    'ja_JP''jpn'_("Japanese"' (Shift JIS)').
  449.         translate_lang_opt('',    'la',    'ltt'_("Latin")).
  450.         translate_lang_opt('',    'es*',   'spl'_("Latin American Spanish")).
  451.         translate_lang_opt('',    'no*',   'nor'_("Norwegian")).
  452.         translate_lang_opt('',    'pl_PL''pol'_("Polish"' (ISO 8859-2)').
  453.         translate_lang_opt('',    'pt_PT''poe'_("Portuguese")).
  454.         translate_lang_opt('',    'ro_RO''rom'_("Romanian"' (CP 1250)').
  455.         translate_lang_opt('',    'ru_RU''rus'_("Russian"' (CP 1251)').
  456.         translate_lang_opt('',    'sr_YU''sel'_("Serbian"' (CP 1250)').
  457.         translate_lang_opt('',    'sl_SI''slo'_("Slovenian"' (CP 1250)').
  458.         translate_lang_opt('',    'es_ES''spa'_("Spanish")).
  459.         translate_lang_opt('',    'sv_SE''swe'_("Swedish")).
  460.         translate_lang_opt('',    'tr_TR''tur'_("Turkish"' (CP 1254)').
  461.         translate_lang_opt('',    'cy_GB''wel'_("Welsh")).
  462.         '</select>';
  463.     printf_("%s to %s")$left$right );
  464.     echo 'InterTran: <input type="submit" value="' _("Translate"'" />';
  465.  
  466. }
  467.  
  468. /**
  469.  * gpltrans translation engine
  470.  *
  471.  * @param string $message text that has to be translated
  472.  * @access private
  473.  */
  474. function translate_form_gpltrans($message{
  475.     translate_new_form('http://www.translator.cx/cgi-bin/gplTrans');
  476.     echo '<select name="language">'.
  477.         translate_lang_opt('''nl_NL''dutch_dict',      _("Dutch")).
  478.         translate_lang_opt('''fr_FR''french_dict',     _("French")).
  479.         translate_lang_opt('''de_DE''german_dict',     _("German")).
  480.         translate_lang_opt('''id_ID''indonesian_dict'_("Indonesian")).
  481.         translate_lang_opt('''it_IT''italian_dict',    _("Italian")).
  482.         translate_lang_opt('''la',    'latin_dict',      _("Latin")).
  483.         translate_lang_opt('''pt*',   'portuguese_dict'_("Portuguese")).
  484.         translate_lang_opt('''es_ES''spanish_dict',    _("Spanish")).
  485.         '</select>';
  486.     echo '<select name="toenglish">';
  487.     echo '<option value="yes" >'_("to English"'</option>';
  488.     echo '<option value="no" selected>' _("from English"'</option></select>';
  489.     echo "<input type=hidden name=text value=\"$message\" />".
  490.         'GPLTrans: <input type="submit" value="' _("Translate"'" />';
  491.  
  492. }
  493.  
  494. /**
  495.  * reference.com (dictionary) translation engine
  496.  *
  497.  * @param string $message text that has to be translated
  498.  * @access private
  499.  */
  500. function translate_form_dictionary($message{
  501.     translate_new_form('http://dictionary.reference.com/translate/text.html');
  502.     list($usec$secexplode(" ",microtime());
  503.     $time $sec . (float)$usec*100000000;
  504.     echo "<input type=\"hidden\" name=\"text\" value=\"$message\" />".
  505.          "<input type=\"hidden\" name=\"r\" value=\"$time\" />".
  506.          '<select name="lp">'.
  507.          translate_lang_opt('en_US''zh_CN''en_zh',
  508.                             sprintf_("%s to %s"),_("English"),_("Chinese, Simplified"))) .
  509.          translate_lang_opt('en_US''zh_TW''en_zt',
  510.                             sprintf_("%s to %s"),_("English"),_("Chinese, Traditional"))) .
  511.          translate_lang_opt('en_US''nl_NL''en_nl',
  512.                             sprintf_("%s to %s"),_("English"),_("Dutch"))) .
  513.          translate_lang_opt('en_US''fr_FR''en_fr',
  514.                             sprintf_("%s to %s"),_("English"),_("French"))) .
  515.          translate_lang_opt('en_US''de_DE''en_ge',
  516.                             sprintf_("%s to %s"),_("English"),_("German"))) .
  517.          translate_lang_opt('en_US''el_GR''en_el',
  518.                             sprintf_("%s to %s"),_("English"),_("Greek"))) .
  519.          translate_lang_opt('en_US''it_IT''en_it',
  520.                             sprintf_("%s to %s"),_("English"),_("Italian"))) .
  521.          translate_lang_opt('en_US''ja_JP''en_ja',
  522.                             sprintf_("%s to %s"),_("English"),_("Japanese"))) .
  523.          translate_lang_opt('en_US''ko_KR''en_ko',
  524.                             sprintf_("%s to %s"),_("English"),_("Korean"))) .
  525.          translate_lang_opt('en_US''pt*',   'en_pt',
  526.                             sprintf_("%s to %s"),_("English"),_("Portuguese"))) .
  527.          translate_lang_opt('en_US''ru_RU''en_ru',
  528.                             sprintf_("%s to %s"),_("English"),_("Russian"))) .
  529.          translate_lang_opt('en_US''es_ES''en_es',
  530.                             sprintf_("%s to %s"),_("English"),_("Spanish"))) .
  531.          translate_lang_opt('zh_CN',  '',     'zh_en',
  532.                             sprintf_("%s to %s"),_("Chinese, Simplified"),_("English"))) .
  533.          translate_lang_opt('zh_TW',  '',     'zt_en',
  534.                             sprintf_("%s to %s"),_("Chinese, Traditional"),_("English"))) .
  535.          translate_lang_opt('nl_NL',  '',     'nl_en',
  536.                             sprintf_("%s to %s"),_("Dutch"),_("English"))) .
  537.          translate_lang_opt('fr_FR',  '',     'fr_en',
  538.                             sprintf_("%s to %s"),_("French"),_("English"))) .
  539.          translate_lang_opt('de_DE''en_US''ge_en',
  540.                             sprintf_("%s to %s"),_("German"),_("English"))) .
  541.          translate_lang_opt('el_GR''',      'el_en',
  542.                             sprintf_("%s to %s"),_("Greek"),_("English"))) .
  543.          translate_lang_opt('it_IT',  '',     'it_en',
  544.                             sprintf_("%s to %s"),_("Italian"),_("English"))) .
  545.          translate_lang_opt('ja_JP',  '',     'ja_en',
  546.                             sprintf_("%s to %s"),_("Japanese"),_("English"))) .
  547.          translate_lang_opt('ko_KR',  '',     'ko_en',
  548.                             sprintf_("%s to %s"),_("Korean"),_("English"))) .
  549.          translate_lang_opt('pt*',    '',     'pt_en',
  550.                             sprintf_("%s to %s"),_("Portuguese"),_("English"))) .
  551.          translate_lang_opt('ru_RU',  '',     'ru_en',
  552.                             sprintf_("%s to %s"),_("Russian"),_("English"))) .
  553.          translate_lang_opt('es_ES',  '',     'es_en',
  554.                             sprintf_("%s to %s"),_("Spanish"),_("English"))) .
  555.          '</select>'.
  556.          'Dictionary.com: <input type="submit" value="'._("Translate").'" />';
  557.  
  558. }
  559.  
  560. /**
  561.  * otenet translation engine
  562.  *
  563.  * @param string $message text that has to be translated
  564.  * @access private
  565.  */
  566. function translate_form_otenet($message{
  567.     translate_new_form('http://trans.otenet.gr/systran/box');
  568. ?>
  569.     <input type="hidden" name="doit" value="done" />
  570.     <input name="partner" value="OTEnet-en" type="hidden" />
  571.     <input type="hidden" name="urltext" value="<?php echo $message?>" />
  572.     <select name="lp" size="1"><?php
  573.          echo translate_lang_opt('en_US''el_GR''en_el',
  574.                                 sprintf_("%s to %s"),_("English"),_("Greek"))) .
  575.          translate_lang_opt('el_GR''en_US''el_en',
  576.                             sprintf_("%s to %s"),_("Greek"),_("English"))) .
  577.          translate_lang_opt('fr_FR''',      'fr_el',
  578.                                 sprintf_("%s to %s"),_("French"),_("Greek"))) .
  579.          translate_lang_opt('el_GR''fr_FR''el_fr',
  580.                             sprintf_("%s to %s"),_("Greek"),_("French"))) .
  581.          translate_lang_opt('#',  '',  '''----------------'.
  582.          translate_lang_opt('en_US''',      'en_fr',
  583.                             sprintf_("%s to %s"),_("English"),_("French"))) .
  584.          translate_lang_opt('fr_FR''',      'fr_en',
  585.                             sprintf_("%s to %s"),_("French"),_("English"))) .
  586.          translate_lang_opt('en_US''de_DE''en_de',
  587.                             sprintf_("%s to %s"),_("English"),_("German"))) .
  588.          translate_lang_opt('de_DE''',      'de_en',
  589.                             sprintf_("%s to %s"),_("German"),_("English"))) .
  590.          translate_lang_opt('en_US''es_ES''en_es',
  591.                             sprintf_("%s to %s"),_("English"),_("Spanish"))) .
  592.          translate_lang_opt('es_ES''',      'es_en',
  593.                             sprintf_("%s to %s"),_("Spanish"),_("English"))) .
  594.          translate_lang_opt('en_US''it_IT''en_it',
  595.                             sprintf_("%s to %s"),_("English"),_("Italian"))) .
  596.          translate_lang_opt('it_IT''',      'it_en',
  597.                             sprintf_("%s to %s"),_("Italian"),_("English"))) .
  598.          translate_lang_opt('en_US''pt*',   'en_pt',
  599.                             sprintf_("%s to %s"),_("English"),_("Portuguese"))) .
  600.          translate_lang_opt('pt*',   '',      'pt_en',
  601.                             sprintf_("%s to %s"),_("Portuguese"),_("English"))) .
  602.          translate_lang_opt('fr_FR''',      'fr_de',
  603.                             sprintf_("%s to %s"),_("French"),_("German"))) .
  604.          translate_lang_opt('de_DE''',      'de_fr',
  605.                             sprintf_("%s to %s"),_("German"),_("French"))) .
  606.          translate_lang_opt('fr_FR''',      'fr_es',
  607.                             sprintf_("%s to %s"),_("French"),_("Spanish"))) .
  608.          translate_lang_opt('es_ES''',      'es_fr',
  609.                             sprintf_("%s to %s"),_("Spanish"),_("French"))) .
  610.          translate_lang_opt('fr_FR''nl_NL''fr_nl',
  611.                             sprintf_("%s to %s"),_("French"),_("Dutch"))) .
  612.          translate_lang_opt('nl_NL''',      'nl_fr',
  613.                             sprintf_("%s to %s"),_("Dutch"),_("French"))) ;
  614.     echo '</select>'.
  615.          'OTEnet: <input type="submit" value="' _("Translate"'" />';
  616.  
  617. }
  618.  
  619. /**
  620.  * promt translation engine
  621.  *
  622.  * @param string $message text that has to be translated
  623.  * @access private
  624.  */
  625. function translate_form_promt($message{
  626.     translate_new_form('http://www.online-translator.com/text.asp#tr_form');
  627.     echo '<input type="hidden" name="status" value="translate" />';
  628.     echo "<input type=\"hidden\" name=\"source\" value=\"$message\" />";
  629.     echo _("Interface language")." : ";
  630.     echo "<select size=\"1\" name=\"lang\">\n";
  631.     echo "<option value=\"en\">" _("English""</option>\n";
  632.     echo "<option value=\"ru\">" _("Russian""</option>\n";
  633.     echo "<option value=\"de\">" _("German""</option>\n";
  634.     echo "<option value=\"fr\">" _("French""</option>\n";
  635.     echo "<option value=\"es\">" _("Spanish""</option>\n";
  636.     echo "</select><br>\n";
  637.     echo _("Translation direction")." : ";
  638.     echo '<select size="1" id="direction" name="direction">';
  639.         echo translate_lang_opt('en_US''ru_RU''er',
  640.                                 sprintf_("%s to %s"),_("English"),_("Russian"))) .
  641.             translate_lang_opt('ru_RU''en_US''re',
  642.                                sprintf_("%s to %s"),_("Russian"),_("English"))) .
  643.             translate_lang_opt('de_DE''',      'gr',
  644.                                sprintf_("%s to %s"),_("German"),_("Russian"))) .
  645.             translate_lang_opt('ru_RU''de_DE''rg',
  646.                                sprintf_("%s to %s"),_("Russian"),_("German"))) .
  647.             translate_lang_opt('fr_FR',  '',     'fr',
  648.                                sprintf_("%s to %s"),_("French"),_("Russian"))) .
  649.             translate_lang_opt('ru_RU''fr_FR''rf',
  650.                                sprintf_("%s to %s"),_("Russian"),_("French"))) .
  651.             translate_lang_opt('es_ES''',      'sr',
  652.                                sprintf_("%s to %s"),_("Spanish"),_("Russian"))) .
  653.             translate_lang_opt('ru_RU''es_ES''rs',
  654.                                sprintf_("%s to %s"),_("Russian"),_("Spanish"))) .
  655.             translate_lang_opt('it_IT''',      'ir',
  656.                                sprintf_("%s to %s"),_("Italian"),_("Russian"))) .
  657.             translate_lang_opt('en_US''',      'eg',
  658.                                sprintf_("%s to %s"),_("English"),_("German"))) .
  659.             translate_lang_opt('de_DE''',      'ge',
  660.                                sprintf_("%s to %s"),_("German"),_("English"))) .
  661.             translate_lang_opt('en_US''',      'es',
  662.                                sprintf_("%s to %s"),_("English"),_("Spanish"))) .
  663.             translate_lang_opt('es_ES''',  'se',
  664.                                sprintf_("%s to %s"),_("Spanish"),_("English"))) .
  665.             translate_lang_opt('en_US''',  'ef',
  666.                                sprintf_("%s to %s"),_("English"),_("French"))) .
  667.             translate_lang_opt('fr_FR''',  'fe',
  668.                                sprintf_("%s to %s"),_("French"),_("English"))) .
  669.             translate_lang_opt('en_US''',  'ep',
  670.                                sprintf_("%s to %s"),_("English"),_("Portuguese")));
  671.     echo "</select><br>\n";
  672.     echo "<input type=\"hidden\" name=\"template\" value=\"General\" />\n";
  673.     echo 'PROMT: <input type="submit" value="' _("Translate"'" />';
  674.  
  675. }
  676.  
  677. /**
  678.  * google translation engine
  679.  *
  680.  * @param string $message text that has to be translated
  681.  * @access private
  682.  */
  683. function translate_form_google($message{
  684.     translate_new_form('http://www.google.com/translate_t','utf-8');
  685.     echo '<input type="hidden" name="text" value="' $message '" />';
  686.     echo '<select name="langpair">'.
  687.          translate_lang_opt('en_US''de_DE''en|de',
  688.                             sprintf_("%s to %s"),_("English"),_("German"))) .
  689.          translate_lang_opt('en_US''es_ES',  'en|es',
  690.                             sprintf_("%s to %s"),_("English"),_("Spanish"))) .
  691.          translate_lang_opt('en_US''fr_FR''en|fr',
  692.                             sprintf_("%s to %s"),_("English"),_("French"))) .
  693.          translate_lang_opt('en_US''it_IT''en|it',
  694.                             sprintf_("%s to %s"),_("English"),_("Italian"))) .
  695.          translate_lang_opt('en_US''pt*',   'en|pt',
  696.                             sprintf_("%s to %s"),_("English"),_("Portuguese"))) .
  697.          translate_lang_opt('en_US''ar',    'en|ar',
  698.                             sprintf_("%s to %s"),_("English"),_("Arabic"))) .
  699.          translate_lang_opt('en_US''ja_JP''en|ja',
  700.                             sprintf_("%s to %s"),_("English"),_("Japanese"))) .
  701.          translate_lang_opt('en_US''ko_KR''en|ko',
  702.                             sprintf_("%s to %s"),_("English"),_("Korean"))) .
  703.          translate_lang_opt('en_US''zh_CN''en|zh-CN',
  704.                             sprintf_("%s to %s"),_("English"),_("Chinese, Simplified"))) .
  705.          translate_lang_opt('de_DE''en_US''de|en',
  706.                             sprintf_("%s to %s"),_("German"),_("English"))) .
  707.          translate_lang_opt('de_DE''''de|fr',
  708.                             sprintf_("%s to %s"),_("German"),_("French"))) .
  709.          translate_lang_opt('es_ES''''es|en',
  710.                             sprintf_("%s to %s"),_("Spanish"),_("English"))) .
  711.          translate_lang_opt('fr_FR''''fr|en',
  712.                             sprintf_("%s to %s"),_("French"),_("English"))) .
  713.          translate_lang_opt('fr_FR''''fr|de',
  714.                             sprintf_("%s to %s"),_("French"),_("German"))) .
  715.          translate_lang_opt('it_IT''''it|en',
  716.                             sprintf_("%s to %s"),_("Italian"),_("English"))) .
  717.          translate_lang_opt('pt*',   '''pt|en',
  718.                             sprintf_("%s to %s"),_("Portuguese"),_("English"))).
  719.          translate_lang_opt('ar',    '''ar|en',
  720.                             sprintf_("%s to %s"),_("Arabic"),_("English"))).
  721.          translate_lang_opt('ja_JP''''ja|en',
  722.                             sprintf_("%s to %s"),_("Japanese"),_("English"))).
  723.          translate_lang_opt('ko_KR''''ko|en',
  724.                             sprintf_("%s to %s"),_("Korean"),_("English"))).
  725.          translate_lang_opt('zh_CN''''zh-CN|en',
  726.                             sprintf_("%s to %s"),_("Chinese, Simplified"),_("English")));
  727.     echo '</select>'.
  728.         '<input type="hidden" name="hl" value="en" />' .
  729.         '<input type="hidden" name="ie" value="UTF8" />' .
  730.         '<input type="hidden" name="oe" value="UTF8" />' .
  731.         'Google: <input type="submit" value="' _("Translate"'" />';
  732.  
  733. }

Documentation generated on Mon, 13 Jan 2020 04:25:17 +0100 by phpDocumentor 1.4.3