【问题标题】:How to return apostrophe when using Google Translate API for Android?使用适用于 Android 的 Google Translate API 时如何返回撇号?
【发布时间】:2017-03-27 16:40:32
【问题描述】:

我有一个使用 Google Translate API 的 Android 应用程序。 一切都很好,包括当我尝试将包含撇号的短语(如“我们已经吃过”)翻译成西班牙语时。

但是,当我应该返回的翻译结果包含撇号时,就会出现问题。例如,当我将一个西班牙语短语“A ver”翻译成英语时,它会返回带有“;”的“Let's see” “9”之后。似乎每当我有一个应该返回撇号的短语时,它都会返回带有“;”的“'” “9”之后。 (不要在“9”之后放置“;”,因为它会被 stackoverflow 转换为撇号)。

我可以想办法解决它。得到翻译结果后,我可以匹配 ""'" + ";" 的字符串并将其替换为撇号。

但是,我觉得这不是我应该处理的方式。用户实际上不太可能输入“'”作为翻译的输入,但是像这样对手动转换进行硬编码似乎可能会在未来引发问题。我很想听听您对此的看法。

请告诉我应该如何解决/解决这个问题。

谢谢!

【问题讨论】:

    标签: android google-api google-translate


    【解决方案1】:

    最好的解决方案是将&format=text 添加到您的查询中。

    【讨论】:

      【解决方案2】:

      你是正确的硬编码不是解决方案, 但是你可以通过使用已经提供的 HTML 类将这个 HTML 实体转换回撇号。

      Html.fromHtml((String) "Let's see").toString()
      

      以上代码将转换任何有效的 HTML 实体。 我希望这是您正在寻找的。​​p>

      【讨论】:

      • 非常感谢纳库尔!一切似乎都很好。但是,我不明白为什么需要这样做。我正在解析一个 JSON 对象,这是否意味着它是一个 HTML 实体,或者它是一个 HTML 实体,因为我从 API 获取 JSON 对象?如果是这样,如果我从任何 API 检索信息,我是否需要这样做?再次感谢!希望完全理解其中的推理,以避免通过实现这一点导致间接错误。
      • @CharlesLi 我认为,我取决于您使用哪个 API,因为 Google Translate API 也可以被网站使用,这就是它对 HTML 友好的原因。我就是这么想的。
      【解决方案3】:

      谢谢纪尧姆。对于那些使用 php 的人。

         $translation = $translate->translate($stringToTranslate, ['target' => $target, 'format' => 'text']);
      

      【讨论】:

        【解决方案4】:

        谢谢Guillaume。对于那些使用 go. (api v3)

        req := &translatepb.TranslateTextRequest{
            MimeType: "text/plain", // add this line to request
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-04-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-12-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多