Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Yandex API Translate


Автор: timedo 29.5.2013, 21:06
Здравствуйте. Мне нужно сделать что б к примеру в одном поле пишешь на русском, а во второй форме перевод на английский, с помощью Yandex API Translate. В php я не силен, вот что у меня получилось, наверно половина не правильная, прошу вашей помощи. 
Код

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Переводчик</title>
        <link rel="stylesheet" type="text/css" href="style.css">
    </head>

<body>
<?php
    $key = "trnsl.1.1.20130528T174837Z.1006c22372ab58bf.72e246a55c848a919dc8eb7643baa3cf3ec7876c";
    $flag = "en-ru";

    if(isset($_GET["text"]) && isset($_GET["flag"])) {
        $xml = simplexml_load_file('https://translate.yandex.net/api/v1.5/tr/translate?key='.$key.'&lang='.$_GET["flag"].'&text='.$_GET("str").'');
        $code = $xml["code"];
        
    }
?>
<div class="content-main">
    <form method="post" >
        <textarea name="text" rows=5 cols=40>

        </textarea>
        <button type="submit" >Отправить</button>
    </form>

    <form>
        <textarea name="text1" rows=5 cols=40>
        <?php
        if($code == 200) {
            echo $xml->text1;
        } else {
            echo 'Не';
        } 
        ?>
        </textarea>
    </form>


</div>
</body>

</html>


Автор: krundetz 30.5.2013, 09:30
Цитата(timedo @  29.5.2013,  21:06 Найти цитируемый пост)
Мне нужно сделать что б к примеру в одном поле пишешь на русском, а во второй форме перевод на английский

По типу гугл транслейт? Тогда вам нужно использовать JavaScript на клиентской стороне. Иначе в одной форме вводите текст, нажимаете кнопку отправит, после чего сервер выдает новую страницу с информацией в обеих полях. Как то так.

Код

$text = '';
$translatedText = '';
if(isset($_POST['text'])) {
    $text = $_POST['text'];
    ///здесь отсылаем запрос Яндексу и получаем перевод код берете из вашего примера
    ///а здесь переменой $translatedText присваиваете перевод из ответа Яндекса
}



Код

<form action="translete.php" method="POST">
<textarea name="text"><?php echo $text; ?></textarea>
<input type="submit" />
</form>
<div>
<textarea><?php echo $translatedText; ?></textarea>
</div>


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)