mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-03-02 19:07:40 +01:00
Merge pull request #3059 from yar3333/staging
Exclude links to embedded images from translation
This commit is contained in:
commit
664a531c22
@ -406,6 +406,27 @@ async function translate(text, lang) {
|
|||||||
lang = extension_settings.translate.target_language;
|
lang = extension_settings.translate.target_language;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// split text by embedded images links
|
||||||
|
const chunks = text.split(/!\[.*?]\([^)]*\)/);
|
||||||
|
const links = [ ...text.matchAll(/!\[.*?]\([^)]*\)/g) ];
|
||||||
|
|
||||||
|
let r = "";
|
||||||
|
for (let i = 0; i < chunks.length; i++) {
|
||||||
|
r += await translateInner(chunks[i], lang);
|
||||||
|
if (i < links.length) r += links[i][0];
|
||||||
|
}
|
||||||
|
|
||||||
|
return r;
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error);
|
||||||
|
toastr.error(String(error), 'Failed to translate message');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function translateInner(text, lang) {
|
||||||
|
if (text == '') {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
switch (extension_settings.translate.provider) {
|
switch (extension_settings.translate.provider) {
|
||||||
case 'libre':
|
case 'libre':
|
||||||
return await translateProviderLibre(text, lang);
|
return await translateProviderLibre(text, lang);
|
||||||
@ -427,10 +448,6 @@ async function translate(text, lang) {
|
|||||||
console.error('Unknown translation provider', extension_settings.translate.provider);
|
console.error('Unknown translation provider', extension_settings.translate.provider);
|
||||||
return text;
|
return text;
|
||||||
}
|
}
|
||||||
} catch (error) {
|
|
||||||
console.log(error);
|
|
||||||
toastr.error(String(error), 'Failed to translate message');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function translateOutgoingMessage(messageId) {
|
async function translateOutgoingMessage(messageId) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user