使用谷歌翻译API翻译PHP $字符串

Ton*_*bet 12 php google-translate

google'ing一段时间用PHP翻译谷歌翻译的最佳方式是什么,发现转换URLs或使用Js的方式非常不同但我想只用php(或者用一个非常简单的解决方案JS/JQUery)来做

例:

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

// do

return $translated_text;

}
Run Code Online (Sandbox Code Playgroud)

你能告诉我一个线索吗?或者你已经有了这个功能..

我的意图是它只用于我尚未定义的语言(或我没有定义的键),这就是为什么我想它如此简单,只会暂时...

编辑

感谢您的回复,我们正在尝试这个问题:

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;
Run Code Online (Sandbox Code Playgroud)

}

(对于lang的变量有一个额外的'g'...无论如何)

它返回:现在工作:)

我真的不太了解这个功能,所以任何想法为什么都没有点击这个对象?(现在我这样做)

要么:

    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;
}
Run Code Online (Sandbox Code Playgroud)

这一个看起来很棒,但它甚至没有给我一个错误,页面将无法加载(error_report(1):S)

提前致谢!

Sav*_*net 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;
}
Run Code Online (Sandbox Code Playgroud)

编辑:固定,测试和工作.

  • 不幸的是,这不再适用.Google阻止了所有第三方请求 (6认同)

小智 6

我对此有新的解决方案..因为最后一个解决方案需要新版本并且一些获取了其他问题。


    $text = 'Test new message only.';
    $apiKey = '<past your google api key here>';
    $url = 'https://www.googleapis.com/language/translate/v2?key=' . $apiKey . '&q=' . rawurlencode($text) . '&source=en&target=fr';
    $handle = curl_init($url);
    curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($handle);
    $responseDecoded = json_decode($response, true);

    curl_close($handle);

    print_r($responseDecoded['data']['translations'][0]['translatedText']);
    die;

    //expected output
     Testez le nouveau message uniquement.
Run Code Online (Sandbox Code Playgroud)

我希望对 PHP 很有帮助