我正在使用翻译一个单词列表,但是我注意到,对于它无法翻译的单词,它在源语言中返回相同的单词。
例如,让我们观察以下从英语到希伯来语的word数组转换请求:
const response = await axios.post<TranslateResponse>(`https://translation.googleapis.com/language/translate/v2?key=xxxxxxx`,
{
"q": ["SUNFINSH", "DOG"],
"source": "en",
"target": "he",
"format": "text"
});返回的对象是
{"data":{"translations":[{"translatedText":"SUNFINSH"},{"translatedText":"כֶּלֶב"}]}}在上面的例子中,你可以看到它翻译成“狗”,但不能翻译“太阳鱼”。
然而,如果我转到translate.google.com,输入“太阳鱼”,即使它没有在正确的面板UI上翻译它,它确实提供了某种“直译”,就好像它可以简单地将单词转换成希伯来语中的发音。

问题是,如何使用Google转换API?获得相同的结果?
发布于 2022-04-15 00:32:26
您可以尝试将“太阳鱼”更改为“太阳鱼”,它将返回与使用Google提供的截图相同的预期输出。
从使用谷歌翻译UI提供的截图中可以看到,谷歌首先将“太阳鱼”转换成“太阳鱼”,然后再将其翻译成希伯来语。
请看我测试的截图。

我还使用"Sunfish“进行了测试,并在希伯来语中得到了预期的结果。
此外,正如这位官方谷歌支持论坛所提到的,
谷歌翻译必须区分大小写,因为没有两种语言遵循相同的大写规则。
下面是我在测试中使用的示例代码,供您参考。
// 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();https://stackoverflow.com/questions/71875783
复制相似问题