Bug 952493 - composeMsgs.properties should used string based identifiers rather than numbers. r=mkmelin, rkent, Neil. a=rkent for a CLOSED TREE
authorSuyash Agarwal <syshagarwal@gmail.com>
Fri, 20 Feb 2015 14:44:16 -0800
changeset 21866 1def2116d8fcfb2550732acbcc1a1f1f8c56cffc
parent 21865 bd2fc52626fce556d8a5e2f25658a616090424ed
child 21867 7bd8677b6b4147de7415dcbc5ec338cffc431a16
push id1326
push usermbanner@mozilla.com
push dateMon, 30 Mar 2015 20:10:12 +0000
treeherdercomm-beta@69663dd6f687 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmkmelin, rkent, Neil, rkent
bugs952493
Bug 952493 - composeMsgs.properties should used string based identifiers rather than numbers. r=mkmelin, rkent, Neil. a=rkent for a CLOSED TREE
mail/components/compose/content/MsgComposeCommands.js
mail/locales/en-US/chrome/messenger/messengercompose/composeMsgs.properties
mailnews/compose/src/nsComposeStrings.h
mailnews/compose/src/nsMsgCompose.cpp
mailnews/compose/src/nsMsgPrompts.cpp
mailnews/compose/src/nsMsgPrompts.h
mailnews/compose/src/nsMsgSend.cpp
mailnews/compose/src/nsMsgSend.h
mailnews/compose/src/nsMsgSendLater.cpp
mailnews/compose/src/nsMsgSendReport.cpp
mailnews/compose/src/nsSmtpProtocol.cpp
mailnews/extensions/mdn/src/nsMsgMdnGenerator.cpp
suite/locales/en-US/chrome/mailnews/compose/composeMsgs.properties
--- a/mail/components/compose/content/MsgComposeCommands.js
+++ b/mail/components/compose/content/MsgComposeCommands.js
@@ -2713,22 +2713,21 @@ function updateSendLock()
   gSendLocked = !msgCompFields.hasRecipients;
 }
 
 /**
  * Check if the entered addresses are valid and alert the user if they are not.
  *
  * @param aMsgCompFields  A nsIMsgCompFields object containing the fields to check.
  */
