例如,我有内容:
<p><strong>Je vais être</strong> va demain.</p>
如果我将此内容作为纯文本传递给https://gateway.watsonplatform.net/language-translation/api/v2/translate,例如:
Je vais être va demain.
然后我会得到我想要的东西:
I'll be going tomorrow.
但是,我仍然需要HTML中的内容,而不是纯文本。如果我使用url编码传递文本或使用实体进行转义,则返回的文本会受到严重影响。
使用网址编码:
<p><strong>Je will être</strong> will demain. </p>
转义html实体:
<p><strong>I'll be</strong> will tomorrow.</p>
我还注意到在内容中放置任何类型的分隔符都会影响翻译。例如,使用克拉:
Je vais être^ va demain.
将返回翻译:
I'll be ^ will tomorrow.
因此解决方案必须在请求的翻译中没有分隔符。
答案 0 :(得分:0)
查看语言翻译API(https://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/language-translation/api/v2/#translate),我发现您可以在请求中放置多个文本输入的列表。我只是按顺序剥离HTML标记,并在较小的文本块上请求转换。您可以使用简单的堆栈执行此操作 - 将HTML标记推送到堆栈或将要翻译的文本。然后,一旦您收到翻译回复,就将所有内容从堆栈中弹出。
答案 1 :(得分:0)
您可以将HTML发送到AlchemyLanguage Text Extraction并提取稍后发送到LanguageTranslation的文本。
在curl
你会做:
curl -X POST \
-d "apikey=$API_KEY" \
-d "outputMode=json" \
--data-urlencode html@tech_crunch.html \
-d "url=http://techcrunch.com/2016/01/29/ibm-watson-weather-company-sale/" \
"https://gateway-a.watsonplatform.net/calls/html/HTMLGetRawText"
,输出为:
{
"status": "OK",
"usage": "By accessing AlchemyAPI or using information generated by AlchemyAPI, you are agreeing to be bound by the AlchemyAPI Terms of Use: http://www.alchemyapi.com/company/terms.html",
"url": "http://techcrunch.com/2016/01/29/ibm-watson-weather-company-sale/",
"text": "IBM Closes Weather Co. Purchase, Names David Kenny New Head Of Watson Platform | TechCrunch"
}