Exclude links to embedded images from translation

This commit is contained in:
Yaroslav Sivakov
2024-11-10 17:30:55 +03:00
parent 8da98faa99
commit ba2b251d6e

View File

@@ -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) {