-const NS_MSG_NO_RECIPIENTS = "12511"; // from composeMsgs.properties
 function CheckValidEmailAddress(aMsgCompFields)
 {
   if (!aMsgCompFields.hasRecipients) {
     Services.prompt.alert(window, getComposeBundle().getString("addressInvalidTitle"),
-                          getComposeBundle().getString(NS_MSG_NO_RECIPIENTS));
+                          getComposeBundle().getString("noRecipients"));
 
     return false;
   }
 
   let invalidStr;
    // Crude check that the to, cc, and bcc fields contain at least one '@'.
    // We could parse each address, but that might be overkill.
   function isInvalidAddress(aAddress) {
--- a/mail/locales/en-US/chrome/messenger/messengercompose/composeMsgs.properties
+++ b/mail/locales/en-US/chrome/messenger/messengercompose/composeMsgs.properties
@@ -4,172 +4,127 @@
 
 #
 # The following are used by the compose back end
 #
 ## LOCALIZATION NOTE (unableToOpenFile, unableToOpenTmpFile):
 ## %S will be replaced with the name of file that could not be opened
 unableToOpenFile=Unable to open the file %S.
 unableToOpenTmpFile=Unable to open the temporary file %S. Check your 'Temporary Directory' setting.
-
-## @name NS_MSG_UNABLE_TO_SAVE_TEMPLATE
-12502=Unable to save your message as template.
-
-## @name NS_MSG_UNABLE_TO_SAVE_DRAFT
-12503=Unable to save your message as draft.
-
-## @name NS_MSG_COULDNT_OPEN_FCC_FOLDER
-12506=Couldn't open Sent Mail folder. Please verify that your Mail preferences are correct.
-
-## @name NS_MSG_NO_SENDER
-12510=No sender was specified. Please fill in your email address in the Mail & Newsgroups account settings.
-
-## @name NS_MSG_NO_RECIPIENTS
-12511=No recipients were specified. Please enter a recipient or newsgroup in the addressing area.
+unableToSaveTemplate=Unable to save your message as a template.
+unableToSaveDraft=Unable to save your message as a draft.
+couldntOpenFccFolder=Couldn't open the Sent Mail folder. Please verify that your account settings are correct.
+noSender=No sender was specified. Please add your email address in the account settings.
+noRecipients=No recipients were specified. Please enter a recipient or newsgroup in the addressing area.
+errorWritingFile=Error writing temporary file.
 
-## @name NS_MSG_ERROR_WRITING_FILE
-12512=Error writing temporary file.
-
-## @name NS_ERROR_SENDING_FROM_COMMAND
-12514=An error occurred while sending mail. The mail server responded:  %s.  Please verify that your email address is correct in your Mail preferences and try again.
-
-## @name NS_ERROR_SENDING_DATA_COMMAND
-12516=An (SMTP) error occurred while sending mail. The server responded:  %s.
+## LOCALIZATION NOTE (errorSendingFromCommand): argument %s is the Outgoing server (SMTP) response
+errorSendingFromCommand=An error occurred while sending mail. The mail server responded: %s. Please verify that your email address is correct in your account settings and try again.
 
-## @name NS_ERROR_SENDING_MESSAGE
-12517=An error occurred while sending mail. The mail server responded:  %s. Please check the message and try again.
-
-## @name NS_ERROR_POST_FAILED
-12518=The message could not be posted because connecting to the news server failed. The server may be unavailable or is refusing connections. Please verify that your news server settings are correct and try again, or else contact your network administrator.
-
-## @name NS_ERROR_QUEUED_DELIVERY_FAILED
-12519=An error occurred delivering unsent messages.
-
-## @name NS_ERROR_SEND_FAILED
-12520=Sending of message failed.
+## LOCALIZATION NOTE (errorSendingDataCommand): argument %s is the Outgoing server (SMTP) response
+errorSendingDataCommand=An Outgoing server (SMTP) error occurred while sending mail. The server responded:  %s.
 
-## @name NS_ERROR_SMTP_SERVER_ERROR
-12524=An error occurred sending mail: SMTP server error. The server responded:  %s Contact your mail administrator for assistance.
-
-## @name NS_MSG_UNABLE_TO_SEND_LATER
-12525=Unable to save your message in order to send it later.
-
-## @name NS_ERROR_COMMUNICATIONS_ERROR
-12526=A communications error occurred: %d.  Please try again.
+## LOCALIZATION NOTE (errorSendingMessage): argument %s is the Outgoing server (SMTP) response
+errorSendingMessage=An error occurred while sending mail. The mail server responded:  %s. Please check the message and try again.
+postFailed=The message could not be posted because connecting to the news server failed. The server may be unavailable or is refusing connections. Please verify that your news server settings are correct and try again.
+errorQueuedDeliveryFailed=An error occurred while delivering the unsent messages.
+sendFailed=Sending of the message failed.
 
-## @name NS_ERROR_BUT_DONT_SHOW_ALERT
-12527=THIS IS JUST A PLACEHOLDER.  YOU SHOULD NEVER SEE THIS STRING.
-
-## @name NS_ERROR_TCP_READ_ERROR
-12528=A network error occurred while receiving data.  (Network Error: %s)  Try connecting again.
-
-## @name NS_ERROR_COULD_NOT_GET_USERS_MAIL_ADDRESS
-12529=An error occurred sending mail:  the return mail address was invalid.  Please verify that your email address is correct in your Mail preferences and try again.
+## LOCALIZATION NOTE (smtpServerError): argument %s is the Outgoing server (SMTP) response
+smtpServerError=An error occurred while sending mail: Outgoing server (SMTP) error. The server responded:  %s.
+unableToSendLater=Sorry, we were unable to save your message for sending later.
 
-## @name NS_ERROR_MIME_MPART_ATTACHMENT_ERROR
-12531=Attachment error.
-
-## @name NS_MSG_FAILED_COPY_OPERATION
-12532=The message was sent successfully, but could not be copied to your Sent folder.
-
-## @name NS_ERROR_NNTP_NO_CROSS_POSTING
-12554=You can only send a message to one news server at a time.
+## LOCALIZATION NOTE (communicationsError): argument %d is the error code
+communicationsError=A communications error occurred: %d.  Please try again.
+dontShowAlert=THIS IS JUST A PLACEHOLDER.  YOU SHOULD NEVER SEE THIS STRING.
 
-## @name NS_MSG_CANCELLING
-12555=Cancelling…
-
-## @name NS_ERROR_SEND_FAILED_BUT_NNTP_OK
-12560=Your message has been posted to the newsgroup but has not been sent to other recipient.
-
-## @name NS_MSG_ERROR_READING_FILE
-12563=Error reading file.
-
+## LOCALIZATION NOTE (tcpReadError): argument %s is the network error
+tcpReadError=A network error occurred while receiving data.  (Network Error: %s)  Try connecting again.
+couldNotGetUsersMailAddress=An error occurred while sending mail:  the return mail address was invalid.  Please verify that your email address is correct in your account settings and try again.
+mimeMpartAttachmentError=Attachment error.
+failedCopyOperation=The message was sent successfully, but could not be copied to your Sent folder.
+nntpNoCrossPosting=You can only send a message to one news server at a time.
+msgCancelling=Cancelling…
+sendFailedButNntpOk=Your message has been posted to the newsgroup but has not been sent to the other recipient.
+errorReadingFile=Error reading file.
 followupToSenderMessage=The author of this message has requested that responses be sent only to the author. If you also want to reply to the newsgroup, add a new row to the addressing area, choose Newsgroup from the recipients list, and enter the name of the newsgroup.
 
-## @name NS_MSG_ERROR_ATTACHING_FILE
-12570=There was an error attaching %S. Please check if you have access to the file.
+## LOCALIZATION NOTE (errorAttachingFile): argument %S is the file name/URI of the object to be attached
+errorAttachingFile=There was an error attaching %S. Please check that you have access to the file.
 
-## @name NS_ERROR_SMTP_GREETING
-12572=An error occurred sending mail: The mail server sent an incorrect greeting:  %s.
+## LOCALIZATION NOTE (incorrectSmtpGreeting): argument %s is the Outgoing server (SMTP) greeting
+incorrectSmtpGreeting=An error occurred while sending mail: The mail server sent an incorrect greeting:  %s.
 
-## @name NS_ERROR_SENDING_RCPT_COMMAND
-12575=An error occurred while sending mail. The mail server responded:  %1$s. Please check the message recipient %2$s and try again.
+## LOCALIZATION NOTE (errorSendingRcptCommand): argument %1$S is the Outgoing server (SMTP) response, argument %2$S is the intended message recipient.
+errorSendingRcptCommand=An error occurred while sending mail. The mail server responded:  \n%1$S.\n Please check the message recipient "%2$S" and try again.
 
-## @name NS_ERROR_STARTTLS_FAILED_EHLO_STARTTLS
-12582=An error occurred sending mail: Unable to establish a secure link with SMTP server %S using STARTTLS since it doesn't advertise that feature. Switch off STARTTLS for that server or contact your service provider.
+## LOCALIZATION NOTE (startTlsFailed): argument %S is the Outgoing server (SMTP)
+startTlsFailed=An error occurred while sending mail: Unable to establish a secure link with Outgoing server (SMTP) %S using STARTTLS since it doesn't advertise that feature. Switch off STARTTLS for that server or contact your service provider.
 
-## @name NS_ERROR_SMTP_PASSWORD_UNDEFINED
-12584=An error occurred sending mail: Could not get password for %S. The message was not sent.
+## LOCALIZATION NOTE (smtpPasswordUndefined): argument %S is the Outgoing server (SMTP) account
+smtpPasswordUndefined=An error occurred while sending mail: Could not get password for %S. The message was not sent.
 
-## @name NS_ERROR_SMTP_TEMP_SIZE_EXCEEDED
-12586=The size of the message you are trying to send exceeds a temporary size limit of the server. The message was not sent; try to reduce the message size or wait some time and try again. The server responded:  %s.
+## LOCALIZATION NOTE (smtpTempSizeExceeded): argument %s is the Outgoing server (SMTP) response
+smtpTempSizeExceeded=The size of the message you are trying to send exceeds a temporary size limit of the server. The message was not sent; try to reduce the message size or wait some time and try again. The server responded:  %s.
 
-## @name NS_ERROR_SMTP_PERM_SIZE_EXCEEDED_1
-12587=The size of the message you are trying to send exceeds the global size limit (%d bytes) of the server. The message was not sent; reduce the message size and try again.
-
-## @name NS_ERROR_SMTP_PERM_SIZE_EXCEEDED_2
-12588=The size of the message you are trying to send exceeds the global size limit of the server. The message was not sent; reduce the message size and try again. The server responded:  %s.
+## LOCALIZATION NOTE (smtpPermSizeExceeded1): argument %d is the Outgoing server (SMTP) size limit
+smtpPermSizeExceeded1=The size of the message you are trying to send exceeds the global size limit (%d bytes) of the server. The message was not sent; reduce the message size and try again.
 
-## @name NS_ERROR_SMTP_SEND_FAILED_UNKNOWN_SERVER
-12589=An error occurred sending mail: SMTP server %S is unknown. The server may be incorrectly configured. Please verify that your SMTP server settings are correct and try again.
+## LOCALIZATION NOTE (smtpPermSizeExceeded2): argument %s is the Outgoing server (SMTP) response
+smtpPermSizeExceeded2=The size of the message you are trying to send exceeds the global size limit of the server. The message was not sent; reduce the message size and try again. The server responded:  %s.
 
-## @name NS_ERROR_SMTP_SEND_FAILED_REFUSED
-12590=The message could not be sent because connecting to SMTP server %S failed. The server may be unavailable or is refusing SMTP connections. Please verify that your SMTP server settings are correct and try again, or contact the server administrator.
+## LOCALIZATION NOTE (smtpSendFailedUnknownServer): argument %S is the Outgoing server (SMTP)
+smtpSendFailedUnknownServer=An error occurred while sending mail: Outgoing server (SMTP) %S is unknown. The server may be incorrectly configured. Please verify that your Outgoing server (SMTP) settings are correct and try again.
 
-## @name NS_ERROR_SMTP_SEND_FAILED_INTERRUPTED
-12591=The message could not be sent because the connection to SMTP server %S was lost in the middle of the transaction. Try again or contact your network administrator.
+## LOCALIZATION NOTE (smtpSendRefused): argument %S is the Outgoing server (SMTP)
+smtpSendRefused=The message could not be sent because connecting to Outgoing server (SMTP) %S failed. The server may be unavailable or is refusing Outgoing server (SMTP) connections. Please verify that your Outgoing server (SMTP) settings are correct and try again.
 
-## @name NS_ERROR_SMTP_SEND_FAILED_TIMEOUT
-12592=The message could not be sent because the connection to SMTP server %S timed out. Try again or contact your network administrator.
+## LOCALIZATION NOTE (smtpSendInterrupted): argument %S is the Outgoing server (SMTP)
+smtpSendInterrupted=The message could not be sent because the connection to Outgoing server (SMTP) %S was lost in the middle of the transaction. Try again.
 
-## @name NS_ERROR_SMTP_SEND_FAILED_UNKNOWN_REASON
-12593=The message could not be sent using SMTP server %S for an unknown reason. Please verify that your SMTP server settings are correct and try again, or contact your network administrator.
+## LOCALIZATION NOTE (smtpSendTimeout): argument %S is the Outgoing server (SMTP)
+smtpSendTimeout=The message could not be sent because the connection to Outgoing server (SMTP) %S timed out. Try again.
 
-## @name NS_ERROR_SMTP_AUTH_CHANGE_ENCRYPT_TO_PLAIN_NO_SSL
-# LOCALIZATION NOTE (12594): $S is server hostname
-12594=The SMTP server %S does not seem to support encrypted passwords. If you just set up the account, please try changing to 'Password, transmitted insecurely' as the 'Authentication method' in the 'Account Settings | Server settings'. If it used to work and now suddenly fails, this is a common scenario how someone could steal your password.
+## LOCALIZATION NOTE (smtpSendFailedUnknownReason): argument %S is the Outgoing server (SMTP)
+smtpSendFailedUnknownReason=The message could not be sent using Outgoing server (SMTP) %S for an unknown reason. Please verify that your Outgoing server (SMTP) settings are correct and try again.
 
-## @name NS_ERROR_SMTP_AUTH_CHANGE_ENCRYPT_TO_PLAIN_SSL
-# LOCALIZATION NOTE (12595): $S is server hostname
-12595=The SMTP server %S does not seem to support encrypted passwords. If you just set up this account, please try changing to 'Normal password' as the 'Authentication method' in the 'Account Settings | Server settings'. If it used to work and now suddenly fails, please contact your email administrator or provider.
+# LOCALIZATION NOTE (smtpAuthChangeEncryptToPlainNoSsl): %S is the server hostname
+smtpAuthChangeEncryptToPlainNoSsl=The Outgoing server (SMTP) %S does not seem to support encrypted passwords. If you just set up the account, try changing the 'Authentication method' in 'Account Settings | Server settings' to 'Password, transmitted insecurely'. If it used to work but now doesn't, you may be susceptible to getting your password stolen.
 
-## @name NS_ERROR_SMTP_AUTH_CHANGE_PLAIN_TO_ENCRYPT
-# LOCALIZATION NOTE (12596): $S is server hostname
-12596=The SMTP server %S does not allow plaintext passwords. Please try changing to 'Encrypted password' as the 'Authentication method' in the 'Account Settings | Server settings'.
+# LOCALIZATION NOTE (smtpAuthChangeEncryptToPlainSsl): %S is the server hostname
+smtpAuthChangeEncryptToPlainSsl=The Outgoing server (SMTP) %S does not seem to support encrypted passwords. If you just set up the account, try changing to the 'Authentication method' in 'Account settings | Server settings' to 'Normal password'.
 
-## @name NS_ERROR_SMTP_AUTH_FAILURE
-# LOCALIZATION NOTE (12597): $S is server hostname
-12597=Unable to authenticate to SMTP server %S. Please check the password, and verify the 'Authentication method' in 'Account Settings | Outgoing server (SMTP)'.
+# LOCALIZATION NOTE (smtpAuthChangePlainToEncrypt): %S is the server hostname
+smtpAuthChangePlainToEncrypt=The Outgoing server (SMTP) %S does not allow plaintext passwords. Please try changing the 'Authentication method' in 'Account Settings | Server settings' to 'Encrypted password'.
 
-## @name NS_ERROR_SMTP_AUTH_GSSAPI
-# LOCALIZATION NOTE (12598): $S is server hostname
-12598=The Kerberos/GSSAPI ticket was not accepted by the SMTP server %S. Please check that you are logged in to the Kerberos/GSSAPI realm.
+# LOCALIZATION NOTE (smtpAuthFailure): %S is the server hostname
+smtpAuthFailure=Unable to authenticate to Outgoing server (SMTP) %S. Please check the password and verify the 'Authentication method' in 'Account Settings | Outgoing server (SMTP)'.
 
-## @name NS_ERROR_SMTP_AUTH_MECH_NOT_SUPPORTED
-# LOCALIZATION NOTE (12599): $S is server hostname
-12599=The SMTP server %S does not support the selected authentication method. Please change the 'Authentication method' in the 'Account Settings | Outgoing Server (SMTP)'.
+# LOCALIZATION NOTE (smtpAuthGssapi): %S is the server hostname
+smtpAuthGssapi=The Kerberos/GSSAPI ticket was not accepted by the Outgoing server (SMTP) %S. Please check that you are logged in to the Kerberos/GSSAPI realm.
 
-## @name NS_ERROR_SMTP_AUTH_NOT_SUPPORTED
-# LOCALIZATION NOTE (12600): $S is server hostname
-12600=Unable to authenticate to SMTP server %S. It does not support authentication (SMTP-AUTH) but you have chosen to use authentication. Please change the 'Authentication method' to 'None' in the 'Account Settings | Outgoing Server (SMTP)' or contact your email service provider for instructions.
+# LOCALIZATION NOTE (smtpAuthMechNotSupported): %S is the server hostname
+smtpAuthMechNotSupported=The Outgoing server (SMTP) %S does not support the selected authentication method. Please change the 'Authentication method' in 'Account Settings | Outgoing Server (SMTP)'.
 
-## @name NS_ERROR_ILLEGAL_LOCALPART
+# LOCALIZATION NOTE (smtpAuthNotSupported): %S is the server hostname
+smtpAuthNotSupported=Unable to authenticate to Outgoing server (SMTP) %S. It does not support authentication (Outgoing server (SMTP)-AUTH) but you have chosen to use authentication. Please change the 'Authentication method' to 'None' in the 'Account Settings | Outgoing Server (SMTP)' or contact your email service provider for instructions.
+
 # LOCALIZATION NOTE (errorIllegalLocalPart): %s is an email address with an illegal localpart
 errorIllegalLocalPart=There are non-ASCII characters in the local part of the recipient address %s. This is not yet supported. Please change this address and try again.
 
-## Strings use for the save message dialog shown when the user close a message compose window
+## Strings used for the save message dialog shown when the user closes a message compose window
 saveDlogTitle=Save Message
-## LOCALIZATION NOTE (SaveDlogMessages): %1$S is folder name
+
+## LOCALIZATION NOTE (SaveDlogMessages): %1$S is the folder name
 saveDlogMessages=Message has not been sent. Do you want to save the message in your drafts folder (%1$S)?
 
 ## generics string
 defaultSubject=(no subject)
 chooseFileToAttach=Attach File(s)
-
-genericFailureExplanation=Please verify that your Mail & Newsgroups account settings are correct and try again.
+genericFailureExplanation=Please verify that your account settings are correct and try again.
 
 ## LOCALIZATION NOTE (undisclosedRecipients): this string must use only US_ASCII characters
 undisclosedRecipients=undisclosed-recipients
 
 # LOCALIZATION NOTE (chooseFileToAttachViaCloud): %1$S is the cloud
 # provider to save the file to.
 chooseFileToAttachViaCloud=Attach File(s) via %1$S
 
@@ -177,251 +132,259 @@ chooseFileToAttachViaCloud=Attach File(s
 windowTitlePrefix=Write:
 
 ## Strings used by the empty subject dialog
 subjectEmptyTitle=Subject Reminder
 subjectEmptyMessage=Your message doesn't have a subject.
 sendWithEmptySubjectButton=&Send Without Subject
 cancelSendingButton=&Cancel Sending
 
-## Strings used by the dialog that informs about lack of newsgroup support.
+## Strings used by the dialog that informs about the lack of newsgroup support.
 noNewsgroupSupportTitle=Newsgroups Not Supported
 recipientDlogMessage=This account only supports email recipients. Continuing will ignore newsgroups.
 
-## Strings used by the alert that tells the user an e-mail address is invalid.
+## Strings used by the alert that tells the user that an e-mail address is invalid.
 addressInvalidTitle=Invalid Recipient Address
 addressInvalid=%1$S is not a valid e-mail address because it is not of the form user@host. You must correct it before sending the e-mail.
 
-## String used by the dialog that ask the user to attach a web page
+## String used by the dialog that asks the user to attach a web page
 attachPageDlogTitle=Please specify a location to attach
 attachPageDlogMessage=Web Page (URL):
 
-## String used for attachment pretty name, when attachment is a message
+## String used for attachment pretty name, when the attachment is a message
 messageAttachmentSafeName=Attached Message
-## String used for attachment pretty name, when attachment is message part
+
+## String used for attachment pretty name, when the attachment is a message part
 partAttachmentSafeName=Attached Message Part
 
 # LOCALIZATION NOTE (attachmentCount): Semi-colon list of plural forms.
 # See: http://developer.mozilla.org/en/Localization_and_Plurals
 # #1 number of attachments
 attachmentCount=#1 attachment;#1 attachments
 
 ## String used by the Initialization Error dialog
 initErrorDlogTitle=Message Compose
 initErrorDlgMessage=An error occurred while creating a message compose window. Please try again.
 
 ## String used if a file to attach does not exist when passed as
 ## a command line argument
 errorFileAttachTitle=File Attach
+
 ## LOCALIZATION NOTE (errorFileAttachMessage): %1$S will be replaced by the non-existent file name. Do not translate
 errorFileAttachMessage=The file %1$S does not exist so could not be attached to the message.
 
-## Strings used by Save as Draft/Template dialog
+## Strings used by the Save as Draft/Template dialog
 SaveDialogTitle=Save Message
-## LOCALIZATION NOTE (SaveDialogMsg): %1$S is folder name, %2$S is host name
+
+## LOCALIZATION NOTE (SaveDialogMsg): %1$S is the folder name, %2$S is the host name
 SaveDialogMsg=Your message has been saved to the folder %1$S under %2$S.
 CheckMsg=Do not show me this dialog box again.
 
-## Strings used by prompt when Quitting while in progress
+## Strings used by the prompt when Quitting while in progress
 quitComposeWindowTitle=Sending Message
+
 ## LOCALIZATION NOTE (quitComposeWindowMessage2): don't translate \n
 quitComposeWindowMessage2=%1$S is currently in the process of sending a message.\nWould you like to wait until the message has been sent before quitting or quit now?
 quitComposeWindowQuitButtonLabel2=&Quit
 quitComposeWindowWaitButtonLabel2=&Wait
 quitComposeWindowSaveTitle=Saving Message
+
 ## LOCALIZATION NOTE (quitComposeWindowSaveMessage): don't translate \n
 quitComposeWindowSaveMessage=%1$S is currently in the process of saving a message.\nWould you like to wait until the message has been saved before quitting or quit now?
 
-## Strings used by prompt for Ctrl-Enter check before sending message
+## Strings used by the prompt for Ctrl-Enter check before sending message
 sendMessageCheckWindowTitle=Send Message
 sendMessageCheckLabel=Are you sure you are ready to send this message?
 sendMessageCheckSendButtonLabel=Send
-
 assemblingMessageDone=Assembling message…Done
 assemblingMessage=Assembling message…
-
 smtpDeliveringMail=Delivering mail…
 smtpMailSent=Mail sent successfully
+assemblingMailInformation=Assembling mail information…
 
-assemblingMailInformation=Assembling mail information…
-## LOCALIZATION NOTE (gatheringAttachment): argument %S is file name/URI of attachment
+## LOCALIZATION NOTE (gatheringAttachment): argument %S is the file name/URI of attachment
 gatheringAttachment=Attaching %S…
 creatingMailMessage=Creating mail message…
 
-## LOCALIZATION NOTE (copyMessageStart): argument %S is folder name
+## LOCALIZATION NOTE (copyMessageStart): argument %S is the folder name
 copyMessageStart=Copying message to %S folder…
 copyMessageComplete=Copy complete.
 copyMessageFailed=Copy failed.
-
 filterMessageComplete=Filter complete.
 filterMessageFailed=Filter failed.
 
 ## LOCALIZATION NOTE (largeMessageSendWarning):
 ## Do not translate %S. It is the size of the message in user-friendly notation.
-largeMessageSendWarning=Warning! You are about to send a message of size %S which may exceed the allowed limit on the mail server. Are you sure that you want to do this?
-
+largeMessageSendWarning=Warning! You are about to send a message of size %S. Are you sure you want to do this?
 sendingMessage=Sending message…
 sendMessageErrorTitle=Send Message Error
 postingMessage=Posting message…
-
 sendLaterErrorTitle=Send Later Error
 saveDraftErrorTitle=Save Draft Error
 saveTemplateErrorTitle=Save Template Error
 
-## LOCALIZATION NOTE (failureOnObjectEmbeddingWhileSaving): argument %.200S is file name/URI of object to be embedded
+## LOCALIZATION NOTE (failureOnObjectEmbeddingWhileSaving): argument %.200S is the file name/URI of object to be embedded
 failureOnObjectEmbeddingWhileSaving=There was a problem including the file %.200S in the message. Would you like to continue saving the message without this file?
-## LOCALIZATION NOTE (failureOnObjectEmbeddingWhileSending): argument %.200S is file name/URI of object to be embedded
+
+## LOCALIZATION NOTE (failureOnObjectEmbeddingWhileSending): argument %.200S is the file name/URI of object to be embedded
 failureOnObjectEmbeddingWhileSending=There was a problem including the file %.200S in the message. Would you like to continue sending the message without this file?
 returnToComposeWindowQuestion=Would you like to return to the compose window?
 
 ## reply header in composeMsg
-## LOCALIZATION NOTE (mailnews.reply_header_authorwrotesingle): #1 is author (name of person replying to)
+## LOCALIZATION NOTE (mailnews.reply_header_authorwrotesingle): #1 is the author (name of the person replying to)
 mailnews.reply_header_authorwrotesingle=#1 wrote:
-## LOCALIZATION NOTE (mailnews.reply_header_ondateauthorwrote): #1 is author, #2 is date, #3 is time
+
+## LOCALIZATION NOTE (mailnews.reply_header_ondateauthorwrote): #1 is the author, #2 is the date, #3 is the time
 mailnews.reply_header_ondateauthorwrote=On #2 #3, #1 wrote:
-## LOCALIZATION NOTE (mailnews.reply_header_authorwroteondate): #1 is author, #2 is date, #3 is time
+
+## LOCALIZATION NOTE (mailnews.reply_header_authorwroteondate): #1 is the author, #2 is the date, #3 is the time
 mailnews.reply_header_authorwroteondate=#1 wrote on #2 #3:
 
 ## reply header in composeMsg
 ## user specified
 mailnews.reply_header_originalmessage=-------- Original Message --------
 
 ## forwarded header in composeMsg
 ## user specified
 mailnews.forward_header_originalmessage=-------- Forwarded Message --------
 
 ## Strings used by the rename attachment dialog
 renameAttachmentTitle=Rename Attachment
 renameAttachmentMessage=New attachment name:
 
 ## Attachment Reminder
 ## LOCALIZATION NOTE (mail.compose.attachment_reminder_keywords): comma separated
-##   words that that should trigger an attachment reminder.
+## words that should trigger an attachment reminder.
 mail.compose.attachment_reminder_keywords=.doc,.pdf,.xls,.ppt,.rtf,.pps,attachment,attach,attached,attaching,enclosed,CV,cover letter
 
 addAttachmentButton=Add Attachment…
 addAttachmentButton.accesskey=A
 remindLaterButton=Remind Me Later
 remindLaterButton.accesskey=L
 
 attachmentReminderTitle=Attachment Reminder
 attachmentReminderMsg=Did you forget to add an attachment?
+
 # LOCALIZATION NOTE (attachmentReminderKeywordsMsgs): Semi-colon list of plural forms.
 # See: http://developer.mozilla.org/en/Localization_and_Plurals
 # #1 number of keywords
 attachmentReminderKeywordsMsgs=Found an attachment keyword:;Found #1 attachment keywords:
 attachmentReminderOptionsMsg=Attachment reminder words can be configured in your preferences
 attachmentReminderYesIForgot=Oh, I did!
 attachmentReminderFalseAlarm=No, Send Now
 
 # Strings used by the Filelink offer notification bar.
 learnMore.label=Learn More…
 learnMore.accesskey=m
+
 # LOCALIZATION NOTE (bigFileDescription): Semi-colon list of plural forms.
 # See: http://developer.mozilla.org/en/Localization_and_Plurals
 # #1 number of big attached files
 bigFileDescription=This is a large file. It might be better to use Filelink instead.;These are large files. It might be better to use Filelink instead.
 bigFileShare.label=Link
 bigFileShare.accesskey=l
 bigFileAttach.label=Ignore
 bigFileAttach.accesskey=i
-
 bigFileChooseAccount.title=Choose Account
 bigFileChooseAccount.text=Choose a cloud account to upload the attachment to
-
 bigFileHideNotification.title=Don't Upload My Files
 bigFileHideNotification.text=You won't be notified if you attach more big files to this message.
 bigFileHideNotification.check=Never notify me of this again.
 
 # LOCALIZATION NOTE(cloudFileUploadingTooltip): Do not translate the string
 # %S. %S is the display name for the cloud account the attachment is being
 # uploaded to.
 cloudFileUploadingTooltip=Uploading to %S…
+
 # LOCALIZATION NOTE(cloudFileUploadedTooltip): Do not translate the string
 # %S. %S is the display name for the cloud account the attachment was uploaded
 # to.
 cloudFileUploadedTooltip=Uploaded to %S
-cloudFileUploadingNotification=Your file is being linked. It will appear in the body of the message when it's done.;Your files are being linked. They will appear in the body of the message when they're done.
+cloudFileUploadingNotification=Your file is being linked. It will appear in the body of the message when it's done.;Your files are being linked. They will appear in the body of the message when it's done.
 cloudFileUploadingCancel.label=Cancel
 cloudFileUploadingCancel.accesskey=c
 cloudFilePrivacyNotification=Linking is complete. Please note that linked attachments may be accessible to people who can see or guess the links.
 
 ## LOCALIZATION NOTE(smtpEnterPasswordPrompt): Do not translate the
-## word $S. Place the word $S where the host name should appear.
+## word %S. Place the word %S where the host name should appear.
 smtpEnterPasswordPrompt=Enter your password for %S:
+
 ## LOCALIZATION NOTE(smtpEnterPasswordPromptWithUsername): Do not translate the
 ## words %1$S and %2$S. Place the word %1$S where the host name should appear,
 ## and %2$S where the user name should appear.
 smtpEnterPasswordPromptWithUsername=Enter your password for %2$S on %1$S:
-smtpEnterPasswordPromptTitle=SMTP Server Password Required
+smtpEnterPasswordPromptTitle=Outgoing server (SMTP) Password Required
 
 # LOCALIZATION NOTE (removeAttachmentMsgs): Semi-colon list of plural forms.
 # See: http://developer.mozilla.org/en/Localization_and_Plurals
 removeAttachmentMsgs=Remove Attachment;Remove Attachments
 
 ## LOCALIZATION NOTE(errorSavingMsg): Do not translate the word %S. It
 ## will be replaced with the name of the folder the message is being saved to.
 errorSavingMsg=There was an error saving the message to %S. Retry?
-
 errorFilteringMsg=Your message has been sent and saved, but there was an error while running message filters on it.
+errorCloudFileAuth.title=Authentication Error
 
-errorCloudFileAuth.title=Authentication Error
 ## LOCALIZATION NOTE(errorCloudFileAuth.message):
-## %1$S is the name of the online storage service that authentication failed against.
+## %1$S is the name of the online storage service against which the authentication failed.
 errorCloudFileAuth.message=Unable to authenticate to %1$S.
 errorCloudFileUpload.title=Upload Error
+
 ## LOCALIZATION NOTE(errorCloudFileUpload.message):
-## %1$S is the name of the online storage service that uploading failed against.
+## %1$S is the name of the online storage service against which the uploading failed.
 ## %2$S is the name of the file that failed to upload.
 errorCloudFileUpload.message=Unable to upload %2$S to %1$S.
 errorCloudFileQuota.title=Quota Error
+
 ## LOCALIZATION NOTE(errorCloudFileQuota.message):
 ## %1$S is the name of the online storage service being uploaded to.
 ## %2$S is the name of the file that could not be uploaded due to exceeding the storage limit.
 errorCloudFileQuota.message=Uploading %2$S to %1$S would exceed your space quota.
 errorCloudFileNameLimit.title=File Name Error
+
 ## LOCALIZATION NOTE(errorCloudFileNameLimit.message):
 ## %1$S is the name of the online storage service being uploaded to.
 ## %2$S is the name of the file that could not be uploaded due to the excess file name length
-errorCloudFileNameLimit.message=Uploading %2$S to %1$S contains has more than 120 characters in its name. Please rename the file to have 120 characters or less in its name and upload again.
+errorCloudFileNameLimit.message=%2$S contains has more than 120 characters in its name which is more than the maximum file name length for %1$S. Please rename the file to have 120 characters or less in its name and upload again.
 errorCloudFileLimit.title=File Size Error
+
 ## LOCALIZATION NOTE(errorCloudFileLimit.message):
 ## %1$S is the name of the online storage service being uploaded to.
 ## %2$S is the name of the file that could not be uploaded due to size restrictions.
 errorCloudFileLimit.message=%2$S exceeds the maximum size for %1$S.
 errorCloudFileOther.title=Unknown Error
+
 ## LOCALIZATION NOTE(errorCloudFileOther.message):
 ## %1$S is the name of the online storage service that cannot be communicated with.
 errorCloudFileOther.message=An unknown error occurred when communicating with %1$S.
 errorCloudFileDeletion.title=Deletion Error
+
 ## LOCALIZATION NOTE(errorCloudFileDeletion.message):
 ## %1$S is the name of the online storage service that the file is to be deleted from.
 ## %2$S is the name of the file that failed to be deleted.
 errorCloudFileDeletion.message=There was a problem deleting %2$S from %1$S.
-
 errorCloudFileUpgrade.label=Upgrade
 
 ## LOCALIZATION NOTE(cloudAttachmentCountHeader): A line of text describing how
 ## many uploaded files have been appended to this message.  Emphasis should be
 ## on sharing as opposed to attaching. This item is used as a header to a list,
 ## hence the colon.  This header is only displayed in HTML emails.
 ## Using PluralForm (so don't replace the #1).
 cloudAttachmentCountHeader=I've linked #1 file to this email:;I've linked #1 files to this email:
 
 ## LOCALIZATION NOTE(cloudAttachmentListFooter): %1$S is a link, whose text
 ## contents are the brandFullName of this application.
 cloudAttachmentListFooter=%1$S makes it easy to share large files over email.
 
 ## LOCALIZATION NOTE(cloudAttachmentListItem): A line of text describing a cloud
-## attachment, to be inserted into the message body. Do not translate the words
+## attachment to be inserted into the message body. Do not translate the words
 ## %1$S, %2$S, %3$S, or %4$S. %1$S is the attachment name, %2$S is its size,
 ## %3$S is the name of the cloud storage service, and %4$S is the link to the
 ## attachment.
 cloudAttachmentListItem=* %1$S (%2$S) hosted on %3$S: %4$S
 
 ## LOCALIZATION NOTE(stopShowingUploadingNotification): This string is used in the Filelink
 ## upload notification bar to allow the user to dismiss the notification permanently.
 stopShowingUploadingNotification.accesskey=N
 stopShowingUploadingNotification.label=Never show this again
-
 replaceButton.label=Replace…
 replaceButton.accesskey=l
 replaceButton.tooltip=Show the Find and Replace dialog
--- a/mailnews/compose/src/nsComposeStrings.h
+++ b/mailnews/compose/src/nsComposeStrings.h
@@ -65,9 +65,112 @@
 #define NS_ERROR_SMTP_AUTH_CHANGE_PLAIN_TO_ENCRYPT         NS_MSG_GENERATE_FAILURE(12596)
 #define NS_ERROR_SMTP_AUTH_FAILURE                  NS_MSG_GENERATE_FAILURE(12597)
 #define NS_ERROR_SMTP_AUTH_GSSAPI                   NS_MSG_GENERATE_FAILURE(12598)
 #define NS_ERROR_SMTP_AUTH_MECH_NOT_SUPPORTED       NS_MSG_GENERATE_FAILURE(12599)
 #define NS_ERROR_SMTP_AUTH_NOT_SUPPORTED            NS_MSG_GENERATE_FAILURE(12600)
 
 #define NS_ERROR_ILLEGAL_LOCALPART                  NS_MSG_GENERATE_FAILURE(12601)
 
+static const char16_t* errorStringNameForErrorCode(nsresult aCode)
+{
+  switch(aCode)
+  {
+    case NS_MSG_UNABLE_TO_OPEN_FILE:
+      return MOZ_UTF16("unableToOpenFile");
+    case NS_MSG_UNABLE_TO_OPEN_TMP_FILE:
+      return MOZ_UTF16("unableToOpenTmpFile");
+    case NS_MSG_UNABLE_TO_SAVE_TEMPLATE:
+      return MOZ_UTF16("unableToSaveTemplate");
+    case NS_MSG_UNABLE_TO_SAVE_DRAFT:
+      return MOZ_UTF16("unableToSaveDraft");
+    case NS_MSG_COULDNT_OPEN_FCC_FOLDER:
+      return MOZ_UTF16("couldntOpenFccFolder");
+    case NS_MSG_NO_SENDER:
+      return MOZ_UTF16("noSender");
+    case NS_MSG_NO_RECIPIENTS:
+      return MOZ_UTF16("noRecipients");
+    case NS_MSG_ERROR_WRITING_FILE:
+      return MOZ_UTF16("errorWritingFile");
+    case NS_ERROR_SENDING_FROM_COMMAND:
+      return MOZ_UTF16("errorSendingFromCommand");
+    case NS_ERROR_SENDING_DATA_COMMAND:
+      return MOZ_UTF16("errorSendingDataCommand");
+    case NS_ERROR_SENDING_MESSAGE:
+      return MOZ_UTF16("errorSendingMessage");
+    case NS_ERROR_POST_FAILED:
+      return MOZ_UTF16("postFailed");
+    case NS_ERROR_QUEUED_DELIVERY_FAILED:
+      return MOZ_UTF16("errorQueuedDeliveryFailed");
+    case NS_ERROR_SEND_FAILED:
+      return MOZ_UTF16("sendFailed");
+    case NS_ERROR_SMTP_SERVER_ERROR:
+      return MOZ_UTF16("smtpServerError");
+    case NS_MSG_UNABLE_TO_SEND_LATER:
+      return MOZ_UTF16("unableToSendLater");
+    case NS_ERROR_COMMUNICATIONS_ERROR:
+      return MOZ_UTF16("communicationsError");
+    case NS_ERROR_BUT_DONT_SHOW_ALERT:
+      return MOZ_UTF16("dontShowAlert");
+    case NS_ERROR_TCP_READ_ERROR:
+      return MOZ_UTF16("tcpReadError");
+    case NS_ERROR_COULD_NOT_GET_USERS_MAIL_ADDRESS:
+      return MOZ_UTF16("couldNotGetUsersMailAddress");
+    case NS_ERROR_MIME_MPART_ATTACHMENT_ERROR:
+      return MOZ_UTF16("mimeMpartAttachmentError");
+    case NS_MSG_FAILED_COPY_OPERATION:
+      return MOZ_UTF16("failedCopyOperation");
+    case NS_ERROR_NNTP_NO_CROSS_POSTING:
+      return MOZ_UTF16("nntpNoCrossPosting");
+    case NS_MSG_CANCELLING:
+      return MOZ_UTF16("msgCancelling");
+    case NS_ERROR_SEND_FAILED_BUT_NNTP_OK:
+      return MOZ_UTF16("sendFailedButNntpOk");
+    case NS_MSG_ERROR_READING_FILE:
+      return MOZ_UTF16("errorReadingFile");
+    case NS_MSG_ERROR_ATTACHING_FILE:
+      return MOZ_UTF16("errorAttachingFile");
+    case NS_ERROR_SMTP_GREETING:
+      return MOZ_UTF16("incorrectSmtpGreeting");
+    case NS_ERROR_SENDING_RCPT_COMMAND:
+      return MOZ_UTF16("errorSendingRcptCommand");
+    case NS_ERROR_STARTTLS_FAILED_EHLO_STARTTLS:
+      return MOZ_UTF16("startTlsFailed");
+    case NS_ERROR_SMTP_PASSWORD_UNDEFINED:
+      return MOZ_UTF16("smtpPasswordUndefined");
+    case NS_ERROR_SMTP_TEMP_SIZE_EXCEEDED:
+      return MOZ_UTF16("smtpTempSizeExceeded");
+    case NS_ERROR_SMTP_PERM_SIZE_EXCEEDED_1:
+      return MOZ_UTF16("smtpPermSizeExceeded1");
+    case NS_ERROR_SMTP_PERM_SIZE_EXCEEDED_2:
+      return MOZ_UTF16("smtpPermSizeExceeded2");
+    case NS_ERROR_SMTP_SEND_FAILED_UNKNOWN_SERVER:
+      return MOZ_UTF16("smtpSendFailedUnknownServer");
+    case NS_ERROR_SMTP_SEND_FAILED_REFUSED:
+      return MOZ_UTF16("smtpSendRefused");
+    case NS_ERROR_SMTP_SEND_FAILED_INTERRUPTED:
+      return MOZ_UTF16("smtpSendInterrupted");
+    case NS_ERROR_SMTP_SEND_FAILED_TIMEOUT:
+      return MOZ_UTF16("smtpSendTimeout");
+    case NS_ERROR_SMTP_SEND_FAILED_UNKNOWN_REASON:
+      return MOZ_UTF16("smtpSendFailedUnknownReason");
+    case NS_ERROR_SMTP_AUTH_CHANGE_ENCRYPT_TO_PLAIN_NO_SSL:
+      return MOZ_UTF16("smtpAuthChangeEncryptToPlainNoSsl");
+    case NS_ERROR_SMTP_AUTH_CHANGE_ENCRYPT_TO_PLAIN_SSL:
+      return MOZ_UTF16("smtpAuthChangeEncryptToPlainSsl");
+    case NS_ERROR_SMTP_AUTH_CHANGE_PLAIN_TO_ENCRYPT:
+      return MOZ_UTF16("smtpAuthChangePlainToEncrypt");
+    case NS_ERROR_SMTP_AUTH_FAILURE:
+      return MOZ_UTF16("smtpAuthFailure");
+    case NS_ERROR_SMTP_AUTH_GSSAPI:
+      return MOZ_UTF16("smtpAuthGssapi");
+    case NS_ERROR_SMTP_AUTH_MECH_NOT_SUPPORTED:
+      return MOZ_UTF16("smtpAuthMechNotSupported");
+    case NS_ERROR_SMTP_AUTH_NOT_SUPPORTED:
+      return MOZ_UTF16("smtpAuthNotSupported");
+    case NS_ERROR_ILLEGAL_LOCALPART:
+      return MOZ_UTF16("illegalLocalPart");
+    default:
+      return MOZ_UTF16("smtpSendFailedUnknownReason");
+  }
+}
+
 #endif /* _nsComposeStrings_H__ */
--- a/mailnews/compose/src/nsMsgCompose.cpp
+++ b/mailnews/compose/src/nsMsgCompose.cpp
@@ -1328,28 +1328,28 @@ NS_IMETHODIMP nsMsgCompose::SendMsg(MSG_
     else
     {
       /* If we come here it's because we got an error before we could intialize a
          send report! Let's try our best...
       */
       switch (deliverMode)
       {
         case nsIMsgCompDeliverMode::Later:
-          nsMsgDisplayMessageByID(prompt, NS_MSG_UNABLE_TO_SEND_LATER);
+          nsMsgDisplayMessageByName(prompt, MOZ_UTF16("unableToSendLater"));
           break;
         case nsIMsgCompDeliverMode::AutoSaveAsDraft:
         case nsIMsgCompDeliverMode::SaveAsDraft:
-          nsMsgDisplayMessageByID(prompt, NS_MSG_UNABLE_TO_SAVE_DRAFT);
+          nsMsgDisplayMessageByName(prompt, MOZ_UTF16("unableToSaveDraft"));
           break;
         case nsIMsgCompDeliverMode::SaveAsTemplate:
-          nsMsgDisplayMessageByID(prompt, NS_MSG_UNABLE_TO_SAVE_TEMPLATE);
+          nsMsgDisplayMessageByName(prompt, MOZ_UTF16("unableToSaveTemplate"));
           break;
 
         default:
-          nsMsgDisplayMessageByID(prompt, NS_ERROR_SEND_FAILED);
+          nsMsgDisplayMessageByName(prompt, MOZ_UTF16("sendFailed"));
           break;
       }
     }
 
     if (progress)
       progress->CloseProgressDialog(true);
   }
 
@@ -2655,17 +2655,17 @@ NS_IMETHODIMP QuotingOutputStreamListene
         // Handle "followup-to: poster" magic keyword here
         if (followUpTo.EqualsLiteral("poster"))
         {
           nsCOMPtr<nsIDOMWindow> composeWindow;
           nsCOMPtr<nsIPrompt> prompt;
           compose->GetDomWindow(getter_AddRefs(composeWindow));
           if (composeWindow)
             composeWindow->GetPrompter(getter_AddRefs(prompt));
-          nsMsgDisplayMessageByName(prompt, NS_LITERAL_STRING("followupToSenderMessage"));
+          nsMsgDisplayMessageByName(prompt, MOZ_UTF16("followupToSenderMessage"));
 
           if (!replyTo.IsEmpty())
           {
             compFields->SetTo(replyTo);
           }
           else
           {
             // If reply-to is empty, use the From header to fetch the original
@@ -3903,20 +3903,22 @@ NS_IMETHODIMP nsMsgComposeSendListener::
         progress->GetProcessCanceledByUser(&bCanceled);
         if (bCanceled)
         {
           nsresult rv;
           nsCOMPtr<nsIStringBundleService> bundleService =
             mozilla::services::GetStringBundleService();
           NS_ENSURE_TRUE(bundleService, NS_ERROR_UNEXPECTED);
           nsCOMPtr<nsIStringBundle> bundle;
-          rv = bundleService->CreateBundle("chrome://messenger/locale/messengercompose/composeMsgs.properties", getter_AddRefs(bundle));
+          rv = bundleService->CreateBundle(
+            "chrome://messenger/locale/messengercompose/composeMsgs.properties",
+            getter_AddRefs(bundle));
           NS_ENSURE_SUCCESS(rv, rv);
           nsString msg;
-          bundle->GetStringFromID(NS_ERROR_GET_CODE(NS_MSG_CANCELLING), getter_Copies(msg));
+          bundle->GetStringFromName(MOZ_UTF16("msgCancelling"), getter_Copies(msg));
           progress->OnStatusChange(nullptr, nullptr, NS_OK, msg.get());
         }
       }
 
       nsCOMPtr<nsIMsgSend> msgSend;
       msgCompose->GetMessageSend(getter_AddRefs(msgSend));
       if (msgSend)
         msgSend->Abort();
--- a/mailnews/compose/src/nsMsgPrompts.cpp
+++ b/mailnews/compose/src/nsMsgPrompts.cpp
@@ -10,45 +10,30 @@
 #include "nsMsgCompCID.h"
 #include "nsComposeStrings.h"
 #include "nsIStringBundle.h"
 #include "nsServiceManagerUtils.h"
 #include "nsMsgUtils.h"
 #include "mozilla/Services.h"
 
 nsresult
-nsMsgGetMessageByID(nsresult aMsgID, nsString& aResult)
+nsMsgGetMessageByName(const char16_t* aName, nsString& aResult)
 {
   nsresult rv;
   nsCOMPtr<nsIStringBundleService> bundleService =
     mozilla::services::GetStringBundleService();
   NS_ENSURE_TRUE(bundleService, NS_ERROR_UNEXPECTED);
 
   nsCOMPtr<nsIStringBundle> bundle;
-  rv = bundleService->CreateBundle("chrome://messenger/locale/messengercompose/composeMsgs.properties", getter_AddRefs(bundle));
+  rv = bundleService->CreateBundle(
+    "chrome://messenger/locale/messengercompose/composeMsgs.properties",
+    getter_AddRefs(bundle));
   NS_ENSURE_SUCCESS(rv, rv);
 
-  return bundle->GetStringFromID(NS_ERROR_GET_CODE(aMsgID),
-                                 getter_Copies(aResult));
-}
-
-nsresult
-nsMsgGetMessageByName(const nsString &aName, nsString& aResult)
-{
-  nsresult rv;
-  nsCOMPtr<nsIStringBundleService> bundleService =
-    mozilla::services::GetStringBundleService();
-  NS_ENSURE_TRUE(bundleService, NS_ERROR_UNEXPECTED);
-
-  nsCOMPtr<nsIStringBundle> bundle;
-  rv = bundleService->CreateBundle("chrome://messenger/locale/messengercompose/composeMsgs.properties", getter_AddRefs(bundle));
-  NS_ENSURE_SUCCESS(rv, rv);
-
-  return bundle->GetStringFromName(aName.get(),
-                                   getter_Copies(aResult));
+  return bundle->GetStringFromName(aName, getter_Copies(aResult));
 }
 
 static nsresult
 nsMsgBuildMessageByName(const char16_t *aName, nsIFile *aFile, nsString& aResult)
 {
   NS_ENSURE_ARG_POINTER(aFile);
   nsresult rv;
   nsCOMPtr<nsIStringBundleService> bundleService =
@@ -74,25 +59,17 @@ nsMsgBuildMessageWithFile(nsIFile *aFile
 
 nsresult
 nsMsgBuildMessageWithTmpFile(nsIFile *aFile, nsString& aResult)
 {
   return nsMsgBuildMessageByName(MOZ_UTF16("unableToOpenTmpFile"), aFile, aResult);
 }
 
 nsresult
-nsMsgDisplayMessageByID(nsIPrompt * aPrompt, nsresult msgID, const char16_t * windowTitle)
-{
-  nsString msg;
-  nsMsgGetMessageByID(msgID, msg);
-  return nsMsgDisplayMessageByString(aPrompt, msg.get(), windowTitle);
-}
-
-nsresult
-nsMsgDisplayMessageByName(nsIPrompt *aPrompt, const nsString &aName, const char16_t *windowTitle)
+nsMsgDisplayMessageByName(nsIPrompt *aPrompt, const char16_t* aName, const char16_t *windowTitle)
 {
   nsString msg;
   nsMsgGetMessageByName(aName, msg);
   return nsMsgDisplayMessageByString(aPrompt, msg.get(), windowTitle);
 }
 
 nsresult
 nsMsgDisplayMessageByString(nsIPrompt * aPrompt, const char16_t * msg, const char16_t * windowTitle)
--- a/mailnews/compose/src/nsMsgPrompts.h
+++ b/mailnews/compose/src/nsMsgPrompts.h
@@ -7,18 +7,16 @@
 #define _nsMsgPrompts_H_
 
 #include "nscore.h"
 #include "nsError.h"
 #include "nsStringGlue.h"
 
 class nsIPrompt;
 
-nsresult      nsMsgGetMessageByID(nsresult aMsgID, nsString& aResult);
-nsresult      nsMsgGetMessageByName(const nsString &aName, nsString& aResult);
+nsresult      nsMsgGetMessageByName(const char16_t* aName, nsString& aResult);
 nsresult      nsMsgBuildMessageWithFile(nsIFile * aFile, nsString& aResult);
 nsresult      nsMsgBuildMessageWithTmpFile(nsIFile * aFile, nsString& aResult);
-nsresult      nsMsgDisplayMessageByID(nsIPrompt * aPrompt, nsresult msgID, const char16_t * windowTitle = nullptr);
-nsresult      nsMsgDisplayMessageByName(nsIPrompt *aPrompt, const nsString &aName, const char16_t *windowTitle = nullptr);
+nsresult      nsMsgDisplayMessageByName(nsIPrompt *aPrompt, const char16_t *aName, const char16_t *windowTitle = nullptr);
 nsresult      nsMsgDisplayMessageByString(nsIPrompt * aPrompt, const char16_t * msg, const char16_t * windowTitle = nullptr);
 nsresult      nsMsgAskBooleanQuestionByString(nsIPrompt * aPrompt, const char16_t * msg, bool *answer, const char16_t * windowTitle = nullptr);
 
 #endif /* _nsMsgPrompts_H_ */
--- a/mailnews/compose/src/nsMsgSend.cpp
+++ b/mailnews/compose/src/nsMsgSend.cpp
@@ -2574,17 +2574,19 @@ nsMsgComposeAndSend::HackAttachments(nsI
       {
         nsString errorMsg;
         nsAutoString attachmentFileName;
         nsresult rv = ConvertToUnicode(nsMsgI18NFileSystemCharset(), m_attachments[i]->m_realName, attachmentFileName);
         if (NS_SUCCEEDED(rv))
         {
           nsCOMPtr<nsIStringBundle> bundle;
           const char16_t *params[] = { attachmentFileName.get() };
-          mComposeBundle->FormatStringFromID(NS_ERROR_GET_CODE(NS_MSG_ERROR_ATTACHING_FILE), params, 1, getter_Copies(errorMsg));
+          mComposeBundle->FormatStringFromName(MOZ_UTF16("errorAttachingFile"),
+                                               params, 1,
+                                               getter_Copies(errorMsg));
           mSendReport->SetMessage(nsIMsgSendReport::process_Current, errorMsg.get(), false);
           mSendReport->SetError(nsIMsgSendReport::process_Current,
                                 NS_MSG_ERROR_ATTACHING_FILE,
                                 false);
         }
         return NS_MSG_ERROR_ATTACHING_FILE;
       }
       if (m_be_synchronous_p)
@@ -3512,31 +3514,31 @@ nsMsgComposeAndSend::Fail(nsresult aFail
       }
       mSendReport->SetError(nsIMsgSendReport::process_Current, aFailureCode, false);
       mSendReport->SetMessage(nsIMsgSendReport::process_Current, aErrorMsg, false);
       mSendReport->DisplayReport(prompt, true, true, aResult);
     }
     else
     {
       if (aFailureCode != NS_ERROR_BUT_DONT_SHOW_ALERT)
-        nsMsgDisplayMessageByID(prompt, NS_ERROR_SEND_FAILED);
+        nsMsgDisplayMessageByName(prompt, MOZ_UTF16("sendFailed"));
     }
   }
 
   if (NS_SUCCEEDED(m_status))
     m_status = NS_ERROR_BUT_DONT_SHOW_ALERT;
 
   //Stop any pending process...
   Abort();
 
   return NS_OK;
 }
 
 nsresult
-nsMsgComposeAndSend::FormatStringWithSMTPHostNameByID(nsresult aMsgId, char16_t **aString)
+nsMsgComposeAndSend::FormatStringWithSMTPHostNameByName(const char16_t* aMsgName, char16_t **aString)
 {
   NS_ENSURE_ARG(aString);
 
   nsresult rv;
   nsCOMPtr<nsISmtpService> smtpService(do_GetService(NS_SMTPSERVICE_CONTRACTID, &rv));
   NS_ENSURE_SUCCESS(rv,rv);
 
   // Get the smtp hostname and format the string.
@@ -3545,46 +3547,47 @@ nsMsgComposeAndSend::FormatStringWithSMT
   rv = smtpService->GetServerByIdentity(mUserIdentity, getter_AddRefs(smtpServer));
   if (NS_SUCCEEDED(rv))
     smtpServer->GetHostname(smtpHostName);
 
   nsAutoString hostStr;
   CopyASCIItoUTF16(smtpHostName, hostStr);
   const char16_t *params[] = { hostStr.get() };
   if (NS_SUCCEEDED(rv))
-    mComposeBundle->FormatStringFromID(NS_ERROR_GET_CODE(aMsgId), params, 1, aString);
+    mComposeBundle->FormatStringFromName(aMsgName, params, 1, aString);
   return rv;
 }
 
 void
 nsMsgComposeAndSend::DoDeliveryExitProcessing(nsIURI * aUri, nsresult aExitCode, bool aCheckForMail)
 {
   // If we fail on the news delivery, no sense in going on so just notify
   // the user and exit.
   if (NS_FAILED(aExitCode))
   {
-
+    const char16_t* exitString = errorStringNameForErrorCode(aExitCode);
     nsString eMsg;
     if (aExitCode == NS_ERROR_SMTP_SEND_FAILED_UNKNOWN_SERVER ||
         aExitCode == NS_ERROR_SMTP_SEND_FAILED_UNKNOWN_REASON ||
         aExitCode == NS_ERROR_SMTP_SEND_FAILED_REFUSED ||
         aExitCode == NS_ERROR_SMTP_SEND_FAILED_INTERRUPTED ||
         aExitCode == NS_ERROR_SMTP_SEND_FAILED_TIMEOUT ||
         aExitCode == NS_ERROR_SMTP_PASSWORD_UNDEFINED ||
         aExitCode == NS_ERROR_SMTP_AUTH_FAILURE ||
         aExitCode == NS_ERROR_SMTP_AUTH_GSSAPI ||
         aExitCode == NS_ERROR_SMTP_AUTH_MECH_NOT_SUPPORTED ||
         aExitCode == NS_ERROR_SMTP_AUTH_NOT_SUPPORTED ||
         aExitCode == NS_ERROR_SMTP_AUTH_CHANGE_ENCRYPT_TO_PLAIN_NO_SSL ||
         aExitCode == NS_ERROR_SMTP_AUTH_CHANGE_ENCRYPT_TO_PLAIN_SSL ||
         aExitCode == NS_ERROR_SMTP_AUTH_CHANGE_PLAIN_TO_ENCRYPT ||
-        aExitCode == NS_ERROR_STARTTLS_FAILED_EHLO_STARTTLS)
-      FormatStringWithSMTPHostNameByID(aExitCode, getter_Copies(eMsg));
-    else
-      mComposeBundle->GetStringFromID(NS_ERROR_GET_CODE(aExitCode), getter_Copies(eMsg));
+        aExitCode == NS_ERROR_STARTTLS_FAILED_EHLO_STARTTLS) {
+      FormatStringWithSMTPHostNameByName(exitString, getter_Copies(eMsg));
+    } else {
+      mComposeBundle->GetStringFromName(exitString, getter_Copies(eMsg));
+    }
 
     Fail(aExitCode, eMsg.get(), &aExitCode);
     NotifyListenerOnStopSending(nullptr, aExitCode, nullptr, nullptr);
     return;
   }
 
   if (aCheckForMail)
   {
--- a/mailnews/compose/src/nsMsgSend.h
+++ b/mailnews/compose/src/nsMsgSend.h
@@ -179,17 +179,17 @@ public:
   nsMsgComposeAndSend();
 
 
   // Delivery and completion callback routines...
   NS_IMETHOD  DeliverMessage();
   NS_IMETHOD  DeliverFileAsMail();
   NS_IMETHOD  DeliverFileAsNews();
   void        DoDeliveryExitProcessing(nsIURI * aUrl, nsresult aExitCode, bool aCheckForMail);
-  nsresult    FormatStringWithSMTPHostNameByID(nsresult aMsgId, char16_t **aString);
+  nsresult    FormatStringWithSMTPHostNameByName(const char16_t* aMsgName, char16_t **aString);
 
   nsresult    DoFcc();
   nsresult    StartMessageCopyOperation(nsIFile          *aFileSpec,
                                         nsMsgDeliverMode mode,
                                         const nsCString& dest_uri);
 
 
   nsresult SendToMagicFolder(nsMsgDeliverMode flag);
--- a/mailnews/compose/src/nsMsgSendLater.cpp
+++ b/mailnews/compose/src/nsMsgSendLater.cpp
@@ -243,19 +243,19 @@ nsMsgSendLater::OnStopRequest(nsIRequest
     nsCOMPtr<nsIURI> uri; 
     nsCOMPtr<nsIPrompt> promptObject;
     if (channel)
     {
       channel->GetURI(getter_AddRefs(uri));
       nsCOMPtr<nsISmtpUrl> smtpUrl (do_QueryInterface(uri));
       if (smtpUrl)
         smtpUrl->GetPrompt(getter_AddRefs(promptObject));
-    } 
-    nsMsgDisplayMessageByID(promptObject, NS_ERROR_QUEUED_DELIVERY_FAILED);
-    
+    }
+    nsMsgDisplayMessageByName(promptObject, MOZ_UTF16("errorQueuedDeliveryFailed"));
+
     // Getting the data failed, but we will still keep trying to send the rest...
     rv = StartNextMailFileSend(status);
     if (NS_FAILED(rv))
       EndSendMessages(rv, nullptr, mTotalSendCount, mTotalSentSuccessfully);
   }
 
   return rv;
 }
--- a/mailnews/compose/src/nsMsgSendReport.cpp
+++ b/mailnews/compose/src/nsMsgSendReport.cpp
@@ -281,17 +281,18 @@ NS_IMETHODIMP nsMsgSendReport::DisplayRe
       case NS_ERROR_SEND_FAILED_BUT_NNTP_OK:
       case NS_MSG_FAILED_COPY_OPERATION:
       case NS_MSG_UNABLE_TO_SEND_LATER:
       case NS_MSG_UNABLE_TO_SAVE_DRAFT:
       case NS_MSG_UNABLE_TO_SAVE_TEMPLATE:
         //Ignore, don't need to repeat ourself.
         break;
       default:
-        nsMsgGetMessageByID(currError, currMessage);
+        const char16_t* errorString = errorStringNameForErrorCode(currError);
+        nsMsgGetMessageByName(errorString, currMessage);
         break;
     }
   }
 
   if (mDeliveryMode == nsIMsgCompDeliverMode::Now || mDeliveryMode == nsIMsgCompDeliverMode::SendUnsent)
   {
     // SMTP is taking care of it's own error message and will return NS_ERROR_BUT_DONT_SHOW_ALERT as error code.
     // In that case, we must not show an alert ourself.
@@ -299,47 +300,47 @@ NS_IMETHODIMP nsMsgSendReport::DisplayRe
     {
       mAlreadyDisplayReport = true;
       return NS_OK;
     }
 
     bundle->GetStringFromName(MOZ_UTF16("sendMessageErrorTitle"),
                               getter_Copies(dialogTitle));
 
-    nsresult preStrId = NS_ERROR_SEND_FAILED;
+    const char16_t* preStrName = MOZ_UTF16("sendFailed");
     bool askToGoBackToCompose = false;
     switch (mCurrentProcess)
     {
       case process_BuildMessage :
-        preStrId = NS_ERROR_SEND_FAILED;
+        preStrName = MOZ_UTF16("sendFailed");
         askToGoBackToCompose = false;
         break;
       case process_NNTP :
-        preStrId = NS_ERROR_SEND_FAILED;
+        preStrName = MOZ_UTF16("sendFailed");
         askToGoBackToCompose = false;
         break;
       case process_SMTP :
         bool nntpProceeded;
         mProcessReport[process_NNTP]->GetProceeded(&nntpProceeded);
         if (nntpProceeded)
-          preStrId = NS_ERROR_SEND_FAILED_BUT_NNTP_OK;
+          preStrName = MOZ_UTF16("sendFailedButNntpOk");
         else
-          preStrId = NS_ERROR_SEND_FAILED;
+          preStrName = MOZ_UTF16("sendFailed");
         askToGoBackToCompose = false;
         break;
       case process_Copy:
-        preStrId = NS_MSG_FAILED_COPY_OPERATION;
+        preStrName = MOZ_UTF16("failedCopyOperation");
         askToGoBackToCompose = (mDeliveryMode == nsIMsgCompDeliverMode::Now);
         break;
       case process_FCC:
-        preStrId = NS_MSG_FAILED_COPY_OPERATION;
+        preStrName = MOZ_UTF16("failedCopyOperation");
         askToGoBackToCompose = (mDeliveryMode == nsIMsgCompDeliverMode::Now);
         break;
     }
-    bundle->GetStringFromID(NS_ERROR_GET_CODE(preStrId), getter_Copies(dialogMessage));
+    bundle->GetStringFromName(preStrName, getter_Copies(dialogMessage));
 
     //Do we already have an error message?
     if (!askToGoBackToCompose && currMessage.IsEmpty())
     {
       //we don't have an error description but we can put a generic explanation
       bundle->GetStringFromName(MOZ_UTF16("genericFailureExplanation"),
                                 getter_Copies(currMessage));
     }
@@ -369,46 +370,46 @@ NS_IMETHODIMP nsMsgSendReport::DisplayRe
         *_retval = NS_OK;
     }
     else
       nsMsgDisplayMessageByString(prompt, dialogMessage.get(), dialogTitle.get());
   }
   else
   {
     const char16_t* title;
-    nsresult preStrId;
+    const char16_t* messageName;
 
     switch (mDeliveryMode)
     {
       case nsIMsgCompDeliverMode::Later:
         title = MOZ_UTF16("sendLaterErrorTitle");
-        preStrId = NS_MSG_UNABLE_TO_SEND_LATER;
+        messageName = MOZ_UTF16("unableToSendLater");
         break;
 
       case nsIMsgCompDeliverMode::AutoSaveAsDraft:
       case nsIMsgCompDeliverMode::SaveAsDraft:
         title = MOZ_UTF16("saveDraftErrorTitle");
-        preStrId = NS_MSG_UNABLE_TO_SAVE_DRAFT;
+        messageName = MOZ_UTF16("unableToSaveDraft");
         break;
 
       case nsIMsgCompDeliverMode::SaveAsTemplate:
         title = MOZ_UTF16("saveTemplateErrorTitle");
-        preStrId = NS_MSG_UNABLE_TO_SAVE_TEMPLATE;
+        messageName = MOZ_UTF16("unableToSaveTemplate");
         break;
 
       default:
         /* This should never happen! */
         title = MOZ_UTF16("sendMessageErrorTitle");
-        preStrId = NS_ERROR_SEND_FAILED;
+        messageName = MOZ_UTF16("sendFailed");
         break;
     }
 
     bundle->GetStringFromName(title, getter_Copies(dialogTitle));
-    bundle->GetStringFromID(NS_ERROR_GET_CODE(preStrId),
-                            getter_Copies(dialogMessage));
+    bundle->GetStringFromName(messageName,
+                              getter_Copies(dialogMessage));
 
     //Do we have an error message...
     if (currMessage.IsEmpty())
     {
       //we don't have an error description but we can put a generic explanation
       bundle->GetStringFromName(MOZ_UTF16("genericFailureExplanation"),
                                 getter_Copies(currMessage));
     }
--- a/mailnews/compose/src/nsSmtpProtocol.cpp
+++ b/mailnews/compose/src/nsSmtpProtocol.cpp
@@ -63,63 +63,66 @@ using namespace mozilla::mailnews;
  */
 #define OUTPUT_BUFFER_SIZE (4096*2)
 
 ////////////////////////////////////////////////////////////////////////////////////////////
 // TEMPORARY HARD CODED FUNCTIONS
 ///////////////////////////////////////////////////////////////////////////////////////////
 
 /* based on in NET_ExplainErrorDetails in mkmessag.c */
-nsresult nsExplainErrorDetails(nsISmtpUrl * aSmtpUrl, nsresult code, ...)
+nsresult nsExplainErrorDetails(nsISmtpUrl * aSmtpUrl, nsresult aCode, ...)
 {
   NS_ENSURE_ARG(aSmtpUrl);
 
   va_list args;
 
   nsCOMPtr<nsIPrompt> dialog;
   aSmtpUrl->GetPrompt(getter_AddRefs(dialog));
   NS_ENSURE_TRUE(dialog, NS_ERROR_FAILURE);
 
   char16_t *  msg;
   nsString eMsg;
   nsCOMPtr<nsIStringBundleService> bundleService =
     mozilla::services::GetStringBundleService();
   NS_ENSURE_TRUE(bundleService, NS_ERROR_UNEXPECTED);
   nsCOMPtr<nsIStringBundle> bundle;
-  nsresult rv = bundleService->CreateBundle("chrome://messenger/locale/messengercompose/composeMsgs.properties", getter_AddRefs(bundle));
+  nsresult rv = bundleService->CreateBundle(
+    "chrome://messenger/locale/messengercompose/composeMsgs.properties",
+    getter_AddRefs(bundle));
   NS_ENSURE_SUCCESS(rv, rv);
 
-  va_start (args, code);
+  va_start (args, aCode);
 
-  switch (code)
+  const char16_t* exitString;
+  switch (aCode)
   {
     case NS_ERROR_ILLEGAL_LOCALPART:
-      bundle->GetStringFromName(
-        MOZ_UTF16("errorIllegalLocalPart"),
-        getter_Copies(eMsg));
+      bundle->GetStringFromName(MOZ_UTF16("errorIllegalLocalPart"),
+                                getter_Copies(eMsg));
       msg = nsTextFormatter::vsmprintf(eMsg.get(), args);
       break;
-
-      case NS_ERROR_SMTP_SERVER_ERROR:
-      case NS_ERROR_TCP_READ_ERROR:
-      case NS_ERROR_SMTP_TEMP_SIZE_EXCEEDED:
-      case NS_ERROR_SMTP_PERM_SIZE_EXCEEDED_1:
-      case NS_ERROR_SMTP_PERM_SIZE_EXCEEDED_2:
-      case NS_ERROR_SENDING_FROM_COMMAND:
-      case NS_ERROR_SENDING_RCPT_COMMAND:
-      case NS_ERROR_SENDING_DATA_COMMAND:
-      case NS_ERROR_SENDING_MESSAGE:
-      case NS_ERROR_SMTP_GREETING:
-         bundle->GetStringFromID(NS_ERROR_GET_CODE(code), getter_Copies(eMsg));
-         msg = nsTextFormatter::vsmprintf(eMsg.get(), args);
-         break;
-      default:
-         bundle->GetStringFromID(NS_ERROR_GET_CODE(NS_ERROR_COMMUNICATIONS_ERROR), getter_Copies(eMsg));
-         msg = nsTextFormatter::smprintf(eMsg.get(), code);
-         break;
+    case NS_ERROR_SMTP_SERVER_ERROR:
+    case NS_ERROR_TCP_READ_ERROR:
+    case NS_ERROR_SMTP_TEMP_SIZE_EXCEEDED:
+    case NS_ERROR_SMTP_PERM_SIZE_EXCEEDED_1:
+    case NS_ERROR_SMTP_PERM_SIZE_EXCEEDED_2:
+    case NS_ERROR_SENDING_FROM_COMMAND:
+    case NS_ERROR_SENDING_RCPT_COMMAND:
+    case NS_ERROR_SENDING_DATA_COMMAND:
+    case NS_ERROR_SENDING_MESSAGE:
+    case NS_ERROR_SMTP_GREETING:
+      exitString = errorStringNameForErrorCode(aCode);
+      bundle->GetStringFromName(exitString, getter_Copies(eMsg));
+      msg = nsTextFormatter::vsmprintf(eMsg.get(), args);
+      break;
+    default:
+      NS_WARNING("falling to default error code");
+      bundle->GetStringFromName(MOZ_UTF16("communicationsError"), getter_Copies(eMsg));
+      msg = nsTextFormatter::smprintf(eMsg.get(), aCode);
+      break;
   }
 
   if (msg)
   {
     rv = dialog->Alert(nullptr, msg);
     nsTextFormatter::smprintf_free(msg);
   }
 
@@ -775,17 +778,17 @@ nsresult nsSmtpProtocol::SendEhloRespons
 
     if (TestFlag(SMTP_EHLO_SIZE_ENABLED) &&
        m_sizelimit > 0 && (int32_t)m_totalMessageSize > m_sizelimit)
     {
 #ifdef DEBUG
         nsresult rv =
 #endif
         nsExplainErrorDetails(m_runningURL,
-                      NS_ERROR_SMTP_PERM_SIZE_EXCEEDED_1, m_sizelimit);
+                              NS_ERROR_SMTP_PERM_SIZE_EXCEEDED_1, m_sizelimit);
         NS_ASSERTION(NS_SUCCEEDED(rv), "failed to explain SMTP error");
 
         m_urlErrorState = NS_ERROR_BUT_DONT_SHOW_ALERT;
         return(NS_ERROR_SENDING_FROM_COMMAND);
     }
 
     m_nextState = SMTP_AUTH_PROCESS_STATE;
     return status;
@@ -1592,17 +1595,19 @@ nsresult nsSmtpProtocol::SendData(const 
 
 nsresult nsSmtpProtocol::SendDataResponse()
 {
   nsresult status = NS_OK;
   char *command = nullptr;
 
   if (m_responseCode != 354)
   {
-    nsresult rv = nsExplainErrorDetails(m_runningURL, NS_ERROR_SENDING_DATA_COMMAND, m_responseText.get());
+    nsresult rv = nsExplainErrorDetails(m_runningURL,
+                                        NS_ERROR_SENDING_DATA_COMMAND,
+                                        m_responseText.get());
     NS_ASSERTION(NS_SUCCEEDED(rv), "failed to explain SMTP error");
 
     m_urlErrorState = NS_ERROR_BUT_DONT_SHOW_ALERT;
     return(NS_ERROR_SENDING_DATA_COMMAND);
   }
 
   PR_FREEIF(command);
 
@@ -1663,17 +1668,19 @@ void nsSmtpProtocol::SendPostData()
 }
 
 
 
 nsresult nsSmtpProtocol::SendMessageResponse()
 {
   if((m_responseCode/10 != 25))
   {
-    nsresult rv = nsExplainErrorDetails(m_runningURL, NS_ERROR_SENDING_MESSAGE, m_responseText.get());
+    nsresult rv = nsExplainErrorDetails(m_runningURL,
+                                        NS_ERROR_SENDING_MESSAGE,
+                                        m_responseText.get());
     NS_ASSERTION(NS_SUCCEEDED(rv), "failed to explain SMTP error");
 
     m_urlErrorState = NS_ERROR_BUT_DONT_SHOW_ALERT;
     return(NS_ERROR_SENDING_MESSAGE);
   }
 
   UpdateStatus(MOZ_UTF16("smtpMailSent"));
 
@@ -1783,18 +1790,18 @@ nsresult nsSmtpProtocol::LoadUrl(nsIURI 
         {
           // Throw an error, including the broken address
           m_nextState = SMTP_ERROR_DONE;
           ClearFlag(SMTP_PAUSE_FOR_READ);
           // Unfortunately, nsExplainErrorDetails will show the error above
           // the mailnews main window, because we don't necessarily get
           // passed down a compose window - we might be sending in the
           // background!
-          rv = nsExplainErrorDetails(m_runningURL, NS_ERROR_ILLEGAL_LOCALPART,
-            start);
+          rv = nsExplainErrorDetails(m_runningURL,
+                                     NS_ERROR_ILLEGAL_LOCALPART, start);
           NS_ASSERTION(NS_SUCCEEDED(rv), "failed to explain illegal localpart");
           m_urlErrorState = NS_ERROR_BUT_DONT_SHOW_ALERT;
           return NS_ERROR_BUT_DONT_SHOW_ALERT;
         }
       }
     }
 
     // final cleanup
--- a/mailnews/extensions/mdn/src/nsMsgMdnGenerator.cpp
+++ b/mailnews/extensions/mdn/src/nsMsgMdnGenerator.cpp
@@ -1071,67 +1071,71 @@ NS_IMETHODIMP nsMsgMdnGenerator::OnStopR
 
     DEBUG_MDN("nsMsgMdnGenerator::OnStopRunningUrl");
     if (m_file)
       m_file->Remove(false);
 
     if (NS_SUCCEEDED(aExitCode))
       return NS_OK;
 
+    const char16_t* exitString;
+
     switch (aExitCode)
-    {    
+    {
       case NS_ERROR_UNKNOWN_HOST:
       case NS_ERROR_UNKNOWN_PROXY_HOST:
-        aExitCode = NS_ERROR_SMTP_SEND_FAILED_UNKNOWN_SERVER;
+        exitString = MOZ_UTF16("smtpSendFailedUnknownServer");
         break;
       case NS_ERROR_CONNECTION_REFUSED:
-      case NS_ERROR_PROXY_CONNECTION_REFUSED: 
-        aExitCode = NS_ERROR_SMTP_SEND_FAILED_REFUSED;
+      case NS_ERROR_PROXY_CONNECTION_REFUSED:
+        exitString = MOZ_UTF16("smtpSendRefused");
         break;
       case NS_ERROR_NET_INTERRUPT:
-        aExitCode = NS_ERROR_SMTP_SEND_FAILED_INTERRUPTED;
-        break; 
+        exitString = MOZ_UTF16("smtpSendInterrupted");
+        break;
       case NS_ERROR_NET_TIMEOUT:
       case NS_ERROR_NET_RESET:
-        aExitCode = NS_ERROR_SMTP_SEND_FAILED_TIMEOUT;
+        exitString = MOZ_UTF16("smtpSendTimeout");
         break;
       case NS_ERROR_SMTP_PASSWORD_UNDEFINED:
-        // nothing to do, just keep the code
+        exitString = MOZ_UTF16("smtpPasswordUndefined");
         break;
       default:
         if (aExitCode != NS_ERROR_ABORT && !NS_IS_MSG_ERROR(aExitCode))
-          aExitCode = NS_ERROR_SMTP_SEND_FAILED_UNKNOWN_REASON;
+          exitString = MOZ_UTF16("smtpSendFailedUnknownReason");
       break;
-    }    
+    }
 
     nsCOMPtr<nsISmtpService> smtpService(do_GetService(NS_SMTPSERVICE_CONTRACTID, &rv));
     NS_ENSURE_SUCCESS(rv,rv);
 
     // Get the smtp hostname and format the string.
     nsCString smtpHostName;
     nsCOMPtr<nsISmtpServer> smtpServer;
     rv = smtpService->GetServerByIdentity(m_identity, getter_AddRefs(smtpServer));
-    if (NS_SUCCEEDED(rv)) 
+    if (NS_SUCCEEDED(rv))
       smtpServer->GetHostname(smtpHostName);
-     
+
     nsAutoString hostStr;
     CopyASCIItoUTF16(smtpHostName, hostStr);
     const char16_t *params[] = { hostStr.get() };
 
     nsCOMPtr<nsIStringBundle> bundle;
     nsCOMPtr<nsIStringBundleService> bundleService =
       mozilla::services::GetStringBundleService();
     NS_ENSURE_TRUE(bundleService, NS_ERROR_UNEXPECTED);
 
-    rv = bundleService->CreateBundle("chrome://messenger/locale/messengercompose/composeMsgs.properties", getter_AddRefs(bundle));
+    rv = bundleService->CreateBundle(
+      "chrome://messenger/locale/messengercompose/composeMsgs.properties",
+      getter_AddRefs(bundle));
     NS_ENSURE_SUCCESS(rv, rv);
 
     nsString failed_msg, dialogTitle;
 
-    bundle->FormatStringFromID(NS_ERROR_GET_CODE(aExitCode), params, 1, getter_Copies(failed_msg));
+    bundle->FormatStringFromName(exitString, params, 1, getter_Copies(failed_msg));
     bundle->GetStringFromName(MOZ_UTF16("sendMessageErrorTitle"), getter_Copies(dialogTitle));
 
     nsCOMPtr<nsIPrompt> dialog;
     rv = m_window->GetPromptDialog(getter_AddRefs(dialog));
     if (NS_SUCCEEDED(rv))
       dialog->Alert(dialogTitle.get(),failed_msg.get());
 
     return NS_OK;
--- a/suite/locales/en-US/chrome/mailnews/compose/composeMsgs.properties
+++ b/suite/locales/en-US/chrome/mailnews/compose/composeMsgs.properties
@@ -4,304 +4,241 @@
 
 #
 # The following are used by the compose back end
 #
 ## LOCALIZATION NOTE (unableToOpenFile, unableToOpenTmpFile):
 ## %S will be replaced with the name of file that could not be opened
 unableToOpenFile=Unable to open the file %S.
 unableToOpenTmpFile=Unable to open the temporary file %S. Check your 'Temporary Directory' setting.
-
-## @name NS_MSG_UNABLE_TO_SAVE_TEMPLATE
-12502=Unable to save your message as template.
-
-## @name NS_MSG_UNABLE_TO_SAVE_DRAFT
-12503=Unable to save your message as draft.
-
-## @name NS_MSG_COULDNT_OPEN_FCC_FOLDER
-12506=Couldn't open Sent mail folder. Please verify that your Mail preferences are correct.
-
-## @name NS_MSG_NO_SENDER
-12510=No sender was specified. Please fill in your email address in the Mail & Newsgroups account settings.
-
-## @name NS_MSG_NO_RECIPIENTS
-12511=No recipients were specified. Please enter a recipient or newsgroup in the addressing area.
+unableToSaveTemplate=Unable to save your message as a template.
+unableToSaveDraft=Unable to save your message as a draft.
+couldntOpenFccFolder=Couldn't open the Sent mail folder. Please verify that your Mail preferences are correct.
+noSender=No sender was specified. Please add your email address in the Mail & Newsgroups account settings.
+noRecipients=No recipients were specified. Please enter a recipient or newsgroup in the addressing area.
+errorWritingFile=Error writing temporary file.
 
-## @name NS_MSG_ERROR_WRITING_FILE
-12512=Error writing temporary file.
-
-## @name NS_ERROR_SENDING_FROM_COMMAND
-## LOCALIZATION NOTE (12514): argument %s is SMTP server response
-12514=An error occurred while sending mail. The mail server responded:  %s.  Please verify that your email address is correct in your Mail preferences and try again.
+## LOCALIZATION NOTE (errorSendingFromCommand): argument %s is the Outgoing server (SMTP) response
+errorSendingFromCommand=An error occurred while sending mail. The mail server responded:  %s.  Please verify that your email address is correct in your Mail preferences and try again.
 
-## @name NS_ERROR_SENDING_DATA_COMMAND
-## LOCALIZATION NOTE (12516): argument %s is SMTP server response
-12516=An (SMTP) error occurred while sending mail. The server responded:  %s.
-
-## @name NS_ERROR_SENDING_MESSAGE
-## LOCALIZATION NOTE (12517): argument %s is SMTP server response
-12517=An error occurred while sending mail. The mail server responded:  %s. Please check the message and try again.
-
-## @name NS_ERROR_POST_FAILED
-12518=The message could not be posted because connecting to the news server failed. The server may be unavailable or is refusing connections. Please verify that your news server settings are correct and try again, or else contact your network administrator.
-
-## @name NS_ERROR_QUEUED_DELIVERY_FAILED
-12519=An error occurred delivering unsent messages.
+## LOCALIZATION NOTE (errorSendingDataCommand): argument %s is the Outgoing server (SMTP) response
+errorSendingDataCommand=An Outgoing server (SMTP) error occurred while sending mail. The server responded:  %s.
 
-## @name NS_ERROR_SEND_FAILED
-12520=Sending of message failed.
-
-## @name NS_ERROR_SMTP_SERVER_ERROR
-## LOCALIZATION NOTE (12524): argument %s is SMTP server response
-12524=An error occurred sending mail: SMTP server error. The server responded:  %s\n Contact your mail administrator for assistance.
-
-## @name NS_MSG_UNABLE_TO_SEND_LATER
-12525=Unable to save your message in order to send it later.
+## LOCALIZATION NOTE (errorSendingMessage): argument %s is the Outgoing server (SMTP) response
+errorSendingMessage=An error occurred while sending mail. The mail server responded:  %s. Please check the message and try again.
+postFailed=The message could not be posted because connecting to the news server failed. The server may be unavailable or is refusing connections. Please verify that your news server settings are correct and try again.
+errorQueuedDeliveryFailed=An error occurred while delivering unsent messages.
+sendFailed=Sending of the message failed.
 
-## @name NS_ERROR_COMMUNICATIONS_ERROR
-## LOCALIZATION NOTE (12526): argument %d is error code
-12526=A communications error occurred: %d.  Please try again.
-
-## @name NS_ERROR_BUT_DONT_SHOW_ALERT
-12527=THIS IS JUST A PLACEHOLDER.  YOU SHOULD NEVER SEE THIS STRING.
-
-## @name NS_ERROR_TCP_READ_ERROR
-12528=A network error occurred while receiving data.  (Network Error: %s)  Try connecting again.
+## LOCALIZATION NOTE (smtpServerError): argument %s is the Outgoing server (SMTP) response
+smtpServerError=An error occurred while sending mail: Outgoing server (SMTP) error. The server responded:  %s\n.
+unableToSendLater=Sorry, we were unable to save your message for sending later.
 
-## @name NS_ERROR_COULD_NOT_GET_USERS_MAIL_ADDRESS
-12529=An error occurred sending mail:  the return mail address was invalid.  Please verify that your email address is correct in your Mail preferences and try again.
-
-## @name NS_ERROR_MIME_MPART_ATTACHMENT_ERROR
-12531=Attachment error.
-
-## @name NS_MSG_FAILED_COPY_OPERATION
-12532=The message was sent successfully, but could not be copied to your Sent folder.
+## LOCALIZATION NOTE (communicationsError): argument %d is the error code
+communicationsError=A communications error occurred: %d.  Please try again.
+dontShowAlert=THIS IS JUST A PLACEHOLDER.  YOU SHOULD NEVER SEE THIS STRING.
 
-## @name NS_ERROR_NNTP_NO_CROSS_POSTING
-12554=You can only send a message to one news server at a time.
-
-## @name NS_MSG_CANCELLING
-12555=Cancelling…
-
-## @name NS_ERROR_SEND_FAILED_BUT_NNTP_OK
-12560=Your message has been posted to the newsgroup but has not been sent to other recipient.
-
-## @name NS_MSG_ERROR_READING_FILE
-12563=Error reading file.
-
+## LOCALIZATION NOTE (tcpReadError): argument %s is the network error
+tcpReadError=A network error occurred while receiving data.  (Network Error: %s)  Try connecting again.
+couldNotGetUsersMailAddress=An error occurred while sending mail:  the return mail address was invalid.  Please verify that your email address is correct in your Mail preferences and try again.
+mimeMpartAttachmentError=Attachment error.
+failedCopyOperation=The message was sent successfully, but could not be copied to your Sent folder.
+nntpNoCrossPosting=You can only send a message to one news server at a time.
+msgCancelling=Cancelling…
+sendFailedButNntpOk=Your message has been posted to the newsgroup but has not been sent to the other recipient.
+errorReadingFile=Error reading file.
 followupToSenderMessage=The author of this message has requested that responses be sent only to the author. If you also want to reply to the newsgroup, add a new row to the addressing area, choose Newsgroup from the recipients list, and enter the name of the newsgroup.
 
-## @name NS_MSG_ERROR_ATTACHING_FILE
-## LOCALIZATION NOTE (12570): argument %S is file name/URI of object to be attached
-12570=There was an error attaching %S. Please check if you have access to the file.
+## LOCALIZATION NOTE (errorAttachingFile): argument %S is the file name/URI of object to be attached
+errorAttachingFile=There was an error attaching %S. Please check that you have access to the file.
 
-## @name NS_ERROR_SMTP_GREETING
-## LOCALIZATION NOTE (12572): argument %s is SMTP server greeting
-12572=An error occurred sending mail: The mail server sent an incorrect greeting:  %s.
+## LOCALIZATION NOTE (incorrectSmtpGreeting): argument %s is the Outgoing server (SMTP) greeting
+incorrectSmtpGreeting=An error occurred while sending mail: The mail server sent an incorrect greeting:  %s.
 
-## @name NS_ERROR_SENDING_RCPT_COMMAND
-## LOCALIZATION NOTE (12575): argument %1$s is SMTP server response, argument %2$s is intended message recipient.
-12575=An error occurred while sending mail. The mail server responded:  %1$s. Please check the message recipient %2$s and try again.
+## LOCALIZATION NOTE (errorSendingRcptCommand): argument %1$S is the Outgoing server (SMTP) response, argument %2$S is the intended message recipient.
+errorSendingRcptCommand=An error occurred while sending mail. The mail server responded:  \n%1$S.\n Please check the message recipient "%2$S" and try again.
 
-## @name NS_ERROR_STARTTLS_FAILED_EHLO_STARTTLS
-## LOCALIZATION NOTE (12582): argument %s is SMTP server
-12582=An error occurred sending mail: Unable to establish a secure link with SMTP server %S using STARTTLS since it doesn't advertise that feature. Switch off STARTTLS for that server or contact your service provider.
+## LOCALIZATION NOTE (startTlsFailed): argument %S is the Outgoing server (SMTP)
+startTlsFailed=An error occurred while sending mail: Unable to establish a secure link with Outgoing server (SMTP) %S using STARTTLS since it doesn't advertise that feature. Switch off STARTTLS for this server or contact your service provider.
 
-## @name NS_ERROR_SMTP_PASSWORD_UNDEFINED
-## LOCALIZATION NOTE (12584): argument %S is SMTP account
-12584=An error occurred sending mail: Could not get password for %S. The message was not sent.
+## LOCALIZATION NOTE (smtpPasswordUndefined): argument %S is the Outgoing server (SMTP) account
+smtpPasswordUndefined=An error occurred while sending mail: Could not get password for %S. The message was not sent.
 
-## @name NS_ERROR_SMTP_TEMP_SIZE_EXCEEDED
-## LOCALIZATION NOTE (12586): argument %s is SMTP server response
-12586=The size of the message you are trying to send exceeds a temporary size limit of the server. The message was not sent; try to reduce the message size or wait some time and try again. The server responded:  %s.
+## LOCALIZATION NOTE (smtpTempSizeExceeded): argument %s is the Outgoing server (SMTP) response
+smtpTempSizeExceeded=The size of the message you are trying to send exceeds a temporary size limit of the server. The message was not sent; try to reduce the message size or wait some time and try again. The server responded:  %s.
 
-## @name NS_ERROR_SMTP_PERM_SIZE_EXCEEDED_1
-## LOCALIZATION NOTE (12587): argument %d is SMTP server size limit
-12587=The size of the message you are trying to send exceeds the global size limit (%d bytes) of the server. The message was not sent; reduce the message size and try again.
+## LOCALIZATION NOTE (smtpPermSizeExceeded1): argument %d is the Outgoing server (SMTP) size limit
+smtpPermSizeExceeded1=The size of the message you are trying to send exceeds the global size limit (%d bytes) of the server. The message was not sent; reduce the message size and try again.
 
-## @name NS_ERROR_SMTP_PERM_SIZE_EXCEEDED_2
-## LOCALIZATION NOTE (12588): argument %s is SMTP server response
-12588=The size of the message you are trying to send exceeds the global size limit of the server. The message was not sent; reduce the message size and try again. The server responded:  %s.
+## LOCALIZATION NOTE (smtpPermSizeExceeded2): argument %s is the server's response
+smtpPermSizeExceeded2=The size of the message you are trying to send exceeds the global size limit of the server. The message was not sent; reduce the message size and try again. The server responded:  %s.
 
-## @name NS_ERROR_SMTP_SEND_FAILED_UNKNOWN_SERVER
-## LOCALIZATION NOTE (12589): argument %S is SMTP server
-12589=An error occurred sending mail: SMTP server %S is unknown. The server may be incorrectly configured. Please verify that your SMTP server settings are correct and try again.
+## LOCALIZATION NOTE (smtpSendFailedUnknownServer): argument %S is the Outgoing server (SMTP)
+smtpSendFailedUnknownServer=An error occurred while sending mail: Outgoing server (SMTP) %S is unknown. The server may be incorrectly configured. Please verify that your Outgoing server (SMTP) settings are correct and try again.
 
-## @name NS_ERROR_SMTP_SEND_FAILED_REFUSED
-## LOCALIZATION NOTE (12590): argument %S is SMTP server
-12590=The message could not be sent because connecting to SMTP server %S failed. The server may be unavailable or is refusing SMTP connections. Please verify that your SMTP server settings are correct and try again, or contact the server administrator.
+## LOCALIZATION NOTE (smtpSendRefused): argument %S is the Outgoing server (SMTP)
+smtpSendRefused=The message could not be sent because connecting to Outgoing server (SMTP) %S failed. The server may be unavailable or is refusing Outgoing server (SMTP) connections. Please verify that your Outgoing server (SMTP) settings are correct and try again.
 
-## @name NS_ERROR_SMTP_SEND_FAILED_INTERRUPTED
-## LOCALIZATION NOTE (12591): argument %S is SMTP server
-12591=The message could not be sent because the connection to SMTP server %S was lost in the middle of the transaction. Try again or contact your network administrator.
+## LOCALIZATION NOTE (smtpSendInterrupted): argument %S is the Outgoing server (SMTP)
+smtpSendInterrupted=The message could not be sent because the connection to Outgoing server (SMTP) %S was lost in the middle of the transaction. Try again.
 
-## @name NS_ERROR_SMTP_SEND_FAILED_TIMEOUT
-## LOCALIZATION NOTE (12592): argument %S is SMTP server
-12592=The message could not be sent because the connection to SMTP server %S timed out. Try again or contact your network administrator.
+## LOCALIZATION NOTE (smtpSendTimeout): argument %S is the Outgoing server (SMTP)
+smtpSendTimeout=The message could not be sent because the connection to Outgoing server (SMTP) %S timed out. Try again.
 
-## @name NS_ERROR_SMTP_SEND_FAILED_UNKNOWN_REASON
-## LOCALIZATION NOTE (12593): argument %S is SMTP server
-12593=The message could not be sent using SMTP server %S for an unknown reason. Please verify that your SMTP server settings are correct and try again, or contact your network administrator.
+## LOCALIZATION NOTE (smtpSendFailedUnknownReason): argument %S is the Outgoing server (SMTP)
+smtpSendFailedUnknownReason=The message could not be sent using Outgoing server (SMTP) %S for an unknown reason. Please verify that your Outgoing server (SMTP) settings are correct and try again.
 
-## @name NS_ERROR_SMTP_AUTH_CHANGE_ENCRYPT_TO_PLAIN_NO_SSL
-# LOCALIZATION NOTE (12594): $S is server hostname
-12594=The SMTP server %S does not seem to support encrypted passwords. If you just set up the account, please try changing to 'Password, transmitted insecurely' as the 'Authentication method' in the 'Account Settings | Server settings'. If it used to work and now suddenly fails, this is a common scenario how someone could steal your password.
+# LOCALIZATION NOTE (smtpAuthChangeEncryptToPlainNoSsl): %S is the server hostname
+smtpAuthChangeEncryptToPlainNoSsl=The Outgoing server (SMTP) %S does not seem to support encrypted passwords. If you just set up the account, please try changing the 'Authentication method' in 'Account Settings | Server settings' to 'Password, transmitted insecurely'. If it used to work but now doesn't, you may be susceptible to getting your password stolen.
 
-## @name NS_ERROR_SMTP_AUTH_CHANGE_ENCRYPT_TO_PLAIN_SSL
-# LOCALIZATION NOTE (12595): $S is server hostname
-12595=The SMTP server %S does not seem to support encrypted passwords. If you just set up this account, please try changing to 'Normal password' as the 'Authentication method' in the 'Account Settings | Server settings'. If it used to work and now suddenly fails, please contact your email administrator or provider.
+# LOCALIZATION NOTE (smtpAuthChangeEncryptToPlainSsl): %S is the server hostname
+smtpAuthChangeEncryptToPlainSsl=The Outgoing server (SMTP) %S does not seem to support encrypted passwords. If you just set up the account, please try changing the 'Authentication method' in 'Account Settings | Server settings' to 'Normal password'.
 
-## @name NS_ERROR_SMTP_AUTH_CHANGE_PLAIN_TO_ENCRYPT
-# LOCALIZATION NOTE (12596): $S is server hostname
-12596=The SMTP server %S does not allow plaintext passwords. Please try changing to 'Encrypted password' as the 'Authentication method' in the 'Account Settings | Server settings'.
+# LOCALIZATION NOTE (smtpAuthChangePlainToEncrypt): %S is the server hostname
+smtpAuthChangePlainToEncrypt=The Outgoing server (SMTP) %S does not allow plaintext passwords. Please try changing the 'Authentication method' in 'Account Settings | Server settings' to 'Encrypted password'.
 
-## @name NS_ERROR_SMTP_AUTH_FAILURE
-# LOCALIZATION NOTE (12597): $S is server hostname
-12597=Unable to authenticate to SMTP server %S. Please check the password, and verify the 'Authentication method' in 'Account Settings | Outgoing server (SMTP)'.
+# LOCALIZATION NOTE (smtpAuthFailure): %S is the server hostname
+smtpAuthFailure=Unable to authenticate to Outgoing server (SMTP) %S. Please check the password, and verify the 'Authentication method' in 'Account Settings | Outgoing server (SMTP)'.
 
-## @name NS_ERROR_SMTP_AUTH_GSSAPI
-# LOCALIZATION NOTE (12598): $S is server hostname
-12598=The Kerberos/GSSAPI ticket was not accepted by the SMTP server %S. Please check that you are logged in to the Kerberos/GSSAPI realm.
+# LOCALIZATION NOTE (smtpAuthGssapi): %S is the server hostname
+smtpAuthGssapi=The Kerberos/GSSAPI ticket was not accepted by the Outgoing server (SMTP) %S. Please check that you are logged in to the Kerberos/GSSAPI realm.
 
-## @name NS_ERROR_SMTP_AUTH_MECH_NOT_SUPPORTED
-# LOCALIZATION NOTE (12599): $S is server hostname
-12599=The SMTP server %S does not support the selected authentication method. Please change the 'Authentication method' in the 'Account Settings | Outgoing Server (SMTP)'.
+# LOCALIZATION NOTE (smtpAuthMechNotSupported): %S is the server hostname
+smtpAuthMechNotSupported=The Outgoing server (SMTP) %S does not support the selected authentication method. Please change the 'Authentication method' in 'Account Settings | Outgoing server (SMTP)'.
 
-## @name NS_ERROR_SMTP_AUTH_NOT_SUPPORTED
-# LOCALIZATION NOTE (12600): $S is server hostname
-12600=Unable to authenticate to SMTP server %S. It does not support authentication (SMTP-AUTH) but you have chosen to use authentication. Please change the 'Authentication method' to 'None' in the 'Account Settings | Outgoing Server (SMTP)' or contact your email service provider for instructions.
+# LOCALIZATION NOTE (smtpAuthNotSupported): %S is the server hostname
+smtpAuthNotSupported=Unable to authenticate to Outgoing server (SMTP) %S. It does not support authentication (Outgoing server (SMTP)-AUTH) but you have chosen to use authentication. Please change the 'Authentication method' to 'None' in 'Account Settings | Outgoing server (SMTP)' or contact your email service provider for instructions.
 
-## @name NS_ERROR_ILLEGAL_LOCALPART
 # LOCALIZATION NOTE (errorIllegalLocalPart): %s is an email address with an illegal localpart
 errorIllegalLocalPart=There are non-ASCII characters in the local part of the recipient address %s. This is not yet supported. Please change this address and try again.
 
-## Strings use for the save message dialog shown when the user close a message compose window
+## Strings used for the save message dialog shown when the user closes a message compose window
 saveDlogTitle=Save Message
-## LOCALIZATION NOTE (SaveDlogMessages): %1$S is folder name
+## LOCALIZATION NOTE (SaveDlogMessages): %1$S is the folder name
 saveDlogMessages=Message has not been sent. Do you want to save the message in your drafts folder (%1$S)?
 
 ## generics string
 defaultSubject=(no subject)
 chooseFileToAttach=Attach File(s)
 
 ##
 windowTitlePrefix=Compose:
 
-## String used by the dialog that ask the user to enter a subject
+## String used by the dialog that asks the user to enter a subject
 sendMsgTitle=Send Message
 subjectDlogMessage=You did not specify a subject for this message. If you would like to provide one, please type it now.
 
 ## String used by the dialog that informs the user about the newsgroup recipient
 recipientDlogMessage=This account only supports email recipients. Continuing will ignore newsgroups.
 
-#String used by the alert that tells the user an e-mail address is invalid
-## LOCALIZATION NOTE (addressInvalid): $S is email address
+## String used by the alert that tells the user an e-mail address is invalid
+## LOCALIZATION NOTE (addressInvalid): %1$S is the email address
 addressInvalid=%1$S is not a valid e-mail address because it is not of the form user@host. You must correct it before sending the e-mail.
-
 genericFailureExplanation=Please verify that your Mail & Newsgroups account settings are correct and try again.
 
 ## LOCALIZATION NOTE (undisclosedRecipients): this string must use only US_ASCII characters
 undisclosedRecipients=undisclosed-recipients
 
-## String used for attachment pretty name, when attachment is a message
+## String used for attachment pretty name, when the attachment is a message
 messageAttachmentSafeName=Attached Message
-## String used for attachment pretty name, when attachment is message part
+## String used for attachment pretty name, when the attachment is a message part
 partAttachmentSafeName=Attached Message Part
 
 ## String used by the Initialization Error dialog
 initErrorDlogTitle=Message Compose
 initErrorDlgMessage=An error occurred while creating a message compose window. Please try again.
 
-## String used if a file to attach does not exist when passed as
+## String used if the file to attach does not exist when passed as
 ## a command line argument
 errorFileAttachTitle=File Attach
+
 ## LOCALIZATION NOTE (errorFileAttachMessage): %1$S will be replaced by the non-existent file name. Do not translate
 errorFileAttachMessage=The file %1$S does not exist so could not be attached to the message.
 
-## Strings used by Save as Draft/Template dialog
+## Strings used by the Save as Draft/Template dialog
 SaveDialogTitle=Save Message
-## LOCALIZATION NOTE (SaveDialogMsg): %1$S is folder name, %2$S is host name
+
+## LOCALIZATION NOTE (SaveDialogMsg): %1$S is the folder name, %2$S is the host name
 SaveDialogMsg=Your message has been saved to the folder %1$S under %2$S.
 CheckMsg=Do not show me this dialog box again.
 
-## Strings used by prompt when Quitting while in progress
+## Strings used by the prompt when Quitting while in progress
 quitComposeWindowTitle=Sending Message
+
 ## LOCALIZATION NOTE (quitComposeWindowMessage): don't translate \n
 quitComposeWindowMessage2=%1$S is currently in the process of sending a message.\nWould you like to wait until the message has been sent before quitting or quit now?
 quitComposeWindowQuitButtonLabel2=&Quit
 quitComposeWindowWaitButtonLabel2=&Wait
 
-## Strings used by prompt for Ctrl-Enter check before sending message
+## Strings used by the prompt for Ctrl-Enter check before sending message
 sendMessageCheckWindowTitle=Send Message
 sendMessageCheckLabel=Are you sure you are ready to send this message?
 sendMessageCheckSendButtonLabel=Send
-
 assemblingMessageDone=Assembling message…Done
 assemblingMessage=Assembling message…
-
 smtpDeliveringMail=Delivering mail…
 smtpMailSent=Mail sent successfully
+assemblingMailInformation=Assembling mail information…
 
-assemblingMailInformation=Assembling mail information…
-## LOCALIZATION NOTE (gatheringAttachment): argument %S is file name/URI of attachment
+## LOCALIZATION NOTE (gatheringAttachment): argument %S is the file name/URI of attachment
 gatheringAttachment=Attaching %S…
 creatingMailMessage=Creating mail message…
 
-## LOCALIZATION NOTE (copyMessageStart): argument %S is folder name
+## LOCALIZATION NOTE (copyMessageStart): argument %S is the folder name
 copyMessageStart=Copying message to %S folder…
 copyMessageComplete=Copy complete.
 copyMessageFailed=Copy failed.
-
 filterMessageComplete=Filter complete.
 filterMessageFailed=Filter failed.
 
 ## LOCALIZATION NOTE (largeMessageSendWarning):
 ## %S is the message size in user-friendly notation. Do not translate.
 largeMessageSendWarning=Warning! You are about to send a message of size %S which may exceed the allowed limit on the mail server. Are you sure that you want to do this?
-
 sendingMessage=Sending message…
 sendMessageErrorTitle=Send Message Error
 postingMessage=Posting message…
-
 sendLaterErrorTitle=Send Later Error
 saveDraftErrorTitle=Save Draft Error
 saveTemplateErrorTitle=Save Template Error
 
-## LOCALIZATION NOTE (failureOnObjectEmbeddingWhileSaving): argument %.200S is file name/URI of object to be embedded
+## LOCALIZATION NOTE (failureOnObjectEmbeddingWhileSaving): argument %.200S is the file name/URI of object to be embedded
 failureOnObjectEmbeddingWhileSaving=There was a problem including the file %.200S in the message. Would you like to continue saving the message without this file?
-## LOCALIZATION NOTE (failureOnObjectEmbeddingWhileSending): argument %.200S is file name/URI of object to be embedded
+
+## LOCALIZATION NOTE (failureOnObjectEmbeddingWhileSending): argument %.200S is the file name/URI of object to be embedded
 failureOnObjectEmbeddingWhileSending=There was a problem including the file %.200S in the message. Would you like to continue sending the message without this file?
 returnToComposeWindowQuestion=Would you like to return to the compose window?
 
 ## reply header in composeMsg
-## LOCALIZATION NOTE (mailnews.reply_header_authorwrotesingle): #1 is author (name of person replying to)
+## LOCALIZATION NOTE (mailnews.reply_header_authorwrotesingle): #1 is the author (name of person replying to)
 mailnews.reply_header_authorwrotesingle=#1 wrote:
-## LOCALIZATION NOTE (mailnews.reply_header_ondateauthorwrote): #1 is author, #2 is date, #3 is time
+
+## LOCALIZATION NOTE (mailnews.reply_header_ondateauthorwrote): #1 is the author, #2 is the date, #3 is the time
 mailnews.reply_header_ondateauthorwrote=On #2 #3, #1 wrote:
-## LOCALIZATION NOTE (mailnews.reply_header_authorwroteondate): #1 is author, #2 is date, #3 is time
+
+## LOCALIZATION NOTE (mailnews.reply_header_authorwroteondate): #1 is the author, #2 is the date, #3 is the time
 mailnews.reply_header_authorwroteondate=#1 wrote on #2 #3:
 
 ## reply header in composeMsg
 ## user specified
 mailnews.reply_header_originalmessage=-------- Original Message --------
 
 ## forwarded header in composeMsg
 ## user specified
 mailnews.forward_header_originalmessage=-------- Forwarded Message --------
 
 ## Strings used by the rename attachment dialog
 renameAttachmentTitle=Rename Attachment
 renameAttachmentMessage=New attachment name:
 
 ## LOCALIZATION NOTE(smtpEnterPasswordPrompt): Do not translate the
-## word $S. Place the word $S where the host name should appear.
+## word %S. Place the word %S where the host name should appear.
 smtpEnterPasswordPrompt=Enter your password for %S:
+
 ## LOCALIZATION NOTE(smtpEnterPasswordPromptWithUsername): Do not translate the
 ## words %1$S and %2$S. Place the word %1$S where the host name should appear,
 ## and %2$S where the user name should appear.
 smtpEnterPasswordPromptWithUsername=Enter your password for %2$S on %1$S:
-smtpEnterPasswordPromptTitle=SMTP Server Password Required
+smtpEnterPasswordPromptTitle=Outgoing server (SMTP) Server Password Required
 
 ## LOCALIZATION NOTE(errorSavingMsg): Do not translate the word %S. It
 ## will be replaced with the name of the folder the message is being saved to.
 errorSavingMsg=There was an error saving the message to %S. Retry?
-
 errorFilteringMsg=Your message has been sent and saved, but there was an error while running message filters on it.