diff --git a/apps/meteor/app/autotranslate/server/autotranslate.ts b/apps/meteor/app/autotranslate/server/autotranslate.ts index 076c7c52818aa..6cac8028e1f24 100644 --- a/apps/meteor/app/autotranslate/server/autotranslate.ts +++ b/apps/meteor/app/autotranslate/server/autotranslate.ts @@ -1,3 +1,4 @@ +import { api } from '@rocket.chat/core-services'; import type { IMessage, IRoom, @@ -15,6 +16,7 @@ import _ from 'underscore'; import { callbacks } from '../../../lib/callbacks'; import { isTruthy } from '../../../lib/isTruthy'; +import { broadcastMessageSentEvent } from '../../../server/modules/watchers/lib/messages'; import { Markdown } from '../../markdown/server'; import { settings } from '../../settings/server'; @@ -305,6 +307,7 @@ export abstract class AutoTranslate { const translations = await this._translateMessage(targetMessage, targetLanguages); if (!_.isEmpty(translations)) { await Messages.addTranslations(message._id, translations, TranslationProviderRegistry[Provider] || ''); + this.notifyTranslatedMessage(message._id); } }); } @@ -320,6 +323,7 @@ export abstract class AutoTranslate { if (!_.isEmpty(translations)) { await Messages.addAttachmentTranslations(message._id, String(index), translations); + this.notifyTranslatedMessage(message._id); } } } @@ -328,6 +332,13 @@ export abstract class AutoTranslate { return Messages.findOneById(message._id); } + private notifyTranslatedMessage(messageId: string): void { + void broadcastMessageSentEvent({ + id: messageId, + broadcastCallback: (message) => api.broadcast('message.sent', message), + }); + } + /** * Returns metadata information about the service provider which is used by * the generic implementation