Revision control

Copy as Markdown

Other Tools

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
# Any copyright is dedicated to the Public Domain.
from fluent.migratetb.helpers import VARIABLE_REFERENCE, transforms_from
from fluent.syntax import ast as FTL
def migrate(ctx):
"""Bug 2069617 - Migrate message sending strings to Fluent, part {index}."""
source = "mail/chrome/messenger/messengercompose/composeMsgs.properties"
target = reference = "mail/messenger/messageSend.ftl"
filename_replacements = {"%1$S": VARIABLE_REFERENCE("filename")}
save_replacements = {
"%1$S": VARIABLE_REFERENCE("folder"),
"%2$S": VARIABLE_REFERENCE("account"),
"%3$S": VARIABLE_REFERENCE("localFolder"),
}
hostname_replacements = {"%1$S": VARIABLE_REFERENCE("hostname")}
hostname_typography_replacements = {
"%1$S": VARIABLE_REFERENCE("hostname"),
" '": FTL.TextElement(" ā€˜"),
"'.": FTL.TextElement("’."),
"' ": FTL.TextElement("’ "),
"n't": FTL.TextElement("n’t"),
}
size_replacements = {"%1$S": VARIABLE_REFERENCE("size")}
folder_replacements = {"%1$S": VARIABLE_REFERENCE("folder")}
recipient_replacements = {"%1$s": VARIABLE_REFERENCE("recipient")}
server_response_replacements = {"%1$s": VARIABLE_REFERENCE("serverResponse")}
recipient_command_replacements = {
"%1$S": VARIABLE_REFERENCE("serverResponse"),
"%2$S": VARIABLE_REFERENCE("recipient"),
}
ctx.add_transforms(
target,
reference,
transforms_from(
"""
send-progress-assembling-mail-information = { COPY(from_path, "assemblingMailInformation") }
send-progress-assembling-message = { COPY(from_path, "assemblingMessage") }
send-progress-creating-mail-message = { COPY(from_path, "creatingMailMessage") }
send-error-attaching-file = { REPLACE(from_path, "errorAttachingFile", filename_replacements) }
send-progress-assembling-message-done = { COPY(from_path, "assemblingMessageDone") }
send-progress-copy-complete = { COPY(from_path, "copyMessageComplete") }
send-progress-copy-failed = { COPY(from_path, "copyMessageFailed") }
send-error-save-sent-locally = { REPLACE(from_path, "promptToSaveSentLocally2", save_replacements) }
send-error-save-draft-locally = { REPLACE(from_path, "promptToSaveDraftLocally2", save_replacements) }
send-error-save-template-locally = { REPLACE(from_path, "promptToSaveTemplateLocally2", save_replacements) }
send-dialog-save-title = { COPY(from_path, "SaveDialogTitle") }
send-dialog-retry = { COPY(from_path, "buttonLabelRetry2") }
send-error-save-to-local-folders = { COPY(from_path, "saveToLocalFoldersFailed") }
send-progress-filter-complete = { COPY(from_path, "filterMessageComplete") }
send-progress-filter-failed = { COPY(from_path, "filterMessageFailed") }
send-error-filtering-message = { COPY(from_path, "errorFilteringMsg") }
send-error-smtp-security-issue = { REPLACE(from_path, "smtpSecurityIssue", hostname_replacements) }
send-error-post-failed = { COPY(from_path, "postFailed") }
send-warning-large-message = { REPLACE(from_path, "largeMessageSendWarning", size_replacements) }
send-progress-copy-start = { REPLACE(from_path, "copyMessageStart", folder_replacements) }
send-progress-sending-message = { COPY(from_path, "sendingMessage") }
send-error-nntp-ok = { COPY(from_path, "sendFailedButNntpOk") }
send-error-copy-operation = { COPY(from_path, "failedCopyOperation") }
send-later-error-title = { COPY(from_path, "sendLaterErrorTitle") }
send-save-draft-error-title = { COPY(from_path, "saveDraftErrorTitle") }
send-save-template-error-title = { COPY(from_path, "saveTemplateErrorTitle") }
send-undisclosed-recipients = { COPY(from_path, "undisclosedRecipients") }
smtp-error-illegal-local-part = { REPLACE(from_path, "errorIllegalLocalPart2", recipient_replacements) }
smtp-auth-hint-encrypt-to-plain-no-ssl = { REPLACE(from_path, "smtpHintAuthEncryptToPlainNoSsl", hostname_typography_replacements) }
smtp-auth-hint-encrypt-to-plain-ssl = { REPLACE(from_path, "smtpHintAuthEncryptToPlainSsl", hostname_typography_replacements) }
smtp-auth-hint-plain-to-encrypt = { REPLACE(from_path, "smtpHintAuthPlainToEncrypt", hostname_typography_replacements) }
smtp-auth-failure = { REPLACE(from_path, "smtpAuthFailure", hostname_typography_replacements) }
smtp-auth-gssapi = { REPLACE(from_path, "smtpAuthGssapi", hostname_replacements) }
smtp-auth-mechanism-not-supported = { REPLACE(from_path, "smtpAuthMechNotSupported", hostname_typography_replacements) }
smtp-server-error = { REPLACE(from_path, "smtpServerError", server_response_replacements) }
smtp-starttls-failed = { REPLACE(from_path, "startTlsFailed", hostname_typography_replacements) }
smtp-too-many-recipients = { REPLACE(from_path, "smtpTooManyRecipients", server_response_replacements) }
smtp-error-sending-from-command = { REPLACE(from_path, "errorSendingFromCommand", server_response_replacements) }
smtp-permanent-size-exceeded = { REPLACE(from_path, "smtpPermSizeExceeded2", server_response_replacements) }
smtp-error-sending-recipient-command = { REPLACE(from_path, "errorSendingRcptCommand", recipient_command_replacements) }
smtp-error-sending-data-command = { REPLACE(from_path, "errorSendingDataCommand", server_response_replacements) }
smtp-error-sending-message = { REPLACE(from_path, "errorSendingMessage", server_response_replacements) }
""",
from_path=source,
filename_replacements=filename_replacements,
save_replacements=save_replacements,
hostname_replacements=hostname_replacements,
hostname_typography_replacements=hostname_typography_replacements,
size_replacements=size_replacements,
folder_replacements=folder_replacements,
recipient_replacements=recipient_replacements,
server_response_replacements=server_response_replacements,
recipient_command_replacements=recipient_command_replacements,
),
)