11 月 21

[php][WebAPI]WebserviceX.NETのTranlation Engineが動いてくれない

Category: php
このエントリをはてなブックマークに追加[php][WebAPI]WebserviceX.NETのTranlation Engineが動いてくれないのはてなブックマーク被リンク数このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをBuzzurl(バザール)に追加

翻訳のWebAPIを探していて、1つみつけたのが、WebserviceX.NETTranslate Engineです。

SOAPとかHTML(GET / POST)に対応しているはずです。んで、私はSOAPなんて使ったことも内容も知らないのですが、下記のコードでレスポンスが帰ってきたので、これでいいのかなっと。間違ってたら指摘してもらえると助かります。ちなみにphpマニュアルにも書いてあるとおり、SoapClientクラスなどのSOAP関数は、SOAP拡張モジュールを必要とするので、phpコンパイル時に「--enable-soap」オプションが必要になります。

PHP:
  1. define('WSDL', 'http://www.webservicex.net/TranslateService.asmx?wsdl');
  2.  
  3. $soap_client = new SoapClient(WSDL);
  4. $ret = $soap_client->Translate(
  5.   'EnglishTOJapanese',
  6.   'This is a pen.'
  7. );
  8.  
  9. print_r($ret);

んで、返ってきた結果のprint_rが、

CODE:
  1. stdClass Object (
  2.   [TranslateResult] => Value cannot be null. Parameter name: translationmode
  3. )

どうやら、translationmodeというパラメータがnullらしいのですが、Translate関数の定義は

string Translate(string $LanguageMode, string $Text)

なので、translationmodeというパラメータを送ることはできないはずなのですが・・・

もう少しググってみたら、いくつかのサイトで「ほとんどレスポンスが帰ってこない」「ほとんどエラーだけどたまに翻訳結果が返ってくる」といった記述がちらほら。これでは、私が書いたプログラムが正しいのかどうかも良くわからないです。成功していたとしてもこれでは実用に耐えられなそうですね。

今回はあきらめるかな。

1 Comment so far

  1. うえちょこ@ぼろぐ 11 月 21st, 2007 17 : 37 : 55

    [php][WebAPI]EJ, JE translation APIは翻訳WebAPIとして使える

     前回のWebserviceX.NET Translation Engineに引…

Leave a comment