diff --git a/src/CONST.js b/src/CONST.js
index 68e309e589bf..b0a19eb21649 100755
--- a/src/CONST.js
+++ b/src/CONST.js
@@ -2524,6 +2524,9 @@ const CONST = {
     SETTINGS_LOUNGE_ACCESS: {
         HEADER_IMAGE_ASPECT_RATIO: 0.64,
     },
+    TRANSLATION_KEYS: {
+        ATTACHMENT: 'common.attachment',
+    },
 };
 
 export default CONST;
diff --git a/src/libs/OptionsListUtils.js b/src/libs/OptionsListUtils.js
index d19ecb79a67a..4e41cb6f1954 100644
--- a/src/libs/OptionsListUtils.js
+++ b/src/libs/OptionsListUtils.js
@@ -380,8 +380,8 @@ function getLastMessageTextForReport(report) {
     const lastReportAction = lastReportActions[report.reportID];
     let lastMessageTextFromReport = '';
 
-    if (ReportUtils.isReportMessageAttachment({text: report.lastMessageText, html: report.lastMessageHtml})) {
-        lastMessageTextFromReport = `[${Localize.translateLocal('common.attachment')}]`;
+    if (ReportUtils.isReportMessageAttachment({text: report.lastMessageText, html: report.lastMessageHtml, translationKey: report.lastMessageTranslationKey})) {
+        lastMessageTextFromReport = `[${Localize.translateLocal(report.lastMessageTranslationKey || 'common.attachment')}]`;
     } else if (ReportActionUtils.isReportPreviewAction(lastReportAction)) {
         const iouReport = ReportUtils.getReport(ReportActionUtils.getIOUReportIDFromReportActionPreview(lastReportAction));
         lastMessageTextFromReport = ReportUtils.getReportPreviewMessage(iouReport, lastReportAction);
diff --git a/src/libs/ReportActionsUtils.js b/src/libs/ReportActionsUtils.js
index 9a280711e947..e83491a0c351 100644
--- a/src/libs/ReportActionsUtils.js
+++ b/src/libs/ReportActionsUtils.js
@@ -288,22 +288,28 @@ function getLastVisibleAction(reportID, actionsToMerge = {}) {
 /**
  * @param {String} reportID
  * @param {Object} [actionsToMerge]
- * @return {String}
+ * @return {Object}
  */
-function getLastVisibleMessageText(reportID, actionsToMerge = {}) {
+function getLastVisibleMessage(reportID, actionsToMerge = {}) {
     const lastVisibleAction = getLastVisibleAction(reportID, actionsToMerge);
     const message = lodashGet(lastVisibleAction, ['message', 0], {});
 
     if (isReportMessageAttachment(message)) {
-        return CONST.ATTACHMENT_MESSAGE_TEXT;
+        return {
+            lastMessageTranslationKey: CONST.TRANSLATION_KEYS.ATTACHMENT,
+        };
     }
 
     if (isCreatedAction(lastVisibleAction)) {
-        return '';
+        return {
+            lastMessageText: '',
+        };
     }
 
     const messageText = lodashGet(message, 'text', '');
-    return String(messageText).replace(CONST.REGEX.AFTER_FIRST_LINE_BREAK, '').substring(0, CONST.REPORT.LAST_MESSAGE_TEXT_MAX_LENGTH).trim();
+    return {
+        lastMessageText: String(messageText).replace(CONST.REGEX.AFTER_FIRST_LINE_BREAK, '').substring(0, CONST.REPORT.LAST_MESSAGE_TEXT_MAX_LENGTH).trim(),
+    };
 }
 
 /**
@@ -535,7 +541,7 @@ function isWhisperAction(action) {
 export {
     getSortedReportActions,
     getLastVisibleAction,
-    getLastVisibleMessageText,
+    getLastVisibleMessage,
     getMostRecentIOURequestActionID,
     extractLinksFromMessageHtml,
     isDeletedAction,
diff --git a/src/libs/ReportUtils.js b/src/libs/ReportUtils.js
index 72f642d3e844..63c6542f6787 100644
--- a/src/libs/ReportUtils.js
+++ b/src/libs/ReportUtils.js
@@ -1235,6 +1235,7 @@ function buildOptimisticAddCommentReportAction(text, file) {
             created: DateUtils.getDBTime(),
             message: [
                 {
+                    translationKey: isAttachment ? CONST.TRANSLATION_KEYS.ATTACHMENT : '',
                     type: CONST.REPORT.MESSAGE.TYPE.COMMENT,
                     html: htmlForNewComment,
                     text: textForNewComment,
@@ -1571,6 +1572,7 @@ function buildOptimisticChatReport(
         isPinned: reportName === CONST.REPORT.WORKSPACE_CHAT_ROOMS.ADMINS,
         lastActorEmail: '',
         lastActorAccountID: 0,
+        lastMessageTranslationKey: '',
         lastMessageHtml: '',
         lastMessageText: null,
         lastReadTime: currentTime,
diff --git a/src/libs/actions/Report.js b/src/libs/actions/Report.js
index f33056cdaed0..61ab4fbeff6f 100644
--- a/src/libs/actions/Report.js
+++ b/src/libs/actions/Report.js
@@ -249,6 +249,7 @@ function addActions(reportID, text = '', file) {
 
     const optimisticReport = {
         lastVisibleActionCreated: currentTime,
+        lastMessageTranslationKey: lodashGet(lastAction, 'message[0].translationKey', ''),
         lastMessageText: lastCommentText,
         lastMessageHtml: lastCommentText,
         lastActorEmail: currentUserEmail,
@@ -835,6 +836,7 @@ function deleteReportComment(reportID, reportAction) {
     const reportActionID = reportAction.reportActionID;
     const deletedMessage = [
         {
+            translationKey: '',
             type: 'COMMENT',
             html: '',
             text: '',
@@ -854,13 +856,15 @@ function deleteReportComment(reportID, reportAction) {
     // If we are deleting the last visible message, let's find the previous visible one (or set an empty one if there are none) and update the lastMessageText in the LHN.
     // Similarly, if we are deleting the last read comment we will want to update the lastVisibleActionCreated to use the previous visible message.
     let optimisticReport = {
+        lastMessageTranslationKey: '',
         lastMessageText: '',
         lastVisibleActionCreated: '',
     };
-    const lastMessageText = ReportActionsUtils.getLastVisibleMessageText(originalReportID, optimisticReportActions);
-    if (lastMessageText.length > 0) {
+    const {lastMessageText = '', lastMessageTranslationKey = ''} = ReportActionsUtils.getLastVisibleMessage(originalReportID, optimisticReportActions);
+    if (lastMessageText || lastMessageTranslationKey) {
         const lastVisibleActionCreated = ReportActionsUtils.getLastVisibleAction(originalReportID, optimisticReportActions).created;
         optimisticReport = {
+            lastMessageTranslationKey,
             lastMessageText,
             lastVisibleActionCreated,
         };
@@ -1020,6 +1024,7 @@ function editReportComment(reportID, originalReportAction, textForNewComment) {
     if (reportActionID === lastVisibleAction.reportActionID) {
         const lastMessageText = ReportUtils.formatReportLastMessageText(reportComment);
         const optimisticReport = {
+            lastMessageTranslationKey: '',
             lastMessageText,
         };
         optimisticData.push({
diff --git a/src/libs/isReportMessageAttachment.js b/src/libs/isReportMessageAttachment.js
index b449c72eaa0d..e107df8ddfaa 100644
--- a/src/libs/isReportMessageAttachment.js
+++ b/src/libs/isReportMessageAttachment.js
@@ -4,10 +4,14 @@ import CONST from '../CONST';
  * Check whether a report action is Attachment or not.
  * Ignore messages containing [Attachment] as the main content. Attachments are actions with only text as [Attachment].
  *
- * @param {Object} reportActionMessage report action's message as text and html
+ * @param {Object} reportActionMessage report action's message as text, html and translationKey
  * @returns {Boolean}
  */
-export default function isReportMessageAttachment({text, html}) {
+export default function isReportMessageAttachment({text, html, translationKey}) {
+    if (translationKey) {
+        return translationKey === CONST.TRANSLATION_KEYS.ATTACHMENT;
+    }
+
     if (!text || !html) {
         return false;
     }
diff --git a/tests/actions/ReportTest.js b/tests/actions/ReportTest.js
index 5566c66df4b7..bd97ef7fc021 100644
--- a/tests/actions/ReportTest.js
+++ b/tests/actions/ReportTest.js
@@ -49,7 +49,7 @@ describe('actions/Report', () => {
             actorAccountID: TEST_USER_ACCOUNT_ID,
             automatic: false,
             avatar: 'https://d2k5nsl2zxldvw.cloudfront.net/images/avatars/avatar_3.png',
-            message: [{type: 'COMMENT', html: 'Testing a comment', text: 'Testing a comment'}],
+            message: [{type: 'COMMENT', html: 'Testing a comment', text: 'Testing a comment', translationKey: ''}],
             person: [{type: 'TEXT', style: 'strong', text: 'Test User'}],
             shouldShow: true,
         };
