gpt4 book ai didi

javascript - Google API 不会翻译外文字母。

转载 作者:行者123 更新时间:2023-12-01 01:28:22 25 4
gpt4 key购买 nike

我正在构建一个使用 Google API 翻译文本的应用程序。该应用程序工作正常,但如果我尝试翻译使用外键 På 的单词,例如 API 请求似乎省略了“å”并以 P 的答案进行响应。所有带有非英语字母的单词都会发生这种情况。

为了让事情变得更奇怪,我构建了一个小型 Web 扩展,它使用 window.addEventListener 从网页中抓取单词。使用此方法将单词发送到 API 不会导致问题。

这是有效的代码。内容脚本选择一个单词并将其发送到background.js。后台脚本获取该单词并将其发送到弹出窗口。单击按钮,所选单词将发送到 Google API,并将翻译发回。

内容脚本:

window.addEventListener('mouseup', checkWord);

function checkWord() {

let word = window.getSelection().toString();
console.log(word);
if(word.length > 0) {
let message = {
text: word,
}
chrome.runtime.sendMessage(word)
}

}

后台脚本:

chrome.runtime.onMessage.addListener(receiver);

function receiver(request, sender, sendResponse) {

console.log(request);
word = request;
}

最后,我的弹出页面函数在单击按钮时调用:

function sendToAPI() {
let bgpage = chrome.extension.getBackgroundPage();
let word = bgpage.word;
console.log(word)
if(word.length> 0 && word.length< 100){
$.ajax({
type: 'GET',
url: `https://translation.googleapis.com/language/translate/v2?q=${word}&target=en&source=no&key=${API_KEY}`,
}).then(function(response) {
translated =response.data.translations[0].translatedText;
$('.word').empty();
$('.word').append(`${word} | ${translated}`);

return translated;

}).catch(function(err) {

sendReverse();
})
}
}

这是其他代码中不起作用的部分。 req.query.q 是粘贴到输入字段中的单词。此外,我可以删除 `req.query.q 并将该单词直接粘贴到此空间中,但 API 调用仍然不起作用。

//GET request to Google Translate API
router.get('/', (req,res)=>{
console.log(req.query);
axios.get(`https://translation.googleapis.com/language/translate/v2?q=${req.query.q}&target=${req.query.target}&source=${req.query.source}&key=${process.env.GOOGLE_API_KEY}`)
.then(response => {
if(req.query.q == response.data.data.translations[0].translatedText){
res.send('reverse')
} else {
console.log(response.data.data)
res.send(response.data)
}
}).catch(err=> {
console.log(err)
})
})

最佳答案

您需要使用 encodeURIComponent() 正确编码特殊字符,如下所示:

....?q=${encodeURIComponent(word)}....

或分开:

var encodedWord = encodeURIComponent(word);
//
....?q=${encodedWord}....

关于javascript - Google API 不会翻译外文字母。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53542093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com