PDA

Просмотр полной версии : Переводчик


Cactuz
30.11.2007, 02:06
Помогите переделать этот скрипт http://forum.antichat.ru/showpost.php?p=457135&postcount=193
<?

#(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');

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

<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>

Kaimi
30.11.2007, 02:26
Форма для ввода текста:

<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:

<?

$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);

?>

Cactuz
30.11.2007, 08:54
так пробывал я так....
переволд слов получаетца приблизительно таким ФПМШЛП ну непонтное осержание букв... как сделать штобы работало...

XopoIII
30.11.2007, 09:08
потому что он переводит буквы с русской расскладки на англискую и наобород, а нужно переводить слова скачай лингво.

Kaimi
30.11.2007, 15:05
У меня всё работает

NOmeR1
30.11.2007, 21:04
Хм, там по дефолту кодировка UTF-8. Попробуй
<?

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>');
}

?>

-Hormold-
30.11.2007, 22:31
У меня тоже не работает =\
РТЙЧЕФ МАДЙ!

Cactuz
30.11.2007, 22:32
чёто этот вариант вообще не работает....

Cactuz
04.12.2007, 11:03
АППППППППППП