إذا كان كل شيء يعمل بشكل جيد وفجأة ثم فإنه لا أحد الاحتمالات هو أن لديك مشكلة مع مزود ترجمتك (آخرون : تم تغيير بعض التكوين ، وزارة الدفاع الجديدة المضافة ، وبعض برامج محدثة).
هناك طريقة سهلة جدا لفحص هل لديك مشكلة مع جوجل 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;
?>
في حال كنت تستخدم جوجل 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. وهذا يعني : كل شيء على ما يرام.
إذا قمت حيث منعت من جوجل استجابة يشبه ما يلي :
Code:
{"responseData": null, "responseDetails": "Suspected Terms of Service Abuse, please contact ajaxapis-support@google.com.", "responseStatus": 403}
إذا كنت حيث سدت -- الكتابة لمجرد البحث في مثل رسالة تقول. انها ستسمح للعثور على سبب لدينا ، ربما هو بعض الخطأ ، وربما سيكون لديك لتتناسب مع تغير شيئا أفضل لTOS غوغل. على أي حال جوجل يعطي سهل الوصول الى الوراء عندما يتم حل هذه المسألة 
إذا كان لديك مشكلة في الشبكة ثم سوف تكون النتيجة خطأ فارغة وسوف اقول لكم ما يجري على (أي : لا يمكن أن تحل المضيفة 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.
ثانيا : يجب عليك الاتصال مع مزود المضيف الخاص وسؤاله عن مشكلة في الاتصال
إذا كنت ترى سوى "بدء اختبار الترجمة" أو أي شيء على الإطلاق ثم على الأرجح لم يكن لديك تثبيت وحدة نمطية في الضفيرة PHP الخاص بك.
إذا كنت تستخدم Microsoft API ، خلق فرص عمل جديدة فب الملف ووضع هذا الكود في داخله :
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:
PHP Code:
Starting translation test
Test result: "ArgumentException: Invalid appId Parameter name: appId xxx"
Test error:
Connection time (ms): 416.24194335938
مما يجب أن تقوم بلصق معرف بعناية الخاص مايكروسوفت مرة أخرى
يمكنك أيضا الحصول على رسالة الخطأ هذه (بقيمة معرف مختلفة)، مما يعني أنك حظر بواسطة 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
بما في ذلك هذا المحتوى:
-معرف مترجم API microsoft الخاص بك
-كامل رمز الخطأ، أي: إينفاليدوبيراتيونيكسسيبشن:: ID=3641.V2_Json.Translate.365033CA
-قم بوصف المشكلة،-عند ظهوره، إلخ.