mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-02-21 22:47:41 +01:00
commit
134bb2058a
@ -139,7 +139,7 @@ const languageCodes = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const KEY_REQUIRED = ['deepl', 'libre'];
|
const KEY_REQUIRED = ['deepl', 'libre'];
|
||||||
const LOCAL_URL = ['libre', 'oneringtranslator', 'deeplx'];
|
const LOCAL_URL = ['libre', 'oneringtranslator', 'deeplx', 'lingva'];
|
||||||
|
|
||||||
function showKeysButton() {
|
function showKeysButton() {
|
||||||
const providerRequiresKey = KEY_REQUIRED.includes(extension_settings.translate.provider);
|
const providerRequiresKey = KEY_REQUIRED.includes(extension_settings.translate.provider);
|
||||||
@ -249,6 +249,27 @@ async function translateProviderGoogle(text, lang) {
|
|||||||
throw new Error(response.statusText);
|
throw new Error(response.statusText);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Translates text using an instance of the Lingva Translate
|
||||||
|
* @param {string} text Text to translate
|
||||||
|
* @param {string} lang Target language code
|
||||||
|
* @returns {Promise<string>} Translated text
|
||||||
|
*/
|
||||||
|
async function translateProviderLingva(text, lang) {
|
||||||
|
const response = await fetch('/api/translate/lingva', {
|
||||||
|
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 DeepL API
|
* Translates text using the DeepL API
|
||||||
* @param {string} text Text to translate
|
* @param {string} text Text to translate
|
||||||
@ -355,6 +376,8 @@ async function translate(text, lang) {
|
|||||||
return await translateProviderLibre(text, lang);
|
return await translateProviderLibre(text, lang);
|
||||||
case 'google':
|
case 'google':
|
||||||
return await chunkedTranslate(text, lang, translateProviderGoogle, 5000);
|
return await chunkedTranslate(text, lang, translateProviderGoogle, 5000);
|
||||||
|
case 'lingva':
|
||||||
|
return await chunkedTranslate(text, lang, translateProviderLingva, 5000);
|
||||||
case 'deepl':
|
case 'deepl':
|
||||||
return await translateProviderDeepl(text, lang);
|
return await translateProviderDeepl(text, lang);
|
||||||
case 'deeplx':
|
case 'deeplx':
|
||||||
@ -507,6 +530,7 @@ jQuery(() => {
|
|||||||
<select id="translation_provider" name="provider" class="margin0">
|
<select id="translation_provider" name="provider" class="margin0">
|
||||||
<option value="libre">Libre</option>
|
<option value="libre">Libre</option>
|
||||||
<option value="google">Google</option>
|
<option value="google">Google</option>
|
||||||
|
<option value="lingva">Lingva</option>
|
||||||
<option value="deepl">DeepL</option>
|
<option value="deepl">DeepL</option>
|
||||||
<option value="deeplx">DeepLX</option>
|
<option value="deeplx">DeepLX</option>
|
||||||
<option value="bing">Bing</option>
|
<option value="bing">Bing</option>
|
||||||
@ -569,6 +593,7 @@ jQuery(() => {
|
|||||||
const optionText = $('#translation_provider option:selected').text();
|
const optionText = $('#translation_provider option:selected').text();
|
||||||
const exampleURLs = {
|
const exampleURLs = {
|
||||||
'libre': 'http://127.0.0.1:5000/translate',
|
'libre': 'http://127.0.0.1:5000/translate',
|
||||||
|
'lingva': 'https://lingva.ml/api/v1',
|
||||||
'oneringtranslator': 'http://127.0.0.1:4990/translate',
|
'oneringtranslator': 'http://127.0.0.1:4990/translate',
|
||||||
'deeplx': 'http://127.0.0.1:1188/translate',
|
'deeplx': 'http://127.0.0.1:1188/translate',
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user