Калі ўсё працуе добра, і раптам яго няма, то адным з магчымых варыянтаў з'яўляецца тое, што ў вас праблемы з вашым перакладам правайдэра (іншыя: некаторыя канфігурацыі быў зменены, новы мод дадаў, некаторы праграмнае забеспячэнне абнаўляецца).
Існуе вельмі просты спосаб, каб праверыць ці ёсць у вас праблемы з Google API v1 ці гэта дзе-небудзь яшчэ. Каб праверыць гэта, калі ласка проста стварыць новы PHP файл з такім зместам:
Гэты файл можна знайсці ў vBET пакет у do-not-upload/tools/googletest.php
PHP Code:
<?php
echo "Starting translation test for Google API v1<br/>\n";
$connection = curl_init();
curl_setopt($connection, CURLOPT_URL, 'http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&format=html&langpair=pl|en&q=witaj');
curl_setopt($connection, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)');
//curl_setopt($connection, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($connection, CURLOPT_RETURNTRANSFER, 1);
$time = microtime(true) * 1000;
$result = curl_exec($connection);
$time = microtime(true) * 1000 - $time;
echo 'Test result: '.$result."<br/>\n";
echo 'Test error: '.curl_error($connection)."<br/>\n";
curl_close($connection);
echo 'Connection time (ms): '.$time;
?>
У выпадку, калі вы выкарыстоўваеце Google API v2 выкарыстоўваць гэты код - і гэты файл будзе ўключаны ў нашым наступным выпуску:
PHP Code:
<?php
require_once('./global.php');
echo "Starting translation test for Google API v2<br/>\n";
$connection = curl_init();
curl_setopt($connection, CURLOPT_URL, 'https://www.googleapis.com/language/translate/v2?key='.$vbulletin->options['vbenterprisetranslator_googleapikeyv2'].'&format=html&q=witaj&target=en');
curl_setopt($connection, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)');
//curl_setopt($connection, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($connection, CURLOPT_RETURNTRANSFER, 1);
$time = microtime(true) * 1000;
$result = curl_exec($connection);
$time = microtime(true) * 1000 - $time;
echo 'Test result: '.$result."<br/>\n";
echo 'Test error: '.curl_error($connection)."<br/>\n";
curl_close($connection);
echo 'Connection time (ms): '.$time;
?>
Загрузіце яго на ваш сервер (ваш форум корань) і паставіць спасылку на на яго ў сваім браўзэры. Калі ўсё ў парадку, вы атрымаеце адказ:
Code:
Starting transaltion test
Test result: {"responseData": {"translatedText":"Welcome"}, "responseDetails": null, "responseStatus": 200}
Test error:
Як бачыце, памылкі не маюць значэння і вынік маюць статус 200. Гэта азначае: усё ў парадку.
Калі вы дзе заблакаваныя адказ ад Google будзе выглядаць так:
Code:
{"responseData": null, "responseDetails": "Suspected Terms of Service Abuse, please contact ajaxapis-support@google.com.", "responseStatus": 403}
Калі вы дзе заблакаваны - проста напішыце Google, як гаворыцца ў пасланні. Гэта дазволіць знайсці наш розум, можа быць, гэта нейкая памылка, можа быць, у вас будзе нешта змяніць, каб адпавядаць лепш TOS Google. Ва ўсякім выпадку Google лёгка дае доступ таму, калі пытанне вырашаецца 
Калі ў вас ёсць праблемы ў сеткі, то вынік будзе пустым і памылак скажа вам, што адбываецца (гэта значыць: Не атрымалася вырашыць імя вузла "ajax.googleapis.com '). Звярніце ўвагу, у такім выпадку ён можа быць час, перш чым вы ўбачыце выхад (да злучэння прымеркавана ўверх).
Сетка праблемы прыклад:
Code:
Starting translation test
Test result:
Test error: Failed to connect to 74.125.95.95: Network is unreachable
Connection time (ms): 70.96484375
Што рабіць?
Па-першае: пераканайцеся, што брандмаўар не блакуе доступ да Google.
па-другое: вы павінны звязацца з хост-правайдэра і папрасіць яго аб праблемах з падключэннем
Калі вы бачыце толькі "Пачынаючы пробны пераклад" ці ўвогуле нічога, то, хутчэй за ўсё, вы не ўсталявалі модуль CURL ў PHP.
Калі вы выкарыстоўваеце Microsoft API, ствараць новыя PHP файл і змесціце гэты код у ім.:
PHP Code:
<?php
require_once('./global.php');
echo "Starting translation test MS<br/>\n";
$connection = curl_init();
curl_setopt($connection, CURLOPT_URL, 'http://api.microsofttranslator.com/V2/Ajax.svc/Translate?appId='.$vbulletin->options['vbenterprisetranslator_microsoftappid'].'&from=pl&to=en&options={%22ContentType%22:%22text/html%22}&text=witaj');
curl_setopt($connection, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)');
//curl_setopt($connection, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($connection, CURLOPT_RETURNTRANSFER, 1);
$time = microtime(true) * 1000;
$result = curl_exec($connection);
$time = microtime(true) * 1000 - $time;
echo 'Test result: '.$result."<br/>\n";
echo 'Test error: '.curl_error($connection)."<br/>\n";
curl_close($connection);
echo 'Connection time (ms): '.$time;
?>
Чым загрузіць яго на сервер, у тэчцы форуму корань, і пакласці, што спасылку ў адрасны радок браўзэра.
Вы павінны ўбачыць нешта накшталт гэтага:
PHP Code:
Starting translation test
Test result: "Hello"
Test error:
Connection time (ms): 272.083984375
Калі што-то пойдзе не так вы атрымаеце паведамленне пра памылку, гэта значыць калі вы змяшчаеце няправільна Microsoft ID:
PHP Code:
Starting translation test
Test result: "ArgumentException: Invalid appId Parameter name: appId xxx"
Test error:
Connection time (ms): 416.24194335938
Чым вы павінны ўставіць ID Microsoft ўважліва яшчэ раз
Вы таксама можаце атрымаць гэта паведамленне пра памылку (з іншым значэннем ID), які азначае, што вы заблакаваны Microsoft:
PHP Code:
Starting translation test MS
Test result: "InvalidOperationException: : ID=3641.V2_Json.Translate.365033CA"
Test error:
Connection time (ms): 237.756103516
У гэтым выпадку вам прыйдзецца адпраўляць пошту для падтрымкі Microsoft: mtcont@microsoft.com
у тым ліку такім змесцівам:
-Ваш Microsoft Translator API ідэнтыфікатар
-Поўны код памылкі, а менавіта: InvalidOperationException:: ID = 3641.V2_Json.Translate.365033CA
-Апісаць праблему, - калі яна з'яўляецца, і г.д.