PHP: 2008年2月アーカイブ
PHPから翻訳したい処理があったので、Google翻訳のソースのぞいて試してみました。
<?php
// 翻訳するテキスト
$text = "私は日本人です";
// 翻訳モード(日→英)
$enc = "ja|en";
// 翻訳呼び出し
$url = "http://translate.google.com/translate_t?langpair=$enc&ie=UTF8&oe=UTF8&text=".urlencode($text);
$html = file_get_contents($url);
// テキスト部分取り出し
$pattern = '/<div id=result_box dir="ltr">(.*?)<\/div>/';
preg_match($pattern, $html, $matche);
$trans = $matche[1];
// 翻訳されたテキスト
echo $trans;
?>
これを実行すると、
I am Japanese.
なかなか良さげです。
ちなみに翻訳モードのパラメータには、以下のものが使えます。
"ar|en" アラビア語から英語へ
"it|en" イタリア語から英語へ
"nl|en" オランダ語から英語へ
"el|en" ギリシャ語から英語へ
"es|en" スペイン語から英語へ
"de|fr" ドイツ語からフランス語へ
"de|en" ドイツ語から英語へ
"fr|de" フランス語からドイツ語へ
"fr|en" フランス語から英語へ
"pt|en" ポルトガル語から英語へ
"ru|en" ロシア語から英語へ
"en|ar" 英語からアラビア語へ
"en|it" 英語からイタリア語へ
"en|nl" 英語からオランダ語へ
"en|el" 英語からギリシャ語へ
"en|es" 英語からスペイン語へ
"en|de" 英語からドイツ語へ
"en|fr" 英語からフランス語へ
"en|pt" 英語からポルトガル語へ
"en|ru" 英語からロシア語へ
"en|ko" 英語から韓国語へ
"en|zh-CN" 英語から中国語(簡体)へ
"en|zh-TW" 英語から中国語(繁体)へ
"en|ja" 英語から日本語へ
"ko|en" 韓国語から英語へ
"zh|en" 中国語から英語へ
"zh-CN|zh-TW" 中国語(簡体から繁体へ)
"zh-TW|zh-CN" 中国語(繁体から簡体へ)
"ja|en" 日本語から英語へ
しかし、パラメータのoe=UTF8が抜けてたのに気付かず結果が文字化けしてばかりで、こんな明け方まで手こずってしまいました・・・。はぁ、寝よ。