Переводчик

Discussion in 'PHP' started by Cactuz, 30 Nov 2007.

  1. Cactuz

    Cactuz Elder - Старейшина

    Joined:
    6 Jan 2007
    Messages:
    86
    Likes Received:
    5
    Reputations:
    0
    Помогите переделать этот скрипт /showpost.php?p=457135&postcount=193
    PHP:
    <?  

    #(c) NOmeR1 && Идея - madnet :)  

    function translate($text,$mask 'ru|en')  
    {  
     
    $open file_get_contents('http://translate.google.com/translate_t?hl=en&ie=WINDOWS-1251&text='.urlencode($text).'&langpair='.$mask);  
     
    $open preg_match('/<textarea name=utrans([^>]+)>([^<]+)<\/textarea>/i',$open,$regs);  
     
    $regs[2] = preg_replace('/(\s)?&amp;/i' '&' $regs[2]);  
     
    $regs[2] = preg_replace('/(\s)?&#*039;/i'"'" $regs[2]); //уберите символ * после &# потому что форум не фильтрует эти символы :(  
     
    $regs[2] = preg_replace('/(\s)?&#*39;/i' "'" $regs[2]); //уберите символ * после &# потому что форум не фильтрует эти символы :(  
     
    $regs[2] = preg_replace('/(\s)?&quot;/i''"' $regs[2]);  
     
    $regs[2] = preg_replace('/(\s)?&quot/i' '"' $regs[2]);  
     
    $regs[2] = preg_replace('/(\s)?&lt;/i'  '<' $regs[2]);  
     
    $regs[2] = preg_replace('/(\s)?&gt;/i'  '>' $regs[2]);  
     
    $regs[2] = preg_replace('/(\s)?\//i'    '/' $regs[2]);  
     
    $regs[2] = preg_replace('/(\s)?\)/i'    ')' $regs[2]);  
     
    $regs[2] = preg_replace('/(\s)?\(/i'    '(' $regs[2]);  
     
    $regs[2] = preg_replace('/(\s)?=/i'     '=' $regs[2]);  
     return 
    $regs[2];  
    }  

    echo 
    translate('<input value="Этот скрипт умеет переводить текст в тегах." style="width:210px"> А так же и вне тега.','ru|en');  

    ?>
    ну штобы я вводил текст и мог перевести его на русский и наоборот на английский
    ну штото наподобие этой формы... только скрипт не работает =(

    PHP:
    <form method="post">
    <
    input type=text name=txt>
    <
    select name=mask>
    <
    option value="en|ru">английский-русский
    <option value="ru|en" selected>русский-английский
    </select>
    <
    input type=submit name=click value="Перевести!">
    </
    form>
     
  2. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    809
    Reputations:
    231
    Форма для ввода текста:
    Code:
    <form action="tr.php" method="get">
    <input type=text name=txt>
    <select name=mask>
    <option value="en|ru">английский-русский
    <option value="ru|en" selected>русский-английский
    </select>
    <input type=submit name=click value="Перевести!">
    </form> 
    
    Файл tr.php:
    Code:
    <? 
    
    $mask = $_GET['mask'];
    $txt = $_GET['txt'];
    
    function translate($text,$mask) 
    { 
     $open = file_get_contents('http://translate.google.com/translate_t?hl=en&ie=WINDOWS-1251&text='.urlencode($text).'&langpair='.$mask); 
     $open = preg_match('/<textarea name=utrans([^>]+)>([^<]+)<\/textarea>/i',$open,$regs); 
     $regs[2] = preg_replace('/(\s)?&amp;/i' , '&' , $regs[2]); 
     $regs[2] = preg_replace('/(\s)?&#*039;/i', "'" , $regs[2]); //уберите символ * после &# потому что форум не фильтрует эти символы :( 
     $regs[2] = preg_replace('/(\s)?&#*39;/i' , "'" , $regs[2]); //уберите символ * после &# потому что форум не фильтрует эти символы :( 
     $regs[2] = preg_replace('/(\s)?&quot;/i', '"' , $regs[2]); 
     $regs[2] = preg_replace('/(\s)?&quot/i' , '"' , $regs[2]); 
     $regs[2] = preg_replace('/(\s)?&lt;/i'  , '<' , $regs[2]); 
     $regs[2] = preg_replace('/(\s)?&gt;/i'  , '>' , $regs[2]); 
     $regs[2] = preg_replace('/(\s)?\//i'    , '/' , $regs[2]); 
     $regs[2] = preg_replace('/(\s)?\)/i'    , ')' , $regs[2]); 
     $regs[2] = preg_replace('/(\s)?\(/i'    , '(' , $regs[2]); 
     $regs[2] = preg_replace('/(\s)?=/i'     , '=' , $regs[2]); 
     return $regs[2]; 
    } 
    
    echo translate($txt,$mask); 
    
    ?> 
    
     
    _________________________
  3. Cactuz

    Cactuz Elder - Старейшина

    Joined:
    6 Jan 2007
    Messages:
    86
    Likes Received:
    5
    Reputations:
    0
    так пробывал я так....
    переволд слов получаетца приблизительно таким
    ну непонтное осержание букв... как сделать штобы работало...
     
  4. XopoIII

    XopoIII Elder - Старейшина

    Joined:
    29 Oct 2007
    Messages:
    386
    Likes Received:
    30
    Reputations:
    0
    потому что он переводит буквы с русской расскладки на англискую и наобород, а нужно переводить слова скачай лингво.
     
  5. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    809
    Reputations:
    231
    У меня всё работает
     
    _________________________
  6. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    Хм, там по дефолту кодировка UTF-8. Попробуй
    PHP:
    <? 

    if( 
    $_POST['text'] && $_POST['mask'] )
    {
        function 
    translate($text,$mask)   
        {   
            
    $open file_get_contents('http://translate.google.com/translate_t?hl=en&ie=UTF8&text='.urlencode($text).'&langpair='.$mask);
            
    $open preg_match('/<textarea name=utrans([^>]+)>([^<]+)<\/textarea>/i',$open,$regs);
            return 
    $regs[2];   
        }
        echo 
    translate($_POST['text'],$_POST['mask']);
    }

    else
    {
        echo(
    '<form method="POST">
              Текст для перевода: <input type="text" name="text"><br>
              <select name=mask> 
              <option value="en|ru">английский-русский</option>
              <option value="ru|en" selected>русский-английский </option>
              </select><br>
              <input type="submit">
              </form>'
    );
    }

    ?>
     
  7. -Hormold-

    -Hormold- Кто, если не ты?

    Joined:
    29 Sep 2007
    Messages:
    418
    Likes Received:
    290
    Reputations:
    44
    У меня тоже не работает =\
    РТЙЧЕФ МАДЙ!
     
    2 people like this.
  8. Cactuz

    Cactuz Elder - Старейшина

    Joined:
    6 Jan 2007
    Messages:
    86
    Likes Received:
    5
    Reputations:
    0
    чёто этот вариант вообще не работает....
     
  9. Cactuz

    Cactuz Elder - Старейшина

    Joined:
    6 Jan 2007
    Messages:
    86
    Likes Received:
    5
    Reputations:
    0
    АППППППППППП