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

Тема в разделе "Автоблоггинг", создана пользователем tuo34, 12 окт 2008.

Статус темы:
Закрыта.
  1. tuo34

    tuo34 Постоялец

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

    Dador Читатель

    Заблокирован
    Регистр.:
    14 янв 2008
    Сообщения:
    368
    Симпатии:
    97
    Достаточно отключить js чтобы было всё без него, он работает и без него
    попробуйте

    и кстати на него есть уже довольно таки много скриптов готовых ;)
     
  3. ivashka

    ivashka

    Регистр.:
    16 май 2007
    Сообщения:
    151
    Симпатии:
    15
    я работаю через гугл, вот код:
    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($gphtmlstrpos($gphtml"<div id=result_box dir=\"ltr\">"));
            
    $out substr($out29);
            
    $out substr($out0strpos($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($chCURLOPT_RETURNTRANSFER1);
                
    curl_setopt($chCURLOPT_HEADER1);
                
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
                
    curl_setopt($chCURLOPT_TIMEOUT15);
                
    curl_setopt($chCURLOPT_POST1);
                
    curl_setopt($chCURLOPT_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")); - тут указываем направление перевода.

    Если что-то неясно обращайтесь в ПМ, помогу...
     
    Holy Diver, 8LADIMIR, gimmo и 4 другим нравится это.
  4. Alek$

    Alek$ Постоялец

    Регистр.:
    24 сен 2008
    Сообщения:
    63
    Симпатии:
    25
    Это, конечно, не API, но для парсинга пойдет:
    http://www.translate.ru/url/translation.aspx?direction=er&template=General&autotranslate=on&transliterate=&showvariants=&sourceURL=http://google.com
     
  5. Denis5

    Denis5 Постоялец

    Регистр.:
    2 сен 2008
    Сообщения:
    98
    Симпатии:
    23
    ivashka, спасибо за код, но как с кодировками разобраться? У меня страницы в utf-8

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

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

    en|ar - не корректно работает, но х с ним, подскажи пожалуйста как кириллицу заставить работать?
    Подозреваю будет много ifов с перекодировками?
     
  6. ivashka

    ivashka

    Регистр.:
    16 май 2007
    Сообщения:
    151
    Симпатии:
    15
    Ну да, у меня через file_get_contents получается текст в win-1251. Думаю надо использовать win-1251 в utf8.
    Хотя можно попробывать изменить кодировку самого удаленного файла на utf8. Должно помогти, но сам не пробовал...
     
  7. chewie

    chewie Создатель

    Регистр.:
    17 ноя 2007
    Сообщения:
    41
    Симпатии:
    1
    Каким это образом можно сменить кодировку удаленного файла? :)))

    Юзайте iconv или mbstring.
     
Статус темы:
Закрыта.