Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Создание парсера с translate.google.ru
 
 автор: Стажер   (10.02.2011 в 22:30)   письмо автору
 
 

Привет всем! У меня вот такой вот вопрос у меня есть сайт я хочу сделать его многоязычном для того чтобы я его не переводил сам а вместо меня translate.google.ru. Я знаю что это делается через парсер но не знаю как :( помогите пожалуйста. Суть таково я в админке добавляю новый страницку нажимаю добавить и ну и работает парсер переводить его через translate.google.ru и обратно в бд вставляет помогите плеез я ваше проста не знаю как делается парсер

  Ответить  
 
 автор: neadekvat   (10.02.2011 в 22:41)   письмо автору
 
   для: Стажер   (10.02.2011 в 22:30)
 

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

  Ответить  
 
 автор: Косорылый   (10.02.2011 в 23:38)   письмо автору
 
   для: Стажер   (10.02.2011 в 22:30)
 

<?
class GoogleTranslate{
    protected static 
$url "http://ajax.googleapis.com/ajax/services/language/translate";
    protected static 
$version "1.0";
 
    protected static function 
getUrl($url)
    {
        
$useragent='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1';
        
$ch curl_init($url);
        
curl_setopt($chCURLOPT_USERAGENT$useragent);
        
curl_setopt($chCURLOPT_HEADER0);
        
curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
        
$html curl_exec($ch) ;
        
curl_close($ch);        
        return 
$html;
    }
    public static function 
get($str$from 'ru'$to 'en')
    {
        
$url self::$url."?v=".self::$version."&q=".rawurlencode($str)."&langpair=".$from."%7C".$to;
        
$json self::getUrl($url);
        
$data json_decode($json);
                return 
$data->responseData->translatedText;
    }
}
$TEXT='Попробуйте-ка сначала целый текст на английском перевести 
через такой вот переводчик на русский и почитайте, что получилось.
Кому нужна такая мультиязычность?'
;

echo 
GoogleTranslate::get($TEXT);

// Try and at first the whole text in English translated by an interpreter in Russian here and read what happened.
 //Who needs a multilingual?


Класс рабочий ,но не до конца доработанный и не оптимизированный ,тренируйтесь сами :)

  Ответить  
 
 автор: Deed   (11.02.2011 в 13:58)   письмо автору
 
   для: Косорылый   (10.02.2011 в 23:38)
 

А не легче ли сделать так:
http://translate.google.com/translate?hl=ru&sl=ru&tl=en&u=http://www.yoursite.com (RUS-ENG)
http://translate.google.com/translate?hl=ru&sl=ru&tl=uk&u=http://www.yoursite.com (RUS-UKR)
http://translate.google.com/translate?hl=ru&sl=ru&tl=it&u=http://www.yoursite.com (RUS-ITA)
И т.д.

  Ответить  
 
 автор: mihdan   (13.02.2011 в 22:44)   письмо автору
 
   для: Deed   (11.02.2011 в 13:58)
 

Нет не легче. Сколько вы текста передадите методом get?

  Ответить  
 
 автор: mihdan   (13.02.2011 в 22:47)   письмо автору
 
   для: Стажер   (10.02.2011 в 22:30)
 


<?php
function translateTitleByGoogle ($string$from 'ru'$to 'en') {
    
    
$params = array();
    
$params['v'] = '1.0';
    
$params['langpair'] = "{$from}|{$to}";
    
$params['q'] = $string;
    
    
$ch curl_init();
    
curl_setopt($chCURLOPT_URL'http://ajax.googleapis.com/ajax/services/language/translate');
    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
    
curl_setopt($chCURLOPT_REFERER'http://google.com/');
    
curl_setopt($chCURLOPT_POST1);
    
curl_setopt($chCURLOPT_POSTFIELDS$params);
    
$body curl_exec($ch);
    
    
$http_code curl_getinfo($chCURLINFO_HTTP_CODE);
    
curl_close($ch);
    
    if (
$http_code == 200) {
        
$json_response json_decode($body);
        if (
$json_response->responseStatus == 200) {
            return 
$json_response->responseData->translatedText;
        }
    }
    return 
false;
}
echo 
translateTitleByGoogle("Тут текст для перевода");
?>

  Ответить  
 
 автор: Косорылый   (14.02.2011 в 00:29)   письмо автору
 
   для: mihdan   (13.02.2011 в 22:47)
 

Гугл юзерагента хочет и рефера пасёт ,иначе много не напереводишь ,выкинет капчу (в лучшем случае)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования