mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Exclude links to embedded images from translation
This commit is contained in:
@@ -406,6 +406,27 @@ async function translate(text, lang) {
|
||||
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) {
|
||||
case 'libre':
|
||||
return await translateProviderLibre(text, lang);
|
||||
@@ -427,10 +448,6 @@ async function translate(text, lang) {
|
||||
console.error('Unknown translation provider', extension_settings.translate.provider);
|
||||
return text;
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
toastr.error(String(error), 'Failed to translate message');
|
||||
}
|
||||
}
|
||||
|
||||
async function translateOutgoingMessage(messageId) {
|
||||
|
Reference in New Issue
Block a user