2011-01-09 20 views
12

का उपयोग करके एक PHP $ स्ट्रिंग का अनुवाद करें, थोड़ी देर के लिए google'ing रहा है PHP में Google अनुवादक के साथ अनुवाद करने का सबसे अच्छा तरीका कैसा है, यूआरएल को परिवर्तित करने या जेएस का उपयोग करने के बहुत अलग तरीके पाए गए हैं, लेकिन मैं इसे केवल इसके साथ करना चाहता हूं php (या एक बहुत ही सरल समाधान जे एस/jQuery के साथ)Google अनुवादक एपीआई

उदाहरण:

//hopefully with $from_lan and $to_lan being like 'en','de', .. or similar 
function translate($from_lan, $to_lan, $text){ 

// do 

return $translated_text; 

} 

तुम मुझे एक सुराग दे सकते हैं? या हो सकता है कि आपके पास पहले से ही यह फ़ंक्शन हो ..

मेरा इरादा यह केवल उन भाषाओं के लिए उपयोग करना है जिन्हें मैंने पहले ही परिभाषित नहीं किया है (या कुंजी जिन्हें मैंने परिभाषित नहीं किया है), यही कारण है कि मैं इसे इतना आसान बना सकता हूं, केवल अस्थायी होगा ..

संपादित

अपने उत्तरों अब हम कोशिश कर रहे हैं इस soulutions के लिए

धन्यवाद:

function auto_translate($from_lan, $to_lan, $text){ 
// do 


$json = json_decode(file_get_contents('https://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=' . urlencode($text) . '&langpair=' . $from_lan . '|' . $to_lan)); 
$translated_text = $json->responseData->translatedText; 


return $translated_text; 

}

(वहाँ एक अतिरिक्त वर पर 'जी' था लैंग के लिए iables ... वैसे भी)

यह रिटर्न: अब काम करता है :)

मैं सच में बहुत समारोह समझ में नहीं आता, इसलिए किसी भी विचार क्यों वस्तु acepting नहीं है? (अब मैं करना)

या:

function auto_translate($from_lan, $to_lan, $text){ 
    // do 

// $json = json_decode(file_get_contents('https://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=' . urlencode($text) . '&langpair=' . $from_lan . '|' . $to_lan)); 
// $translated_text = $json['responseData']['translatedText']; 
    error_reporting(1); 
    require_once('GTranslate.php'); 
    try{ 
     $gt = new Gtranslate(); 
     $translated_text = $gt->english_to_german($text); 

    } catch (GTranslateException $ge) 
    { 
      $translated_text= $ge->getMessage(); 
    } 


    return $translated_text; 
} 

और यह एक बहुत अच्छा लगता है, लेकिन यह भी मुझे एक त्रुटि देता है नहीं करता है, पेज लोड नहीं होगा (error_report (1): एस)

अग्रिम धन्यवाद!

+0

json_decode एक ऑब्जेक्ट देता है, एक सरणी नहीं। तो, आपको $ $ जेसन ['प्रतिक्रिया डेटा'] ['translatText'] 'के बजाय' $ json-> प्रतिक्रिया डेटा-> अनुवादित टेक्स्ट 'करना होगा, जिसे मैं अब नीचे देखता हूं। – Phoenix

उत्तर

11

मैं अभी तक इस परीक्षण किया है नहीं है, लेकिन कोशिश:

function translate($from_lan, $to_lan, $text){ 
    $json = json_decode(file_get_contents('https://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=' . urlencode($text) . '&langpair=' . $from_lan . '|' . $to_lan)); 
    $translated_text = $json->responseData->translatedText; 

    return $translated_text; 
} 

संपादित करें: फिक्स्ड, परीक्षण किया है और काम करता है।

+0

बहुत बहुत धन्यवाद! अपने कोड के साथ प्रश्न अपडेट किया गया (एक कूड़े की त्रुटि थी) और त्रुटि समझाते हुए :(लेकिन यह हम इसे ठीक से काम कर सकते हैं जो मुझे चाहिए! और निश्चित रूप से कई अन्य लोगों के लिए उपयोगी है –

+0

मैंने इसे ठीक किया और अपना कोड संपादित किया। अब यह काम करता है। – Savetheinternet

+0

मुझे एक त्रुटि मिलती है। चेतावनी: file_get_contents() [function.file-get-content]: रैपर "https" ढूंढने में असमर्थ - क्या आपने इसे कॉन्फ़िगर करना भूल गया था जब आपने PHP कॉन्फ़िगर किया था? D: \ translate.php लाइन 166 चेतावनी: file_get_contents (https://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=Translate&langpair=auto|es) [function.file-get-content]: खोलने में विफल स्ट्रीम: लाइन 166 पर डी: \ translate.php में ऐसी कोई फ़ाइल या निर्देशिका नहीं: नोट: डी-\ translate.php में गैर-ऑब्जेक्ट की संपत्ति प्राप्त करने का प्रयास लाइन 167 नोटिस: गैर-ऑब्जेक्ट की संपत्ति प्राप्त करने का प्रयास डी: \ translate.php लाइन 167 – Smith

संबंधित मुद्दे