HTML块的机器翻译

时间:2010-02-21 07:56:33

标签: php translation

PHP中是否有任何API(如谷歌翻译api)允许翻译HTML块并仅翻译html文本?

4 个答案:

答案 0 :(得分:3)

Microsoft的翻译API将在维护HTML标记的同时进行翻译。

API已记录在案here。它有REST和WSDL接口。

我倾向于使用PHP的SoapClient库的WSDL接口。以下是一些代码,向您展示如何使用它。

$client = new SoapClient("http://api.microsofttranslator.com/V1/SOAP.svc");

$params = array(
    'appId' => 'my_app_id', 
    'text' => '<p>This is a <b>test</b></p>', 
    'from' => 'en', 
    'to' => 'fr');

$translation = $client->translate($params);

var_dump($translation);

您需要向Microsoft注册您自己的应用程序ID,并将其与每个请求一起提交。您可以注册here

我建议不要剥离标签,翻译然后重新插入标签。由于您无法保证在翻译中保留字数和顺序,因此很难知道将标记放在翻译文本中的位置。最好让MT引擎处理标签。

答案 1 :(得分:0)

无法完美地提出您的问题,但如果您希望从网站上获取html文本,某种抓取文本,则需要一个php抓取器脚本:

http://forums.digitalpoint.com/showthread.php?t=708122

但是如果要删除html并只获取文本,可以使用PHP:

<强> strip_tags function.

但是如果你打算获得特定的文本,你可以使用正则表达式:

http://www.regular-expressions.info/

答案 2 :(得分:0)

这是另一种选择:

按照以下说明将您的网站翻译成其他语言。

  1. https://datamarket.azure.com/home/
  2. 登录Microsoft Azure Marketplace
  3. 转到www.aka.ms/TranslatorADM。每月2,000,000个字符,每月0.00美元,选择更新。同意条款和条件。
  4. 在Microsoft Azure Marketplace页面的底部,在开发下选择注册您的应用程序。填写报名表。
  5. 转到http://www.microsofttranslator.com/Widget。将HTML复制到网页中,例如www.example.com/translation.html。还要在您的translation.html页面添加一些文字,例如&#34;这是一个测试&#34;。
  6. 网页应该有Microsoft的翻译器,可用于将页面翻译成其他语言。

答案 3 :(得分:-2)

使用Regular ExpressionsPHP supports themRegexlib有一个很好的库,里面有各种你可以适应的预先写好的正则表达式。