无法在 Google 翻译响应中保留换行符

Unable to preserve line breaks in Google Translate response

我的问题是 Google 翻译 API.

的翻译文本没有换行符

我有一个像这样的原始查询字符串:

RELATED WORK .

Studies of group work have shown the importance of

我对查询字符串进行了 URL 编码,结果显示:

RELATED%20WORK%20.%0D%0A%0D%0AStudies%20of%20group%20work%20have%20shown%20the%20importance%20of

问题是提交给Google翻译API:

https://www.googleapis.com/language/translate/v2?key=<key>&source=en&target=ja&q=RELATED%20WORK%20.%0D%0A%0D%0AStudies%20of%20group%20work%20have%20shown%20the%20importance%20of

我只在一行中得到回复(没有换行符):

{
    "data": {
       "translations": [
          {
            "translatedText": "関連作業 。グループワークの研究は、"
          }
       ]
    }
 }

我的最终目标是逐行解析翻译后的文本以便正确呈现。

我只是显示 URL,即使只是通过浏览器访问它,它也不会在响应中显示换行符。

有什么想法吗?

通过将输入字符串中的 \r\n 替换为 <br> 使其正常工作。

<br> 替换 \r\n 确实有效,但它似乎认为它是句子的结尾,因此限制了翻译评估的范围,导致小于 -最佳翻译。该行的第一个字符也变成了大写字母,这就是我的线索。

我所做的是将 \r\n 替换为 <code>0</code>,然后在翻译后再次返回 - 这提供了一个很好的翻译,因为它没有看到 <code>0</code> 对句子。不理想,但提供了更好的翻译。

翻译 api 有一个参数 format_,您可以将其设置为 text。这将保留换行符。请参阅 this link 以供参考。

更新format_ 参数中添加了下划线。

低技术解决方法:

简单的文本程序,如 microsoft write 或记事本或 libre office writer。 写在那里,然后copy/past翻译成google。保留换行符。

如果你使用 wordpress 有一个 wpautop() 函数,它可能会有用

所以每个全文块都可以像这样包装到这个函数中:

urlencode(wpautop($text))

所以结果将被包装在 <p> 标签中,如果有的话,里面有一些 <br>