онлайн переводчик с доступным API

Статус
В этой теме нельзя размещать новые ответы.

tuo34

Постоялец
Регистрация
24 Апр 2008
Сообщения
59
Реакции
16
Посоветуйте, плиз, есть ли в свободном доступен онлайн переводчик с открытым API, чтобы обращаться к нему через php, и чтобы ограничений не было особых. пока нашел только через гугл, но там через javascript.
 
  • Заблокирован
  • #2
Посоветуйте, плиз, есть ли в свободном доступен онлайн переводчик с открытым API, чтобы обращаться к нему через php, и чтобы ограничений не было особых. пока нашел только через гугл, но там через javascript.

Достаточно отключить js чтобы было всё без него, он работает и без него
попробуйте

и кстати на него есть уже довольно таки много скриптов готовых ;)
 
я работаю через гугл, вот код:
PHP:
<?php
class Google_API_translator {
    public $opts = array("text" => "", "language_pair" => "en|it");
    public $out = "";

    function __construct() {
    }

    function setOpts($opts) {
        if($opts["text"] != "") $this->opts["text"] = $opts["text"];
        if($opts["language_pair"] != "") $this->opts["language_pair"] = $opts["language_pair"];
    }

    function translate() {
        $this->out = "";
        $google_translator_url = "http://translate.google.com/translate_t?langpair=".urlencode($this->opts["language_pair"])."&amp;";
        $google_translator_data .= "text=".urlencode($this->opts["text"]);
        $gphtml = $this->postPage(array("url" => $google_translator_url, "data" => $google_translator_data));
        $out = substr($gphtml, strpos($gphtml, "<div id=result_box dir=\"ltr\">"));
        $out = substr($out, 29);
        $out = substr($out, 0, strpos($out, "</div>"));
        $this->out = $out;
        return $this->out;
    }

    // post form data to a given url using curl libs
    function postPage($opts) {
        $html = "";
        if($opts["url"] != "" && $opts["data"] != "") {
            $ch = curl_init($opts["url"]);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_HEADER, 1);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
            curl_setopt($ch, CURLOPT_TIMEOUT, 15);
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $opts["data"]);
            $html = curl_exec($ch);
            if(curl_errno($ch)) $html = "";
            curl_close ($ch);
        }
        return $html;
    }
}
$g = new Google_API_translator();
$text=$_GET['text'];
$g->setOpts(array("text" => $text, "language_pair" => "en|uk"));
$g->translate();
$text=$g->out;
print $text;
?>
перевод мне нужно делать удаленно, по этому использую следующее:
PHP:
$text="Тут текст который переводим :)";
$text_url="сайт.ру/skript.php?text=".urlencode(strip_tags($text));
$text=file_get_contents ($text_url);

В переменной $text, получаем переведенный текст.

$g->setOpts(array("text" => $text, "language_pair" => "en|uk")); - тут указываем направление перевода.

Если что-то неясно обращайтесь в ПМ, помогу...
 
ivashka, спасибо за код, но как с кодировками разобраться? У меня страницы в utf-8

Западные языки нормально переводит.
en|ru - мне помогает iconv("KOI8-R", "UTF-8" в выводе
auto|ru, исходный тоже en - уже не помогает.

Для украинского - ничего не помогает.
кириллица|en - тоже не знаю как.

en|ar - не корректно работает, но х с ним, подскажи пожалуйста как кириллицу заставить работать?
Подозреваю будет много ifов с перекодировками?
 
Ну да, у меня через file_get_contents получается текст в win-1251. Думаю надо использовать win-1251 в utf8.
Хотя можно попробывать изменить кодировку самого удаленного файла на utf8. Должно помогти, но сам не пробовал...
 
Каким это образом можно сменить кодировку удаленного файла? :)))

Юзайте iconv или mbstring.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху