add bing translate

This commit is contained in:
yuxiang
2023-10-06 19:39:03 +08:00
committed by Cohee
parent 27ce0b5eb7
commit 0b8295926e
4 changed files with 286 additions and 7 deletions

View File

@ -292,6 +292,27 @@ async function translateProviderDeepLX(text, lang) {
throw new Error(response.statusText);
}
/**
* Translates text using the Bing API
* @param {string} text Text to translate
* @param {string} lang Target language code
* @returns {Promise<string>} Translated text
*/
async function translateProviderBing(text, lang) {
const response = await fetch('/api/translate/bing', {
method: 'POST',
headers: getRequestHeaders(),
body: JSON.stringify({ text: text, lang: lang }),
});
if (response.ok) {
const result = await response.text();
return result;
}
throw new Error(response.statusText);
}
/**
* Translates text using the selected translation provider
* @param {string} text Text to translate
@ -315,6 +336,8 @@ async function translate(text, lang) {
return await translateProviderDeepLX(text, lang);
case 'oneringtranslator':
return await translateProviderOneRing(text, lang);
case 'bing':
return await translateProviderBing(text, lang);
default:
console.error('Unknown translation provider', extension_settings.translate.provider);
return text;
@ -461,6 +484,7 @@ jQuery(() => {
<option value="google">Google</option>
<option value="deepl">DeepL</option>
<option value="deeplx">DeepLX</option>
<option value="bing">Bing</option>
<option value="oneringtranslator">OneRingTranslator</option>
<select>
<div id="translate_key_button" class="menu_button fa-solid fa-key margin0"></div>