您可以使用這是一個谷歌翻譯API的包裝,以減輕您的工作。下面是一個示例代碼:
require_once ("include/GTranslate.php");
// original input xml
$orig_xml = "YOUR XML HERE";
// translate
$gt = new Gtranslate; // google translate object
$orig_text = array(); // original text
$trans_text = array(); // translated text
// extract text between tags
$split_tags_pattern = '|<[^>]+>([^<>]+)<\/[^>]+>|';
$tags = array();
preg_match_all($split_tags_pattern, $orig_xml, $tags, PREG_SET_ORDER);
/*
* preg_match_all returns:
*
* array() {
* array() {
* <xml tag>text</xml>,
* text
* },
* ...
* }
*/
// translate each tag's inner text
foreach ($tags as $tag) {
$text = trim($tag[1]);
if ($text != '') {
$orig_text[] = trim($tag[0]);
$trans_text[] = str_replace($text, $gt->en_to_ar($text), $tag[0]); // en_to_ar method is used to translate from english to arabic.
}
}
// replace original tag's inner text with translated ones
$trans_xml = str_replace($orig_text, $trans_text, $orig_xml);
注意的是谷歌限制每個IP每天的API請求,因此對於大型XML有許多標籤,這可能無法工作,或者你可以把整個XML(含標籤)到谷歌翻譯(這裏也有100000個字符限制,但這對於許多事情來說已經足夠了),然後從翻譯結果中提取已翻譯的內部文本。
Google似乎更新了他們的API。該服務已付款。查看更多[here](https://developers.google.com/translate/v2/getting_started) – pl71