Merge pull request #3059 from yar3333/staging Exclude links to embedded images from translation

664a531c2267f5a3fa303a16d352c59956de657d

Cohee <18619528+Cohee1207@users.noreply.github.com>

Signed
1 files changed, +21 -4Showing whitespace changes
public/scripts/extensions/translate/index.js+21 -4
@@ -406,6 +406,27 @@ async function translate(text, lang) {
406 lang = extension_settings.translate.target_language;406 lang = extension_settings.translate.target_language;
407 }407 }
408408
409 // split text by embedded images links
410 const chunks = text.split(/!\[.*?]\([^)]*\)/);
411 const links = [ ...text.matchAll(/!\[.*?]\([^)]*\)/g) ];
412
413 let r = "";
414 for (let i = 0; i < chunks.length; i++) {
415 r += await translateInner(chunks[i], lang);
416 if (i < links.length) r += links[i][0];
417 }
418
419 return r;
420 } catch (error) {
421 console.log(error);
422 toastr.error(String(error), 'Failed to translate message');
423 }
424}
425
426async function translateInner(text, lang) {
427 if (text == '') {
428 return '';
429 }
409 switch (extension_settings.translate.provider) {430 switch (extension_settings.translate.provider) {
410 case 'libre':431 case 'libre':
411 return await translateProviderLibre(text, lang);432 return await translateProviderLibre(text, lang);
@@ -427,10 +448,6 @@ async function translate(text, lang) {
427 console.error('Unknown translation provider', extension_settings.translate.provider);448 console.error('Unknown translation provider', extension_settings.translate.provider);
428 return text;449 return text;
429 }450 }
430 } catch (error) {
431 console.log(error);
432 toastr.error(String(error), 'Failed to translate message');
433 }
434}451}
435452
436async function translateOutgoingMessage(messageId) {453async function translateOutgoingMessage(messageId) {