首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谷歌翻译API:启用单词转换

谷歌翻译API:启用单词转换
EN

Stack Overflow用户
提问于 2022-04-14 17:47:32
回答 1查看 442关注 0票数 0

我正在使用翻译一个单词列表,但是我注意到,对于它无法翻译的单词,它在源语言中返回相同的单词。

例如,让我们观察以下从英语到希伯来语的word数组转换请求:

代码语言:javascript
复制
const response = await axios.post<TranslateResponse>(`https://translation.googleapis.com/language/translate/v2?key=xxxxxxx`,
            {
                "q": ["SUNFINSH", "DOG"],
                "source": "en",
                "target": "he",
                "format": "text"
            });

返回的对象是

代码语言:javascript
复制
{"data":{"translations":[{"translatedText":"SUNFINSH"},{"translatedText":"כֶּלֶב"}]}}

在上面的例子中,你可以看到它翻译成“狗”,但不能翻译“太阳鱼”。

然而,如果我转到translate.google.com,输入“太阳鱼”,即使它没有在正确的面板UI上翻译它,它确实提供了某种“直译”,就好像它可以简单地将单词转换成希伯来语中的发音。

问题是,如何使用Google转换API?获得相同的结果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-15 00:32:26

您可以尝试将“太阳鱼”更改为“太阳鱼”,它将返回与使用Google提供的截图相同的预期输出。

从使用谷歌翻译UI提供的截图中可以看到,谷歌首先将“太阳鱼”转换成“太阳鱼”,然后再将其翻译成希伯来语。

请看我测试的截图。

我还使用"Sunfish“进行了测试,并在希伯来语中得到了预期的结果。

此外,正如这位官方谷歌支持论坛所提到的,

谷歌翻译必须区分大小写,因为没有两种语言遵循相同的大写规则。

下面是我在测试中使用的示例代码,供您参考。

代码语言:javascript
复制
// Imports the Google Cloud client library
const {Translate} = require('@google-cloud/translate').v2;

// Creates a client
const translate = new Translate();

 const text = ['sunfish', 'DOG'];
 const target = 'he';

async function translateText() {
  // Translates the text into the target language. "text" can be a string for
  // translating a single piece of text, or an array of strings for translating
  // multiple texts.
  let [translations] = await translate.translate(text, target);
  translations = Array.isArray(translations) ? translations : [translations];
  console.log('Translations:');
  translations.forEach((translation, i) => {
    console.log(`${text[i]} => (${target}) ${translation}`);
  });
}

translateText();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71875783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档