summaryrefslogtreecommitdiffstats
path: root/thunderbird-l10n/en-CA
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
commit6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /thunderbird-l10n/en-CA
parentInitial commit. (diff)
downloadthunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz
thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'thunderbird-l10n/en-CA')
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/branding/brand.dtd13
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/branding/brand.properties7
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/alerts/alert.properties23
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/autoconfig/autoconfig.properties12
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-alarms.properties39
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-event-dialog-attendees.properties15
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-event-dialog.dtd428
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-event-dialog.properties541
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-extract.properties294
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-invitations-dialog.dtd13
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-invitations-dialog.properties10
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-occurrence-prompt.dtd7
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-occurrence-prompt.properties53
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar.dtd411
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar.properties696
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendarCreation.dtd51
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendarCreation.properties6
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/categories.properties7
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/dateFormat.properties146
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/dialogs/calendar-event-dialog-reminder.dtd19
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/global.dtd54
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/menuOverlay.dtd50
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/migration.dtd9
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/migration.properties13
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/provider-uninstall.dtd12
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/timezones.properties489
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/accounts.dtd41
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/accounts.properties9
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/commands.properties27
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/contacts.properties8
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/conversations.properties85
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/facebook.properties6
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/imtooltip.properties12
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/irc.properties209
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/logger.properties7
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/matrix.properties263
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/status.properties23
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/twitter.properties122
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/xmpp.properties280
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/yahoo.properties5
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/communicator/utilityOverlay.dtd43
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/accessibility.properties314
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/animationinspector.properties182
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/boxmodel.properties48
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/changes.properties64
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/components.properties49
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/debugger.properties1082
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/device.properties21
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/dom.properties27
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/filterwidget.properties61
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/font-inspector.properties69
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/har.properties30
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/inspector.properties584
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/jsonview.properties47
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/layout.properties129
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/memory.properties434
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/menus.properties29
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/netmonitor.properties1679
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/network-throttling.properties27
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/responsive.properties182
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/shared.properties26
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/sourceeditor.properties117
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/startup.properties248
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/styleeditor.properties74
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/toolbox.properties267
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/webconsole.properties571
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/shared/accessibility.properties142
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/shared/debugger.properties67
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/shared/eyedropper.properties14
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/shared/screenshot.properties148
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/shared/shared.properties6
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/shared/styleinspector.properties249
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/mac/accessible.properties71
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/mac/intl.properties7
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/mac/platformKeys.properties33
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/unix/accessible.properties21
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/unix/intl.properties7
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/unix/platformKeys.properties33
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/win/accessible.properties21
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/win/intl.properties7
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/win/platformKeys.properties33
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/aboutStudies.properties33
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/appstrings.properties37
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/autocomplete.properties9
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/browser.properties7
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/commonDialogs.properties46
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/contentAreaCommands.properties28
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/css.properties52
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/dialog.properties12
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/dom/dom.properties469
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/extensions.properties27
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/fallbackMenubar.properties8
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/filepicker.properties20
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/global-strres.properties5
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/intl.css11
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/intl.properties43
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/keys.properties70
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout/HtmlForm.properties35
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout/MediaDocument.properties22
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout/htmlparser.properties145
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout/xmlparser.properties48
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout_errors.properties53
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/mathml/mathml.properties15
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/narrate.properties25
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/nsWebBrowserPersist.properties17
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/printdialog.properties53
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/printing.properties56
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/resetProfile.properties14
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/security/caps.properties9
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/security/csp.properties125
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/security/security.properties165
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/svg/svg.properties5
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/viewSource.properties16
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/wizard.properties8
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/xslt/xslt.properties39
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/xul.properties5
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/lightning/lightning-toolbar.dtd51
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/lightning/lightning.dtd114
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/lightning/lightning.properties201
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-mapi/mapi.properties35
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-newsblog/am-newsblog.dtd14
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-newsblog/feed-subscriptions.dtd55
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-newsblog/newsblog.properties93
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-region/region.properties29
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/certFetchingStatus.dtd9
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/msgCompSMIMEOverlay.dtd16
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/msgCompSecurityInfo.dtd18
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/msgCompSecurityInfo.properties13
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/msgReadSMIMEOverlay.properties11
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/msgReadSecurityInfo.dtd17
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/msgSecurityInfo.properties36
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/AccountManager.dtd25
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/AccountWizard.dtd55
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/CustomHeaders.dtd11
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/FilterEditor.dtd66
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/FilterListDialog.dtd40
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/SearchDialog.dtd37
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/aboutDownloads.dtd23
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/aboutRights.properties6
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/aboutSupportMail.properties15
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/accountCreationModel.properties20
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/accountCreationUtil.properties34
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/activity.dtd19
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/activity.properties99
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addbuddy.dtd7
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/abAddressBookNameDialog.dtd7
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/abContactsPanel.dtd49
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/abMailListDialog.dtd21
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/abMainWindow.dtd17
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/abResultsPane.dtd38
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/addressBook.properties179
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/ldapAutoCompErrs.properties104
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/pref-directory-add.dtd45
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/pref-directory.dtd17
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/replicationProgress.properties20
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-addressing.dtd51
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-advanced.dtd30
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-archiveoptions.dtd25
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-copies.dtd52
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-e2e.properties5
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-identities-list.dtd15
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-identity-edit.dtd14
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-im.dtd16
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-junk.dtd31
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-main.dtd49
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-mdn.dtd33
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-mdn.properties6
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-offline.dtd57
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-server-advanced.dtd31
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-server-top.dtd89
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-serverwithnoidentities.dtd6
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-smime.dtd47
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-smime.properties39
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/appUpdate.properties40
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/appleMailImportMsgs.properties20
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/baseMenuOverlay.dtd34
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/beckyImportMsgs.properties19
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/charsetTitles.properties80
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/chat.dtd44
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/chat.properties110
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/configEditorOverlay.dtd5
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/converterDialog.dtd11
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/converterDialog.properties41
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/custom.properties5
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/customizeToolbar.dtd18
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/customizeToolbar.properties11
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/downloadheaders.dtd20
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/editContactOverlay.dtd20
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/editContactOverlay.properties14
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/fieldMapImport.dtd17
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/filter.properties109
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/folderProps.dtd70
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/folderWidgets.properties12
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/folderpane.dtd7
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/gloda.properties175
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/glodaComplete.properties19
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/glodaFacetView.dtd29
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/glodaFacetView.properties171
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/imAccountWizard.dtd32
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/imAccounts.properties63
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/imapMsgs.properties268
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/importDialog.dtd48
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/importMsgs.properties304
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/joinChat.dtd10
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/junkLog.dtd10
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/localMsgs.properties140
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mailEditorOverlay.dtd6
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mailOverlay.dtd11
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mailViewList.dtd7
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mailViewSetup.dtd10
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mailviews.properties13
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/markByDate.dtd9
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messenger.dtd945
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messenger.properties769
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EdAdvancedEdit.dtd18
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EdColorPicker.dtd22
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EdConvertToTable.dtd15
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EdDialogOverlay.dtd18
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EdNamedAnchorProperties.dtd8
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorColorProperties.dtd29
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorHLineProperties.dtd27
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorImageProperties.dtd79
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorInsertChars.dtd19
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorInsertMath.dtd21
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorInsertSource.dtd15
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorInsertTOC.dtd16
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorInsertTable.dtd18
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorLinkProperties.dtd6
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorListProperties.dtd20
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorPersonalDictionary.dtd18
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorReplace.dtd29
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorSpellCheck.dtd38
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorTableProperties.dtd75
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/composeMsgs.properties464
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/editor.properties208
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/editorOverlay.dtd303
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/mailComposeEditorOverlay.dtd9
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/messengercompose.dtd306
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/sendProgress.dtd8
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/sendProgress.properties21
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/migration/migration.dtd30
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/migration/migration.properties32
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mime.properties154
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mimeheader.properties35
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/morkImportMsgs.properties18
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/msgAccountCentral.dtd26
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/msgHdrViewOverlay.dtd114
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/msgSynchronize.dtd25
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/msgViewPickerOverlay.dtd22
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/msgmdn.properties18
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/multimessageview.dtd8
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/multimessageview.properties66
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/newFolderDialog.dtd16
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/news.properties56
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/newsError.dtd31
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/offline.properties28
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/offlineStartup.properties8
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/outlookImportMsgs.properties77
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/pgpmime.properties10
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/preferences/applicationManager.properties13
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/preferences/applications.properties13
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/preferences/messagestyle.properties13
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/preferences/preferences.properties100
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/prefs.properties90
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/profileDowngrade.dtd20
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/removeAccount.dtd22
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/removeAccount.properties5
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/renameFolderDialog.dtd9
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/sanitize.dtd36
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/seamonkeyImportMsgs.properties18
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/search-attributes.properties45
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/search-operators.properties31
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/search.properties27
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/searchTermOverlay.dtd19
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/shutdownWindow.properties10
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/smime.properties11
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/smtpEditOverlay.dtd24
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/subscribe.dtd22
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/subscribe.properties13
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/tabmail.dtd9
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/taskbar.properties8
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/telemetry.properties13
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/templateUtils.properties7
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/textImportMsgs.properties48
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/vCardImportMsgs.properties26
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/viewLog.dtd12
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/viewSource.dtd86
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/viewSource.properties17
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/viewZoomOverlay.dtd30
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/virtualFolderListDialog.dtd8
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/virtualFolderProperties.dtd22
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/wmImportMsgs.properties76
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/mozapps/downloads/downloads.properties6
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/mozapps/downloads/unknownContentType.properties23
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/mozapps/profile/profileSelection.properties55
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/mozapps/update/updates.properties45
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/mozldap/ldap.properties261
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/necko/necko.properties96
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/passwordmgr/passwordmgr.properties75
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/pipnss/nsserrors.properties331
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/pipnss/pipnss.properties136
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/pippki/pippki.properties75
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/places/places.properties33
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/pdfviewer/chrome.properties20
-rw-r--r--thunderbird-l10n/en-CA/chrome/en-CA/locale/pdfviewer/viewer.properties270
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/branding/brand.ftl22
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/browser/appExtensionFields.ftl16
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/browser/branding/brandings.ftl18
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/browser/components/mozFiveStar.ftl9
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/browser/components/mozSupportLink.ftl5
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-context-menus.ftl10
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-delete-prompt.ftl35
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-editable-item.ftl30
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-event-dialog-reminder.ftl10
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-event-listing.ftl71
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-ics-file-dialog.ftl46
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-invitation-panel.ftl100
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-invitations-dialog.ftl10
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-itip-identity-dialog.ftl8
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-print.ftl17
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-recurrence-dialog.ftl8
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-summary-dialog.ftl17
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-uri-redirect-dialog.ftl12
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-widgets.ftl111
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/calendar/category-dialog.ftl7
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/calendar/preferences.ftl192
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/chat/matrix.ftl24
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/crashreporter/aboutcrashes.ftl31
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/devtools/client/aboutdebugging.ftl400
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/devtools/client/accessibility.ftl99
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/devtools/client/application.ftl147
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/devtools/client/compatibility.ftl54
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/devtools/client/perftools.ftl161
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/devtools/client/storage.ftl132
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/devtools/client/styleeditor.ftl51
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/devtools/client/toolbox-options.ftl133
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/devtools/client/toolbox.ftl55
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/devtools/client/tooltips.ftl84
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/devtools/shared/debugger-paused-reasons.ftl87
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/devtools/shared/highlighters.ftl55
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/devtools/shared/webconsole-commands.ftl3
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/devtools/startup/key-shortcuts.ftl38
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/dom/XMLPrettyPrint.ftl5
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/dom/media.ftl6
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/locales-preview/aboutTranslations.ftl28
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/about3Pane.ftl359
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutAddonsExtra.ftl12
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutDialog.ftl48
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutImport.ftl283
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutProfilesExtra.ftl5
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutRights.ftl50
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutSupportCalendar.ftl33
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutSupportChat.ftl11
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutSupportMail.ftl29
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/accountCentral.ftl65
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/accountManager.ftl18
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/accountProvisioner.ftl78
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/accountcreation/accountHub.ftl47
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/accountcreation/accountSetup.ftl294
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/addonNotifications.ftl122
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/addressbook/abCardDAVDialog.ftl26
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/addressbook/abCardDAVProperties.ftl33
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/addressbook/aboutAddressBook.ftl266
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/addressbook/fieldMapImport.ftl12
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/addressbook/vcard.ftl138
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/appmenu.ftl210
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/chat-verifySession.ftl17
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/chat.ftl47
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/compactFoldersDialog.ftl20
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/exportDialog.ftl22
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/extensionPermissions.ftl24
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/extensions/popup.ftl14
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/extensionsUI.ftl9
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/firefoxAccounts.ftl32
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/flatpak.ftl24
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/folderprops.ftl10
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/importDialog.ftl30
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/mailWidgets.ftl15
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/menubar.ftl135
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/messageheader/headerFields.ftl71
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/messenger.ftl411
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/messengercompose/messengercompose.ftl411
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/migration.ftl15
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/multimessageview.ftl14
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/backupKeyPassword.ftl17
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/changeExpiryDlg.ftl22
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/composeKeyStatus.ftl24
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/keyAssistant.ftl123
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/keyWizard.ftl135
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/msgReadStatus.ftl81
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/oneRecipientStatus.ftl50
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/openpgp-frontend.ftl54
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/openpgp.ftl780
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/add-finger.ftl16
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/am-im-otr.ftl26
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/auth.ftl60
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/chat.ftl19
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/finger-sync.ftl12
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/finger.ftl20
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/otr.ftl97
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/otrUI.ftl87
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/policies/aboutPolicies.ftl17
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/policies/policies-descriptions.ftl159
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/am-copies.ftl5
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/am-im.ftl23
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/application-manager.ftl10
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/attachment-reminder.ftl21
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/colors.ftl36
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/connection.ftl88
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/cookies.ftl43
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/dock-options.ftl23
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/fonts.ftl132
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/languages.ftl33
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/new-tag.ftl13
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/notifications.ftl29
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/offline.ftl43
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/passwordManager.ftl83
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/permissions.ftl43
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/preferences.ftl778
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/receipts.ftl39
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/sync-dialog.ftl11
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/system-integration.ftl39
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/shortcuts.ftl113
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/syncAccounts.ftl27
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/treeView.ftl53
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/troubleshootMode.ftl33
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/unifiedToolbar.ftl100
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/unifiedToolbarItems.ftl144
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/messenger/viewSource.ftl19
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/security/certificates/certManager.ftl182
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/security/certificates/deviceManager.ftl133
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/security/pippki/pippki.ftl106
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/services/accounts.ftl8
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutAbout.ftl9
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutAddons.ftl498
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutCompat.ftl22
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutGlean.ftl92
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutHttpsOnlyError.ftl30
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutLogging.ftl64
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutMozilla.ftl11
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutNetworking.ftl68
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutPerformance.ftl67
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutPlugins.ftl43
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutProcesses.ftl200
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutProfiles.ftl74
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutReader.ftl52
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutRights.ftl56
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutServiceWorkers.ftl40
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutSupport.ftl414
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutTelemetry.ftl136
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutThirdParty.ftl85
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutWebauthn.ftl3
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutWebrtc.ftl316
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutWindowsMessages.ftl20
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/abuseReports.ftl116
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/certviewer.ftl122
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/config.ftl55
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/url-classifier.ftl58
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/branding/accounts.ftl11
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/branding/brandings.ftl45
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/contentanalysis/contentanalysis.ftl3
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/downloads/downloadUI.ftl51
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/downloads/downloadUtils.ftl106
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/featuregates/features.ftl48
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/formautofill/formAutofill.ftl16
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/alert.ftl12
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/appPicker.ftl10
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/browser-utils.ftl10
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/commonDialog.ftl20
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/contextual-identity.ftl29
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/cookieBannerHandling.ftl3
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/createProfileWizard.ftl53
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/cspErrors.ftl32
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/datepicker.ftl50
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/datetimebox.ftl42
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/extensionPermissions.ftl33
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/extensions.ftl105
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/handlerDialog.ftl68
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/htmlForm.ftl14
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/mozCard.ftl3
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/mozFiveStar.ftl9
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/mozMessageBar.ftl15
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/mozSupportLink.ftl5
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/notification.ftl16
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/popupnotification.ftl10
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/processTypes.ftl61
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/profileDowngrade.ftl18
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/profileSelection.ftl38
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/resetProfile.ftl15
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/resistFingerPrinting.ftl6
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/run-from-dmg.ftl28
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/tabprompts.ftl13
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/textActions.ftl64
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/timepicker.ftl3
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/tree.ftl6
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/unknownContentType.ftl42
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/videocontrols.ftl71
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/wizard.ftl37
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/intl/languageNames.ftl215
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/intl/regionNames.ftl280
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/main-window/autocomplete.ftl23
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/main-window/findbar.ftl76
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/neterror/certError.ftl110
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/neterror/netError.ftl147
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/neterror/nsserrors.ftl349
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/passwordmgr/passwordmgr.ftl33
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/payments/payments.ftl51
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/pdfviewer/viewer.ftl311
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/pictureinpicture/pictureinpicture.ftl75
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/preferences/preferences.ftl34
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/printing/printDialogs.ftl112
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/printing/printPreview.ftl73
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/printing/printUI.ftl148
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/reportBrokenSite/reportBrokenSite.ftl3
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/updates/backgroundupdate.ftl5
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/updates/elevation.ftl22
-rw-r--r--thunderbird-l10n/en-CA/localization/en-CA/toolkit/updates/history.ftl29
-rw-r--r--thunderbird-l10n/en-CA/manifest.json56
518 files changed, 40471 insertions, 0 deletions
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/branding/brand.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/branding/brand.dtd
new file mode 100644
index 0000000000..0ed7d84857
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/branding/brand.dtd
@@ -0,0 +1,13 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+<!ENTITY brandShortName "Thunderbird">
+<!ENTITY brandShorterName "Thunderbird">
+<!ENTITY brandFullName "Mozilla Thunderbird">
+<!-- LOCALIZATION NOTE (brandProductName):
+ This brand name can be used in messages where the product name needs to
+ remain unchanged across different versions (Daily, Beta, etc.). -->
+<!ENTITY brandProductName "Thunderbird">
+<!ENTITY vendorShortName "Mozilla">
+<!ENTITY trademarkInfo.part1 "Mozilla Thunderbird and the Thunderbird logos
+ are trademarks of the Mozilla Foundation.">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/branding/brand.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/branding/brand.properties
new file mode 100644
index 0000000000..9dd5011219
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/branding/brand.properties
@@ -0,0 +1,7 @@
+# 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 http://mozilla.org/MPL/2.0/.
+brandShortName=Thunderbird
+brandShorterName=Thunderbird
+brandFullName=Mozilla Thunderbird
+vendorShortName=Mozilla
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/alerts/alert.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/alerts/alert.properties
new file mode 100644
index 0000000000..af2e432a45
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/alerts/alert.properties
@@ -0,0 +1,23 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE(closeButton.title): Used as the close button text for web notifications on OS X.
+# This should ideally match the string that OS X uses for the close button on alert-type
+# notifications. OS X will truncate the value if it's too long.
+closeButton.title = Close
+# LOCALIZATION NOTE(actionButton.label): Used as the button label to provide more actions on OS X notifications. OS X will truncate this if it's too long.
+actionButton.label = …
+# LOCALIZATION NOTE(webActions.disableForOrigin.label): %S is replaced
+# with the hostname origin of the notification.
+webActions.disableForOrigin.label = Disable notifications from %S
+
+# LOCALIZATION NOTE(source.label): Used to show the URL of the site that
+# sent the notification (e.g., "via mozilla.org"). "%1$S" is the source host
+# and port.
+source.label=via %1$S
+webActions.settings.label = Notification settings
+
+# LOCALIZATION NOTE(pauseNotifications.label): %S is replaced with the
+# brandShortName of the application.
+pauseNotifications.label = Pause notifications until %S restarts
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/autoconfig/autoconfig.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/autoconfig/autoconfig.properties
new file mode 100644
index 0000000000..7c5e15ea18
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/autoconfig/autoconfig.properties
@@ -0,0 +1,12 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+readConfigTitle = Configuration Error
+readConfigMsg = Failed to read the configuration file. Please contact your system administrator.
+
+autoConfigTitle = AutoConfig Alert
+autoConfigMsg = Netscape.cfg/AutoConfig failed. Please contact your system administrator. \n Error: %S failed:
+
+emailPromptTitle = Email Address
+emailPromptMsg = Enter your email address
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-alarms.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-alarms.properties
new file mode 100644
index 0000000000..3715122c68
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-alarms.properties
@@ -0,0 +1,39 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (reminderCustomTitle):
+# %1$S = unit, %2$S = reminderCustomOrigin
+# Example: "3 minutes" "before the task starts"
+reminderCustomTitle=%1$S %2$S
+reminderTitleAtStartEvent=The moment the event starts
+reminderTitleAtStartTask=The moment the task starts
+reminderTitleAtEndEvent=The moment the event ends
+reminderTitleAtEndTask=The moment the task ends
+
+# LOCALIZATION NOTE (reminderSnoozeOkA11y)
+# This string is not seen in the UI, it is read by screen readers when the user
+# focuses the "OK" button in the "Snooze for..." popup of the alarm dialog.
+# %1$S = any of unit*
+reminderSnoozeOkA11y=Snooze reminder for %1$S
+
+reminderCustomOriginBeginBeforeEvent=before the event starts
+reminderCustomOriginBeginAfterEvent=after the event starts
+reminderCustomOriginEndBeforeEvent=before the event ends
+reminderCustomOriginEndAfterEvent=after the event ends
+reminderCustomOriginBeginBeforeTask=before the task starts
+reminderCustomOriginBeginAfterTask=after the task starts
+reminderCustomOriginEndBeforeTask=before the task ends
+reminderCustomOriginEndAfterTask=after the task ends
+
+reminderErrorMaxCountReachedEvent=The selected calendar has a limitation of #1 reminder per event.;The selected calendar has a limitation of #1 reminders per event.
+reminderErrorMaxCountReachedTask=The selected calendar has a limitation of #1 reminder per task.;The selected calendar has a limitation of #1 reminders per task.
+
+# LOCALIZATION NOTE (reminderReadonlyNotification)
+# This notification will be presented in the alarm dialog if reminders for not
+# writable items/calendars are displayed.
+# %1$S - localized value of calendar.alarm.snoozeallfor.label (defined in calendar.dtd)
+reminderReadonlyNotification=Reminders for read-only calendars currently cannot be snoozed but only dismissed - the button ‘%1$S’ will only snooze reminders for writable calendars.
+# LOCALIZATION NOTE (reminderDisabledSnoozeButtonTooltip)
+# This tooltip is only displayed, if the button is disabled
+reminderDisabledSnoozeButtonTooltip=Snoozing of a reminder is not supported for read-only calendars
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-event-dialog-attendees.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-event-dialog-attendees.properties
new file mode 100644
index 0000000000..4b55f1d7ec
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-event-dialog-attendees.properties
@@ -0,0 +1,15 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+event.attendee.role.required = Required Attendee
+event.attendee.role.optional = Optional Attendee
+event.attendee.role.nonparticipant = Non Participant
+event.attendee.role.chair = Chair
+event.attendee.role.unknown = Unknown Attendee (%1$S)
+
+event.attendee.usertype.individual = Individual
+event.attendee.usertype.group = Group
+event.attendee.usertype.resource = Resource
+event.attendee.usertype.room = Room
+event.attendee.usertype.unknown = Unknown Type (%1$S)
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-event-dialog.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-event-dialog.dtd
new file mode 100644
index 0000000000..35f0e07a81
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-event-dialog.dtd
@@ -0,0 +1,428 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY event.title.label "Edit Item" >
+
+<!ENTITY event.dialog.keepDurationButton.tooltip "Keep the duration when changing the end date">
+<!ENTITY event.dialog.keepDurationButton.accesskey "K">
+
+<!ENTITY newevent.from.label "From" >
+<!ENTITY newevent.to.label "To" >
+
+<!ENTITY newevent.status.label "Status" >
+<!ENTITY newevent.status.accesskey "S" >
+<!ENTITY newevent.eventStatus.none.label "Not specified" >
+<!ENTITY newevent.eventStatus.none.accesskey "o" >
+<!ENTITY newevent.todoStatus.none.label "Not specified" >
+<!ENTITY newevent.eventStatus.cancelled.label "Cancelled" >
+<!ENTITY newevent.eventStatus.cancelled.accesskey "n" >
+<!ENTITY newevent.todoStatus.cancelled.label "Cancelled" >
+<!ENTITY newevent.status.tentative.label "Tentative" >
+<!ENTITY newevent.status.tentative.accesskey "T" >
+<!ENTITY newevent.status.confirmed.label "Confirmed" >
+<!ENTITY newevent.status.confirmed.accesskey "C" >
+<!ENTITY newevent.status.needsaction.label "Needs Action" >
+<!ENTITY newevent.status.inprogress.label "In Process" >
+<!ENTITY newevent.status.completed.label "Completed on" >
+
+<!-- The following entity is for New Task dialog only -->
+<!ENTITY newtodo.percentcomplete.label "&#37; complete">
+
+<!-- LOCALIZATON NOTE(event.attendees.notify.label,event.attendees.notifyundisclosed.label,
+ event.attendees.disallowcounter.label)
+ - These three labels are displayed side by side in the event dialog, make sure
+ - they still fit in. -->
+<!ENTITY event.attendees.notify.label "Notify attendees">
+<!ENTITY event.attendees.notify.accesskey "f">
+<!ENTITY event.attendees.notifyundisclosed.label "Separate invitation per attendee">
+<!ENTITY event.attendees.notifyundisclosed.accesskey "x">
+<!ENTITY event.attendees.notifyundisclosed.tooltip "This option sends one invitation email per attendee. Each invitation only contains the recipient attendee so that other attendee identities are not disclosed.">
+<!ENTITY event.attendees.disallowcounter.label "Disallow counter">
+<!ENTITY event.attendees.disallowcounter.accesskey "a">
+<!ENTITY event.attendees.disallowcounter.tooltip "Indicates that you will not accept counterproposals">
+
+<!-- Keyboard Shortcuts -->
+<!ENTITY event.dialog.new.event.key2 "I">
+<!ENTITY event.dialog.new.task.key2 "D">
+<!ENTITY event.dialog.new.message.key2 "N">
+<!ENTITY event.dialog.close.key "W">
+<!ENTITY event.dialog.save.key "S">
+<!ENTITY event.dialog.saveandclose.key "L">
+<!ENTITY event.dialog.print.key "P">
+<!ENTITY event.dialog.undo.key "Z">
+<!ENTITY event.dialog.redo.key "Y">
+<!ENTITY event.dialog.cut.key "X">
+<!ENTITY event.dialog.copy.key "C">
+<!ENTITY event.dialog.paste.key "V">
+<!ENTITY event.dialog.select.all.key "A">
+
+<!-- Menubar -->
+<!ENTITY event.menu.item.new.label "New">
+<!ENTITY event.menu.item.new.accesskey "N">
+<!ENTITY event.menu.item.new.event.label "Event">
+<!ENTITY event.menu.item.new.event.accesskey "E">
+<!ENTITY event.menu.item.new.task.label "Task">
+<!ENTITY event.menu.item.new.task.accesskey "T">
+<!ENTITY event.menu.item.new.message.label "Message">
+<!ENTITY event.menu.item.new.message.accesskey "M">
+<!ENTITY event.menu.item.new.contact.label "Address Book Contact">
+<!ENTITY event.menu.item.new.contact.accesskey "C">
+<!ENTITY event.menu.item.close.label "Close">
+<!ENTITY event.menu.item.close.accesskey "C">
+
+<!-- LOCALIZATION NOTE
+ - event.menu.item.save.accesskey is used for the "Save" menu item
+ - when editing events/tasks in a dialog window.
+ - event.menu.item.save.tab.accesskey is used for the "Save" menu item
+ - when editing events/tasks in a tab. -->
+<!ENTITY event.menu.item.save.label "Save">
+<!ENTITY event.menu.item.save.accesskey "S">
+<!ENTITY event.menu.item.save.tab.accesskey "a">
+
+<!-- LOCALIZATION NOTE
+ - event.menu.item.saveandclose.accesskey is used for "Save and Close"
+ - menu item when editing events/tasks in a dialog window.
+ - event.menu.item.saveandclose.tab.accesskey is used for "Save and Close"
+ - when editing events/tasks in a tab. -->
+<!ENTITY event.menu.item.saveandclose.label "Save and Close">
+<!ENTITY event.menu.item.saveandclose.accesskey "l">
+<!ENTITY event.menu.item.saveandclose.tab.accesskey "z">
+
+<!ENTITY event.menu.item.delete.label "Delete…">
+<!ENTITY event.menu.item.delete.accesskey "D">
+<!ENTITY event.menu.item.page.setup.label "Page Setup">
+<!ENTITY event.menu.item.page.setup.accesskey "u">
+<!ENTITY event.menu.item.print.label "Print">
+<!ENTITY event.menu.item.print.accesskey "P">
+
+<!ENTITY event.menu.edit.label "Edit">
+<!ENTITY event.menu.edit.accesskey "E">
+<!ENTITY event.menu.edit.undo.label "Undo">
+<!ENTITY event.menu.edit.undo.accesskey "U">
+<!ENTITY event.menu.edit.redo.label "Redo">
+<!ENTITY event.menu.edit.redo.accesskey "R">
+<!ENTITY event.menu.edit.cut.label "Cut">
+<!ENTITY event.menu.edit.cut.accesskey "t">
+<!ENTITY event.menu.edit.copy.label "Copy">
+<!ENTITY event.menu.edit.copy.accesskey "C">
+<!ENTITY event.menu.edit.paste.label "Paste">
+<!ENTITY event.menu.edit.paste.accesskey "P">
+<!ENTITY event.menu.edit.select.all.label "Select All">
+<!ENTITY event.menu.edit.select.all.accesskey "A">
+
+<!ENTITY event.menu.view.label "View">
+<!ENTITY event.menu.view.accesskey "V">
+<!ENTITY event.menu.view.toolbars.label "Toolbars">
+<!ENTITY event.menu.view.toolbars.accesskey "T">
+<!ENTITY event.menu.view.toolbars.event.label "Event Toolbar">
+<!ENTITY event.menu.view.toolbars.event.accesskey "E">
+<!ENTITY event.menu.view.toolbars.customize.label "Customize…">
+<!ENTITY event.menu.view.toolbars.customize.accesskey "C">
+<!ENTITY event.menu.view.showlink.label "Show Related Link">
+<!ENTITY event.menu.view.showlink.accesskey "R">
+
+<!ENTITY event.menu.options.label "Options">
+<!ENTITY event.menu.options.accesskey "O">
+<!ENTITY event.menu.options.attendees.label "Invite Attendees…">
+<!ENTITY event.menu.options.attendees.accesskey "I">
+<!ENTITY event.menu.options.timezone2.label "Show Timezones">
+<!ENTITY event.menu.options.timezone2.accesskey "z">
+<!ENTITY event.menu.options.priority2.label "Priority">
+<!ENTITY event.menu.options.priority2.accesskey "y">
+<!ENTITY event.menu.options.priority.notspecified.label "Not specified">
+<!ENTITY event.menu.options.priority.notspecified.accesskey "o">
+<!ENTITY event.menu.options.priority.low.label "Low">
+<!ENTITY event.menu.options.priority.low.accesskey "L">
+<!ENTITY event.menu.options.priority.normal.label "Normal">
+<!ENTITY event.menu.options.priority.normal.accesskey "N">
+<!ENTITY event.menu.options.priority.high.label "High">
+<!ENTITY event.menu.options.priority.high.accesskey "H">
+<!ENTITY event.menu.options.privacy.label "Privacy">
+<!ENTITY event.menu.options.privacy.accesskey "P">
+<!ENTITY event.menu.options.privacy.public.label "Public Event">
+<!ENTITY event.menu.options.privacy.public.accesskey "u">
+<!ENTITY event.menu.options.privacy.confidential.label "Show Time and Date Only">
+<!ENTITY event.menu.options.privacy.confidential.accesskey "S">
+<!ENTITY event.menu.options.privacy.private.label "Private Event">
+<!ENTITY event.menu.options.privacy.private.accesskey "r">
+<!ENTITY event.menu.options.show.time.label "Show Time as">
+<!ENTITY event.menu.options.show.time.accesskey "T">
+<!ENTITY event.menu.options.show.time.busy.label "Busy">
+<!ENTITY event.menu.options.show.time.busy.accesskey "B">
+<!ENTITY event.menu.options.show.time.free.label "Free">
+<!ENTITY event.menu.options.show.time.free.accesskey "F">
+
+<!ENTITY event.invite.attendees.label "Invite Attendees…">
+<!ENTITY event.invite.attendees.accesskey "I">
+<!ENTITY event.email.attendees.label "Compose E-Mail to All Attendees…">
+<!ENTITY event.email.attendees.accesskey "A">
+<!ENTITY event.email.tentative.attendees.label "Compose E-Mail to Undecided Attendees…">
+<!ENTITY event.email.tentative.attendees.accesskey "U">
+<!ENTITY event.remove.attendees.label2 "Remove all attendees">
+<!ENTITY event.remove.attendees.accesskey "r">
+<!ENTITY event.remove.attendee.label "Remove attendee">
+<!ENTITY event.remove.attendee.accesskey "e">
+
+<!-- Toolbar -->
+<!ENTITY event.toolbar.save.label2 "Save">
+<!ENTITY event.toolbar.saveandclose.label "Save and Close">
+<!ENTITY event.toolbar.delete.label "Delete">
+<!ENTITY event.toolbar.attendees.label "Invite Attendees">
+<!ENTITY event.toolbar.privacy.label "Privacy">
+
+<!ENTITY event.toolbar.save.tooltip2 "Save">
+<!ENTITY event.toolbar.saveandclose.tooltip "Save and Close">
+<!ENTITY event.toolbar.delete.tooltip "Delete">
+<!ENTITY event.toolbar.attendees.tooltip "Invite Attendees">
+<!ENTITY event.toolbar.attachments.tooltip "Add Attachments">
+<!ENTITY event.toolbar.privacy.tooltip "Change Privacy">
+<!ENTITY event.toolbar.priority.tooltip "Change Priority">
+<!ENTITY event.toolbar.status.tooltip "Change Status">
+<!ENTITY event.toolbar.freebusy.tooltip "Change Free/Busy time">
+
+<!-- Counter box -->
+<!-- LOCALIZATON NOTE(counter.button.*)
+ - This is only visible in the UI if you have received a counterproposal before and are going to
+ - reschedule the event from the imipbar in the email view. Clicking on the buttons will only
+ - populate the form fields in the dialog, there's no other immediate action on clicking like with
+ - the imip bar. Rescheduling will happen after clicking on save&close as usual. This screenshot
+ - illustrates how it might look like: https://bugzilla.mozilla.org/attachment.cgi?id=8810121 -->
+<!ENTITY counter.button.proposal.label "Apply proposal">
+<!ENTITY counter.button.proposal.accesskey "p">
+<!ENTITY counter.button.proposal.tooltip2 "Event fields will be filled in using the values from the counterproposal, only saving with or without additional changes will notify all attendees accordingly">
+<!ENTITY counter.button.original.label "Apply original data">
+<!ENTITY counter.button.original.accesskey "r">
+<!ENTITY counter.button.original.tooltip2 "The fields will be set to the values from the original event, before the counterproposal was made">
+
+<!-- Main page -->
+<!ENTITY event.title.textbox.label "Title:" >
+<!ENTITY event.title.textbox.accesskey "I">
+<!ENTITY event.location.label "Location:" >
+<!ENTITY event.location.accesskey "L">
+<!ENTITY event.categories.label "Category:">
+<!ENTITY event.categories.accesskey "y">
+<!ENTITY event.categories.textbox.label "Add a new category" >
+<!ENTITY event.calendar.label "Calendar:" >
+<!ENTITY event.calendar.accesskey "C">
+<!ENTITY event.attendees.label "Attendees:" >
+<!ENTITY event.attendees.accesskey "n">
+<!ENTITY event.alldayevent.label "All day Event" >
+<!ENTITY event.alldayevent.accesskey "d">
+<!ENTITY event.from.label "Start:" >
+<!ENTITY event.from.accesskey "S">
+<!ENTITY task.from.label "Start:" >
+<!ENTITY task.from.accesskey "S">
+<!ENTITY event.to.label "End:" >
+<!ENTITY event.to.accesskey "u">
+<!ENTITY task.to.label "Due Date:" >
+<!ENTITY task.to.accesskey "u">
+<!ENTITY task.status.label "Status:" >
+<!ENTITY task.status.accesskey "a">
+<!ENTITY event.repeat.label "Repeat:" >
+<!ENTITY event.repeat.accesskey "R">
+<!ENTITY event.until.label "Until:">
+<!ENTITY event.until.accesskey "B">
+<!ENTITY event.reminder.label "Reminder:" >
+<!ENTITY event.reminder.accesskey "m">
+<!ENTITY event.description.label "Description:" >
+<!ENTITY event.description.accesskey "p">
+<!ENTITY event.attachments.label "Attachments:" >
+<!ENTITY event.attachments.accesskey "h" >
+<!ENTITY event.attachments.menubutton.label "Attach">
+<!ENTITY event.attachments.menubutton.accesskey "A">
+<!ENTITY event.attachments.url.label "Webpage…">
+<!ENTITY event.attachments.url.accesskey "W">
+<!ENTITY event.attachments.popup.remove.label "Remove" >
+<!ENTITY event.attachments.popup.remove.accesskey "R" >
+<!ENTITY event.attachments.popup.open.label "Open" >
+<!ENTITY event.attachments.popup.open.accesskey "O" >
+<!ENTITY event.attachments.popup.removeAll.label "Remove All" >
+<!ENTITY event.attachments.popup.removeAll.accesskey "A" >
+<!ENTITY event.attachments.popup.attachPage.label "Attach Webpage…" >
+<!ENTITY event.attachments.popup.attachPage.accesskey "g" >
+<!ENTITY event.url.label "Related Link:" >
+<!ENTITY event.priority2.label "Priority:">
+
+<!ENTITY event.reminder.none.label "No reminder " >
+<!ENTITY event.reminder.0minutes.before.label "0 minutes before" >
+<!ENTITY event.reminder.5minutes.before.label "5 minutes before" >
+<!ENTITY event.reminder.15minutes.before.label "15 minutes before" >
+<!ENTITY event.reminder.30minutes.before.label "30 minutes before" >
+<!ENTITY event.reminder.1hour.before.label "1 hour before" >
+<!ENTITY event.reminder.2hours.before.label "2 hours before" >
+<!ENTITY event.reminder.12hours.before.label "12 hours before" >
+<!ENTITY event.reminder.1day.before.label "1 day before" >
+<!ENTITY event.reminder.2days.before.label "2 days before" >
+<!ENTITY event.reminder.1week.before.label "1 week before" >
+<!ENTITY event.reminder.custom.label "Custom…" >
+
+<!ENTITY event.reminder.multiple.label "Multiple Reminders…" >
+
+<!ENTITY event.statusbarpanel.freebusy.label "Time as:">
+<!ENTITY event.statusbarpanel.privacy.label "Privacy:">
+
+<!-- Recurrence dialog -->
+<!ENTITY recurrence.title.label "Edit Recurrence">
+
+<!ENTITY event.repeat.does.not.repeat.label "Does not repeat">
+<!ENTITY event.repeat.daily.label "Daily">
+<!ENTITY event.repeat.weekly.label "Weekly">
+<!ENTITY event.repeat.every.weekday.label "Every Weekday">
+<!ENTITY event.repeat.bi.weekly.label "Bi-weekly">
+<!ENTITY event.repeat.monthly.label "Monthly">
+<!ENTITY event.repeat.yearly.label "Yearly">
+<!ENTITY event.repeat.custom.label "Custom…">
+
+<!ENTITY event.recurrence.pattern.label "Recurrence pattern">
+<!ENTITY event.recurrence.occurs.label "Repeat" >
+<!ENTITY event.recurrence.day.label "daily" >
+<!ENTITY event.recurrence.week.label "weekly" >
+<!ENTITY event.recurrence.month.label "monthly" >
+<!ENTITY event.recurrence.year.label "annually" >
+
+<!ENTITY event.recurrence.pattern.every.label "Every" >
+<!ENTITY repeat.units.days.both "Day(s)" >
+<!ENTITY event.recurrence.pattern.every.weekday.label "Every weekday" >
+
+<!ENTITY event.recurrence.pattern.weekly.every.label "Every" >
+<!ENTITY repeat.units.weeks.both "Week(s)" >
+<!ENTITY event.recurrence.on.label "On:" >
+
+<!ENTITY event.recurrence.pattern.monthly.every.label "Every" >
+<!ENTITY repeat.units.months.both "Month(s)" >
+<!ENTITY event.recurrence.monthly.every.label "Every" >
+<!ENTITY event.recurrence.monthly.first.label "The First">
+<!ENTITY event.recurrence.monthly.second.label "The Second">
+<!ENTITY event.recurrence.monthly.third.label "The Third">
+<!ENTITY event.recurrence.monthly.fourth.label "The Fourth">
+<!ENTITY event.recurrence.monthly.fifth.label "The Fifth">
+<!ENTITY event.recurrence.monthly.last.label "The Last">
+<!ENTITY event.recurrence.pattern.monthly.week.1.label "Sunday" >
+<!ENTITY event.recurrence.pattern.monthly.week.2.label "Monday" >
+<!ENTITY event.recurrence.pattern.monthly.week.3.label "Tuesday" >
+<!ENTITY event.recurrence.pattern.monthly.week.4.label "Wednesday" >
+<!ENTITY event.recurrence.pattern.monthly.week.5.label "Thursday" >
+<!ENTITY event.recurrence.pattern.monthly.week.6.label "Friday" >
+<!ENTITY event.recurrence.pattern.monthly.week.7.label "Saturday" >
+<!ENTITY event.recurrence.repeat.dayofmonth.label "Day of the month">
+<!ENTITY event.recurrence.repeat.recur.label "Recur on day(s)">
+
+<!ENTITY event.recurrence.every.label "Every:" >
+<!ENTITY repeat.units.years.both "Year(s)" >
+<!ENTITY event.recurrence.pattern.yearly.every.month.label "Every" >
+
+<!-- LOCALIZATON NOTE
+ Some languages use a preposition when describing dates:
+ Portuguese: 6 de Setembro
+ English: 6 [of] September
+ event.recurrence.pattern.yearly.of.label is "of" in
+ Edit recurrence window -> Recurrence pattern -> Repeat yearly
+-->
+<!ENTITY event.recurrence.pattern.yearly.of.label "" >
+
+<!ENTITY event.recurrence.pattern.yearly.month.1.label "January" >
+<!ENTITY event.recurrence.pattern.yearly.month.2.label "February" >
+<!ENTITY event.recurrence.pattern.yearly.month.3.label "March" >
+<!ENTITY event.recurrence.pattern.yearly.month.4.label "April" >
+<!ENTITY event.recurrence.pattern.yearly.month.5.label "May" >
+<!ENTITY event.recurrence.pattern.yearly.month.6.label "June" >
+<!ENTITY event.recurrence.pattern.yearly.month.7.label "July" >
+<!ENTITY event.recurrence.pattern.yearly.month.8.label "August" >
+<!ENTITY event.recurrence.pattern.yearly.month.9.label "September" >
+<!ENTITY event.recurrence.pattern.yearly.month.10.label "October" >
+<!ENTITY event.recurrence.pattern.yearly.month.11.label "November" >
+<!ENTITY event.recurrence.pattern.yearly.month.12.label "December" >
+<!ENTITY event.recurrence.yearly.every.label "Every">
+<!ENTITY event.recurrence.yearly.first.label "The First">
+<!ENTITY event.recurrence.yearly.second.label "The Second">
+<!ENTITY event.recurrence.yearly.third.label "The Third">
+<!ENTITY event.recurrence.yearly.fourth.label "The Fourth">
+<!ENTITY event.recurrence.yearly.fifth.label "The Fifth">
+<!ENTITY event.recurrence.yearly.last.label "The Last">
+<!ENTITY event.recurrence.pattern.yearly.week.1.label "Sunday" >
+<!ENTITY event.recurrence.pattern.yearly.week.2.label "Monday" >
+<!ENTITY event.recurrence.pattern.yearly.week.3.label "Tuesday" >
+<!ENTITY event.recurrence.pattern.yearly.week.4.label "Wednesday" >
+<!ENTITY event.recurrence.pattern.yearly.week.5.label "Thursday" >
+<!ENTITY event.recurrence.pattern.yearly.week.6.label "Friday" >
+<!ENTITY event.recurrence.pattern.yearly.week.7.label "Saturday" >
+<!ENTITY event.recurrence.pattern.yearly.day.label "day" >
+<!ENTITY event.recurrence.of.label "of" >
+<!ENTITY event.recurrence.pattern.yearly.month2.1.label "January" >
+<!ENTITY event.recurrence.pattern.yearly.month2.2.label "February" >
+<!ENTITY event.recurrence.pattern.yearly.month2.3.label "March" >
+<!ENTITY event.recurrence.pattern.yearly.month2.4.label "April" >
+<!ENTITY event.recurrence.pattern.yearly.month2.5.label "May" >
+<!ENTITY event.recurrence.pattern.yearly.month2.6.label "June" >
+<!ENTITY event.recurrence.pattern.yearly.month2.7.label "July" >
+<!ENTITY event.recurrence.pattern.yearly.month2.8.label "August" >
+<!ENTITY event.recurrence.pattern.yearly.month2.9.label "September" >
+<!ENTITY event.recurrence.pattern.yearly.month2.10.label "October" >
+<!ENTITY event.recurrence.pattern.yearly.month2.11.label "November" >
+<!ENTITY event.recurrence.pattern.yearly.month2.12.label "December" >
+
+<!ENTITY event.recurrence.range.label "Range of recurrence">
+<!ENTITY event.recurrence.forever.label "No end date" >
+<!ENTITY event.recurrence.repeat.for.label "Create" >
+<!ENTITY event.recurrence.appointments.label "Appointment(s)" >
+<!ENTITY event.repeat.until.label "Repeat until" >
+<!ENTITY event.recurrence.preview.label "Preview">
+
+<!-- Attendees dialog -->
+<!ENTITY invite.title.label "Invite Attendees">
+<!ENTITY event.organizer.label "Organizer">
+<!ENTITY event.freebusy.suggest.slot "Suggest time slot:">
+<!ENTITY event.freebusy.button.next.slot "Next slot">
+<!ENTITY event.freebusy.button.previous.slot "Previous slot">
+<!ENTITY event.freebusy.zoom "Zoom:">
+<!ENTITY event.freebusy.legend.free "Free" >
+<!ENTITY event.freebusy.legend.busy "Busy" >
+<!ENTITY event.freebusy.legend.busy_tentative "Tentative" >
+<!ENTITY event.freebusy.legend.busy_unavailable "Out of Office" >
+<!ENTITY event.freebusy.legend.unknown "No Information" >
+<!ENTITY event.attendee.role.required "Required Attendee">
+<!ENTITY event.attendee.role.optional "Optional Attendee">
+<!ENTITY event.attendee.role.chair "Chair">
+<!ENTITY event.attendee.role.nonparticipant "Non Participant">
+<!ENTITY event.attendee.usertype.individual "Individual">
+<!ENTITY event.attendee.usertype.group "Group">
+<!ENTITY event.attendee.usertype.resource "Resource">
+<!ENTITY event.attendee.usertype.room "Room">
+<!ENTITY event.attendee.usertype.unknown "Unknown">
+
+<!-- Timezone dialog -->
+<!ENTITY timezone.title.label "Please Specify the Timezone">
+<!ENTITY event.timezone.custom.label "More Timezones…">
+
+<!-- Read-Only dialog -->
+<!ENTITY read.only.general.label "General">
+<!ENTITY read.only.title.label "Title:">
+<!ENTITY read.only.calendar.label "Calendar:">
+<!ENTITY read.only.event.start.label "Start Date:">
+<!ENTITY read.only.task.start.label "Start Date:">
+<!ENTITY read.only.event.end.label "End Date:">
+<!ENTITY read.only.task.due.label "Due Date:">
+<!ENTITY read.only.repeat.label "Repeat:">
+<!ENTITY read.only.location.label "Location:">
+<!ENTITY read.only.category.label "Category:">
+<!ENTITY read.only.organizer.label "Organizer:">
+<!ENTITY read.only.reminder.label "Reminder:">
+<!ENTITY read.only.attachments.label "Attachments:">
+<!ENTITY read.only.attendees.label "Attendees">
+<!ENTITY read.only.description.label "Description">
+<!ENTITY read.only.link.label "Related Link">
+
+<!-- Summary dialog -->
+<!ENTITY summary.dialog.saveclose.label "Save and Close">
+<!ENTITY summary.dialog.saveclose.tooltiptext "Save changes and close the window without changing the participation status and sending a response">
+<!ENTITY summary.dialog.accept.label "Accept">
+<!ENTITY summary.dialog.accept.tooltiptext "Accept the invitation">
+<!ENTITY summary.dialog.tentative.label "Tentative">
+<!ENTITY summary.dialog.tentative.tooltiptext "Accept the invitation tentatively">
+<!ENTITY summary.dialog.decline.label "Decline">
+<!ENTITY summary.dialog.decline.tooltiptext "Decline the invitation">
+<!ENTITY summary.dialog.dontsend.label "Do not send a response">
+<!ENTITY summary.dialog.dontsend.tooltiptext "Change your participation status without sending a reply to the organizer and close the window">
+<!ENTITY summary.dialog.send.label "Send a response now">
+<!ENTITY summary.dialog.send.tooltiptext "Send out a response to the organizer and close the window">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-event-dialog.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-event-dialog.properties
new file mode 100644
index 0000000000..534276f769
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-event-dialog.properties
@@ -0,0 +1,541 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (dailyEveryNth):
+# Edit recurrence window -> Recurrence pattern -> Daily repeat rules
+# #1 - number
+# e.g. "every 4 days"
+dailyEveryNth=every day;every #1 days
+repeatDetailsRuleDaily4=every weekday
+
+# LOCALIZATION NOTE (weeklyNthOnNounclass...)
+# Edit recurrence window -> Recurrence pattern -> Weekly repeat rules
+# Translate these strings according to noun class/gender of weekday (%1$S)
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - weekday (one or more)
+# #2 - week interval
+# e.g. "every 3 weeks on Tuesday, Wednesday and Thursday
+weeklyNthOnNounclass1=every %1$S;every #2 weeks on %1$S
+weeklyNthOnNounclass2=every %1$S;every #2 weeks on %1$S
+
+# LOCALIZATION NOTE (weeklyEveryNth):
+# Edit recurrence window -> Recurrence pattern -> Weekly repeat rules
+# #1 - interval
+# e.g. "every 5 weeks"
+weeklyEveryNth=every week;every #1 weeks
+
+# LOCALIZATION NOTE ('repeatDetailsDay...' and 'repeatDetailsDay...Nounclass'):
+# Week days names and week days noun classes (feminine/masculine grammatical
+# gender) for languages that need different localization when weekdays nouns
+# have different noun classes (genders).
+# For every weekday, in 'repeatDetailsDay...Nounclass' strings write:
+# "nounclass1" for languages with grammatical genders -> MASCULINE gender;
+# for languages with noun classes -> a noun class;
+# for languages without noun classes or grammatical gender.
+#
+# "nounclass2" for languages with grammatical genders -> FEMININE gender;
+# for languages with noun classes -> a different noun class.
+#
+# "nounclass3", "nounclass4" and so on for languages that need more than two
+# noun classes for weekdays. In this case add corresponding
+# rule string with "Nounclass..." suffix and ordinal string
+# "repeatOrdinalxNounclass..."
+# Will be used rule strings with "Nounclass..." suffix corresponding to the
+# following strings if there is a weekday in the rule string.
+repeatDetailsDay1=Sunday
+repeatDetailsDay1Nounclass=nounclass1
+repeatDetailsDay2=Monday
+repeatDetailsDay2Nounclass=nounclass1
+repeatDetailsDay3=Tuesday
+repeatDetailsDay3Nounclass=nounclass1
+repeatDetailsDay4=Wednesday
+repeatDetailsDay4Nounclass=nounclass1
+repeatDetailsDay5=Thursday
+repeatDetailsDay5Nounclass=nounclass1
+repeatDetailsDay6=Friday
+repeatDetailsDay6Nounclass=nounclass1
+repeatDetailsDay7=Saturday
+repeatDetailsDay7Nounclass=nounclass1
+
+# LOCALIZATION NOTE (repeatDetailsAnd)
+# Used to show a number of weekdays in a list
+# i.e. "Sunday, Monday, Tuesday " + and + " Wednesday"
+repeatDetailsAnd=and
+
+# LOCALIZATION NOTE (monthlyRuleNthOfEveryNounclass...):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# Translate these strings according to noun class/gender of weekday (%2$S)
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - list of weekdays with ordinal, article and noun class/gender
+# (ordinal and weekday of every element in the list follow the order
+# and the rule of ordinalWeekdayOrder string)
+# #2 - interval
+# e.g. "the first Monday and the last Friday of every 3 months"
+monthlyRuleNthOfEveryNounclass1=%1$S of every month;%1$S of every #2 months
+monthlyRuleNthOfEveryNounclass2=%1$S of every month;%1$S of every #2 months
+
+# LOCALIZATION NOTE (ordinalWeekdayOrder):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# This string allows to change the order of the elements "ordinal" and
+# "weekday" (or to insert a word between them) for the argument %1$S of the
+# string monthlyRuleNthOfEveryNounclass...
+# Without changing this string, the order is that one required from most
+# languages: ordinal + weekday (e.g. "'the first' 'Monday' of every 2 months").
+# %1$S - ordinal with article
+# %2$S - weekday noun
+# e.g. "'the first' 'Monday'"
+# DONT_TRANSLATE: Make sure there are no extra words in this property, just variables.
+ordinalWeekdayOrder=%1$S %2$S
+
+# LOCALIZATION NOTE (monthlyEveryOfEveryNounclass...):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# Translate these strings according to noun class/gender of weekday (%1$S)
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - list of single weekdays and/or weekdays with ordinal, article and
+# noun class/gender when rule contains also specific day in the month
+# #2 - interval
+# e.g. "every Monday, Tuesday and the second Sunday of every month"
+monthlyEveryOfEveryNounclass1=every %1$S of every month;every %1$S of every #2 months
+monthlyEveryOfEveryNounclass2=every %1$S of every month;every %1$S of every #2 months
+
+# LOCALIZATION NOTE (monthlyDaysOfNth_day):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# %1$S - day of month or a sequence of days of month, possibly followed by an ordinal symbol
+# (depending on the string dayOrdinalSymbol in dateFormat.properties) separated with commas;
+# e.g. "days 3, 6 and 9" or "days 3rd, 6th and 9th"
+monthlyDaysOfNth_day=day %1$S;days %1$S
+
+# LOCALIZATION NOTE (monthlyDaysOfNth):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# %1$S - it's the string monthlyDaysOfNth_day: day of month or a sequence of days
+# of month, possibly followed by an ordinal symbol, separated with commas;
+# #2 - monthly interval
+# e.g. "days 3, 6, 9 and 12 of every 3 months"
+monthlyDaysOfNth=%1$S of every month;%1$S of every #2 months
+
+# LOCALIZATION NOTE (monthlyLastDayOfNth):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# %1$S - day of month
+# #2 - month interval
+# e.g. "the last day of every 3 months"
+monthlyLastDayOfNth=the last day of the month; the last day of every #1 months
+
+# LOCALIZATION NOTE (monthlyEveryDayOfNth):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# #2 - month interval
+# e.g. "every day of the month every 4 months"
+monthlyEveryDayOfNth=every day of every month;every day of the month every #2 months
+
+# LOCALIZATION NOTE (repeatOrdinal...Nounclass...):
+# Ordinal numbers nouns for every noun class (grammatical genders) of weekdays
+# considered in 'repeatDetailsDayxNounclass' strings. For languages that need
+# localization according to genders or noun classes.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add 'repeatOrdinal...Nounclass' strings with suffix 3, 4 and so on for
+# languages with more than two noun classes for weekdays. In this case
+# must be added corresponding rule strings with 'Nounclass...' suffix and
+# corresponding values "nounclass..." must be written in
+# 'repeatDetailsDayxNounclass' strings.
+repeatOrdinal1Nounclass1=the first
+repeatOrdinal2Nounclass1=the second
+repeatOrdinal3Nounclass1=the third
+repeatOrdinal4Nounclass1=the fourth
+repeatOrdinal5Nounclass1=the fifth
+repeatOrdinal-1Nounclass1=the last
+repeatOrdinal1Nounclass2=the first
+repeatOrdinal2Nounclass2=the second
+repeatOrdinal3Nounclass2=the third
+repeatOrdinal4Nounclass2=the fourth
+repeatOrdinal5Nounclass2=the fifth
+repeatOrdinal-1Nounclass2=the last
+
+# LOCALIZATION NOTE (yearlyNthOn):
+# Edit recurrence window -> Recurrence pattern -> Yearly repeat rules
+# %1$S - month name
+# %2$S - day of month possibly followed by an ordinal symbol (depending on the string
+# dayOrdinalSymbol in dateFormat.properties)
+# #3 - yearly interval
+# e.g. "every 3 years on December 14"
+# "every 2 years on December 8th"
+yearlyNthOn=every %1$S %2$S;every #3 years on %1$S %2$S
+
+# LOCALIZATION NOTE (yearlyNthOnNthOfNounclass...):
+# Edit recurrence window -> Recurrence pattern -> Yearly repeat rules
+# Translate these strings according to noun class/gender of weekday (%2$S)
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - ordinal with article and noun class/gender corresponding to weekday
+# %2$S - weekday
+# %3$S - month
+# #4 - yearly interval
+# e.g. "the second Monday of every March"
+# e.g "every 3 years the second Monday of March"
+yearlyNthOnNthOfNounclass1=%1$S %2$S of every %3$S;every #4 years on %1$S %2$S of %3$S
+yearlyNthOnNthOfNounclass2=%1$S %2$S of every %3$S;every #4 years on %1$S %2$S of %3$S
+
+# LOCALIZATION NOTE (yearlyOnEveryNthOfNthNounclass...):
+# Edit recurrence window -> Recurrence pattern -> Yearly repeat rules
+# Translate these strings according to noun class/gender of weekday (%1$S)
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - weekday
+# %2$S - month
+# #3 - yearly interval
+# e.g. "every Thursday of March"
+# e.g "every 3 years on every Thursday of March"
+yearlyOnEveryNthOfNthNounclass1=every %1$S of %2$S;every #3 years on every %1$S of %2$S
+yearlyOnEveryNthOfNthNounclass2=every %1$S of %2$S;every #3 years on every %1$S of %2$S
+
+#LOCALIZATION NOTE (yearlyEveryDayOf):
+# Edit recurrence window -> Recurrence pattern -> Yearly repeat rules
+# This string describes part of a yearly rule which includes every day of a month.
+# %1$S - month
+# #2 - yearly interval
+# e.g. "every day of December"
+# e.g. "every 3 years every day of December"
+yearlyEveryDayOf=every day of %1$S;every #2 years every day of %1$S
+
+repeatDetailsMonth1=January
+repeatDetailsMonth2=February
+repeatDetailsMonth3=March
+repeatDetailsMonth4=April
+repeatDetailsMonth5=May
+repeatDetailsMonth6=June
+repeatDetailsMonth7=July
+repeatDetailsMonth8=August
+repeatDetailsMonth9=September
+repeatDetailsMonth10=October
+repeatDetailsMonth11=November
+repeatDetailsMonth12=December
+
+# LOCALIZATION NOTE (repeatCount):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event start time (e.g. hh:mm (PM/AM))
+# %4$S - event end time (e.g. hh:mm (PM/AM))
+# #5 - event occurrence times: number
+# e.g. with monthlyRuleNthOfEvery:
+# "Occurs the first Sunday of every 3 month
+# only on 1/1/2009"
+# from 5:00 PM to 6:00 PM"
+# "Occurs the first Sunday of every 3 month
+# effective 1/1/2009 for 5 times
+# from 5:00 PM to 6:00 PM"
+repeatCount=Occurs %1$S\neffective %2$S for #5 time\nfrom %3$S to %4$S.;Occurs %1$S\neffective %2$S for #5 times\nfrom %3$S to %4$S.
+
+# LOCALIZATION NOTE (repeatCountAllDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# #3 - event occurrence times: number
+# e.g. with monthlyRuleNthOfEvery:
+# "Occurs the first Sunday of every 3 month
+# only on 1/1/2009"
+# "Occurs the first Sunday of every 3 month
+# effective 1/1/2009 for 5 times"
+repeatCountAllDay=Occurs %1$S\neffective %2$S for #3 time.;Occurs %1$S\neffective %2$S for #3 times.
+
+# LOCALIZATION NOTE (repeatDetailsUntil):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event end date (e.g. mm/gg/yyyy)
+# %4$S - event start time (e.g. hh:mm (PM/AM))
+# %5$S - event end time (e.g. hh:mm (PM/AM))
+# e.g. with weeklyNthOn:
+# "Occurs every 2 weeks on Sunday and Friday
+# effective 1/1/2009 until 1/1/2010
+# from 5:00 PM to 6:00 PM"
+repeatDetailsUntil=Occurs %1$S\neffective %2$S until %3$S\nfrom %4$S to %5$S.
+
+# LOCALIZATION NOTE (repeatDetailsUntilAllDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event end date (e.g. mm/gg/yyyy)
+# e.g. with monthlyDaysOfNth and all day event:
+# "Occurs day 3 of every 5 month
+# effective 1/1/2009 until 1/1/2010"
+repeatDetailsUntilAllDay=Occurs %1$S\neffective %2$S until %3$S.
+
+# LOCALIZATION NOTE (repeatDetailsInfinite):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event start time (e.g. hh:mm (PM/AM))
+# %4$S - event end time (e.g. hh:mm (PM/AM))
+# e.g. with monthlyDaysOfNth:
+# "Occurs day 3 of every 5 month
+# effective 1/1/2009
+# from 5:00 PM to 6:00 PM"
+repeatDetailsInfinite=Occurs %1$S\neffective %2$S\nfrom %3$S to %4$S.
+
+# LOCALIZATION NOTE (repeatDetailsInfiniteAllDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# e.g. with monthlyDaysOfNth and all day event:
+# "Occurs day 3 of every 5 month
+# effective 1/1/2009"
+repeatDetailsInfiniteAllDay=Occurs %1$S\neffective %2$S.
+
+# LOCALIZATION NOTE (monthlyLastDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# A monthly rule with one or more days of the month (monthlyDaysOfNth) and the
+# string "the last day" of the month.
+# e.g.: "Occurs day 15, 20, 25 and the last day of every 3 months"
+monthlyLastDay=the last day
+
+# LOCALIZATION NOTE (ruleTooComplex):
+# This string is shown in the repeat details area if our code can't handle the
+# complexity of the recurrence rule yet.
+ruleTooComplex=Click here for details
+
+# LOCALIZATION NOTE (ruleTooComplexSummary):
+# This string is shown in the event summary dialog if our code can't handle the
+# complexity of the recurrence rule yet.
+ruleTooComplexSummary=Repeat details unknown
+
+# differences between the dialog for an Event or a Task
+newEvent=New Event
+newTask=New Task
+itemMenuLabelEvent=Event
+itemMenuAccesskeyEvent2=T
+itemMenuLabelTask=Task
+itemMenuAccesskeyTask2=T
+
+emailSubjectReply=Re: %1$S
+
+# Link Location Dialog
+specifyLinkLocation=Please specify the link location
+enterLinkLocation=Enter a web page, or document location.
+
+summaryDueTaskLabel=Due:
+
+# Attach File Dialog
+attachViaFilelink=File using %1$S
+selectAFile=Please select the file(s) to attach
+removeCalendarsTitle=Remove Attachments
+
+# LOCALIZATION NOTE (removeAttachmentsText): Semi-colon list of plural forms for
+# prompting attachment removal.
+# See http://developer.mozilla.org/en/Localization_and_Plurals
+removeAttachmentsText=Do you really want to remove #1 attachment?;Do you really want to remove #1 attachments?
+
+# Recurrence Dialog Widget Order
+# LOCALIZATION NOTE: You can change the order of below params
+# Edit recurrence window -> Recurrence pattern -> Repeat monthly
+# %1$S - ordinal with article, %2$S - weekday
+# e.g. "the First Saturday"
+# DONT_TRANSLATE: Make sure there are no extra words in this property, just variables.
+monthlyOrder=%1$S %2$S
+
+# Edit recurrence window -> Recurrence pattern -> Repeat yearly
+# %1$S - day of month, %2$S - of, %3$S - month
+# e.g. "6 [of] September"
+# If you don't need %2$S in your locale - please put this on the third place.
+# DONT_TRANSLATE: Make sure there are no extra words in this property, just variables.
+yearlyOrder=%1$S %3$S %2$S
+
+# Edit recurrence window -> Recurrence pattern -> Repeat yearly
+# %1$S - ordinal with article, %2$S - weekday, %3$S - of, %4$S - month
+# e.g. "the First Saturday of September"
+# If you don't need %3$S in your locale - please put this on the third place.
+# DONT_TRANSLATE: Make sure there are no extra words in this property, just variables.
+yearlyOrder2=%1$S %2$S %3$S %4$S
+
+# LOCALIZATION NOTE (pluralForWeekdays):
+# This string allows to set the use of weekdays nouns in plural form for
+# languages that need them in sentences like "every Monday" or "every Sunday
+# of March" etc.
+# Rule strings involved by this setting are:
+# - weeklyNthOn (only the first part) e.g. "every Sunday"
+# - monthlyEveryOfEvery
+# e.g. "every Monday of every month;every Monday every 2 months"
+# - yearlyOnEveryNthOfNth
+# e.g. "every Friday of March;every 2 years on every Friday of March"
+# In your local write:
+# "true" if sentences like those above need weekday in plural form;
+# "false" if sentences like those above don't need weekday in plural form;
+pluralForWeekdays=false
+
+# LOCALIZATION NOTE (repeatDetailsDayxxxPlural):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# Weekdays in plural form used inside sentences like "every Monday" or
+# "every Sunday of May" etc. for languages that need them.
+# These plurals will be used inside the following rule strings only if string
+# 'pluralForWeekdays' (see above) is set to "true":
+# - weeklyNthOn (only the first part) e.g. "every Sunday"
+# - monthlyEveryOfEvery
+# e.g. "every Monday of every month;every Monday every 2 months"
+# - yearlyOnEveryNthOfNth
+# e.g. "every Friday of March;every 2 years on every Friday of March"
+repeatDetailsDay1Plural=Sunday
+repeatDetailsDay2Plural=Monday
+repeatDetailsDay3Plural=Tuesday
+repeatDetailsDay4Plural=Wednesday
+repeatDetailsDay5Plural=Thursday
+repeatDetailsDay6Plural=Friday
+repeatDetailsDay7Plural=Saturday
+
+# LOCALIZATION NOTE (eventRecurrenceForeverLabel):
+# Edit/New Event dialog -> datepicker that sets the until date.
+# For recurring rules that repeat forever, this labels appears in the
+# datepicker, below the minimonth, as an option for the until date.
+eventRecurrenceForeverLabel=Forever
+
+# LOCALIZATION NOTE (eventRecurrenceMonthlyLastDayLabel):
+# Edit dialog recurrence -> Monthly Recurrence pattern -> Monthly daypicker
+# The label on the monthly daypicker's last button that allows to select
+# the last day of the month inside a BYMONTHDAY rule.
+eventRecurrenceMonthlyLastDayLabel=Last day
+
+# LOCALIZATION NOTE (counterSummaryAccepted) - this is only visible when opening the dialog from the
+# email summary view after receiving a counter message
+# %1$S - the name or email address of the replying attendee
+counterSummaryAccepted=%1$S has accepted the invitation, but made a counter proposal:
+
+# LOCALIZATION NOTE (counterSummaryDeclined) - this is only visible when opening the dialog from the
+# email summary view after receiving a counter message
+# %1$S - the name or email address of the replying attendee
+counterSummaryDeclined=%1$S has declined the invitation, but made a counter proposal:
+
+# LOCALIZATION NOTE (counterSummaryDelegated) - this is only visible when opening the dialog from the
+# email summary view after receiving a counter message
+# %1$S - the name or email address of the replying attendee
+counterSummaryDelegated=%1$S has delegated the invitation, but made a counter proposal:
+
+# LOCALIZATION NOTE (counterSummaryNeedsAction) - this is only visible when opening the dialog from the
+# email summary view after receiving a counter message
+# %1$S - the name or email address of the replying attendee
+counterSummaryNeedsAction=%1$S hasn’t decided whether to participate and made a counter proposal:
+
+# LOCALIZATION NOTE (counterSummaryTentative) - this is only visible when opening the dialog from the
+# email summary view after receiving a counter message
+# %1$S - the name or email address of the replying attendee
+counterSummaryTentative=%1$S has accepted the invitation only tentatively and made a counter proposal:
+
+# LOCALIZATION NOTE (counterOnPreviousVersionNotification) - this is only visible when opening the
+# dialog from the email summary view after receiving a counter message
+counterOnPreviousVersionNotification=This is a counter proposal for a previous version of this event.
+
+# LOCALIZATION NOTE (counterOnCounterDisallowedNotification) - this is only visible when opening the
+# dialog from the email summary view after receiving a counter message
+counterOnCounterDisallowedNotification=You disallowed countering when sending out the invitation.
+
+# LOCALIZATION NOTE (eventAccepted) - this will be displayed as notification
+# in the summary dialog if the user has accepted the event invitation
+eventAccepted=You have accepted this invitation
+
+# LOCALIZATION NOTE (eventTentative) - this will be displayed as notification
+# in the summary dialog if the user has accepted the event invitation tentatively
+eventTentative=You have accepted this invitation tentatively
+
+# LOCALIZATION NOTE (eventDeclined) - this will be displayed as notification
+# in the summary dialog if the user has declined the event invitation
+eventDeclined=You have declined this invitation
+
+# LOCALIZATION NOTE (eventDelegated) - this will be displayed as notification
+# in the summary dialog if the user has delegated his/her participation to one
+# or more other participants (without attending / working on it his/herself)
+eventDelegated=You have delegated this invitation
+
+# LOCALIZATION NOTE (eventNeedsAction) - this will be displayed as notification
+# in the summary dialog if the user hasn't yet responded to an invitation
+eventNeedsAction=You haven’t yet responded to this invitation
+
+# LOCALIZATION NOTE (taskAccepted) - this will be displayed as notification
+# in the summary dialog if the user has accepted the assigned task
+taskAccepted=You have accepted to work on this task
+
+# LOCALIZATION NOTE (taskTentative) - this will be displayed as notification
+# in the summary dialog if the user has accepted tentatively the assigned task
+taskTentative=You have tentatively accepted to work on this task
+
+# LOCALIZATION NOTE (taskDeclined) - this will be displayed as notification
+# in the summary dialog if the user has declined the assigned task
+taskDeclined=You have declined to work on this task
+
+# LOCALIZATION NOTE (taskDelegated) - this will be displayed as notification
+# in the summary dialog if the user has delegated his/her assignment to one or
+# more others (without attending / working on it his/herself)
+taskDelegated=You have delegated the work on this task
+
+# LOCALIZATION NOTE (taskNeedsAction) - this will be displayed as notification
+# in the summary dialog if the user hasn't yet responded to the task assignment
+taskNeedsAction=You haven’t yet responded to this task assignment
+
+# LOCALIZATION NOTE (taskInProgress) - this will be displayed as notification
+# in the summary dialog if the user is working on an assigned task
+taskInProgress=You have started to work on this assigned task
+
+# LOCALIZATION NOTE (taskCompleted) - this will be displayed as notification
+# in the summary dialog if the user has completed the work on this assigned task
+taskCompleted=You have completed your work on this assigned task
+
+# LOCALIZATION NOTE (sendandcloseButtonLabel) - this is a runtime replacement for
+# event.toolbar.saveandclose.label in the event dialog/tab toolbar if attendees
+# will be notified on saving & closing
+sendandcloseButtonLabel=Send And Close
+
+# LOCALIZATION NOTE (sendandcloseButtonTooltip) - this is a runtime replacement for
+# event.toolbar.saveandclose.tooltip in the event dialog/tab toolbar if attendees
+# will be notified on saving & closing
+sendandcloseButtonTooltip=Notify attendees and close
+
+# LOCALIZATION NOTE (saveandsendButtonLabel) - this is a runtime replacement for
+# event.toolbar.save.label2 in the event dialog/tab toolbar if attendees
+# will be notified on saving
+saveandsendButtonLabel=Save And Send
+
+# LOCALIZATION NOTE (saveandsendButtonTooltip) - this is a runtime replacement
+# for event.toolbar.save.tooltip2 in the event dialog/tab toolbar if attendees
+# will be notified on saving
+saveandsendButtonTooltip=Save and notify attendees
+
+# LOCALIZATION NOTE (saveandsendMenuLabel) - this is a runtime replacement for
+# event.menu.item.save.label in the event dialog/tab toolbar if attendees
+# will be notified on saving
+saveandsendMenuLabel=Save and Send
+
+# LOCALIZATION NOTE (sendandcloseMenuLabel) - this is a runtime replacement for
+# event.menu.item.saveandclose.label in the event dialog/tab toolbar if attendees
+# will be notified on saving
+sendandcloseMenuLabel=Send and Close
+
+# LOCALIZATION NOTE (attendeesTabLabel) - this is a runtime replacement for
+# event.attendees.label defined in calendar-event-dialog.dtd and used in the
+# event dialog/tab as attendee tab label if an event has at least one attendee
+# %1$S - the number of attendee (1-n)
+attendeesTabLabel=Attendees (%1$S):
+
+# LOCALIZATION NOTE (attachmentsTabLabel) - this is a runtime replacement for
+# event.attachments.label defined in calendar-event-dialog.dtd and used in the
+# event dialog/tab as attendee tab label if an event has at least one attachment
+# %1$S - the number of attachments (1-n)
+attachmentsTabLabel=Attachments (%1$S):
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-extract.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-extract.properties
new file mode 100644
index 0000000000..89fe718758
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-extract.properties
@@ -0,0 +1,294 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE:
+# Strings here are used to create events and tasks with start and end times
+# based on email content.
+# None of the strings are displayed in the user interface.
+#
+# You don't have to fill all from.*, until.*, *.prefix and *.suffix patterns.
+# It's ok to leave some empty.
+# Please consider declensions and gender if your language has them.
+# Don't just translate directly. The number of variants doesn't have to be
+# the same as in en-US. All of 0, 1, 2, etc is allowed in patterns except alphabet
+# pattern. You can and should add language specific variants.
+#
+# There are two different ways to find a start time text in email:
+# 1) it matches a from.* pattern and does not have end.prefix or end.suffix next to it
+# 2) it matches until.* pattern and has start.prefix or start.suffix next to it
+# Similar inverse logic applies to end times.
+# These rules enable using prefix and suffix values with only start.* or only until.*
+# patterns localized for some languages and thus not having to repeat the same
+# values in both.
+#
+# Patterns are partially space-insensitive.
+# "deadline is" pattern will find both "deadlineis" and "deadline is"
+# but "deadlineis" won't find "deadline is" or "deadline is".
+# Therefore you should include all spaces that are valid within a pattern.
+
+# LOCALIZATION NOTE (start.prefix):
+# datetimes with these in front are extracted as start times
+# can be a list of values, separate variants by |
+start.prefix =
+
+# LOCALIZATION NOTE (start.suffix):
+# datetimes followed by these are extracted as start times
+start.suffix = by | until | to | - | till | til | and
+
+# LOCALIZATION NOTE (end.prefix):
+# datetimes with these in front are extracted as end times
+end.prefix = by | until | to | - | till | til | and | due: | due | ends | deadline is | deadline:
+
+# LOCALIZATION NOTE (end.suffix):
+# datetimes followed by these are extracted as end times
+# can be a list of values, separate variants by |
+end.suffix =
+
+# LOCALIZATION NOTE (no.datetime.prefix):
+# datetimes with these in front won't be used
+# specify full words here
+no.datetime.prefix = last week | sent | email | e-mail | instead of | > | unfortunately | in | not
+
+# LOCALIZATION NOTE (no.datetime.suffix):
+# datetimes followed by these won't be used
+no.datetime.suffix = floor | flr | : | email | e-mail | > | % | usd | dollars | $
+
+# LOCALIZATION NOTE (from.*):
+# can be a list of values, separate variants by |
+
+# LOCALIZATION NOTE (from.today):
+# must not be empty!
+from.today = today
+
+from.tomorrow = tomorrow
+# LOCALIZATION NOTE (until.*):
+# can be a list of values, separate variants by |
+until.tomorrow =
+
+# LOCALIZATION NOTE (from.ordinal.date):
+# #1 = matches numbers 1-31 and number.x
+# should not have "#1" as this would match any single number in email to a time
+from.ordinal.date = #1st | #1nd | #1rd | #1th
+
+# LOCALIZATION NOTE (until.ordinal.date):
+# #1 = matches numbers 1-31 and number.x
+until.ordinal.date =
+
+from.noon = noon
+until.noon =
+
+# LOCALIZATION NOTE (from.hour):
+# #1 = matches numbers 0-23 and number.0-number.23
+# should not have "#1" as this would match any single number in email to a time
+from.hour = at #1 | around #1 | #1 - | #1 to
+
+# LOCALIZATION NOTE (until.hour):
+# #1 = matches numbers 0-23 and number.0-number.23
+# should also list how to find end of a timeframe
+until.hour = - #1 | to #1 | until #1 | by #1
+
+# LOCALIZATION NOTE (from.hour.am):
+# #1 = matches numbers 0-23 and number.0-number.23
+from.hour.am = #1 am | #1 a.m
+
+# LOCALIZATION NOTE (until.hour.am):
+# #1 = matches numbers 0-23 and number.0-number.23
+# should also list how to find end of a timeframe
+until.hour.am =
+
+# LOCALIZATION NOTE (from.hour.pm):
+# #1 = matches numbers 0-23 and number.0-number.23
+from.hour.pm = #1 pm | #1 p.m | #1 p
+
+# LOCALIZATION NOTE (until.hour.pm):
+# #1 = matches numbers 0-23 and number.0-number.23
+# should also list how to find end of a timeframe
+until.hour.pm =
+
+# LOCALIZATION NOTE (from.half.hour.before):
+# denotes times 30 minutes before next full hour
+from.half.hour.before = half an hour before #1
+
+# LOCALIZATION NOTE (until.half.hour.before):
+# denotes times 30 minutes before next full hour
+until.half.hour.before =
+
+# LOCALIZATION NOTE (from.half.hour.after):
+# denotes times 30 minutes after last full hour
+from.half.hour.after = half past #1
+
+# LOCALIZATION NOTE (until.half.hour.after):
+# denotes times 30 minutes after last full hour
+until.half.hour.after =
+
+# LOCALIZATION NOTE (from.hour.minutes):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+from.hour.minutes = #1:#2 | at #1#2
+
+# LOCALIZATION NOTE (until.hour.minutes):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+until.hour.minutes =
+
+# LOCALIZATION NOTE (from.hour.minutes.am):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+from.hour.minutes.am = #1:#2 am | #1:#2 a.m
+
+# LOCALIZATION NOTE (until.hour.minutes.am):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+until.hour.minutes.am =
+
+# LOCALIZATION NOTE (from.hour.minutes.pm):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+from.hour.minutes.pm = #1:#2 pm | #1:#2 p.m | #1:#2 p
+
+# LOCALIZATION NOTE (until.hour.minutes.pm):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+until.hour.minutes.pm =
+
+# LOCALIZATION NOTE (from.monthname.day):
+# #1 = matches numbers 1-31 and number.x
+# #2 = matches monthname
+from.monthname.day = #1 #2 | #2 #1 | #2 #1st | #2 #1nd | #2 #1rd | #2 #1th | #1st of #2 | #1nd of #2 | #1rd of #2 | #1th of #2
+
+# LOCALIZATION NOTE (until.monthname.day):
+# #1 = matches numbers 1-31
+# #2 = matches monthname
+until.monthname.day =
+
+# LOCALIZATION NOTE (from.month.day):
+# #1 = matches numbers 1-31
+# #2 = matches numbers 1-12
+from.month.day = #2/#1
+
+# LOCALIZATION NOTE (until.month.day):
+# #1 = matches numbers 1-31 and number.x
+# #2 = matches numbers 1-12
+until.month.day =
+
+# LOCALIZATION NOTE (from.year.month.day):
+# #1 = matches numbers 1-31
+# #2 = matches numbers 1-12
+# #3 = matches 2/4 numbers
+from.year.month.day = #2/#1/#3 | #3/#2/#1 | #3-#2-#1
+
+# LOCALIZATION NOTE (until.year.month.day):
+# #1 = matches numbers 1-31
+# #2 = matches numbers 1-12
+# #3 = matches 2/4 numbers
+until.year.month.day =
+
+# LOCALIZATION NOTE (from.year.monthname.day):
+# #1 = matches numbers 1-31
+# #2 = matches monthname
+# #3 = matches 2/4 numbers
+from.year.monthname.day = #1 #2 #3 | #1st #2 #3 | #1nd #2 #3 | #1rd #2 #3 | #1th #2 #3 | #2 #1, #3 | #3-#2-#1
+
+# LOCALIZATION NOTE (until.year.monthname.day):
+# #1 = matches numbers 1-31
+# #2 = matches monthname
+# #3 = matches 2/4 numbers
+until.year.monthname.day =
+
+# LOCALIZATION NOTE (duration.*):
+# can be a list of values, separate variants by |
+
+# LOCALIZATION NOTE (duration.minutes):
+# #1 = matches 1/2 numbers and number.0 - and number.31
+duration.minutes = #1 minutes | #1 min | #1 mins
+
+# LOCALIZATION NOTE (duration.hours):
+# #1 = matches 1/2 numbers and number.0 - and number.31
+duration.hours = #1 hour | #1 hours
+
+# LOCALIZATION NOTE (duration.days):
+# #1 = matches 1/2 numbers and number.0 - and number.31
+duration.days = #1 days
+
+# LOCALIZATION NOTE (month.*):
+# can be a list of values, separate variants by |
+month.1 = january | jan | jan.
+month.2 = february | feb | feb.
+month.3 = march | mar | mar.
+month.4 = april | apr | apr.
+month.5 = may
+month.6 = june | jun | jun.
+month.7 = july | jul | jul.
+month.8 = august | aug | aug.
+month.9 = september | sep | sep. | sept.
+month.10 = october | oct | oct.
+month.11 = november | nov | nov.
+month.12 = december | dec | dec.
+
+# LOCALIZATION NOTE (from.weekday.*):
+# used to derive start date based on weekdays mentioned
+# can be a list of values, separate variants by |
+# LOCALIZATION NOTE (from.weekday.0):
+# Regardless of what the first day of the week is in your country, 0 is Sunday here.
+from.weekday.0 = sunday | sundays
+from.weekday.1 = monday | mondays
+from.weekday.2 = tuesday | tuesdays
+from.weekday.3 = wednesday | wednesdays
+from.weekday.4 = thursday | thursdays
+from.weekday.5 = friday | fridays
+from.weekday.6 = saturday | saturdays
+
+# LOCALIZATION NOTE (until.weekday.*):
+# used to derive end date based on weekdays mentioned
+# can be a list of values, separate variants by |
+# LOCALIZATION NOTE (until.weekday.0):
+# Regardless of what the first day of the week is in your country, 0 is Sunday here.
+until.weekday.0 =
+until.weekday.1 =
+until.weekday.2 =
+until.weekday.3 =
+until.weekday.4 =
+until.weekday.5 =
+until.weekday.6 =
+
+# LOCALIZATION NOTE (number.*):
+# used within other patterns to understand dates where day of month isn't written with digits
+# can be a list of values, separate variants by |
+number.0 = zero
+number.1 = one | first
+number.2 = two | second
+number.3 = three | third
+number.4 = four | fourth
+number.5 = five | fifth
+number.6 = six | sixth
+number.7 = seven | seventh
+number.8 = eight | eighth
+number.9 = nine | ninth
+number.10 = ten | tenth
+number.11 = eleven | eleventh
+number.12 = twelve | twelfth
+number.13 = thirteen | thirteenth
+number.14 = fourteen | fourteenth
+number.15 = fifteen | fifteenth
+number.16 = sixteen | sixteenth
+number.17 = seventeen | seventeenth
+number.18 = eighteen | eighteenth
+number.19 = nineteen | nineteenth
+number.20 = twenty | twentieth
+number.21 = twenty one | twenty first
+number.22 = twenty two | twenty second
+number.23 = twenty three | twenty third
+number.24 = twenty four | twenty fourth
+number.25 = twenty five | twenty fifth
+number.26 = twenty six | twenty sixth
+number.27 = twenty seven | twenty seventh
+number.28 = twenty eight | twenty eighth
+number.29 = twenty nine | twenty ninth
+number.30 = thirty | thirtieth
+number.31 = thirty one | thirty first
+
+# LOCALIZATION NOTE (alphabet):
+# list all lower and uppercase letters if your language has an alphabet
+# otherwise leave it empty
+alphabet = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-invitations-dialog.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-invitations-dialog.dtd
new file mode 100644
index 0000000000..eb5b5e9f13
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-invitations-dialog.dtd
@@ -0,0 +1,13 @@
+<!-- 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 http://mozilla.org/MPL/2.0/.
+-->
+
+<!-- Calendar Invitations Dialog -->
+<!ENTITY calendar.invitations.dialog.invitations.text "Invitations">
+<!ENTITY calendar.invitations.dialog.statusmessage.updating.text "Updating list of invitations.">
+<!ENTITY calendar.invitations.dialog.statusmessage.noinvitations.text "No unconfirmed invitations found.">
+
+<!-- Calendar Invitations List -->
+<!ENTITY calendar.invitations.list.accept.button.label "Accept">
+<!ENTITY calendar.invitations.list.decline.button.label "Decline">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-invitations-dialog.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-invitations-dialog.properties
new file mode 100644
index 0000000000..ff2b43899a
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-invitations-dialog.properties
@@ -0,0 +1,10 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+allday-event=All day event
+recurrent-event=Repeating event
+location=Location: %S
+organizer=Organizer: %S
+attendee=Attendee: %S
+none=None
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-occurrence-prompt.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-occurrence-prompt.dtd
new file mode 100644
index 0000000000..5864a9335f
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-occurrence-prompt.dtd
@@ -0,0 +1,7 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY buttons.occurrence.accesskey "t">
+<!ENTITY buttons.allfollowing.accesskey "f">
+<!ENTITY buttons.parent.accesskey "a">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-occurrence-prompt.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-occurrence-prompt.properties
new file mode 100644
index 0000000000..c3c9abae05
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar-occurrence-prompt.properties
@@ -0,0 +1,53 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+header.isrepeating.event.label=is a repeating event
+header.isrepeating.task.label=is a repeating task
+header.containsrepeating.event.label=contains repeating events
+header.containsrepeating.task.label=contains repeating tasks
+header.containsrepeating.mixed.label=contains repeating items of different type
+
+windowtitle.event.copy=Copy Repeating Event
+windowtitle.task.copy=Copy Repeating Task
+windowtitle.mixed.copy=Copy Repeating Items
+windowtitle.event.cut=Cut Repeating Event
+windowtitle.task.cut=Cut Repeating Task
+windowtitle.mixed.cut=Cut Repeating Items
+windowtitle.event.delete=Delete Repeating Event
+windowtitle.task.delete=Delete Repeating Task
+windowtitle.mixed.delete=Delete Repeating Items
+windowtitle.event.edit=Edit Repeating Event
+windowtitle.task.edit=Edit Repeating Task
+windowtitle.mixed.edit=Edit Repeating Items
+windowtitle.multipleitems=Selected items
+
+buttons.single.occurrence.copy.label=Copy only this occurrence
+buttons.single.occurrence.cut.label=Cut only this occurrence
+buttons.single.occurrence.delete.label=Delete only this occurrence
+buttons.single.occurrence.edit.label=Edit only this occurrence
+
+buttons.multiple.occurrence.copy.label=Copy only selected occurrences
+buttons.multiple.occurrence.cut.label=Cut only selected occurrences
+buttons.multiple.occurrence.delete.label=Delete only selected occurrences
+buttons.multiple.occurrence.edit.label=Edit only selected occurrences
+
+buttons.single.allfollowing.copy.label=Copy this and all future occurrences
+buttons.single.allfollowing.cut.label=Cut this and all future occurrences
+buttons.single.allfollowing.delete.label=Delete this and all future occurrences
+buttons.single.allfollowing.edit.label=Edit this and all future occurrences
+
+buttons.multiple.allfollowing.copy.label=Copy selected and all future occurrences
+buttons.multiple.allfollowing.cut.label=Cut selected and all future occurrences
+buttons.multiple.allfollowing.delete.label=Delete selected and all future occurrences
+buttons.multiple.allfollowing.edit.label=Edit selected and all future occurrences
+
+buttons.single.parent.copy.label=Copy all occurrences
+buttons.single.parent.cut.label=Cut all occurrences
+buttons.single.parent.delete.label=Delete all occurrences
+buttons.single.parent.edit.label=Edit all occurrences
+
+buttons.multiple.parent.copy.label=Copy all occurrences of selected items
+buttons.multiple.parent.cut.label=Cut all occurrences of selected items
+buttons.multiple.parent.delete.label=Delete all occurrences of selected items
+buttons.multiple.parent.edit.label=Edit all occurrences of selected items
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar.dtd
new file mode 100644
index 0000000000..15b29ada20
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar.dtd
@@ -0,0 +1,411 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- General -->
+<!ENTITY calendar.calendar.label "Calendar">
+<!ENTITY calendar.calendar.accesskey "C">
+
+<!ENTITY calendar.newevent.button.tooltip "Create a new event" >
+<!ENTITY calendar.newtask.button.tooltip "Create a new task" >
+
+<!ENTITY calendar.unifinder.todoitems.label "Tasks" >
+
+<!ENTITY calendar.unifinder.showcompletedtodos.label "Show completed Tasks">
+
+<!ENTITY calendar.today.button.label "Today">
+<!ENTITY calendar.tomorrow.button.label "Tomorrow">
+<!ENTITY calendar.upcoming.button.label "Upcoming">
+
+<!ENTITY calendar.events.filter.all.label "All Events">
+<!ENTITY calendar.events.filter.today.label "Today’s Events">
+<!ENTITY calendar.events.filter.future.label "All Future Events">
+<!ENTITY calendar.events.filter.current.label "Currently Selected Day">
+<!ENTITY calendar.events.filter.currentview.label "Events in Current View">
+<!ENTITY calendar.events.filter.next7Days.label "Events in the Next 7 Days">
+<!ENTITY calendar.events.filter.next14Days.label "Events in the Next 14 Days">
+<!ENTITY calendar.events.filter.next31Days.label "Events in the Next 31 Days">
+<!ENTITY calendar.events.filter.thisCalendarMonth.label "Events in this Calendar Month">
+
+<!-- LOCALIZATION NOTE(calendar.unifinder.tree.done.tooltip)
+ - This label and tooltip is used for the column with the checkbox in the
+ - task tree view. -->
+<!ENTITY calendar.unifinder.tree.done.label "Done">
+<!ENTITY calendar.unifinder.tree.done.tooltip2 "Sort by completion">
+<!ENTITY calendar.unifinder.tree.priority.label "Priority">
+<!ENTITY calendar.unifinder.tree.priority.tooltip2 "Sort by priority">
+<!ENTITY calendar.unifinder.tree.title.label "Title">
+<!ENTITY calendar.unifinder.tree.title.tooltip2 "Sort by title">
+<!ENTITY calendar.unifinder.tree.percentcomplete.label "&#37; Complete">
+<!ENTITY calendar.unifinder.tree.percentcomplete.tooltip2 "Sort by &#37; complete">
+<!ENTITY calendar.unifinder.tree.startdate.label "Start">
+<!ENTITY calendar.unifinder.tree.startdate.tooltip2 "Sort by start date">
+<!ENTITY calendar.unifinder.tree.enddate.label "End">
+<!ENTITY calendar.unifinder.tree.enddate.tooltip2 "Sort by end date">
+<!ENTITY calendar.unifinder.tree.duedate.label "Due">
+<!ENTITY calendar.unifinder.tree.duedate.tooltip2 "Sort by due date">
+<!ENTITY calendar.unifinder.tree.completeddate.label "Completed">
+<!ENTITY calendar.unifinder.tree.completeddate.tooltip2 "Sort by completed date">
+<!ENTITY calendar.unifinder.tree.categories.label "Category">
+<!ENTITY calendar.unifinder.tree.categories.tooltip2 "Sort by category">
+<!ENTITY calendar.unifinder.tree.location.label "Location">
+<!ENTITY calendar.unifinder.tree.location.tooltip2 "Sort by location">
+<!ENTITY calendar.unifinder.tree.status.label "Status">
+<!ENTITY calendar.unifinder.tree.status.tooltip2 "Sort by status">
+<!ENTITY calendar.unifinder.tree.calendarname.label "Calendar Name">
+<!ENTITY calendar.unifinder.tree.calendarname.tooltip2 "Sort by calendar name">
+<!ENTITY calendar.unifinder.tree.duration.label "Due in">
+<!ENTITY calendar.unifinder.tree.duration.tooltip2 "Sort by time until due">
+<!ENTITY calendar.unifinder.close.tooltip "Close event search and event list">
+
+<!ENTITY calendar.today.button.tooltip "Go to Today" >
+<!ENTITY calendar.todaypane.button.tooltip "Show Today Pane" >
+
+<!ENTITY calendar.day.button.tooltip "Switch to day view" >
+<!ENTITY calendar.week.button.tooltip "Switch to week view" >
+<!ENTITY calendar.month.button.tooltip "Switch to month view" >
+<!ENTITY calendar.multiweek.button.tooltip "Switch to multiweek view" >
+
+<!ENTITY calendar.nextday.label "Next Day" >
+<!ENTITY calendar.prevday.label "Previous Day" >
+<!ENTITY calendar.nextday.accesskey "x" >
+<!ENTITY calendar.prevday.accesskey "s" >
+<!ENTITY calendar.nextweek.label "Next Week" >
+<!ENTITY calendar.prevweek.label "Previous Week" >
+<!ENTITY calendar.nextweek.accesskey "x" >
+<!ENTITY calendar.prevweek.accesskey "s" >
+<!ENTITY calendar.nextmonth.label "Next Month" >
+<!ENTITY calendar.prevmonth.label "Previous Month" >
+<!ENTITY calendar.nextmonth.accesskey "x" >
+<!ENTITY calendar.prevmonth.accesskey "s" >
+
+<!ENTITY calendar.navigation.nextday.tooltip "One Day Forward" >
+<!ENTITY calendar.navigation.prevday.tooltip "One Day Back" >
+<!ENTITY calendar.navigation.nextweek.tooltip "One Week Forward" >
+<!ENTITY calendar.navigation.prevweek.tooltip "One Week Back" >
+<!ENTITY calendar.navigation.nextmonth.tooltip "One Month Forward" >
+<!ENTITY calendar.navigation.prevmonth.tooltip "One Month Back" >
+
+<!ENTITY calendar.newevent.button.label "New Event" >
+<!ENTITY calendar.newtask.button.label "New Task" >
+<!ENTITY calendar.print.button.label "Print" >
+<!ENTITY calendar.print.button.accesskey "P">
+
+<!ENTITY calendar.day.button.label "Day" >
+<!ENTITY calendar.week.button.label "Week" >
+<!ENTITY calendar.month.button.label "Month" >
+<!ENTITY calendar.multiweek.button.label "Multiweek" >
+<!ENTITY calendar.onlyworkday.checkbox.label "Workweek days only" >
+<!ENTITY calendar.onlyworkday.checkbox.accesskey "r" >
+<!ENTITY calendar.displaytodos.checkbox.label "Tasks in View" >
+<!ENTITY calendar.displaytodos.checkbox.accesskey "k" >
+<!ENTITY calendar.completedtasks.checkbox.label "Show completed Tasks" >
+<!ENTITY calendar.completedtasks.checkbox.accesskey "c" >
+
+<!ENTITY calendar.orientation.label "Rotate View" >
+<!ENTITY calendar.orientation.accesskey "o" >
+
+<!ENTITY calendar.search.options.searchfor " contain">
+
+<!ENTITY calendar.list.header.label "Calendar">
+
+<!ENTITY calendar.task.filter.title.label "Show">
+<!ENTITY calendar.task.filter.all.label "All">
+<!ENTITY calendar.task.filter.all.accesskey "A">
+<!ENTITY calendar.task.filter.today.label "Today">
+<!ENTITY calendar.task.filter.today.accesskey "T">
+<!ENTITY calendar.task.filter.next7days.label "Next Seven Days">
+<!ENTITY calendar.task.filter.next7days.accesskey "N">
+<!ENTITY calendar.task.filter.notstarted.label "Not Started Tasks">
+<!ENTITY calendar.task.filter.notstarted.accesskey "a">
+<!ENTITY calendar.task.filter.overdue.label "Overdue Tasks">
+<!ENTITY calendar.task.filter.overdue.accesskey "O">
+<!ENTITY calendar.task.filter.completed.label "Completed Tasks">
+<!ENTITY calendar.task.filter.completed.accesskey "C">
+<!ENTITY calendar.task.filter.open.label "Incomplete Tasks">
+<!ENTITY calendar.task.filter.open.accesskey "m">
+
+<!-- LOCALIZATION NOTE(calendar.task.filter.current.label)
+ "Current Tasks" will show all tasks, except those with a start date set
+ that is after today and after the selected date. If a task repeats, a
+ separate entry will be shown for each of the occurrences that happen on or
+ before today (or the selected date, whichever is later). -->
+<!ENTITY calendar.task.filter.current.label "Current Tasks">
+<!ENTITY calendar.task.filter.current.accesskey "u">
+
+<!ENTITY calendar.task-details.title.label "title">
+<!ENTITY calendar.task-details.organizer.label "from">
+<!ENTITY calendar.task-details.priority.label "priority">
+<!ENTITY calendar.task-details.priority.low.label "Low">
+<!ENTITY calendar.task-details.priority.normal.label "Normal">
+<!ENTITY calendar.task-details.priority.high.label "High">
+<!ENTITY calendar.task-details.status.label "status">
+<!ENTITY calendar.task-details.category.label "category">
+<!ENTITY calendar.task-details.repeat.label "repeat">
+<!ENTITY calendar.task-details.attachments.label "attachments">
+<!ENTITY calendar.task-details.start.label "start date">
+<!ENTITY calendar.task-details.due.label "due date">
+
+<!ENTITY calendar.task.category.button.tooltip "Categorize tasks">
+<!ENTITY calendar.task.complete.button.tooltip "Mark selected tasks completed">
+<!ENTITY calendar.task.priority.button.tooltip "Change the priority">
+
+<!ENTITY calendar.task.text-filter.textbox.emptytext.base1 "Filter tasks #1">
+<!ENTITY calendar.task.text-filter.textbox.emptytext.keylabel.nonmac "&lt;Ctrl+Shift+K&gt;">
+<!ENTITY calendar.task.text-filter.textbox.emptytext.keylabel.mac "&lt;&#x21E7;&#x2318;K&gt;">
+
+<!-- Context Menu -->
+<!ENTITY calendar.context.modifyorviewitem.label "Open">
+<!ENTITY calendar.context.modifyorviewitem.accesskey "O">
+<!ENTITY calendar.context.modifyorviewtask.label "Open Task…">
+<!ENTITY calendar.context.modifyorviewtask.accesskey "O">
+<!ENTITY calendar.context.newevent.label "New Event…">
+<!ENTITY calendar.context.newevent.accesskey "N">
+<!ENTITY calendar.context.newtodo.label "New Task…">
+<!ENTITY calendar.context.newtodo.accesskey "k">
+<!ENTITY calendar.context.deletetask.label "Delete Task">
+<!ENTITY calendar.context.deletetask.accesskey "l">
+<!ENTITY calendar.context.deleteevent.label "Delete Event">
+<!ENTITY calendar.context.deleteevent.accesskey "l">
+<!ENTITY calendar.context.cutevent.label "Cut">
+<!ENTITY calendar.context.cutevent.accesskey "t">
+<!ENTITY calendar.context.copyevent.label "Copy">
+<!ENTITY calendar.context.copyevent.accesskey "C">
+<!ENTITY calendar.context.pasteevent.label "Paste">
+<!ENTITY calendar.context.pasteevent.accesskey "P">
+<!ENTITY calendar.context.button.label "Today Pane">
+<!ENTITY calendar.context.button.accesskey "T">
+
+<!ENTITY calendar.context.attendance.menu.label "Attendance">
+<!ENTITY calendar.context.attendance.menu.accesskey "d">
+<!ENTITY calendar.context.attendance.occurrence.label "This Occurrence">
+<!ENTITY calendar.context.attendance.all2.label "Complete Series">
+<!ENTITY calendar.context.attendance.send.label "Send a notification now">
+<!ENTITY calendar.context.attendance.send.accesskey "S">
+<!ENTITY calendar.context.attendance.dontsend.label "Do not send a notification">
+<!ENTITY calendar.context.attendance.dontsend.accesskey "D">
+
+<!ENTITY calendar.context.attendance.occ.accepted.accesskey "A">
+<!ENTITY calendar.context.attendance.occ.accepted.label "Accepted">
+<!ENTITY calendar.context.attendance.occ.tentative.accesskey "y">
+<!ENTITY calendar.context.attendance.occ.tentative.label "Accepted tentatively">
+<!ENTITY calendar.context.attendance.occ.declined.accesskey "c">
+<!ENTITY calendar.context.attendance.occ.declined.label "Declined">
+<!ENTITY calendar.context.attendance.occ.delegated.accesskey "g">
+<!ENTITY calendar.context.attendance.occ.delegated.label "Delegated">
+<!ENTITY calendar.context.attendance.occ.needsaction.accesskey "S">
+<!ENTITY calendar.context.attendance.occ.needsaction.label "Still needs action">
+<!ENTITY calendar.context.attendance.occ.inprogress.accesskey "I">
+<!ENTITY calendar.context.attendance.occ.inprogress.label "In progress">
+<!ENTITY calendar.context.attendance.occ.completed.accesskey "C">
+<!ENTITY calendar.context.attendance.occ.completed.label "Completed">
+
+<!ENTITY calendar.context.attendance.all.accepted.accesskey "e">
+<!ENTITY calendar.context.attendance.all.accepted.label "Accepted">
+<!ENTITY calendar.context.attendance.all.tentative.accesskey "v">
+<!ENTITY calendar.context.attendance.all.tentative.label "Accepted tentatively">
+<!ENTITY calendar.context.attendance.all.declined.accesskey "d">
+<!ENTITY calendar.context.attendance.all.declined.label "Declined">
+<!ENTITY calendar.context.attendance.all.delegated.accesskey "l">
+<!ENTITY calendar.context.attendance.all.delegated.label "Delegated">
+<!ENTITY calendar.context.attendance.all.needsaction.accesskey "l">
+<!ENTITY calendar.context.attendance.all.needsaction.label "Still needs action">
+<!ENTITY calendar.context.attendance.all.inprogress.accesskey "p">
+<!ENTITY calendar.context.attendance.all.inprogress.label "In progress">
+<!ENTITY calendar.context.attendance.all.completed.accesskey "m">
+<!ENTITY calendar.context.attendance.all.completed.label "Completed">
+
+<!-- Task Context Menu -->
+<!ENTITY calendar.context.progress.label "Progress">
+<!ENTITY calendar.context.progress.accesskey "P">
+<!ENTITY calendar.context.priority.label "Priority">
+<!ENTITY calendar.context.priority.accesskey "r">
+<!ENTITY calendar.context.postpone.label "Postpone Task">
+<!ENTITY calendar.context.postpone.accesskey "s">
+
+<!ENTITY percnt "&#38;#37;" ><!--=percent sign-->
+
+<!ENTITY calendar.context.markcompleted.label "Mark Completed">
+<!ENTITY calendar.context.markcompleted.accesskey "o">
+
+<!ENTITY progress.level.0 "0&percnt; Completed">
+<!ENTITY progress.level.0.accesskey "0">
+<!ENTITY progress.level.25 "25&percnt; Completed">
+<!ENTITY progress.level.25.accesskey "2">
+<!ENTITY progress.level.50 "50&percnt; Completed">
+<!ENTITY progress.level.50.accesskey "5">
+<!ENTITY progress.level.75 "75&percnt; Completed">
+<!ENTITY progress.level.75.accesskey "7">
+<!ENTITY progress.level.100 "100&percnt; Completed">
+<!ENTITY progress.level.100.accesskey "1">
+
+<!ENTITY priority.level.none "Not specified">
+<!ENTITY priority.level.none.accesskey "s">
+<!ENTITY priority.level.low "Low">
+<!ENTITY priority.level.low.accesskey "L">
+<!ENTITY priority.level.normal "Normal">
+<!ENTITY priority.level.normal.accesskey "N">
+<!ENTITY priority.level.high "High">
+<!ENTITY priority.level.high.accesskey "H">
+
+<!ENTITY calendar.context.postpone.1hour.label "1 Hour">
+<!ENTITY calendar.context.postpone.1hour.accesskey "H">
+<!ENTITY calendar.context.postpone.1day.label "1 Day">
+<!ENTITY calendar.context.postpone.1day.accesskey "D">
+<!ENTITY calendar.context.postpone.1week.label "1 Week">
+<!ENTITY calendar.context.postpone.1week.accesskey "W">
+
+<!ENTITY calendar.copylink.label "Copy Link Location">
+<!ENTITY calendar.copylink.accesskey "C">
+
+<!-- Task View -->
+<!-- Note that the above *.context.* strings are currently used for the other
+ task action buttons -->
+<!ENTITY calendar.taskview.delete.label "Delete">
+
+<!-- Server Context Menu -->
+<!ENTITY calendar.context.newserver.label "New Calendar…">
+<!ENTITY calendar.context.newserver.accesskey "N">
+<!ENTITY calendar.context.findcalendar.label "Find Calendar…" >
+<!ENTITY calendar.context.findcalendar.accesskey "F" >
+<!ENTITY calendar.context.deleteserver2.label "Delete Calendar…">
+<!ENTITY calendar.context.deleteserver2.accesskey "D">
+
+<!-- LOCALIZATION NOTE (calendar.context.removeserver.label): Removing the
+ calendar is the general action of removing it, while deleting means to
+ clear the data and unsubscribing means just taking it out of the calendar
+ list. -->
+<!ENTITY calendar.context.removeserver.label "Remove Calendar…">
+<!ENTITY calendar.context.removeserver.accesskey "R">
+<!ENTITY calendar.context.unsubscribeserver.label "Unsubscribe Calendar…">
+<!ENTITY calendar.context.unsubscribeserver.accesskey "U">
+<!ENTITY calendar.context.synccalendars.label "Synchronize Calendars">
+<!ENTITY calendar.context.synccalendars.accesskey "S">
+<!ENTITY calendar.context.publish.label "Publish Calendar…">
+<!ENTITY calendar.context.publish.accesskey "b">
+<!ENTITY calendar.context.export.label "Export Calendar…">
+<!ENTITY calendar.context.export.accesskey "E">
+<!ENTITY calendar.context.properties.label "Properties">
+<!ENTITY calendar.context.properties.accesskey "P">
+
+<!-- LOCALIZATION NOTE (calendar.context.showcalendar.accesskey)
+ This is the access key used for the showCalendar string -->
+<!ENTITY calendar.context.showcalendar.accesskey "h">
+
+<!-- LOCALIZATION NOTE (calendar.context.hidecalendar.accesskey)
+ This is the access key used for the hideCalendar string -->
+<!ENTITY calendar.context.hidecalendar.accesskey "H">
+
+<!-- LOCALIZATION NOTE (calendar.context.showonly.accesskey)
+ This is the access key used for the showOnlyCalendar string -->
+<!ENTITY calendar.context.showonly.accesskey "O">
+<!ENTITY calendar.context.showall.label "Show All Calendars">
+<!ENTITY calendar.context.showall.accesskey "A">
+
+<!ENTITY calendar.context.convertmenu.label "Convert To">
+<!ENTITY calendar.context.convertmenu.accesskey.mail "n">
+<!ENTITY calendar.context.convertmenu.accesskey.calendar "v">
+<!ENTITY calendar.context.convertmenu.event.label "Event…">
+<!ENTITY calendar.context.convertmenu.event.accesskey "E">
+<!ENTITY calendar.context.convertmenu.message.label "Message…">
+<!ENTITY calendar.context.convertmenu.message.accesskey "M">
+<!ENTITY calendar.context.convertmenu.task.label "Task…">
+<!ENTITY calendar.context.convertmenu.task.accesskey "T">
+
+<!ENTITY calendar.tasks.view.minimonth.label "Mini-Month">
+<!ENTITY calendar.tasks.view.minimonth.accesskey "M">
+
+<!ENTITY calendar.tasks.view.calendarlist.label "Calendar List">
+<!ENTITY calendar.tasks.view.calendarlist.accesskey "L">
+
+<!ENTITY calendar.tasks.view.filtertasks.label "Filter Tasks">
+<!ENTITY calendar.tasks.view.filtertasks.accesskey "F">
+
+<!-- Calendar Alarm Dialog -->
+
+<!ENTITY calendar.alarm.location.label "Location:" >
+<!ENTITY calendar.alarm.details.label "Details…" >
+
+<!ENTITY calendar.alarm.snoozefor.label "Snooze for" >
+<!ENTITY calendar.alarm.snoozeallfor.label "Snooze All for" >
+<!ENTITY calendar.alarm.title.label "Calendar Reminders" >
+<!ENTITY calendar.alarm.dismiss.label "Dismiss" >
+<!ENTITY calendar.alarm.dismissall.label "Dismiss All" >
+
+<!ENTITY calendar.alarm.snooze.5minutes.label "5 Minutes" >
+<!ENTITY calendar.alarm.snooze.10minutes.label "10 Minutes" >
+<!ENTITY calendar.alarm.snooze.15minutes.label "15 Minutes" >
+<!ENTITY calendar.alarm.snooze.30minutes.label "30 Minutes" >
+<!ENTITY calendar.alarm.snooze.45minutes.label "45 Minutes" >
+<!ENTITY calendar.alarm.snooze.1hour.label "1 Hour" >
+<!ENTITY calendar.alarm.snooze.2hours.label "2 Hours" >
+<!ENTITY calendar.alarm.snooze.1day.label "1 Day" >
+
+<!-- LOCALIZATION NOTE (calendar.alarm.snooze.cancel)
+ This string is not seen in the UI, it is read by screen readers when the
+ user focuses the "Cancel" button in the "Snooze for..." popup of the alarm
+ dialog. -->
+<!ENTITY calendar.alarm.snooze.cancel "Cancel Snooze">
+
+<!-- Calendar Server Dialog -->
+<!ENTITY calendar.server.dialog.title.edit "Edit Calendar">
+<!ENTITY calendar.server.dialog.name.label "Calendar Name:">
+
+<!-- Calendar Properties -->
+<!ENTITY calendarproperties.color.label "Colour:">
+<!ENTITY calendarproperties.webdav.label "iCalendar (ICS)">
+<!ENTITY calendarproperties.caldav.label "CalDAV">
+<!ENTITY calendarproperties.wcap.label "Sun Java System Calendar Server (WCAP)">
+<!ENTITY calendarproperties.format.label "Format:">
+<!ENTITY calendarproperties.location.label "Location:">
+<!ENTITY calendarproperties.refreshInterval.label "Refresh Calendar:">
+<!ENTITY calendarproperties.refreshInterval.manual.label "Manually">
+<!ENTITY calendarproperties.name.label "Name:">
+<!ENTITY calendarproperties.readonly.label "Read Only">
+<!ENTITY calendarproperties.firealarms.label "Show Reminders">
+<!ENTITY calendarproperties.cache3.label "Offline Support">
+<!ENTITY calendarproperties.enabled.label "Switch this calendar on">
+<!ENTITY calendarproperties.enabled2.label "Enable This Calendar">
+<!ENTITY calendarproperties.forceDisabled.label "The provider for this calendar could not be found. This often happens if you have disabled or uninstalled certain add-ons.">
+<!ENTITY calendarproperties.unsubscribe.label "Unsubscribe">
+<!ENTITY calendarproperties.unsubscribe.accesskey "U">
+
+<!-- Calendar Publish Dialog -->
+<!ENTITY calendar.publish.dialog.title "Publish Calendar">
+<!ENTITY calendar.publish.url.label "Publishing URL">
+<!ENTITY calendar.publish.publish.button "Publish">
+<!ENTITY calendar.publish.close.button "Close">
+
+<!ENTITY calendar.publish.example.url.description "Something like http://www.myserver.com/webdav/test.ics">
+
+<!-- Select Calendar Dialog -->
+<!ENTITY calendar.select.dialog.title "Select Calendar">
+
+<!-- Calendar Printing -->
+<!ENTITY calendar.print.window.title "Print A Calendar">
+<!ENTITY calendar.print.title.label "Title:">
+<!ENTITY calendar.print.layout.label "Layout:">
+<!ENTITY calendar.print.range.label "What to Print">
+<!ENTITY calendar.print.currentView2.label "Current view">
+<!ENTITY calendar.print.selectedEventsAndTasks.label "Selected events/tasks">
+<!ENTITY calendar.print.tasks.label "Tasks">
+<!ENTITY calendar.print.events.label "Events">
+<!ENTITY calendar.print.custom.label "Custom date range:">
+<!ENTITY calendar.print.from.label "From:">
+<!ENTITY calendar.print.to.label "To:">
+<!ENTITY calendar.print.settingsGroup.label "Print Settings">
+<!ENTITY calendar.print.optionsGroup.label "Options">
+<!ENTITY calendar.print.taskswithnoduedate.label "Tasks with no due date">
+<!ENTITY calendar.print.completedtasks.label "Completed tasks">
+
+<!-- Error reporting -->
+<!ENTITY calendar.error.detail "Details…">
+<!ENTITY calendar.error.code "Error code:">
+<!ENTITY calendar.error.description "Description:">
+<!ENTITY calendar.error.title "An error has occurred">
+
+<!-- Extract buttons in message header -->
+<!ENTITY calendar.extract.event.button "Add as event">
+<!ENTITY calendar.extract.task.button "Add as task">
+<!ENTITY calendar.extract.event.button.tooltip "Extract calendaring information from the message and add it to your calendar as an event">
+<!ENTITY calendar.extract.task.button.tooltip "Extract calendaring information from the message and add it to your calendar as a task">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar.properties
new file mode 100644
index 0000000000..89568e91cc
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendar.properties
@@ -0,0 +1,696 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Default name for new events
+newEvent=New Event
+
+# Titles for the event/task dialog
+newEventDialog=New Event
+editEventDialog=Edit Event
+newTaskDialog=New Task
+editTaskDialog=Edit Task
+
+# Do you want to save changes?
+askSaveTitleEvent=Save Event
+askSaveTitleTask=Save Task
+askSaveMessageEvent=Event has not been saved. Do you want to save the event?
+askSaveMessageTask=Task has not been saved. Do you want to save the task?
+
+# Event Dialog Warnings
+warningEndBeforeStart=The end date you entered occurs before the start date
+warningUntilDateBeforeStart=The until date occurs before the start date
+
+# The name of the calendar provided with the application by default
+homeCalendarName=Home
+
+# The name given to a calendar if an opened calendar has an empty filename
+untitledCalendarName=Untitled Calendar
+
+# Event status: Tentative, Confirmed, Cancelled
+# ToDo task status: NeedsAction, InProcess, Completed, Cancelled
+statusTentative =Tentative
+statusConfirmed =Confirmed
+eventStatusCancelled=Cancelled
+todoStatusCancelled =Cancelled
+statusNeedsAction =Needs Action
+statusInProcess =In Process
+statusCompleted =Completed
+
+# Task priority, these should match the priority.level.* labels in calendar.dtd
+highPriority=High
+normalPriority=Normal
+lowPriority=Low
+
+importPrompt=Which calendar do you want to import these items into?
+exportPrompt=Which calendar do you want to export from?
+pastePrompt=Which of your currently writable calendars do you want to paste into?
+publishPrompt=Which calendar do you want to publish?
+
+# LOCALIZATION NOTE (pasteEventAlso): The users pasting operation includes among
+# others also a meeting invitation - this is used as a affix in
+# pasteNotifyAbout
+pasteEventAlso=Your pasting includes a meeting
+# LOCALIZATION NOTE (pasteEventsAlso): The users pasting operation includes among
+# others also several meeting invitations - this is used as a affix in
+# pasteNotifyAbout
+pasteEventsAlso=Your pasting includes meetings
+# LOCALIZATION NOTE (pasteTaskAlso): The users pasting operation includes among
+# others also an assigned task - this is used as a affix in pasteNotifyAbout
+pasteTaskAlso=Your pasting includes an assigned task
+# LOCALIZATION NOTE (pasteTasksAlso): The users pasting operation include among
+# others also several assigned tasks - this is used as a affix in
+# pasteNotifyAbout
+pasteTasksAlso=Your pasting includes assigned tasks
+# LOCALIZATION NOTE (pasteItemsAlso): The users pasting operation includes among
+# others also assigned task(s) and meeting invitation(s) - this is used as a affix
+# in pasteNotifyAbout
+pasteItemsAlso=Your pasting includes meetings and assigned tasks
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting a meeting -
+# this is used as a affix in pasteNotifyAbout
+pasteEventOnly=You are pasting a meeting
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several meetings -
+# this is used as a affix in pasteNotifyAbout
+pasteEventsOnly=You are pasting meetings
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting an assigned task -
+# this is used as a affix in pasteNotifyAbout
+pasteTaskOnly=You are pasting an assigned task
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several assigned
+# tasks - this is used as a affix in pasteNotifyAbout
+pasteTasksOnly=You are pasting assigned tasks
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting assigned task(s) and
+# meeting(s) - this is used as a affix in pasteNotifyAbout
+pasteItemsOnly=You are pasting meetings and assigned tasks
+
+# LOCALIZATION NOTE (pasteNotifyAbout): Text displayed if pasting an invitation
+# or assigned task
+# %1$S - pasteEvent* or pasteTask*
+pasteNotifyAbout=%1$S - do you want to send an update to everybody involved?
+
+# LOCALIZATION NOTE (pasteAndNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteAndNotifyLabel=Paste and send now
+# LOCALIZATION NOTE (pasteDontNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteDontNotifyLabel=Paste without sending
+
+# LOCALIZATION NOTE (importItemsFailed):
+# %1$S will be replaced with number of failed items
+# %2$S will be replaced with last error code / error string
+importItemsFailed=%1$S items failed to import. The last error was: %2$S
+# LOCALIZATION NOTE (noItemsInCalendarFile2):
+# %1$S will be replaced with file path
+noItemsInCalendarFile2=Cannot import from %1$S. There are no importable items in this file.
+
+#spaces needed at the end of the following lines
+eventDescription=Description:
+
+unableToRead=Unable to read from file:
+unableToWrite=Unable to write to file:
+defaultFileName=MozillaCalEvents
+HTMLTitle=Mozilla Calendar
+
+# LOCALIZATION NOTE (timezoneError):
+# used for an error message like 'An unknown and undefined timezone was found while reading c:\Mycalendarfile.ics'
+# %1$S will be replaced with the path to a file
+timezoneError=An unknown and undefined timezone was found while reading %1$S.
+
+# LOCALIZATION NOTE (duplicateError):
+# %1$S will be replaced with number of duplicate items
+# %2$S will be replaced with a file path pointing to a calendar
+duplicateError=%1$S item(s) were ignored since they exist in both the destination calendar and %2$S.
+
+unableToCreateProvider=An error was encountered preparing the calendar located at %1$S for use. It will not be available.
+
+# Sample: Unknown timezone "USPacific" in "Dentist Appt". Using the 'floating' local timezone instead: 2008/02/28 14:00:00
+unknownTimezoneInItem=Unknown timezone "%1$S" in "%2$S". Treated as 'floating' local timezone instead: %3$S
+TimezoneErrorsAlertTitle=Timezone Errors
+TimezoneErrorsSeeConsole=See Error Console: Unknown timezones are treated as the ‘floating’ local timezone.
+
+# The following strings are for the prompt to delete/unsubscribe from the calendar
+removeCalendarTitle=Remove Calendar
+removeCalendarButtonDelete=Delete Calendar
+removeCalendarButtonUnsubscribe=Unsubscribe
+
+# LOCALIZATION NOTE (removeCalendarMessageDeleteOrUnsubscribe): Shown for
+# calendar where both deleting and unsubscribing is possible.
+# %1$S: The name of a calendar
+removeCalendarMessageDeleteOrUnsubscribe=Do you want to remove the calendar “%1$S”? Unsubscribing will remove the calendar from the list, deleting will also permanently purge its data.
+
+# LOCALIZATION NOTE (removeCalendarMessageDelete): Shown for calendar where
+# deleting is the only option.
+# %1$S: The name of a calendar
+removeCalendarMessageDelete=Do you want to permanently delete the calendar “%1$S”?
+
+# LOCALIZATION NOTE (removeCalendarMessageUnsubscribe): Shown for calendar
+# where unsubscribing is the only option.
+# %1$S: The name of a calendar
+removeCalendarMessageUnsubscribe=Do you want to unsubscribe from the calendar “%1$S”?
+
+WeekTitle=Week %1$S
+None=None
+
+# Error strings
+## @name UID_NOT_FOUND
+## @loc none
+
+# LOCALIZATION NOTE (tooNewSchemaErrorText):
+# %1$S will be replaced with the name of the host application, e.g. 'Thunderbird'
+# %2$S will be replaced with the name of the new copy of the file, e.g. 'local-2020-05-11T21-30-17.sqlite'
+tooNewSchemaErrorText=Your calendar data is not compatible with this version of %1$S. The calendar data in your profile was updated by a newer version of %1$S. A backup of the data file has been created, named "%2$S". Continuing with a newly created data file.
+
+# List of events or todos (unifinder)
+eventUntitled=Untitled
+
+# Tooltips of events or todos
+tooltipTitle=Title:
+tooltipLocation=Location:
+# event date, usually an interval, such as
+# Date: 7:00--8:00 Thu 9 Oct 2011
+# Date: Thu 9 Oct 2000 -- Fri 10 Oct 2000
+tooltipDate=Date:
+# event calendar name
+tooltipCalName=Calendar Name:
+# event status: tentative, confirmed, cancelled
+tooltipStatus=Status:
+# event organizer
+tooltipOrganizer=Organizer:
+# task/todo fields
+# start date time, due date time, task priority number, completed date time
+tooltipStart=Start:
+tooltipDue=Due:
+tooltipPriority=Priority:
+tooltipPercent=% Complete:
+tooltipCompleted=Completed:
+
+#File commands and dialogs
+New=New
+Open=Open
+filepickerTitleImport=Import
+filepickerTitleExport=Export
+
+# Filters for export/import/open file picker. %1$S will be replaced with
+# wildmat used to filter files by extension, such as (*.html; *.htm).
+filterIcs=iCalendar (%1$S)
+filterHtml=Web Page (%1$S)
+
+# Remote calendar errors
+genericErrorTitle=An error has occurred
+httpPutError=Publishing the calendar file failed.\nStatus code: %1$S: %2$S
+otherPutError=Publishing the calendar file failed.\nStatus code: 0x%1$S
+
+# LOCALIZATION NOTE (readOnlyMode):
+# used for an message like 'There has been an error reading data for calendar: Home. It has been...'
+# %1$S will be replaced with the name of a calendar
+readOnlyMode=There has been an error reading data for calendar: %1$S. It has been placed in read-only mode, since changes to this calendar will likely result in data-loss. You may change this setting by choosing 'Edit Calendar'.
+
+# LOCALIZATION NOTE (disabledMode):
+# used for an message like 'There has been an error reading data for calendar: Home. It has been...'
+# %1$S will be replaced with the name of a calendar
+disabledMode=There has been an error reading data for calendar: %1$S. It has been disabled until it is safe to use it.
+
+# LOCALIZATION NOTE (minorError):
+# used for an message like 'There has been an error reading data for calendar: Home. However this...'
+# %1$S will be replaced with the name of a calendar
+minorError=There has been an error reading data for calendar: %1$S. However, this error is believed to be minor, so the program will attempt to continue.
+
+# LOCALIZATION NOTE (stillReadOnlyError):
+# used for an message like 'There has been an error reading data for calendar: Home.'
+# %1$S will be replaced with the name of a calendar
+stillReadOnlyError=There has been an error reading data for calendar: %1$S.
+utf8DecodeError=An error occurred while decoding an iCalendar (ics) file as UTF-8. Check that the file, including symbols and accented letters, is encoded using the UTF-8 character encoding.
+icsMalformedError=Parsing an iCalendar (ics) file failed. Check that the file conforms to iCalendar (ics) file syntax.
+itemModifiedOnServerTitle=Item changed on server
+itemModifiedOnServer=This item has recently been changed on the server.\n
+modifyWillLoseData=Submitting your changes will overwrite the changes made on the server.
+deleteWillLoseData=Deleting this item will cause loss of the changes made on the server.
+updateFromServer=Discard my changes and reload
+proceedModify=Submit my changes anyway
+proceedDelete=Delete anyway
+dav_notDav=The resource at %1$S is either not a DAV collection or not available
+dav_davNotCaldav=The resource at %1$S is a DAV collection but not a CalDAV calendar
+itemPutError=There was an error storing the item on the server.
+itemDeleteError=There was an error deleting the item from the server.
+caldavRequestError=An error occurred when sending the invitation.
+caldavResponseError=An error occurred when sending the response.
+caldavRequestStatusCode=Status Code: %1$S
+caldavRequestStatusCodeStringGeneric=The request cannot be processed.
+caldavRequestStatusCodeString400=The request contains bad syntax and cannot be processed.
+caldavRequestStatusCodeString403=The user lacks the required permission to perform the request.
+caldavRequestStatusCodeString404=Resource not found.
+caldavRequestStatusCodeString409=Resource conflict.
+caldavRequestStatusCodeString412=Precondition failed.
+caldavRequestStatusCodeString500=Internal server error.
+caldavRequestStatusCodeString502=Bad gateway (Proxy configuration?).
+caldavRequestStatusCodeString503=Internal server error (Temporary server outage?).
+caldavRedirectTitle=Update location for calendar %1$S?
+caldavRedirectText=The requests for %1$S are being redirected to a new location. Would you like to change the location to the following value?
+caldavRedirectDisableCalendar=Disable Calendar
+
+
+# LOCALIZATION NOTE (likelyTimezone):
+# Translators, please put the most likely timezone(s) where the people using
+# your locale will be. Use the Olson ZoneInfo timezone name *in English*,
+# ie "Europe/Paris", (continent or ocean)/(largest city in timezone).
+# Order does not matter, except if two historically different zones now match,
+# such as America/New_York and America/Toronto, will only find first listed.
+# (Particularly needed to guess the most relevant timezones if there are
+# similar timezones at the same June/December GMT offsets with alphabetically
+# earlier ZoneInfo timezone names. Sample explanations for English below.)
+# for english-US:
+# America/Los_Angeles likelier than America/Dawson
+# America/New_York likelier than America/Detroit (NY for US-EasternTime)
+# for english:
+# Europe/London likelier than Atlantic/Canary
+# Europe/Paris likelier than Africa/Ceuta (for WestEuropeanTime)
+# America/Halifax likelier than America/Glace_Bay (Canada-AtlanticTime)
+# America/Mexico_City likelier than America/Cancun
+# America/Argentina/Buenos_Aires likelier than America/Araguaina
+# America/Sao_Paolo (may not recognize: summer-time dates change every year)
+# Asia/Singapore likelier than Antarctica/Casey
+# Asia/Tokyo likelier than Asia/Dili
+# Africa/Lagos likelier than Africa/Algiers (for WestAfricanTime)
+# Africa/Johannesburg likelier than Africa/Blantyre (for SouthAfricanStdTime)
+# Africa/Nairobi likelier than Africa/Addis_Ababa (for EastAfricanTime)
+# Australia/Brisbane likelier than Antarctica/DumontDUrville
+# Australia/Sydney likelier than Australia/Currie or Australia/Hobart
+# Pacific/Auckland likelier than Antarctica/McMurdo
+likelyTimezone=America/New_York, America/Chicago, America/Denver, America/Phoenix, America/Los_Angeles, America/Anchorage, America/Adak, Pacific/Honolulu, America/Puerto_Rico, America/Halifax, America/Mexico_City, America/Argentina/Buenos_Aires, America/Sao_Paulo, Europe/London, Europe/Paris, Asia/Singapore, Asia/Tokyo, Africa/Lagos, Africa/Johannesburg, Africa/Nairobi, Australia/Brisbane, Australia/Sydney, Pacific/Auckland
+
+# Guessed Timezone errors and warnings.
+# Testing note:
+# * remove preference for calendar.timezone.default in userprofile/prefs.js
+# * repeat
+# - set OS timezone to a city (windows: click right on clock in taskbar)
+# - restart
+# - observe guess in error console and verify whether guessed timezone city
+# makes sense for OS city.
+#
+# 'Warning: Operating system timezone "E. South America Standard Time"
+# no longer matches ZoneInfo timezone "America/Sao_Paulo".'
+# Testing notes:
+# - Brasil DST change dates are set every year by decree, so likely out of sync.
+# - Only appears on OSes from which timezone can be obtained
+# (windows; or TZ env var, /etc/localtime target path, or line in
+# /etc/timezone or /etc/sysconfig/clock contains ZoneInfo timezone id).
+# - Windows: turning off "Automatically adjust clock for daylight saving time"
+# can also trigger this warning.
+WarningOSTZNoMatch=Warning: Operating system timezone “%1$S”\nno longer matches the internal ZoneInfo timezone “%2$S”.
+
+# "Skipping Operating System timezone 'Pacific/New_Country'."
+# Testing note: not easily testable. May occur someday if (non-windows)
+# OS uses different version of ZoneInfo database which has a timezone name
+# that is not included in our current ZoneInfo database (or if the mapping
+# mapping from windows to ZoneInfo timezone ids does).
+SkippingOSTimezone=Skipping Operating System timezone ‘%1$S’.
+
+# "Skipping locale timezone 'America/New_Yawk'."
+# Testing note: Skipping occurs if a likelyTimezone id is unknown or misspelled.
+SkippingLocaleTimezone=Skipping locale timezone ‘%1$S’.
+
+# Testing note: "No match" timezones include Bucharest on W2k.
+# Brazil timezones may be "No match" (change every year, so often out of date,
+# and changes are often more than a week different).
+warningUsingFloatingTZNoMatch=Warning: Using “floating” timezone.\nNo ZoneInfo timezone data matched the operating system timezone data.
+
+# "Warning: Using guessed timezone
+# America/New York (UTC-0500/-0400).
+# [rfc2445 summer daylight saving shift rules for timezone]
+# This ZoneInfo timezone almost matches/seems to match..."
+# This ZoneInfo timezone was chosen based on ... "
+WarningUsingGuessedTZ=Warning: Using guessed timezone\n %1$S (UTC%2$S).\n%3$S\n%4$S
+
+# Testing note: "Almost match" timezones include Cairo on W2k.
+TZAlmostMatchesOSDifferAtMostAWeek=This ZoneInfo timezone almost matches the operating system timezone.\nFor this rule, the next transitions between daylight and standard time\ndiffer at most a week from the operating system timezone transitions.\nThere may be discrepancies in the data, such as differing start date,\nor differing rule, or approximation for non-Gregorian-calendar rule.
+
+TZSeemsToMatchOS=This ZoneInfo timezone seems to match the operating system timezone this year.
+
+# LOCALIZATION NOTE (TZFromOS):
+# used for a display of a chosen timezone
+# %1$S will be replaced with the name of a timezone
+TZFromOS=This ZoneInfo timezone was chosen based on the operating system timezone\nidentifier “%1$S”.
+
+# Localization note (TZFromLocale): Substitute name of your locale language.
+TZFromLocale=This ZoneInfo timezone was chosen based on matching the operating system\ntimezone with likely timezones for internet users using US English.
+
+TZFromKnownTimezones=This ZoneInfo timezone was chosen based on matching the operating system\ntimezone with known timezones in alphabetical order of timezone id.
+
+# Print Layout
+tasksWithNoDueDate = Tasks with no due date
+
+# Providers
+caldavName=CalDAV
+compositeName=Composite
+icsName=iCalendar (ICS)
+memoryName=Temporary (memory)
+storageName=Local (SQLite)
+
+# Used in created html code for export
+htmlPrefixTitle=Title
+htmlPrefixWhen=When
+htmlPrefixLocation=Location
+htmlPrefixDescription=Description
+htmlTaskCompleted=%1$S (completed)
+
+# Categories
+addCategory=Add Category
+multipleCategories=Multiple Categories
+
+today=Today
+tomorrow=Tomorrow
+yesterday=Yesterday
+
+#Today pane
+eventsonly=Events
+eventsandtasks=Events and Tasks
+tasksonly=Tasks
+shortcalendarweek=CW
+
+go=Go
+
+# Some languages have different conjugations of 'next' and 'last'. If yours
+# does not, simply repeat the value. This will be used with day names, as in
+# 'next Sunday'.
+next1=next
+next2=next
+last1=last
+last2=last
+
+# Alarm Dialog
+# LOCALIZATION NOTE (alarmWindowTitle.label): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/Localization_and_Plurals
+alarmWindowTitle.label=#1 Reminder;#1 Reminders
+
+# LOCALIZATION NOTE (alarmStarts):
+# used for a display the start of an alarm like 'Starts: Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with a date-time
+alarmStarts=Starts: %1$S
+
+# LOCALIZATION NOTE (alarmTodayAt):
+# used for a display the date-time of an alarm like 'Today at Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with a date-time
+alarmTodayAt=Today at %1$S
+
+# LOCALIZATION NOTE (alarmTomorrowAt):
+# used for a display the date-time of an alarm like 'Tomorrow at Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with a date-time
+alarmTomorrowAt=Tomorrow at %1$S
+
+# LOCALIZATION NOTE (alarmYesterdayAt):
+# used for a display the date-time of an alarm like 'Yesterday at Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with a date-time
+alarmYesterdayAt=Yesterday at %1$S
+
+# Alarm interface strings
+# LOCALIZATION NOTE: These strings do not get displayed. They are only visible
+# when exporting an item with i.e a DISPLAY alarm, that doesn't have a
+# description set, or an EMAIL alarm that doesn't have a summary set.
+alarmDefaultDescription=Default Mozilla Description
+alarmDefaultSummary=Default Mozilla Summary
+
+# LOCALIZATION NOTE (alarmSnoozeLimitExceeded): Semi-colon list of plural
+# forms.
+alarmSnoozeLimitExceeded=You cannot snooze an alarm for more than #1 month.;You cannot snooze an alarm for more than #1 months.
+
+taskDetailsStatusNeedsAction=Needs Action
+
+# LOCALIZATION NOTE (taskDetailsStatusInProgress):
+# used for a display of how much of a task is completed '25% Complete'
+# %1$S will be replaced with the number of percentage completed
+taskDetailsStatusInProgress=%1$S%% Complete
+taskDetailsStatusCompleted=Completed
+
+# LOCALIZATION NOTE (taskDetailsStatusCompletedOn):
+# used for a display of completion date like 'Completed on Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with the completion date-time of the task
+taskDetailsStatusCompletedOn=Completed on %1$S
+taskDetailsStatusCancelled=Cancelled
+
+gettingCalendarInfoCommon=Checking Calendars…
+
+# LOCALIZATION NOTE (gettingCalendarInfoDetail):
+# used for a progress-display of processed like 'Checking Calendar 5 of 10'
+# %1$S will be replaced with the index of the currently processed calendar
+# %2$S will be replaced with the total numbers of calendars
+gettingCalendarInfoDetail=Checking Calendar %1$S of %2$S
+
+# LOCALIZATION NOTE (errorCode):
+# %1$S will be replaced with the number of an error code
+errorCode=Error code: %1$S
+
+# LOCALIZATION NOTE (errorDescription):
+# %1$S will be replaced with the description of an error
+errorDescription=Description: %1$S
+
+# LOCALIZATION NOTE (errorWriting):
+# used for an message like 'An error occurred when writing to the calendar Home!'
+# %1$S will be replaced with the name of a calendar
+errorWriting2=An error occurred when writing to the calendar %1$S! Please see below for more information.
+
+# LOCALIZATION NOTE (errorWritingDetails):
+# This will be displayed in the detail section of the error dialog
+errorWritingDetails=If you’re seeing this message after snoozing or dismissing a reminder and this is for a calendar you do not want to add or edit events for, you can mark this calendar as read-only to avoid such experience in future. To do so, get to the calendar properties by right-clicking on this calendar in the list in the calendar or task view.
+
+# LOCALIZATION NOTE (tooltipCalendarDisabled):
+# used for an alert-message like 'The calendar Home is momentarily not available'
+# %1$S will be replaced with the name of a calendar
+tooltipCalendarDisabled=The calendar %1$S is momentarily not available
+
+# LOCALIZATION NOTE (tooltipCalendarReadOnly):
+# used for an message like 'The calendar Home is readonly'
+# %1$S will be replaced with the name of a calendar
+tooltipCalendarReadOnly=The calendar %1$S is readonly
+
+taskEditInstructions=Click here to add a new task
+taskEditInstructionsReadonly=Please select a writable calendar
+taskEditInstructionsCapability=Please select a calendar that supports tasks
+
+eventDetailsStartDate=Start:
+eventDetailsEndDate=End:
+
+# LOCALIZATION NOTE (datetimeWithTimezone):
+# used for a display of a date-time with timezone 'Thu 2 Oct 2008 13:21', Europe/Paris
+# %1$S will be replaced with the completion date-time
+# %2$S will be replaced with the name of the timezone
+datetimeWithTimezone=%1$S, %2$S
+
+# LOCALIZATION NOTE (singleLongCalendarWeek):
+# used for display of calendar weeks in short form like 'Calendar Week 43'
+# %1$S will be replaced with the index of the week
+singleLongCalendarWeek=Calendar Week: %1$S
+
+# LOCALIZATION NOTE (severalLongCalendarWeeks):
+# used for display of calendar weeks in short form like 'Calendar Weeks 43 - 45'
+# %1$S will be replaced with the index of the start-week
+# %2$S will be replaced with the index of the end-week
+severalLongCalendarWeeks=Calendar Weeks %1$S-%2$S
+
+# LOCALIZATION NOTE (singleShortCalendarWeek):
+# used for display of calendar weeks in short form like 'CW 43'
+# %1$S will be replaced with the index of the week
+singleShortCalendarWeek=CW: %1$S
+
+# LOCALIZATION NOTE (severalShortCalendarWeeks):
+# used for display of calendar weeks in short form like 'CWs 43 - 45'
+# %1$S will be replaced with the index of the start-week
+# %2$S will be replaced with the index of the end-week
+severalShortCalendarWeeks=CWs: %1$S-%2$S
+
+# LOCALIZATION NOTE (multiweekViewWeek):
+# Used for displaying the week number in the first day box of every week
+# in multiweek and month views.
+# It allows to localize the label with the week number in case your locale
+# requires it.
+# Take into account that this label is placed in the same room of the day label
+# inside the day boxes, exactly on left side, hence a possible string shouldn't
+# be too long otherwise it will create confusion between the week number and
+# the day number other than a possible crop when the window is resized.
+#
+# %1$S is a number from 1 to 53 that represents the week number.
+multiweekViewWeek=W %1$S
+
+# Task tree, "Due In" column.
+# LOCALIZATION NOTE (dueInDays, dueInHours): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/Localization_and_Plurals
+dueInDays=#1 day;#1 days
+dueInHours=#1 hour;#1 hours
+dueInLessThanOneHour=< 1 hour
+
+# LOCALIZATION NOTE (monthInYear):
+# used for display of Month-dates like 'December 2008'
+# %1$S will be replaced with name of the month
+# %2$S will be replaced with the year
+monthInYear=%1$S %2$S
+
+# LOCALIZATION NOTE (monthInYear.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+monthInYear.monthFormat=nominative
+
+# LOCALIZATION NOTE (formatDateLong):
+# used for display dates in long format like 'Mon 15 Oct 2008' when it's
+# impossible to retrieve the formatatted date from the OS.
+# %1$S will be replaced with name of the day in short format;
+# %2$S will be replaced with the day-index of the month, possibly followed by an ordinal symbol
+# (depending on the string dayOrdinalSymbol in dateFormat.properties);
+# %3$S will be replaced with the name of the month in short format;
+# %4$S will be replaced with the year.
+formatDateLong=%1$S %2$S %3$S %4$S
+
+# LOCALIZATION NOTE (dayHeaderLabel):
+# used for display the labels in the header of the days in day/week views in short
+# or long format. For example: 'Monday 6 Oct.' or 'Mon. 6 Oct.'
+# %1$S will be replaced with name of the day in short or long format
+# %2$S will be replaced with the day-index of the month, possibly followed by an ordinal symbol
+# (depending on the string dayOrdinalSymbol in dateFormat.properties), plus the name
+# of the month in short format (the day/month order depends on the OS settings).
+dayHeaderLabel=%1$S %2$S
+
+# LOCALIZATION NOTE (daysIntervalInMonth):
+# used for display of intervals in the form of 'March 3 - 9, 2008'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %4$S will be replaced with the common year of both dates
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalInMonth=%1$S %2$S – %3$S, %4$S
+
+# LOCALIZATION NOTE (daysIntervalInMonth.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+daysIntervalInMonth.monthFormat=nominative
+
+# LOCALIZATION NOTE (daysIntervalBetweenMonths):
+# used for display of intervals in the form 'September 29 - October 5, 2008'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with name of the month of the end date
+# %4$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %5$S will be replaced with the common year of both dates
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalBetweenMonths=%1$S %2$S – %3$S %4$S, %5$S
+
+# LOCALIZATION NOTE (daysIntervalBetweenMonths.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+daysIntervalBetweenMonths.monthFormat=nominative
+
+# LOCALIZATION NOTE (daysIntervalBetweenYears):
+# used for display of intervals in the form 'December 29, 2008 - January 4, 2009'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with the year of the start date
+# %4$S will be replaced with name of the month of the end date
+# %5$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %6$S will be replaced with the year of the end date
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalBetweenYears=%1$S %2$S, %3$S – %4$S %5$S, %6$S
+
+# LOCALIZATION NOTE (daysIntervalBetweenYears.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+daysIntervalBetweenYears.monthFormat=nominative
+
+# LOCALIZATION NOTE (datetimeIntervalOnSameDateTime):
+# used for intervals where end is equals to start
+# displayed form is '5 Jan 2006 13:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+datetimeIntervalOnSameDateTime=%1$S %2$S
+
+# LOCALIZATION NOTE (datetimeIntervalOnSameDay):
+# used for intervals where end is on the same day as start, so we can leave out the
+# end date but still include end time
+# displayed form is '5 Jan 2006 13:00 - 17:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+# %3$S will be replaced with the time of the end date
+datetimeIntervalOnSameDay=%1$S %2$S – %3$S
+
+# LOCALIZATION NOTE (datetimeIntervalOnSeveralDays):
+# used for intervals spanning multiple days by including date and time
+# displayed form is '5 Jan 2006 13:00 - 7 Jan 2006 9:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+# %3$S will be replaced with the date of the end date
+# %4$S will be replaced with the time of the end date
+datetimeIntervalOnSeveralDays=%1$S %2$S – %3$S %4$S
+
+# LOCALIZATION NOTE (datetimeIntervalTaskWithoutDate):
+# used for task without start and due date
+# (showed only in exported calendar in Html format)
+datetimeIntervalTaskWithoutDate= no start or due date
+# LOCALIZATION NOTE (datetimeIntervalTaskWithoutDueDate):
+# used for intervals in task with only start date
+# displayed form is 'start date 5 Jan 2006 13:00'
+# (showed only in exported calendar in Html format)
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+datetimeIntervalTaskWithoutDueDate=start date %1$S %2$S
+# LOCALIZATION NOTE (datetimeIntervalTaskWithoutStartDate):
+# used for intervals in task with only due date
+# displayed form is 'due date 5 Jan 2006 13:00'
+# (showed only in exported calendar in Html format)
+# %1$S will be replaced with the date of the due date
+# %2$S will be replaced with the time of the due date
+datetimeIntervalTaskWithoutStartDate=due date %1$S %2$S
+
+# LOCALIZATION NOTE (dragLabelTasksWithOnlyEntryDate
+# dragLabelTasksWithOnlyDueDate)
+# Labels that appear while dragging a task with only
+# entry date OR due date
+dragLabelTasksWithOnlyEntryDate=Starting time
+dragLabelTasksWithOnlyDueDate=Due at
+
+deleteTaskLabel=Delete Task
+deleteTaskAccesskey=l
+deleteItemLabel=Delete
+deleteItemAccesskey=l
+deleteEventLabel=Delete Event
+deleteEventAccesskey=l
+
+calendarPropertiesEveryMinute=Every minute;Every #1 minutes
+
+# LOCALIZATION NOTE (extractUsing)
+# Used in message header
+# %1$S will be replaced with language name from languageNames.properties
+extractUsing=Using %1$S
+
+# LOCALIZATION NOTE (extractUsingRegion)
+# Used in message header
+# %1$S will be replaced with language name from languageNames.properties
+# %2$S will be replaced with region like US in en-US
+extractUsingRegion=Using %1$S (%2$S)
+
+# LOCALIZATION NOTE (unit)
+# Used to determine the correct plural form of a unit
+unitMinutes=#1 minute;#1 minutes
+unitHours=#1 hour;#1 hours
+unitDays=#1 day;#1 days
+unitWeeks=#1 week;#1 weeks
+
+# LOCALIZATION NOTE (showCalendar)
+# Used in calendar list context menu
+# %1$S will be replaced with the calendar name
+# uses the access key calendar.context.togglevisible.accesskey
+showCalendar=Show %1$S
+hideCalendar=Hide %1$S
+# uses the access key calendar.context.showonly.accesskey
+showOnlyCalendar=Show Only %1$S
+
+# LOCALIZATION NOTE (modifyConflict)
+# Used by the event dialog to resolve item modification conflicts.
+modifyConflictPromptTitle=Item Modification Conflict
+modifyConflictPromptMessage=The item being edited in the dialog has been modified since it was opened.
+modifyConflictPromptButton1=Overwrite the other changes
+modifyConflictPromptButton2=Discard these changes
+
+# Accessible description of a grid calendar with no selected date
+minimonthNoSelectedDate=No date selected
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendarCreation.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendarCreation.dtd
new file mode 100644
index 0000000000..71199ce87b
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendarCreation.dtd
@@ -0,0 +1,51 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY wizard.title "Create New Calendar" >
+<!ENTITY wizard.label "Create a new calendar" >
+<!ENTITY wizard.description "Locate your calendar" >
+
+<!ENTITY initialpage.description "Your calendar can be stored on your computer or be stored on a server in order to access it remotely or share it with your friends or co-workers." >
+<!ENTITY initialpage.computer.label "On My Computer">
+<!ENTITY initialpage.network.label "On the Network">
+
+<!ENTITY locationpage.description "Provide info about what is needed to access your remote calendar" >
+<!ENTITY locationpage.login.description "Optional: enter an username and password" >
+<!ENTITY locationpage.username.label "Username:" >
+<!ENTITY locationpage.password.label "Password:" >
+
+<!ENTITY custompage.shortdescription "Customize your calendar" >
+<!ENTITY custompage.longdescription "You can give your calendar a nickname and colourize the events from this calendar." >
+
+<!ENTITY finishpage.shortdescription "Calendar Created" >
+<!ENTITY finishpage.longdescription "Your calendar has been created." >
+
+<!-- Below are new strings for the revised new calendar dialog. The above strings should be
+ removed/renamed later on -->
+
+<!ENTITY sourcetabs.other.label "Other">
+
+<!ENTITY buttons.create.label "Create Calendar">
+<!ENTITY buttons.create.accesskey "r">
+
+<!ENTITY buttons.find.label "Find Calendars">
+<!ENTITY buttons.find.accesskey "F">
+
+<!ENTITY buttons.back.label "Back">
+<!ENTITY buttons.back.accesskey "B">
+
+<!ENTITY buttons.subscribe.label "Subscribe">
+<!ENTITY buttons.subscribe.accesskey "S">
+
+<!ENTITY calendartype.label "Calendar Type:">
+<!ENTITY location.label "Location:">
+<!ENTITY location.placeholder "URL or host name of the calendar server">
+
+<!ENTITY network.nocredentials.label "This location doesn’t require credentials">
+<!ENTITY network.loading.description "Please wait while your calendars are being discovered.">
+<!ENTITY network.notfound.description "Could not find calendars at this location. Please check your settings.">
+<!ENTITY network.authfail.description "The credentials you have entered were not accepted. Please check your settings.">
+
+<!ENTITY network.subscribe.single.description "Please select the calendars you would like to subscribe to.">
+<!ENTITY network.subscribe.multiple.description "Multiple calendar types are available for this location. Please select the calendar type, then mark the calendars you would like to subscribe to.">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendarCreation.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendarCreation.properties
new file mode 100644
index 0000000000..30bf726cb8
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/calendarCreation.properties
@@ -0,0 +1,6 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+error.invalidUri=Please enter a valid location.
+error.alreadyExists=You are already subscribed to the calendar at this location.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/categories.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/categories.properties
new file mode 100644
index 0000000000..7158901136
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/categories.properties
@@ -0,0 +1,7 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# default categories
+
+categories2=Anniversary,Birthday,Business,Calls,Clients,Competition,Customer,Favourites,Follow up,Gifts,Holidays,Ideas,Issues,Meeting,Miscellaneous,Personal,Projects,Public Holiday,Status,Suppliers,Travel,Vacation
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/dateFormat.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/dateFormat.properties
new file mode 100644
index 0000000000..267530829a
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/dateFormat.properties
@@ -0,0 +1,146 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# In case you are looking for the note about different declensions on date
+# formats, here it is. If your language doesn't use different declensions of
+# month names, you shouldn't have much work. Just leave the *.monthFormat
+# string on "nominative" and the string month.*.name will be filled in.
+#
+# If you need a different form for a string, you can change the
+# *.monthFormat to a different value. Supported values are currently:
+# nominative (default), genitive
+# The modified month name form will then be filled in accordingly. If this
+# system does not suit your needs, please file a bug!
+
+# LOCALIZATION NOTE (month.*.name):
+# Some languages require different declensions of month names.
+# These values will be used if *.monthFormat is set to "nominative" or in places
+# where using a different declension is not yet supported.
+month.1.name=January
+month.2.name=February
+month.3.name=March
+month.4.name=April
+month.5.name=May
+month.6.name=June
+month.7.name=July
+month.8.name=August
+month.9.name=September
+month.10.name=October
+month.11.name=November
+month.12.name=December
+
+# LOCALIZATION NOTE (month.*.genitive):
+# Some languages require different declensions of month names.
+# These values will be used if *.monthFormat is set to "genitive"
+# If your language doesn't use different declensions, just set the same
+# values as for month.*.name.
+month.1.genitive=January
+month.2.genitive=February
+month.3.genitive=March
+month.4.genitive=April
+month.5.genitive=May
+month.6.genitive=June
+month.7.genitive=July
+month.8.genitive=August
+month.9.genitive=September
+month.10.genitive=October
+month.11.genitive=November
+month.12.genitive=December
+
+month.1.Mmm=Jan
+month.2.Mmm=Feb
+month.3.Mmm=Mar
+month.4.Mmm=Apr
+month.5.Mmm=May
+month.6.Mmm=Jun
+month.7.Mmm=Jul
+month.8.Mmm=Aug
+month.9.Mmm=Sep
+month.10.Mmm=Oct
+month.11.Mmm=Nov
+month.12.Mmm=Dec
+
+day.1.name=Sunday
+day.2.name=Monday
+day.3.name=Tuesday
+day.4.name=Wednesday
+day.5.name=Thursday
+day.6.name=Friday
+day.7.name=Saturday
+
+day.1.Mmm=Sun
+day.2.Mmm=Mon
+day.3.Mmm=Tue
+day.4.Mmm=Wed
+day.5.Mmm=Thu
+day.6.Mmm=Fri
+day.7.Mmm=Sat
+
+# Can someone tell me why we're not counting from zero?
+day.1.short=Su
+day.2.short=Mo
+day.3.short=Tu
+day.4.short=We
+day.5.short=Th
+day.6.short=Fr
+day.7.short=Sa
+
+# Localizable day's date
+day.1.number=1
+day.2.number=2
+day.3.number=3
+day.4.number=4
+day.5.number=5
+day.6.number=6
+day.7.number=7
+day.8.number=8
+day.9.number=9
+day.10.number=10
+day.11.number=11
+day.12.number=12
+day.13.number=13
+day.14.number=14
+day.15.number=15
+day.16.number=16
+day.17.number=17
+day.18.number=18
+day.19.number=19
+day.20.number=20
+day.21.number=21
+day.22.number=22
+day.23.number=23
+day.24.number=24
+day.25.number=25
+day.26.number=26
+day.27.number=27
+day.28.number=28
+day.29.number=29
+day.30.number=30
+day.31.number=31
+
+# LOCALIZATION NOTE (dayOrdinalSymbol):
+# Allows to insert a string, a character or a symbol after the number of a
+# monthday in order to give it the meaning of ordinal number e.g. 1 -> 1st etc.
+# It's mainly used when formatting dates with both monthday and month name. It
+# affects the following localizable strings that hence must be localized *without*
+# any ordinal symbol for the monthday number:
+# dayHeaderLabel, monthlyDaysOfNth_day,
+# yearlyNthOn, daysIntervalBetweenYears,
+# daysIntervalBetweenMonths, daysIntervalInMonth.
+# Write only a single string if the ordinal symbol is the same for every monthday, otherwise
+# write a sequence of _31_ strings (one for each monthday) separated with commas.
+# If your language doesn't require that in the mentioned strings, leave it empty.
+# e.g.
+# dayOrdinalSymbol=.
+# -> daysIntervalInMonth: 'March 3. - 9., 2008'
+# dayOrdinalSymbol=st,nd,rd,th,th,th,th,th,th,th,th,th,th,th,th,
+# th,th,th,th,th,st,nd,rd,th,th,th,th,th,th,th,st
+# -> daysIntervalBetweenMonths: 'September 29th - November 1st, 2008'
+dayOrdinalSymbol=
+
+noon=Noon
+midnight=Midnight
+
+AllDay=All Day
+Repeating=(Repeating)
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/dialogs/calendar-event-dialog-reminder.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/dialogs/calendar-event-dialog-reminder.dtd
new file mode 100644
index 0000000000..cdbe9af4f4
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/dialogs/calendar-event-dialog-reminder.dtd
@@ -0,0 +1,19 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY reminderdialog.title "Set up Reminders">
+<!ENTITY reminder.add.label "Add">
+<!ENTITY reminder.add.accesskey "A">
+<!ENTITY reminder.remove.label "Remove">
+<!ENTITY reminder.remove.accesskey "R">
+
+<!ENTITY reminder.reminderDetails.label "Reminder Details">
+<!ENTITY reminder.action.label "Choose a Reminder Action">
+
+<!ENTITY reminder.action.alert.label "Show an Alert">
+<!ENTITY reminder.action.email.label "Send an E-mail">
+
+<!ENTITY alarm.units.minutes "minutes" >
+<!ENTITY alarm.units.hours "hours" >
+<!ENTITY alarm.units.days "days" >
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/global.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/global.dtd
new file mode 100644
index 0000000000..9e2ea3456a
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/global.dtd
@@ -0,0 +1,54 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY time.midnight "Midnight" >
+<!ENTITY time.noon "Noon" >
+
+<!-- Day Names -->
+<!-- LOCALIZATION NOTE : Accesskeys for day.1.Ddd to day.7.Ddd are currently
+ only used in Preferences > Views > Workweek groupbox -->
+<!ENTITY day.1.Ddd "Sun" >
+<!ENTITY day.1.Ddd.accesskey "S">
+<!ENTITY day.2.Ddd "Mon" >
+<!ENTITY day.2.Ddd.accesskey "M">
+<!ENTITY day.3.Ddd "Tue" >
+<!ENTITY day.3.Ddd.accesskey "T">
+<!ENTITY day.4.Ddd "Wed" >
+<!ENTITY day.4.Ddd.accesskey "W">
+<!ENTITY day.5.Ddd "Thu" >
+<!ENTITY day.5.Ddd.accesskey "h">
+<!ENTITY day.6.Ddd "Fri" >
+<!ENTITY day.6.Ddd.accesskey "F">
+<!ENTITY day.7.Ddd "Sat" >
+<!ENTITY day.7.Ddd.accesskey "a">
+
+<!ENTITY day.1.name "Sunday" >
+<!ENTITY day.2.name "Monday" >
+<!ENTITY day.3.name "Tuesday" >
+<!ENTITY day.4.name "Wednesday" >
+<!ENTITY day.5.name "Thursday" >
+<!ENTITY day.6.name "Friday" >
+<!ENTITY day.7.name "Saturday" >
+
+<!ENTITY month.1.name "January" >
+<!ENTITY month.2.name "February" >
+<!ENTITY month.3.name "March" >
+<!ENTITY month.4.name "April" >
+<!ENTITY month.5.name "May" >
+<!ENTITY month.6.name "June" >
+<!ENTITY month.7.name "July" >
+<!ENTITY month.8.name "August" >
+<!ENTITY month.9.name "September" >
+<!ENTITY month.10.name "October" >
+<!ENTITY month.11.name "November" >
+<!ENTITY month.12.name "December" >
+
+<!ENTITY onemonthbackward.tooltip "One Month Back" >
+<!ENTITY onemonthforward.tooltip "One Month Forward" >
+<!ENTITY oneyearbackward.tooltip "One Year Back" >
+<!ENTITY oneyearforward.tooltip "One Year Forward" >
+<!ENTITY showToday.tooltip "Go to Today">
+<!ENTITY onedayforward.tooltip "One Day Forward">
+<!ENTITY onedaybackward.tooltip "One Day Backward">
+<!ENTITY showselectedday.tooltip "Show events for selected day">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/menuOverlay.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/menuOverlay.dtd
new file mode 100644
index 0000000000..c0d1911dc2
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/menuOverlay.dtd
@@ -0,0 +1,50 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- Event Menu -->
+<!ENTITY event.new.event "New Event…">
+<!ENTITY event.new.event.accesskey "N">
+
+<!ENTITY event.new.task "New Task…">
+<!ENTITY event.new.task.accesskey "k">
+
+<!ENTITY calendar.import.label "Import…">
+<!ENTITY calendar.import.accesskey "I">
+
+<!ENTITY calendar.export.label "Export…">
+<!ENTITY calendar.export.accesskey "E">
+
+<!ENTITY calendar.publish.label "Publish…">
+<!ENTITY calendar.publish.accesskey "b">
+
+<!ENTITY calendar.deletecalendar.label "Delete Selected Calendar…">
+<!ENTITY calendar.deletecalendar.accesskey "D">
+<!ENTITY calendar.unsubscribecalendar.label "Unsubscribe Selected Calendar…">
+<!ENTITY calendar.unsubscribecalendar.accesskey "U">
+
+<!-- LOCALIZATION NOTE (calendar.removecalendar.label): Removing the calendar
+ is the general action of removing it, while deleting means to clear the
+ data and unsubscribing means just taking it out of the calendar list. -->
+<!ENTITY calendar.removecalendar.label "Remove Selected Calendar…">
+<!ENTITY calendar.removecalendar.accesskey "R">
+
+
+<!ENTITY calendar.menu.customize.label "Customize…">
+<!ENTITY calendar.menu.customize.accesskey "C">
+
+<!ENTITY showUnifinderCmd.label "Find Events">
+<!ENTITY showUnifinderCmd.accesskey "F">
+<!ENTITY showUnifinderCmd.tooltip "Toggle the find events pane">
+
+<!ENTITY calendar.displaytodos.checkbox.label "Show Tasks in Calendar">
+<!ENTITY calendar.displaytodos.checkbox.accesskey "T">
+
+<!ENTITY goTodayCmd.label "Today">
+<!ENTITY goTodayCmd.accesskey "T">
+
+<!ENTITY showCurrentView.label "Current View">
+<!ENTITY showCurrentView.accesskey "V">
+
+<!ENTITY calendar.properties.label "Calendar Properties…">
+<!ENTITY calendar.properties.accesskey "a">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/migration.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/migration.dtd
new file mode 100644
index 0000000000..78440db5ee
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/migration.dtd
@@ -0,0 +1,9 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY migration.title "&brandFullName;: Data Import">
+<!ENTITY migration.welcome "Welcome">
+<!ENTITY migration.importing "Importing">
+<!ENTITY migration.list.description "&brandShortName; can import calendar data from many popular applications. Data from the following applications were found on your computer. Please select which of these you would like to import data from.">
+<!ENTITY migration.progress.description "Importing selected data">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/migration.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/migration.properties
new file mode 100644
index 0000000000..d49618aedc
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/migration.properties
@@ -0,0 +1,13 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+migratingApp = Migrating %1$S…
+
+# The next two lines are duplicated from migration.dtd until there is branding
+# for lightning
+migrationTitle = %1$S: Data Import
+migrationDescription=%1$S can import calendar data from many popular applications. Data from the following applications were found on your computer. Please select which of these you would like to import data from.
+finished = Complete
+disableExtTitle = Incompatible Extension Found
+disableExtText = You have the old Mozilla Calendar Extension installed which is not compatible with Lightning. It will be disabled and %1$S will restart.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/provider-uninstall.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/provider-uninstall.dtd
new file mode 100644
index 0000000000..38bfcbaa8c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/provider-uninstall.dtd
@@ -0,0 +1,12 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY providerUninstall.title "Uninstall a Provider">
+<!ENTITY providerUninstall.accept.label "Unsubscribe Selected">
+<!ENTITY providerUninstall.accept.accesskey "U">
+<!ENTITY providerUninstall.cancel.label "Keep Addon">
+<!ENTITY providerUninstall.cancel.accesskey "K">
+<!ENTITY providerUninstall.preName.label "You have requested to uninstall or disable:">
+<!ENTITY providerUninstall.postName.label "This will cause the calendars below to be disabled.">
+<!ENTITY providerUninstall.reinstallNote.label "Unless you are planning to reinstall this provider, you may choose to unsubscribe from this provider’s calendars.">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/timezones.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/timezones.properties
new file mode 100644
index 0000000000..8bac16e30d
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/calendar/timezones.properties
@@ -0,0 +1,489 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+pref.timezone.floating=Local Time
+pref.timezone.UTC=UTC/GMT
+
+# I've derived this list out of timezones.dtd
+# - replaced '_' with ' ' on value side
+# - corrected 'St xyz' to 'St. xyz'
+
+# timezone names:
+pref.timezone.Africa.Abidjan=Africa/Abidjan
+pref.timezone.Africa.Accra=Africa/Accra
+pref.timezone.Africa.Addis_Ababa=Africa/Addis Ababa
+pref.timezone.Africa.Algiers=Africa/Algiers
+pref.timezone.Africa.Asmara=Africa/Asmara
+pref.timezone.Africa.Bamako=Africa/Bamako
+pref.timezone.Africa.Bangui=Africa/Bangui
+pref.timezone.Africa.Banjul=Africa/Banjul
+pref.timezone.Africa.Bissau=Africa/Bissau
+pref.timezone.Africa.Blantyre=Africa/Blantyre
+pref.timezone.Africa.Brazzaville=Africa/Brazzaville
+pref.timezone.Africa.Bujumbura=Africa/Bujumbura
+pref.timezone.Africa.Cairo=Africa/Cairo
+pref.timezone.Africa.Casablanca=Africa/Casablanca
+pref.timezone.Africa.Ceuta=Africa/Ceuta
+pref.timezone.Africa.Conakry=Africa/Conakry
+pref.timezone.Africa.Dakar=Africa/Dakar
+pref.timezone.Africa.Dar_es_Salaam=Africa/Dar es Salaam
+pref.timezone.Africa.Djibouti=Africa/Djibouti
+pref.timezone.Africa.Douala=Africa/Douala
+pref.timezone.Africa.El_Aaiun=Africa/El Aaiun
+pref.timezone.Africa.Freetown=Africa/Freetown
+pref.timezone.Africa.Gaborone=Africa/Gaborone
+pref.timezone.Africa.Harare=Africa/Harare
+pref.timezone.Africa.Johannesburg=Africa/Johannesburg
+pref.timezone.Africa.Kampala=Africa/Kampala
+pref.timezone.Africa.Khartoum=Africa/Khartoum
+pref.timezone.Africa.Kigali=Africa/Kigali
+pref.timezone.Africa.Kinshasa=Africa/Kinshasa
+pref.timezone.Africa.Lagos=Africa/Lagos
+pref.timezone.Africa.Libreville=Africa/Libreville
+pref.timezone.Africa.Lome=Africa/Lome
+pref.timezone.Africa.Luanda=Africa/Luanda
+pref.timezone.Africa.Lubumbashi=Africa/Lubumbashi
+pref.timezone.Africa.Lusaka=Africa/Lusaka
+pref.timezone.Africa.Malabo=Africa/Malabo
+pref.timezone.Africa.Maputo=Africa/Maputo
+pref.timezone.Africa.Maseru=Africa/Maseru
+pref.timezone.Africa.Mbabane=Africa/Mbabane
+pref.timezone.Africa.Mogadishu=Africa/Mogadishu
+pref.timezone.Africa.Monrovia=Africa/Monrovia
+pref.timezone.Africa.Nairobi=Africa/Nairobi
+pref.timezone.Africa.Ndjamena=Africa/Ndjamena
+pref.timezone.Africa.Niamey=Africa/Niamey
+pref.timezone.Africa.Nouakchott=Africa/Nouakchott
+pref.timezone.Africa.Ouagadougou=Africa/Ouagadougou
+pref.timezone.Africa.Porto-Novo=Africa/Porto-Novo
+pref.timezone.Africa.Sao_Tome=Africa/Sao Tome
+pref.timezone.Africa.Tripoli=Africa/Tripoli
+pref.timezone.Africa.Tunis=Africa/Tunis
+pref.timezone.Africa.Windhoek=Africa/Windhoek
+pref.timezone.America.Adak=America/Adak
+pref.timezone.America.Anchorage=America/Anchorage
+pref.timezone.America.Anguilla=America/Anguilla
+pref.timezone.America.Antigua=America/Antigua
+pref.timezone.America.Araguaina=America/Araguaina
+pref.timezone.America.Argentina.Buenos_Aires=America/Argentina/Buenos Aires
+pref.timezone.America.Argentina.Catamarca=America/Argentina/Catamarca
+pref.timezone.America.Argentina.Cordoba=America/Argentina/Cordoba
+pref.timezone.America.Argentina.Jujuy=America/Argentina/Jujuy
+pref.timezone.America.Argentina.La_Rioja=America/Argentina/La Rioja
+pref.timezone.America.Argentina.Mendoza=America/Argentina/Mendoza
+pref.timezone.America.Argentina.Rio_Gallegos=America/Argentina/Rio Gallegos
+pref.timezone.America.Argentina.San_Juan=America/Argentina/San Juan
+pref.timezone.America.Argentina.Tucuman=America/Argentina/Tucuman
+pref.timezone.America.Argentina.Ushuaia=America/Argentina/Ushuaia
+pref.timezone.America.Aruba=America/Aruba
+pref.timezone.America.Asuncion=America/Asuncion
+pref.timezone.America.Atikokan=America/Atikokan
+pref.timezone.America.Bahia=America/Bahia
+pref.timezone.America.Barbados=America/Barbados
+pref.timezone.America.Belem=America/Belem
+pref.timezone.America.Belize=America/Belize
+pref.timezone.America.Blanc-Sablon=America/Blanc-Sablon
+pref.timezone.America.Boa_Vista=America/Boa Vista
+pref.timezone.America.Bogota=America/Bogota
+pref.timezone.America.Boise=America/Boise
+pref.timezone.America.Cambridge_Bay=America/Cambridge Bay
+pref.timezone.America.Campo_Grande=America/Campo Grande
+pref.timezone.America.Cancun=America/Cancun
+pref.timezone.America.Caracas=America/Caracas
+pref.timezone.America.Cayenne=America/Cayenne
+pref.timezone.America.Cayman=America/Cayman
+pref.timezone.America.Chicago=America/Chicago
+pref.timezone.America.Chihuahua=America/Chihuahua
+pref.timezone.America.Costa_Rica=America/Costa Rica
+pref.timezone.America.Cuiaba=America/Cuiaba
+pref.timezone.America.Curacao=America/Curacao
+pref.timezone.America.Danmarkshavn=America/Danmarkshavn
+pref.timezone.America.Dawson=America/Dawson
+pref.timezone.America.Dawson_Creek=America/Dawson Creek
+pref.timezone.America.Denver=America/Denver
+pref.timezone.America.Detroit=America/Detroit
+pref.timezone.America.Dominica=America/Dominica
+pref.timezone.America.Edmonton=America/Edmonton
+pref.timezone.America.Eirunepe=America/Eirunepe
+pref.timezone.America.El_Salvador=America/El Salvador
+pref.timezone.America.Fortaleza=America/Fortaleza
+pref.timezone.America.Glace_Bay=America/Glace Bay
+pref.timezone.America.Godthab=America/Godthab
+pref.timezone.America.Goose_Bay=America/Goose Bay
+pref.timezone.America.Grand_Turk=America/Grand Turk
+pref.timezone.America.Grenada=America/Grenada
+pref.timezone.America.Guadeloupe=America/Guadeloupe
+pref.timezone.America.Guatemala=America/Guatemala
+pref.timezone.America.Guayaquil=America/Guayaquil
+pref.timezone.America.Guyana=America/Guyana
+pref.timezone.America.Halifax=America/Halifax
+pref.timezone.America.Havana=America/Havana
+pref.timezone.America.Hermosillo=America/Hermosillo
+pref.timezone.America.Indiana.Indianapolis=America/Indiana/Indianapolis
+pref.timezone.America.Indiana.Knox=America/Indiana/Knox
+pref.timezone.America.Indiana.Marengo=America/Indiana/Marengo
+pref.timezone.America.Indiana.Petersburg=America/Indiana/Petersburg
+pref.timezone.America.Indiana.Vevay=America/Indiana/Vevay
+pref.timezone.America.Indiana.Vincennes=America/Indiana/Vincennes
+pref.timezone.America.Inuvik=America/Inuvik
+pref.timezone.America.Iqaluit=America/Iqaluit
+pref.timezone.America.Jamaica=America/Jamaica
+pref.timezone.America.Juneau=America/Juneau
+pref.timezone.America.Kentucky.Louisville=America/Kentucky/Louisville
+pref.timezone.America.Kentucky.Monticello=America/Kentucky/Monticello
+pref.timezone.America.La_Paz=America/La Paz
+pref.timezone.America.Lima=America/Lima
+pref.timezone.America.Los_Angeles=America/Los Angeles
+pref.timezone.America.Maceio=America/Maceio
+pref.timezone.America.Managua=America/Managua
+pref.timezone.America.Manaus=America/Manaus
+pref.timezone.America.Martinique=America/Martinique
+pref.timezone.America.Mazatlan=America/Mazatlan
+pref.timezone.America.Menominee=America/Menominee
+pref.timezone.America.Merida=America/Merida
+pref.timezone.America.Mexico_City=America/Mexico City
+pref.timezone.America.Miquelon=America/Miquelon
+pref.timezone.America.Moncton=America/Moncton
+pref.timezone.America.Monterrey=America/Monterrey
+pref.timezone.America.Montevideo=America/Montevideo
+pref.timezone.America.Montreal=America/Montreal
+pref.timezone.America.Montserrat=America/Montserrat
+pref.timezone.America.Nassau=America/Nassau
+pref.timezone.America.New_York=America/New York
+pref.timezone.America.Nipigon=America/Nipigon
+pref.timezone.America.Nome=America/Nome
+pref.timezone.America.Noronha=America/Noronha
+pref.timezone.America.North_Dakota.Center=America/North Dakota/Centre
+pref.timezone.America.North_Dakota.New_Salem=America/North Dakota/New Salem
+pref.timezone.America.Panama=America/Panama
+pref.timezone.America.Pangnirtung=America/Pangnirtung
+pref.timezone.America.Paramaribo=America/Paramaribo
+pref.timezone.America.Phoenix=America/Phoenix
+pref.timezone.America.Port-au-Prince=America/Port-au-Prince
+pref.timezone.America.Port_of_Spain=America/Port of Spain
+pref.timezone.America.Porto_Velho=America/Porto Velho
+pref.timezone.America.Puerto_Rico=America/Puerto Rico
+pref.timezone.America.Rainy_River=America/Rainy River
+pref.timezone.America.Rankin_Inlet=America/Rankin Inlet
+pref.timezone.America.Recife=America/Recife
+pref.timezone.America.Regina=America/Regina
+pref.timezone.America.Rio_Branco=America/Rio Branco
+pref.timezone.America.Santiago=America/Santiago
+pref.timezone.America.Santo_Domingo=America/Santo Domingo
+pref.timezone.America.Sao_Paulo=America/Sao Paulo
+pref.timezone.America.Scoresbysund=America/Scoresbysund
+pref.timezone.America.Shiprock=America/Shiprock
+pref.timezone.America.St_Johns=America/St. Johns
+pref.timezone.America.St_Kitts=America/St. Kitts
+pref.timezone.America.St_Lucia=America/St. Lucia
+pref.timezone.America.St_Thomas=America/St. Thomas
+pref.timezone.America.St_Vincent=America/St. Vincent
+pref.timezone.America.Swift_Current=America/Swift Current
+pref.timezone.America.Tegucigalpa=America/Tegucigalpa
+pref.timezone.America.Thule=America/Thule
+pref.timezone.America.Thunder_Bay=America/Thunder Bay
+pref.timezone.America.Tijuana=America/Tijuana
+pref.timezone.America.Toronto=America/Toronto
+pref.timezone.America.Tortola=America/Tortola
+pref.timezone.America.Vancouver=America/Vancouver
+pref.timezone.America.Whitehorse=America/Whitehorse
+pref.timezone.America.Winnipeg=America/Winnipeg
+pref.timezone.America.Yakutat=America/Yakutat
+pref.timezone.America.Yellowknife=America/Yellowknife
+pref.timezone.Antarctica.Casey=Antarctica/Casey
+pref.timezone.Antarctica.Davis=Antarctica/Davis
+pref.timezone.Antarctica.DumontDUrville=Antarctica/DumontDUrville
+pref.timezone.Antarctica.Mawson=Antarctica/Mawson
+pref.timezone.Antarctica.McMurdo=Antarctica/McMurdo
+pref.timezone.Antarctica.Palmer=Antarctica/Palmer
+pref.timezone.Antarctica.Rothera=Antarctica/Rothera
+pref.timezone.Antarctica.South_Pole=Antarctica/South Pole
+pref.timezone.Antarctica.Syowa=Antarctica/Syowa
+pref.timezone.Antarctica.Vostok=Antarctica/Vostok
+pref.timezone.Arctic.Longyearbyen=Arctic/Longyearbyen
+pref.timezone.Asia.Aden=Asia/Aden
+pref.timezone.Asia.Almaty=Asia/Almaty
+pref.timezone.Asia.Amman=Asia/Amman
+pref.timezone.Asia.Anadyr=Asia/Anadyr
+pref.timezone.Asia.Aqtau=Asia/Aqtau
+pref.timezone.Asia.Aqtobe=Asia/Aqtobe
+pref.timezone.Asia.Ashgabat=Asia/Ashgabat
+pref.timezone.Asia.Baghdad=Asia/Baghdad
+pref.timezone.Asia.Bahrain=Asia/Bahrain
+pref.timezone.Asia.Baku=Asia/Baku
+pref.timezone.Asia.Bangkok=Asia/Bangkok
+pref.timezone.Asia.Beirut=Asia/Beirut
+pref.timezone.Asia.Bishkek=Asia/Bishkek
+pref.timezone.Asia.Brunei=Asia/Brunei
+pref.timezone.Asia.Choibalsan=Asia/Choibalsan
+pref.timezone.Asia.Chongqing=Asia/Chongqing
+pref.timezone.Asia.Colombo=Asia/Colombo
+pref.timezone.Asia.Damascus=Asia/Damascus
+pref.timezone.Asia.Dhaka=Asia/Dhaka
+pref.timezone.Asia.Dili=Asia/Dili
+pref.timezone.Asia.Dubai=Asia/Dubai
+pref.timezone.Asia.Dushanbe=Asia/Dushanbe
+pref.timezone.Asia.Gaza=Asia/Gaza
+pref.timezone.Asia.Harbin=Asia/Harbin
+pref.timezone.Asia.Hong_Kong=Asia/Hong Kong
+pref.timezone.Asia.Hovd=Asia/Hovd
+pref.timezone.Asia.Irkutsk=Asia/Irkutsk
+pref.timezone.Asia.Istanbul=Asia/Istanbul
+pref.timezone.Asia.Jakarta=Asia/Jakarta
+pref.timezone.Asia.Jayapura=Asia/Jayapura
+pref.timezone.Asia.Jerusalem=Asia/Jerusalem
+pref.timezone.Asia.Kabul=Asia/Kabul
+pref.timezone.Asia.Kamchatka=Asia/Kamchatka
+pref.timezone.Asia.Karachi=Asia/Karachi
+pref.timezone.Asia.Kashgar=Asia/Kashgar
+pref.timezone.Asia.Kathmandu=Asia/Kathmandu
+pref.timezone.Asia.Krasnoyarsk=Asia/Krasnoyarsk
+pref.timezone.Asia.Kuala_Lumpur=Asia/Kuala Lumpur
+pref.timezone.Asia.Kuching=Asia/Kuching
+pref.timezone.Asia.Kuwait=Asia/Kuwait
+pref.timezone.Asia.Macau=Asia/Macau
+pref.timezone.Asia.Magadan=Asia/Magadan
+pref.timezone.Asia.Makassar=Asia/Makassar
+pref.timezone.Asia.Manila=Asia/Manila
+pref.timezone.Asia.Muscat=Asia/Muscat
+pref.timezone.Asia.Nicosia=Asia/Nicosia
+pref.timezone.Asia.Novosibirsk=Asia/Novosibirsk
+pref.timezone.Asia.Omsk=Asia/Omsk
+pref.timezone.Asia.Oral=Asia/Oral
+pref.timezone.Asia.Phnom_Penh=Asia/Phnom Penh
+pref.timezone.Asia.Pontianak=Asia/Pontianak
+pref.timezone.Asia.Pyongyang=Asia/Pyongyang
+pref.timezone.Asia.Qatar=Asia/Qatar
+pref.timezone.Asia.Qyzylorda=Asia/Qyzylorda
+pref.timezone.Asia.Rangoon=Asia/Rangoon
+pref.timezone.Asia.Riyadh=Asia/Riyadh
+pref.timezone.Asia.Sakhalin=Asia/Sakhalin
+pref.timezone.Asia.Samarkand=Asia/Samarkand
+pref.timezone.Asia.Seoul=Asia/Seoul
+pref.timezone.Asia.Shanghai=Asia/Shanghai
+pref.timezone.Asia.Singapore=Asia/Singapore
+pref.timezone.Asia.Taipei=Asia/Taipei
+pref.timezone.Asia.Tashkent=Asia/Tashkent
+pref.timezone.Asia.Tbilisi=Asia/Tbilisi
+pref.timezone.Asia.Tehran=Asia/Tehran
+pref.timezone.Asia.Thimphu=Asia/Thimphu
+pref.timezone.Asia.Tokyo=Asia/Tokyo
+pref.timezone.Asia.Ulaanbaatar=Asia/Ulaanbaatar
+pref.timezone.Asia.Urumqi=Asia/Urumqi
+pref.timezone.Asia.Vientiane=Asia/Vientiane
+pref.timezone.Asia.Vladivostok=Asia/Vladivostok
+pref.timezone.Asia.Yakutsk=Asia/Yakutsk
+pref.timezone.Asia.Yekaterinburg=Asia/Yekaterinburg
+pref.timezone.Asia.Yerevan=Asia/Yerevan
+pref.timezone.Atlantic.Azores=Atlantic/Azores
+pref.timezone.Atlantic.Bermuda=Atlantic/Bermuda
+pref.timezone.Atlantic.Canary=Atlantic/Canary
+pref.timezone.Atlantic.Cape_Verde=Atlantic/Cape Verde
+pref.timezone.Atlantic.Faroe=Atlantic/Faroe
+pref.timezone.Atlantic.Madeira=Atlantic/Madeira
+pref.timezone.Atlantic.Reykjavik=Atlantic/Reykjavik
+pref.timezone.Atlantic.South_Georgia=Atlantic/South Georgia
+pref.timezone.Atlantic.St_Helena=Atlantic/St. Helena
+pref.timezone.Atlantic.Stanley=Atlantic/Stanley
+pref.timezone.Australia.Adelaide=Australia/Adelaide
+pref.timezone.Australia.Brisbane=Australia/Brisbane
+pref.timezone.Australia.Broken_Hill=Australia/Broken Hill
+pref.timezone.Australia.Currie=Australia/Currie
+pref.timezone.Australia.Darwin=Australia/Darwin
+pref.timezone.Australia.Eucla=Australia/Eucla
+pref.timezone.Australia.Hobart=Australia/Hobart
+pref.timezone.Australia.Lindeman=Australia/Lindeman
+pref.timezone.Australia.Lord_Howe=Australia/Lord Howe
+pref.timezone.Australia.Melbourne=Australia/Melbourne
+pref.timezone.Australia.Perth=Australia/Perth
+pref.timezone.Australia.Sydney=Australia/Sydney
+pref.timezone.Europe.Amsterdam=Europe/Amsterdam
+pref.timezone.Europe.Andorra=Europe/Andorra
+pref.timezone.Europe.Athens=Europe/Athens
+pref.timezone.Europe.Belgrade=Europe/Belgrade
+pref.timezone.Europe.Berlin=Europe/Berlin
+pref.timezone.Europe.Bratislava=Europe/Bratislava
+pref.timezone.Europe.Brussels=Europe/Brussels
+pref.timezone.Europe.Bucharest=Europe/Bucharest
+pref.timezone.Europe.Budapest=Europe/Budapest
+pref.timezone.Europe.Chisinau=Europe/Chisinau
+pref.timezone.Europe.Copenhagen=Europe/Copenhagen
+pref.timezone.Europe.Dublin=Europe/Dublin
+pref.timezone.Europe.Gibraltar=Europe/Gibraltar
+pref.timezone.Europe.Guernsey=Europe/Guernsey
+pref.timezone.Europe.Helsinki=Europe/Helsinki
+pref.timezone.Europe.Isle_of_Man=Europe/Isle of Man
+pref.timezone.Europe.Istanbul=Europe/Istanbul
+pref.timezone.Europe.Jersey=Europe/Jersey
+pref.timezone.Europe.Kaliningrad=Europe/Kaliningrad
+pref.timezone.Europe.Kiev=Europe/Kiev
+pref.timezone.Europe.Lisbon=Europe/Lisbon
+pref.timezone.Europe.Ljubljana=Europe/Ljubljana
+pref.timezone.Europe.London=Europe/London
+pref.timezone.Europe.Luxembourg=Europe/Luxembourg
+pref.timezone.Europe.Madrid=Europe/Madrid
+pref.timezone.Europe.Malta=Europe/Malta
+pref.timezone.Europe.Mariehamn=Europe/Mariehamn
+pref.timezone.Europe.Minsk=Europe/Minsk
+pref.timezone.Europe.Monaco=Europe/Monaco
+pref.timezone.Europe.Moscow=Europe/Moscow
+pref.timezone.Europe.Nicosia=Europe/Nicosia
+pref.timezone.Europe.Oslo=Europe/Oslo
+pref.timezone.Europe.Paris=Europe/Paris
+pref.timezone.Europe.Podgorica=Europe/Podgorica
+pref.timezone.Europe.Prague=Europe/Prague
+pref.timezone.Europe.Riga=Europe/Riga
+pref.timezone.Europe.Rome=Europe/Rome
+pref.timezone.Europe.Samara=Europe/Samara
+pref.timezone.Europe.San_Marino=Europe/San Marino
+pref.timezone.Europe.Sarajevo=Europe/Sarajevo
+pref.timezone.Europe.Simferopol=Europe/Simferopol
+pref.timezone.Europe.Skopje=Europe/Skopje
+pref.timezone.Europe.Sofia=Europe/Sofia
+pref.timezone.Europe.Stockholm=Europe/Stockholm
+pref.timezone.Europe.Tallinn=Europe/Tallinn
+pref.timezone.Europe.Tirane=Europe/Tirane
+pref.timezone.Europe.Uzhgorod=Europe/Uzhgorod
+pref.timezone.Europe.Vaduz=Europe/Vaduz
+pref.timezone.Europe.Vatican=Europe/Vatican
+pref.timezone.Europe.Vienna=Europe/Vienna
+pref.timezone.Europe.Vilnius=Europe/Vilnius
+pref.timezone.Europe.Volgograd=Europe/Volgograd
+pref.timezone.Europe.Warsaw=Europe/Warsaw
+pref.timezone.Europe.Zagreb=Europe/Zagreb
+pref.timezone.Europe.Zaporozhye=Europe/Zaporozhye
+pref.timezone.Europe.Zurich=Europe/Zurich
+pref.timezone.Indian.Antananarivo=Indian/Antananarivo
+pref.timezone.Indian.Chagos=Indian/Chagos
+pref.timezone.Indian.Christmas=Indian/Christmas
+pref.timezone.Indian.Cocos=Indian/Cocos
+pref.timezone.Indian.Comoro=Indian/Comoro
+pref.timezone.Indian.Kerguelen=Indian/Kerguelen
+pref.timezone.Indian.Mahe=Indian/Mahe
+pref.timezone.Indian.Maldives=Indian/Maldives
+pref.timezone.Indian.Mauritius=Indian/Mauritius
+pref.timezone.Indian.Mayotte=Indian/Mayotte
+pref.timezone.Indian.Reunion=Indian/Reunion
+pref.timezone.Pacific.Apia=Pacific/Apia
+pref.timezone.Pacific.Auckland=Pacific/Auckland
+pref.timezone.Pacific.Chatham=Pacific/Chatham
+pref.timezone.Pacific.Easter=Pacific/Easter
+pref.timezone.Pacific.Efate=Pacific/Efate
+pref.timezone.Pacific.Enderbury=Pacific/Enderbury
+pref.timezone.Pacific.Fakaofo=Pacific/Fakaofo
+pref.timezone.Pacific.Fiji=Pacific/Fiji
+pref.timezone.Pacific.Funafuti=Pacific/Funafuti
+pref.timezone.Pacific.Galapagos=Pacific/Galapagos
+pref.timezone.Pacific.Gambier=Pacific/Gambier
+pref.timezone.Pacific.Guadalcanal=Pacific/Guadalcanal
+pref.timezone.Pacific.Guam=Pacific/Guam
+pref.timezone.Pacific.Honolulu=Pacific/Honolulu
+pref.timezone.Pacific.Johnston=Pacific/Johnston
+pref.timezone.Pacific.Kiritimati=Pacific/Kiritimati
+pref.timezone.Pacific.Kosrae=Pacific/Kosrae
+pref.timezone.Pacific.Kwajalein=Pacific/Kwajalein
+pref.timezone.Pacific.Majuro=Pacific/Majuro
+pref.timezone.Pacific.Marquesas=Pacific/Marquesas
+pref.timezone.Pacific.Midway=Pacific/Midway
+pref.timezone.Pacific.Nauru=Pacific/Nauru
+pref.timezone.Pacific.Niue=Pacific/Niue
+pref.timezone.Pacific.Norfolk=Pacific/Norfolk
+pref.timezone.Pacific.Noumea=Pacific/Noumea
+pref.timezone.Pacific.Pago_Pago=Pacific/Pago Pago
+pref.timezone.Pacific.Palau=Pacific/Palau
+pref.timezone.Pacific.Pitcairn=Pacific/Pitcairn
+pref.timezone.Pacific.Ponape=Pacific/Ponape
+pref.timezone.Pacific.Port_Moresby=Pacific/Port Moresby
+pref.timezone.Pacific.Rarotonga=Pacific/Rarotonga
+pref.timezone.Pacific.Saipan=Pacific/Saipan
+pref.timezone.Pacific.Tahiti=Pacific/Tahiti
+pref.timezone.Pacific.Tarawa=Pacific/Tarawa
+pref.timezone.Pacific.Tongatapu=Pacific/Tongatapu
+pref.timezone.Pacific.Truk=Pacific/Truk
+pref.timezone.Pacific.Wake=Pacific/Wake
+pref.timezone.Pacific.Wallis=Pacific/Wallis
+
+# the following have been missing
+pref.timezone.America.Indiana.Tell_City=America/Indiana/Tell City
+pref.timezone.America.Indiana.Winamac=America/Indiana/Winamac
+pref.timezone.America.Marigot=America/Marigot
+pref.timezone.America.Resolute=America/Resolute
+pref.timezone.America.St_Barthelemy=America/St. Barthelemy
+
+# added with 2008d:
+pref.timezone.America.Argentina.San_Luis=America/Argentina/San Luis
+pref.timezone.America.Santarem=America/Santarem
+pref.timezone.Asia.Ho_Chi_Minh=Asia/Ho Chi Minh
+pref.timezone.Asia.Kolkata=Asia/Kolkata
+
+# added with 2008i:
+pref.timezone.America.Argentina.Salta=America/Argentina/Salta
+
+# added with 2010i
+pref.timezone.America.Matamoros=America/Matamoros
+pref.timezone.America.Ojinaga=America/Ojinaga
+pref.timezone.America.Santa_Isabel=America/Santa Isabel
+pref.timezone.Antarctica.Macquarie=Antarctica/Macquarie
+pref.timezone.Asia.Novokuznetsk=Asia/Novokuznetsk
+
+#added with 2011b
+pref.timezone.America.Bahia_Banderas=America/Bahia Banderas
+pref.timezone.America.North_Dakota.Beulah=America/North Dakota/Beulah
+pref.timezone.Pacific.Chuuk=Pacific/Chuuk
+pref.timezone.Pacific.Pohnpei=Pacific/Pohnpei
+
+#added with 2011n
+pref.timezone.Africa.Juba=Africa/Juba
+pref.timezone.America.Kralendijk=America/Kralendijk
+pref.timezone.America.Lower_Princes=America/Lower Princes
+pref.timezone.America.Metlakatla=America/Metlakatla
+pref.timezone.America.Sitka=America/Sitka
+pref.timezone.Asia.Hebron=Asia/Hebron
+
+#added with 2013a
+pref.timezone.America.Creston=America/Creston
+pref.timezone.Asia.Khandyga=Asia/Khandyga
+pref.timezone.Asia.Ust-Nera=Asia/Ust-Nera
+pref.timezone.Europe.Busingen=Europe/Busingen
+
+#added with 2014b
+pref.timezone.Antarctica.Troll=Antarctica/Troll
+
+#added with 2014j
+pref.timezone.Asia.Chita=Asia/Chita
+pref.timezone.Asia.Srednekolymsk=Asia/Srednekolymsk
+pref.timezone.Pacific.Bougainville=Pacific/Bougainville
+
+#added with 2.2015g
+pref.timezone.America.Fort_Nelson=America/Fort Nelson
+
+#added with 2.2016b
+pref.timezone.Europe.Ulyanovsk=Europe/Ulyanovsk
+pref.timezone.Europe.Astrakhan=Europe/Astrakhan
+pref.timezone.Asia.Barnaul=Asia/Barnaul
+
+#added with 2.2016i
+pref.timezone.Asia.Yangon=Asia/Yangon
+pref.timezone.Asia.Tomsk=Asia/Tomsk
+pref.timezone.Asia.Famagusta=Asia/Famagusta
+pref.timezone.Europe.Kirov=Europe/Kirov
+
+#added with 2.2016j
+pref.timezone.Europe.Saratov=Europe/Saratov
+pref.timezone.Asia.Atyrau=Asia/Atyrau
+
+#added with 2.2017b
+pref.timezone.America.Punta_Arenas=America/Punta Arenas
+
+#added with 2.2018i
+pref.timezone.Asia.Qostanay=Asia/Qostanay
+
+#added with 2.2020a
+pref.timezone.America.Nuuk=America/Nuuk
+
+#added with 2.2021c
+pref.timezone.Pacific.Kanton=Pacific/Kanton
+
+#added with 2.2022b
+pref.timezone.Europe.Kyiv=Europe/Kyiv
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/accounts.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/accounts.dtd
new file mode 100644
index 0000000000..e17e5a6e59
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/accounts.dtd
@@ -0,0 +1,41 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- Account manager window for Instantbird -->
+<!ENTITY accounts.title "Accounts - &brandShortName;">
+<!ENTITY accountManager.width "450">
+<!-- Instant messaging account status window for Thunderbird -->
+<!ENTITY accountsWindow.title "Instant messaging status">
+<!ENTITY accountsWindow2.style "width: 41em; height: 27em;">
+
+<!ENTITY accountManager.newAccount.label "New Account">
+<!ENTITY accountManager.newAccount.accesskey "N">
+<!ENTITY accountManager.close.label "Close">
+<!ENTITY accountManager.close.accesskey "l">
+<!-- This should match account.commandkey in instantbird.dtd -->
+<!ENTITY accountManager.close.commandkey "a">
+<!-- This title must be short, displayed with a big font size -->
+<!ENTITY accountManager.noAccount.title "No account configured yet">
+<!ENTITY accountManager.noAccount.description "Click on the &accountManager.newAccount.label; button to let &brandShortName; guide you through the process of configuring one.">
+<!ENTITY account.autoSignOn.label "Sign-on at startup">
+<!ENTITY account.autoSignOn.accesskey "S">
+<!ENTITY account.connect.label "Connect">
+<!ENTITY account.connect.accesskey "o">
+<!ENTITY account.disconnect.label "Disconnect">
+<!ENTITY account.disconnect.accesskey "i">
+<!ENTITY account.delete.label "Delete">
+<!ENTITY account.delete.accesskey "D">
+<!ENTITY account.edit.label "Properties">
+<!ENTITY account.edit.accesskey "P">
+<!ENTITY account.moveup.label "Move up">
+<!ENTITY account.movedown.label "Move down">
+<!ENTITY account.cancelReconnection.label "Cancel reconnection">
+<!ENTITY account.cancelReconnection.accesskey "A">
+<!ENTITY account.copyDebugLog.label "Copy Debug Log">
+<!ENTITY account.copyDebugLog.accesskey "C">
+<!ENTITY account.showDebugLog.label "Show Debug Log">
+<!ENTITY account.showDebugLog.accesskey "H">
+<!ENTITY account.connecting "Connecting…">
+<!ENTITY account.disconnecting "Disconnecting…">
+<!ENTITY account.disconnected "Not Connected">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/accounts.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/accounts.properties
new file mode 100644
index 0000000000..051ba0d496
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/accounts.properties
@@ -0,0 +1,9 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (passwordPromptTitle, passwordPromptText):
+# %S is replaced with the name of the account
+passwordPromptTitle=Password for %S
+passwordPromptText=Please enter your password for %S in order to connect it.
+passwordPromptSaveCheckbox=Use Password Manager to remember this password.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/commands.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/commands.properties
new file mode 100644
index 0000000000..82d6194d38
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/commands.properties
@@ -0,0 +1,27 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (commands):
+# %S is a comma separated list of command names.
+commands=Commands: %S.\nUse /help &lt;command&gt; for more information.
+# LOCALIZATION NOTE (noCommand, noHelp):
+# %S is the command name the user typed.
+noCommand=No ‘%S’ command.
+noHelp=No help message for the ‘%S’ command, sorry!
+
+sayHelpString=say &lt;message&gt;: send a message without processing commands.
+rawHelpString=raw &lt;message&gt;: send a message without escaping HTML entities.
+helpHelpString=help &lt;name&gt;: show the help message for the &lt;name&gt; command, or the list of possible commands when used without parameter.
+
+# LOCALIZATION NOTE (statusCommand):
+# %1$S is replaced with a status command name
+# (one of "back", "away", "busy", "dnd", or "offline").
+# %2$S is replaced with the localized version of that status type
+# (one of the 5 strings below).
+statusCommand=%1$S &lt;status message&gt;: set the status to %2$S with an optional status message.
+back=available
+away=away
+busy=unavailable
+dnd=unavailable
+offline=offline
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/contacts.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/contacts.properties
new file mode 100644
index 0000000000..33af79c1d3
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/contacts.properties
@@ -0,0 +1,8 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (defaultGroup):
+# This is the name of the group that will automatically be created when adding a
+# buddy without specifying a group.
+defaultGroup=Contacts
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/conversations.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/conversations.properties
new file mode 100644
index 0000000000..3b20573782
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/conversations.properties
@@ -0,0 +1,85 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (targetChanged):
+# %1$S is the new conversation title (display name of the new target),
+# %2$S is the protocol name used for the new target.
+targetChanged=The conversation will continue with %1$S, using %2$S.
+
+# LOCALIZATION NOTE (statusChanged):
+# %1$S is the display name of the contact.
+# %2$S is the new status type (a value from status.properties).
+statusChanged=%1$S is now %2$S.
+# LOCALIZATION NOTE (statusChangedWithStatusText):
+# %1$S is the display name of the contact.
+# %2$S is the new status type (a value from status.properties).
+# %3$S is the status text (eg. "I'm currently away from the computer").
+statusChangedWithStatusText=%1$S is now %2$S: %3$S.
+# LOCALIZATION NOTE (statusChangedFromUnknown[WithStatusText]):
+# special case of the previous 2 strings for when the status was
+# previously unknown. These 2 strings should not mislead the user
+# into thinking the person's status has just changed.
+statusChangedFromUnknown=%1$S is %2$S.
+statusChangedFromUnknownWithStatusText=%1$S is %2$S: %3$S.
+# LOCALIZATION NOTE (statusKnown[WithStatusText]):
+# special case of the previous 2 strings for when an account has just
+# been reconnected, so the status is now known. These 2 strings should not
+# mislead the user into thinking the person's status has just changed.
+statusKnown=Your account has been reconnected (%1$S is %2$S).
+statusKnownWithStatusText=Your account has been reconnected (%1$S is %2$S: %3$S).
+# LOCALIZATION NOTE (statusUnknown):
+# %S is the display name of the contact.
+statusUnknown=Your account is disconnected (the status of %S is no longer known).
+
+accountDisconnected=Your account is disconnected.
+accountReconnected=Your account has been reconnected.
+
+# LOCALIZATION NOTE (autoReply):
+# %S is replaced by the text of a message that was sent as an automatic reply.
+autoReply=Auto-reply - %S
+
+# LOCALIZATION NOTE (noTopic):
+# Displayed instead of the topic when no topic is set.
+noTopic=No topic message for this room.
+
+# LOCALIZATION NOTE (topicSet):
+# %1$S is the conversation name, %2$S is the topic.
+topicSet=The topic for %1$S is: %2$S.
+# LOCALIZATION NOTE (topicNotSet):
+# %S is the conversation name.
+topicNotSet=There is no topic for %S.
+# LOCALIZATION NOTE (topicChanged):
+# %1$S is the user who changed the topic, %2$S is the new topic.
+topicChanged=%1$S has changed the topic to: %2$S.
+# LOCALIZATION NOTE (topicCleared):
+# %1$S is the user who cleared the topic.
+topicCleared=%1$S has cleared the topic.
+
+# LOCALIZATION NOTE (nickSet):
+# This is displayed as a system message when a participant changes his/her
+# nickname in a conversation.
+# %1$S is the old nick.
+# %2$S is the new nick.
+nickSet=%1$S is now known as %2$S.
+# LOCALIZATION NOTE (nickSet.you):
+# This is displayed as a system message when your nickname is changed.
+# %S is your new nick.
+nickSet.you=You are now known as %S.
+
+# LOCALIZATION NOTE (messenger.conversations.selections.ellipsis):
+# ellipsis is used when copying a part of a message to show that the message was cut
+messenger.conversations.selections.ellipsis=[…]
+
+# LOCALIZATION NOTE (messenger.conversations.selections.{system,content,action}MessagesTemplate):
+# These 3 templates are used to format selected messages before copying them.
+# Do not translate the texts between % characters, but feel free to adjust
+# whitespace and separators to make them fit your locale.
+messenger.conversations.selections.systemMessagesTemplate=%time% - %message%
+messenger.conversations.selections.contentMessagesTemplate=%time% - %sender%: %message%
+messenger.conversations.selections.actionMessagesTemplate=%time% * %sender% %message%
+
+# LOCALIZATION NOTE (message.status):
+# This is used as title attribute for the visible lock icon in case a message
+# was sent encrypted through the OTR protocol.
+message.status=Message encrypted
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/facebook.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/facebook.properties
new file mode 100644
index 0000000000..2e00cbcb2e
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/facebook.properties
@@ -0,0 +1,6 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+facebook.chat.name=Facebook Chat
+facebook.disabled=Facebook Chat is no longer supported due to Facebook disabling their XMPP gateway.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/imtooltip.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/imtooltip.properties
new file mode 100644
index 0000000000..de23054493
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/imtooltip.properties
@@ -0,0 +1,12 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+buddy.username=Username
+buddy.account=Account
+contact.tags=Tags
+
+otr.tag=OTR Status
+
+encryption.tag=Encryption Status
+message.status=Message encrypted
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/irc.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/irc.properties
new file mode 100644
index 0000000000..ffdac62a31
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/irc.properties
@@ -0,0 +1,209 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (irc.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring an IRC account.
+irc.usernameHint=nick
+
+# LOCALIZATION NOTE (connection.error.*):
+# These will show in the account manager if the account is
+# disconnected because of an error.
+connection.error.lost=Lost connection with server
+connection.error.timeOut=Connection timed out
+connection.error.invalidUsername=%S is not an allowed username
+connection.error.invalidPassword=Invalid server password
+connection.error.passwordRequired=Password required
+
+# LOCALIZATION NOTE (joinChat.*):
+# These show up on the join chat menu. An underscore is for the access key.
+joinChat.channel=_Channel
+joinChat.password=_Password
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.server=Server
+options.port=Port
+options.ssl=Use SSL
+options.encoding=Character Set
+options.quitMessage=Quit message
+options.partMessage=Part message
+options.showServerTab=Show messages from the server
+options.alternateNicks=Alternate nicks
+
+# LOCALIZATION NOTE (ctcp.version):
+# %1$S is the nickname of the user whose version was requested.
+# %2$S is the version response from the client.
+ctcp.version=%1$S is using “%2$S”.
+# LOCALIZATION NOTE (ctcp.time):
+# %1$S is the nickname of the user whose time was requested.
+# %2$S is the time response.
+ctcp.time=The time for %1$S is %2$S.
+
+# LOCALZIATION NOTE (command.*):
+# These are the help messages for each command, the %S is the command name
+# Each command first gives the parameter it accepts and then a description of
+# the command.
+command.action=%S &lt;action to perform&gt;: Perform an action.
+command.ban=%S &lt;nick!user@host&gt;: Ban the users matching the given pattern.
+command.ctcp=%S &lt;nick&gt; &lt;msg&gt;: Sends a CTCP message to the nick.
+command.chanserv=%S &lt;command&gt;: Send a command to ChanServ.
+command.deop=%S &lt;nick1&gt;[,&lt;nick2&gt;]*: Remove channel operator status from someone. You must be a channel operator to do this.
+command.devoice=%S &lt;nick1&gt;[,&lt;nick2&gt;]*: Remove channel voice status from someone, preventing them from speaking if the channel is moderated (+m). You must be a channel operator to do this.
+command.invite2=%S &lt;nick&gt;[ &lt;nick&gt;]* [&lt;channel&gt;]: Invite one or more nicks to join you in the current channel, or to join the specified channel.
+command.join=%S &lt;room1&gt;[ &lt;key1&gt;][,&lt;room2&gt;[ &lt;key2&gt;]]*: Enter one or more channels, optionally providing a channel key for each if needed.
+command.kick=%S &lt;nick&gt; [&lt;message&gt;]: Remove someone from a channel. You must be a channel operator to do this.
+command.list=%S: Display a list of chat rooms on the network. Warning, some servers may disconnect you upon doing this.
+command.memoserv=%S &lt;command&gt;: Send a command to MemoServ.
+command.modeUser2=%S &lt;nick&gt; [(+|-)&lt;mode&gt;]: Get, set or unset a user’s mode.
+command.modeChannel2=%S [&lt;channel&gt;] [(+|-)&lt;new mode&gt; [&lt;parameter&gt;][,&lt;parameter&gt;]*]: Get, set, or unset a channel mode.
+command.msg=%S &lt;nick&gt; &lt;message&gt;: Send a private message to a user (as opposed to a channel).
+command.nick=%S &lt;new nickname&gt;: Change your nickname.
+command.nickserv=%S &lt;command&gt;: Send a command to NickServ.
+command.notice=%S &lt;target&gt; &lt;message&gt;: Send a notice to a user or channel.
+command.op=%S &lt;nick1&gt;[,&lt;nick2&gt;]*: Grant channel operator status to someone. You must be a channel operator to do this.
+command.operserv=%S &lt;command&gt;: Send a command to OperServ.
+command.part=%S [message]: Leave the current channel with an optional message.
+command.ping=%S [&lt;nick&gt;]: Asks how much lag a user (or the server if no user specified) has.
+command.quit=%S &lt;message&gt;: Disconnect from the server, with an optional message.
+command.quote=%S &lt;command&gt;: Send a raw command to the server.
+command.time=%S: Displays the current local time at the IRC server.
+command.topic=%S [&lt;new topic&gt;]: Set this channel’s topic.
+command.umode=%S (+|-)&lt;new mode&gt;: Set or unset a user mode.
+command.version=%S &lt;nick&gt;: Request the version of a user’s client.
+command.voice=%S &lt;nick1&gt;[,&lt;nick2&gt;]*: Grant channel voice status to someone. You must be a channel operator to do this.
+command.whois2=%S [&lt;nick&gt;]: Get information on a user.
+
+# LOCALIZATION NOTE (message.*):
+# These are shown as system messages in the conversation.
+# %1$S is the nick and %2$S is the nick and host of the user who joined.
+message.join=%1$S [%2$S] entered the room.
+message.rejoined=You have rejoined the room.
+# %1$S is the nick of who kicked you.
+# %2$S is message.kicked.reason, if a kick message was given.
+message.kicked.you=You have been kicked by %1$S%2$S.
+# %1$S is the nick that is kicked, %2$S the nick of the person who kicked
+# %1$S. %3$S is message.kicked.reason, if a kick message was given.
+message.kicked=%1$S has been kicked by %2$S%3$S.
+# %S is the kick message
+message.kicked.reason=: %S
+# %1$S is the new mode, %2$S is the nickname of the user whose mode
+# was changed, and %3$S is who set the mode.
+message.usermode=Mode %1$S for %2$S set by %3$S.
+# %1$S is the new channel mode and %2$S is who set the mode.
+message.channelmode=Channel mode %1$S set by %2$S.
+# %S is the user's mode.
+message.yourmode=Your mode is %S.
+# Could not change the nickname. %S is the user's nick.
+message.nick.fail=Could not use the desired nickname. Your nick remains %S.
+# The parameter is the message.parted.reason, if a part message is given.
+message.parted.you=You have left the room (Part%1$S).
+# %1$S is the user's nick, %2$S is message.parted.reason, if a part message is given.
+message.parted=%1$S has left the room (Part%2$S).
+# %S is the part message supplied by the user.
+message.parted.reason=: %S
+# %1$S is the user's nick, %2$S is message.quit2 if a quit message is given.
+message.quit=%1$S has left the room (Quit%2$S).
+# The parameter is the quit message given by the user.
+message.quit2=: %S
+# %1$S is the nickname of the user that invited us, %2$S is the conversation
+# name.
+message.inviteReceived=%1$S has invited you to %2$S.
+# %1$S is the nickname of the invited user, %2$S is the conversation name
+# they were invited to.
+message.invited=%1$S was successfully invited to %2$S.
+# %1$S is the nickname of the invited user, %2$S is the conversation name
+# they were invited to but are already in
+message.alreadyInChannel=%1$S is already in %2$S.
+# %S is the nickname of the user who was summoned.
+message.summoned=%S was summoned.
+# %S is the nickname of the user whose WHOIS information follows this message.
+message.whois=WHOIS information for %S:
+# %1$S is the nickname of the (offline) user whose WHOWAS information follows this message.
+message.whowas=%1$S is offline. WHOWAS information for %1$S:
+# %1$S is the entry description (from tooltip.*), %2$S is its value.
+message.whoisEntry=\ua0\ua0\ua0\ua0%1$S: %2$S
+# %S is the nickname that is not known to the server.
+message.unknownNick=%S is an unknown nickname.
+# %1$S is the nickname of the user who changed the mode and %2$S is the new
+# channel key (password).
+message.channelKeyAdded=%1$S changed the channel password to %2$S.
+message.channelKeyRemoved=%S removed the channel password.
+# This will be followed by a list of ban masks.
+message.banMasks=Users connected from the following locations are banned from %S:
+message.noBanMasks=There are no banned locations for %S.
+message.banMaskAdded=Users connected from locations matching %1$S have been banned by %2$S.
+message.banMaskRemoved=Users connected from locations matching %1$S are no longer banned by %2$S.
+# LOCALIZATION NOTE (message.ping): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# %1$S is the nickname of the user or the server that was pinged.
+# #2 is the delay (in milliseconds).
+message.ping=Ping reply from %1$S in #2 millisecond.;Ping reply from %1$S in #2 milliseconds.
+
+
+# LOCALIZATION NOTE (error.*):
+# These are shown as error messages in the conversation or server tab.
+# %S is the channel name.
+error.noChannel=There is no channel: %S.
+error.tooManyChannels=Cannot join %S; you’ve joined too many channels.
+# %1$S is your new nick, %2$S is the kill message from the server.
+error.nickCollision=Nick already in use, changing nick to %1$S [%2$S].
+error.erroneousNickname=%S is not an allowed nickname.
+error.banned=You are banned from this server.
+error.bannedSoon=You will soon be banned from this server.
+error.mode.wrongUser=You cannot change modes for other users.
+# %S is the nickname or channel name that isn't available.
+error.noSuchNick=%S is not online.
+error.wasNoSuchNick=There was no nickname: %S
+error.noSuchChannel=There is no channel: %S.
+error.unavailable=%S is temporarily unavailable.
+# %S is the channel name.
+error.channelBanned=You have been banned from %S.
+error.cannotSendToChannel=You cannot send messages to %S.
+error.channelFull=The channel %S is full.
+error.inviteOnly=You must be invited to join %S.
+error.nonUniqueTarget=%S is not a unique user@host or shortname or you have tried to join too many channels at once.
+error.notChannelOp=You are not a channel operator on %S.
+error.notChannelOwner=You are not a channel owner of %S.
+error.wrongKey=Cannot join %S, invalid channel password.
+error.sendMessageFailed=An error occurred while sending your last message. Please try again once the connection has been reestablished.
+# %1$S is the channel the user tried to join, %2$S is the channel
+# he was forwarded to.
+error.channelForward=You may not join %1$S, and were automatically redirected to %2$S.
+# %S is the mode that the user tried to set but was not recognized
+# by the server as a valid mode.
+error.unknownMode=‘%S’ is not a valid user mode on this server.
+
+# LOCALIZATION NOTE (tooltip.*):
+# These are the descriptions given in a tooltip with information received
+# from a whois response.
+# The human readable ("realname") description of the user.
+tooltip.realname=Name
+tooltip.server=Connected to
+# The username and hostname that the user connects from (usually based on the
+# reverse DNS of the user's IP, but often mangled by the server to
+# protect users).
+tooltip.connectedFrom=Connected from
+tooltip.registered=Registered
+tooltip.registeredAs=Registered as
+tooltip.secure=Using a secure connection
+# The away message of the user
+tooltip.away=Away
+tooltip.ircOp=IRC Operator
+tooltip.bot=Bot
+tooltip.lastActivity=Last activity
+# %S is the timespan elapsed since the last activity.
+tooltip.timespan=%S ago
+tooltip.channels=Currently on
+
+# %1$S is the server name, %2$S is some generic server information (usually a
+# location or the date the user was last seen).
+tooltip.serverValue=%1$S (%2$S)
+
+# LOCALIZATION NOTE (yes, no):
+# These are used to turn true/false values into a yes/no response.
+yes=Yes
+no=No
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/logger.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/logger.properties
new file mode 100644
index 0000000000..2228c50a4c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/logger.properties
@@ -0,0 +1,7 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (badLogfile):
+# %S is the filename of the log file.
+badLogfile=Empty or corrupt log file: %S
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/matrix.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/matrix.properties
new file mode 100644
index 0000000000..f72101462f
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/matrix.properties
@@ -0,0 +1,263 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (matrix.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring a Matrix account.
+matrix.usernameHint=Matrix ID
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.saveToken=Store access token
+options.deviceDisplayName=Device display name
+options.homeserver=Server
+
+options.backupPassphrase=Key Backup Passphrase
+
+# LOCALIZATION NOTE (options.encryption.*):
+# These are strings used to build the status information of the encryption
+# storage, shown in the account manager. %S is one of the statuses and the
+# strings are combined with a pipe (|) between.
+options.encryption.enabled=Cryptographic Functions: %S
+options.encryption.secretStorage=Secret Storage: %S
+options.encryption.keyBackup=Encryption Key Backup: %S
+options.encryption.crossSigning=Cross Signing: %S
+options.encryption.statusOk=ok
+options.encryption.statusNotOk=not ready
+options.encryption.needBackupPassphrase=Please enter your backup key passphrase in the protocol options.
+options.encryption.setUpSecretStorage=To set up secret storage, please use another client and afterward enter the generated backup key passphrase in the "General" tab.
+options.encryption.setUpBackupAndCrossSigning=To activate encryption key backups and cross signing, enter your backup key passphrase in the "General" tab or verify the identity of one of the sessions below.
+# %1$S is the session ID, %2$S is the session display name
+options.encryption.session=%1$S (%2$S)
+
+# LOCALIZATION NOTE (connection.*):
+# These will be displayed in the account manager in order to show the progress
+# of the connection.
+# (These will be displayed in account.connection.progress from
+# accounts.properties, which adds … at the end, so do not include
+# periods at the end of these messages.)
+connection.requestAuth=Waiting for your authorization
+connection.requestAccess=Finalizing authentication
+
+# LOCALIZATION NOTE (connection.error.*):
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+connection.error.noSupportedFlow=Server offers no compatible login flow.
+connection.error.authCancelled=You cancelled the authorization process.
+connection.error.sessionEnded=Session was logged out.
+connection.error.serverNotFound=Could not identify the Matrix server for the given Matrix account.
+
+# LOCALIZATION NOTE (chatRoomField.*):
+# These are the name of fields displayed in the 'Join Chat' dialog
+# for Matrix accounts.
+# The _ character won't be displayed; it indicates the next
+# character of the string should be used as the access key for this
+# field.
+chatRoomField.room=_Room
+
+# LOCALIZATION NOTE (tooltip.*):
+# These are the descriptions given in a tooltip with information received
+# from the "User" object.
+# The human readable name of the user.
+tooltip.displayName=Display name
+# %S is the timespan elapsed since the last activity.
+tooltip.timespan=%S ago
+tooltip.lastActive=Last activity
+
+# LOCALIZATION NOTE (powerLevel.*):
+# These are the string representations of different standard power levels and strings.
+# %S are one of the power levels, Default/Moderator/Admin/Restricted/Custom.
+powerLevel.default=Default
+powerLevel.moderator=Moderator
+powerLevel.admin=Admin
+powerLevel.restricted=Restricted
+powerLevel.custom=Custom
+# %1$S is the power level name
+# %2$S is the power level number
+powerLevel.detailed=%1$S (%2$S)
+powerLevel.defaultRole=Default role: %S
+powerLevel.inviteUser=Invite users: %S
+powerLevel.kickUsers=Kick users: %S
+powerLevel.ban=Ban users: %S
+powerLevel.roomAvatar=Change room avatar: %S
+powerLevel.mainAddress=Change main address for the room: %S
+powerLevel.history=Change history visibility: %S
+powerLevel.roomName=Change room name: %S
+powerLevel.changePermissions=Change permissions: %S
+powerLevel.server_acl=Send m.room.server_acl events: %S
+powerLevel.upgradeRoom=Upgrade the room: %S
+powerLevel.remove=Remove messages: %S
+powerLevel.events_default=Events default: %S
+powerLevel.state_default=Change setting: %S
+powerLevel.encryption=Enable Room encryption: %S
+powerLevel.topic=Set room topic: %S
+
+# LOCALIZATION NOTE (detail.*):
+# These are the string representations of different matrix properties.
+# %S will typically be strings with the actual values.
+# Example placeholder: "Foo bar"
+detail.name=Name: %S
+# Example placeholder: "My first room"
+detail.topic=Topic: %S
+# Example placeholder: "5"
+detail.version=Room Version: %S
+# Example placeholder: "#thunderbird:mozilla.org"
+detail.roomId=RoomID: %S
+# %S are all admin users. Example: "@foo:example.com, @bar:example.com"
+detail.admin=Admin: %S
+# %S are all moderators. Example: "@lorem:mozilla.org, @ipsum:mozilla.org"
+detail.moderator=Moderator: %S
+# Example placeholder: "#thunderbird:matrix.org"
+detail.alias=Alias: %S
+# Example placeholder: "can_join"
+detail.guest=Guest Access: %S
+# This is a heading, followed by the powerLevel.* strings
+detail.power=Power Levels:
+
+# LOCALIZATION NOTE (command.*):
+# These are the help messages for each command, the %S is the command name
+# Each command first gives the parameter it accepts and then a description of
+# the command.
+command.ban=%S &lt;userId&gt; [&lt;reason&gt;]: Ban the user with the userId from the room with optional reason message. Requires permission to ban users.
+command.invite=%S &lt;userId&gt;: Invite the user to the room.
+command.kick=%S &lt;userId&gt; [&lt;reason&gt;]: Kick the user with the userId from the room with optional reason message. Requires permission to kick users.
+command.nick=%S &lt;display_name&gt;: Change your display name.
+command.op=%S &lt;userId&gt; [&lt;power level&gt;]: Define the power level of the user. Enter an integer value, User: 0, Moderator: 50 and Admin: 100. Default will be 50 if no argument is provided. Requires permission to change member's power levels. Does not work on admins other than yourself.
+command.deop=%S &lt;userId&gt;: Reset the user to power level 0 (User). Requires permission to change member's power levels. Does not work on admins other than yourself.
+command.leave=%S: Leave the current room.
+command.topic=%S &lt;topic&gt;: Set the topic for the room. Requires permissions to change the room topic.
+command.unban=%S &lt;userId&gt;: Unban a user who is banned from the room. Requires permission to ban users.
+command.visibility=%S [&lt;visibility&gt;]: Set the visbility of the current room in the current Home Server's room directory. Enter an integer value, Private: 0 and Public: 1. Default will be Private (0) if no argument is provided. Requires permission to change room visibility.
+command.guest=%S &lt;guest access&gt; &lt;history visibility&gt;: Set the access and history visibility of the current room for the guest users. Enter two integer values, the first for the guest access (not allowed: 0 and allowed: 1) and the second for the history visibility (not visible: 0 and visible: 1). Requires permission to change history visibility.
+command.roomname=%S &lt;name&gt;: Set the name for the room. Requires permission to change the room name.
+command.detail=%S: Display the details of the room.
+command.addalias=%S &lt;alias&gt;: Create an alias for the room. Expected room alias of the form '#localname:domain'. Requires permission to add aliases.
+command.removealias=%S &lt;alias&gt;: Remove the alias for the room. Expected room alias of the form '#localname:domain'. Requires permission to remove aliases.
+command.upgraderoom=%S &lt;newVersion&gt;: Upgrade room to given version. Requires permission to upgrade the room.
+command.me=%S &lt;action&gt;: Perform an action.
+command.msg=%S &lt;userId&gt; &lt;message&gt;: Send a direct message to the given user.
+command.join=%S &lt;roomId&gt;: Join the given room.
+
+# LOCALIZATION NOTE (message.*):
+# These are shown as system messages in the conversation.
+# %S is the reason string for the particular action.
+# Used within context of ban, kick and withdrew invite.
+message.reason=Reason: %S.
+
+# LOCALIZATION NOTE (message.*):
+# These are shown as system messages in the conversation.
+# %1$S is the name of the user who banned.
+# %2$S is the name of the user who got banned.
+message.banned=%1$S banned %2$S.
+# Same as message.banned but with a reason.
+# %3$S is the reason the user was banned.
+message.bannedWithReason=%1$S banned %2$S. Reason: %3$S
+# %1$S is the name of the user who accepted the invitation.
+# %2$S is the name of the user who sent the invitation.
+message.acceptedInviteFor=%1$S accepted the invitation for %2$S.
+# %S is the name of the user who accepted an invitation.
+message.acceptedInvite=$S accepted an invitation.
+# %1$S is the name of the user who invited.
+# %2$S is the name of the user who got invited.
+message.invited=%1$S invited %2$S.
+# %1$S is the name of the user who changed their display name.
+# %2$S is the old display name.
+# %3$S is the new display name.
+message.displayName.changed=%1$S changed their display name from %2$S to %3$S.
+# %1$S is the name of the user who set their display name.
+# %2$S is the newly set display name.
+message.displayName.set=%1$S set their display name to %2$S.
+# %1$S is the name of the user who removed their display name.
+# %2$S is the old display name which has been removed.
+message.displayName.remove=%1$S removed their display name %2$S.
+# %S is the name of the user who has joined the room.
+message.joined=%S has joined the room.
+# %S is the name of the user who has rejected the invitation.
+message.rejectedInvite=%S has rejected the invitation.
+# %S is the name of the user who has left the room.
+message.left=%S has left the room.
+# %1$S is the name of the user who unbanned.
+# %2$S is the name of the user who got unbanned.
+message.unbanned=%1$S unbanned %2$S.
+# %1$S is the name of the user who kicked.
+# %2$S is the name of the user who got kicked.
+message.kicked=%1$S kicked %2$S.
+# Same as message.kicked but with a third parameter for the reason.
+# %3$S is the reason for the kick.
+message.kickedWithReason=%1$S kicked %2$S. Reason: %3$S
+# %1$S is the name of the user who withdrew invitation.
+# %2$S is the name of the user whose invitation has been withdrawn.
+message.withdrewInvite=%1$S withdrew %2$S's invitation.
+# Same as message.withdrewInvite but with a third parameter for the reason.
+# %3$S is the reason the invite was withdrawn.
+message.withdrewInviteWithReason=%1$S withdrew %2$S's invitation. Reason: %3$S
+# %S is the name of the user who has removed the room name.
+message.roomName.remove=%S removed the room name.
+# %1$S is the name of the user who changed the room name.
+# %2$S is the new room name.
+message.roomName.changed=%1$S changed the room name to %2$S.
+# %1$S is the name of the user who changed the power level.
+# %2$S is a list of "message.powerLevel.fromTo" strings representing power level changes separated by commas
+# power level changes, separated by commas if there are multiple changes.
+message.powerLevel.changed=%1$S changed the power level of %2$S.
+# %1$S is the name of the target user whose power level has been changed.
+# %2$S is the old power level.
+# %2$S is the new power level.
+message.powerLevel.fromTo=%1$S from %2$S to %3$S
+# %S is the name of the user who has allowed guests to join the room.
+message.guest.allowed=%S has allowed guests to join the room.
+# %S is the name of the user who has prevented guests to join the room.
+message.guest.prevented=%S has prevented guests from joining the room.
+# %S is the name of the user who has made future room history visible to anyone.
+message.history.anyone=%S made future room history visible to anyone.
+# %S is the name of the user who has made future room history visible to all room members.
+message.history.shared=%S made future room history visible to all room members.
+# %S is the name of the user who has made future room history visible to all room members, from the point they are invited.
+message.history.invited=%S made future room history visible to all room members, from the point they are invited.
+# %S is the name of the user who has made future room history visible to all room members, from the point they joined.
+message.history.joined=%S made future room history visible to all room members, from the point they joined.
+# %1$S is the name of the user who changed the address.
+# %2$S is the old address.
+# %3$S is the new address.
+message.alias.main=%1$S set the main address for this room from %2$S to %3$S.
+# %1$S is the name of the user who added the address.
+# %2$S is a comma delimited list of added addresses.
+message.alias.added=%1$S added %2$S as alternative address for this room.
+# %1$S is the name of the user who removed the address.
+# %2$S is a comma delimited list of removed addresses.
+message.alias.removed=%1$S removed %2$S as alternative address for this room.
+# %1$S is the name of the user that edited the alias addresses.
+# %2$S is a comma delimited list of removed addresses.
+# %3$S is a comma delmited list of added addresses.
+message.alias.removedAndAdded=%1$S removed %2$S and added %3$S as address for this room.
+message.spaceNotSupported=This room is a space, which is not supported.
+message.encryptionStart=Messages in this conversation are now end-to-end encrypted.
+# %1$S is the name of the user who sent the verification request.
+# %2$S is the name of the user that is receiving the verification request.
+message.verification.request2=%1$S wants to verify %2$S.
+# %1$S is the name of the user who cancelled the verification request.
+# %2$S is the reason given why the verification was cancelled.
+message.verification.cancel2=%1$S cancelled the verification with the reason: %2$S
+message.verification.done=Verification completed.
+message.decryptionError=Could not decrypt the contents of this message. To request encryption keys from your other devices, right click this message.
+message.decrypting=Decrypting…
+message.redacted=Message was redacted.
+
+# %1$S is the username of the user that reacted.
+# %2$S is the username of the user that sent the message the reaction was added to.
+# %3$S is the content (typically an emoji) of the reaction.
+message.reaction=%1$S reacted to %2$S with %3$S.
+
+# Label in the message context menu
+message.action.requestKey=Re-request Keys
+message.action.redact=Redact
+message.action.report=Report Message
+message.action.retry=Retry Sending
+message.action.cancel=Cancel Message
+
+# LOCALIZATION NOTE (error.*)
+# These are strings shown as system messages when an action the user took fails.
+error.sendMessageFailed=An error occurred while sending your message "%1$S".
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/status.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/status.properties
new file mode 100644
index 0000000000..af88441cd0
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/status.properties
@@ -0,0 +1,23 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+availableStatusType=Available
+awayStatusType=Away
+unavailableStatusType=Unavailable
+offlineStatusType=Offline
+invisibleStatusType=Invisible
+idleStatusType=Idle
+mobileStatusType=Mobile
+# LOCALIZATION NOTE (unknownStatusType):
+# the status of a buddy is unknown when it's in the list of a disconnected account
+unknownStatusType=Unknown
+
+# LOCALIZATION NOTE (statusWithStatusMessage):
+# Used to display the status of a buddy together with its status message.
+# %1$S is the status type, %2$S is the status message text.
+statusWithStatusMessage=%1$S - %2$S
+
+# LOCALIZATION NOTE (messenger.status.defaultIdleAwayMessage):
+# This will be the away message put automatically when the user is idle.
+messenger.status.defaultIdleAwayMessage=I am currently away from the computer.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/twitter.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/twitter.properties
new file mode 100644
index 0000000000..d31bc02f29
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/twitter.properties
@@ -0,0 +1,122 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (twitter.protocolName)
+# This name is used whenever the name of the protocol is shown.
+twitter.protocolName=Twitter
+
+# LOCALIZATION NOTE (error.*):
+# These are errors that will be shown to the user in conversation.
+error.tooLong=Status is over 140 characters.
+# LOCALIZATION NOTE (error.general, error.retweet, error.delete):
+# %1$S will be either the error string returned by the twitter server,
+# in English, inside parenthesis, or the empty string if we have no specific
+# message for the error.
+# %2$S is the message that caused the error.
+error.general=An error %1$S occurred while sending: %2$S
+error.retweet=An error %1$S occurred while retweeting: %2$S
+error.delete=An error %1$S occurred while deleting: %2$S
+error.like=An error %1$S occurred while liking: %2$S
+error.unlike=An error %1$S occurred while unliking: %2$S
+# LOCALIZATION NOTE (error.descriptionTooLong)
+# %S is the truncated string that was sent to the server.
+error.descriptionTooLong=Description is over the maximum length (160 characters), it was automatically truncated to: %S.
+
+# LOCALIZATION NOTE (timeline):
+# This is the title of the conversation tab, %S will be replaced by
+# @<username>.
+timeline=%S timeline
+
+# LOCALIZATION NOTE (action.*):
+# This will be an action in the context menu of displayed tweets.
+action.copyLink=Copy Link to Tweet
+action.retweet=Retweet
+action.reply=Reply
+action.delete=Delete
+# LOCALIZATION NOTE (action.follow, action.stopFollowing):
+# %S will be replaced by the screen name of a twitter user.
+action.follow=Follow %S
+action.stopFollowing=Stop following %S
+action.like=Like
+action.unlike=Remove Like
+
+# LOCALIZATION NOTE (event.follow, event.unfollow, event.followed):
+# This will be displayed in system messages inside the timeline conversation.
+# %S will be replaced by the screen name of a twitter user.
+event.follow=You are now following %S.
+event.unfollow=You are no longer following %S.
+event.followed=%S is now following you.
+# LOCALIZATION NOTE (event.deleted):
+# %S will be replaced by the text of the deleted tweet.
+event.deleted=You have deleted this tweet: “%S”.
+
+# LOCALIZATION NOTE (replyingToStatusText):
+# This will be visible in the status bar of the conversation window
+# while the user is typing a reply to a tweet.
+# %S will be replaced by the text of the tweet the user is replying to.
+replyingToStatusText=Replying to: %S
+
+# LOCALIZATION NOTE (connection.*):
+# These will be displayed in the account manager in order to show the progress
+# of the connection.
+# (These will be displayed in account.connection.progress from
+# accounts.properties, which adds … at the end, so do not include
+# periods at the end of these messages.)
+connection.initAuth=Initiating authentication process
+connection.requestAuth=Waiting for your authorization
+connection.requestAccess=Finalizing authentication
+connection.requestTimelines=Requesting user timelines
+# LOCALIZATION NOTE (connection.error.*):
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+connection.error.userMismatch=Username mismatch.
+connection.error.failedToken=Failed to get request token.
+connection.error.authCancelled=You cancelled the authorization process.
+connection.error.authFailed=Failed to get authorization.
+connection.error.noNetwork=There is no network connection available.
+
+# LOCALIZATION NOTE (authPrompt):
+# This is the prompt in the browser window that pops up to authorize us
+# to use a Twitter account. It is shown in the title bar of the authorization
+# window.
+authPrompt=Give permission to use your Twitter account
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.track=Tracked keywords
+
+# LOCALIZATION NOTE (tooltip.*):
+# These are the Twitter information that will appear in the tooltip
+# for each participant on the home timeline.
+# LOCALIZATION NOTE (tooltip.created_at): the date the user joined.
+tooltip.created_at=User Since
+tooltip.location=Location
+tooltip.lang=Language
+tooltip.time_zone=Timezone
+tooltip.url=Homepage
+# LOCALIZATION NOTE (tooltip.protected):
+# whether the user's tweets are publicly visible.
+tooltip.protected=Protects Tweets
+# LOCALIZATION NOTE (tooltip.following):
+# whether you are subscribed to the user's tweets.
+tooltip.following=Currently Following
+tooltip.name=Name
+tooltip.description=Description
+# LOCALIZATION NOTE (tooltip.*_count):
+# Please see the right side of the official Twitter website UI.
+tooltip.friends_count=Following
+tooltip.statuses_count=Tweets
+tooltip.followers_count=Followers
+tooltip.listed_count=Listed
+
+# LOCALIZATION NOTE (yes, no):
+# These are used to turn true/false values into a yes/no response.
+yes=Yes
+no=No
+
+command.follow=%S &lt;username&gt;[ &lt;username&gt;]*: Start following a user / users.
+command.unfollow=%S &lt;username&gt;[ &lt;username&gt;]*: Stop following a user / users.
+
+twitter.disabled=Twitter is no longer supported due to Twitter disabling their streaming protocol.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/xmpp.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/xmpp.properties
new file mode 100644
index 0000000000..bea6db4a25
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/xmpp.properties
@@ -0,0 +1,280 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (connection.*)
+# These will be displayed in the account manager in order to show the progress
+# of the connection.
+# (These will be displayed in account.connection.progress from
+# accounts.properties, which adds … at the end, so do not include
+# periods at the end of these messages.)
+connection.initializingStream=Initializing stream
+connection.initializingEncryption=Initializing encryption
+connection.authenticating=Authenticating
+connection.gettingResource=Getting resource
+connection.downloadingRoster=Downloading contact list
+connection.srvLookup=Looking up the SRV record
+
+# LOCALIZATION NOTE (connection.error.*)
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+connection.error.invalidUsername=Invalid username (your username should contain an ‘@‘ character)
+connection.error.failedToCreateASocket=Failed to create a socket (Are you offline?)
+connection.error.serverClosedConnection=The server closed the connection
+connection.error.resetByPeer=Connection reset by peer
+connection.error.timedOut=The connection timed out
+connection.error.receivedUnexpectedData=Received unexpected data
+connection.error.incorrectResponse=Received an incorrect response
+connection.error.startTLSRequired=The server requires encryption but you disabled it
+connection.error.startTLSNotSupported=The server doesn’t support encryption but your configuration requires it
+connection.error.failedToStartTLS=Failed to start encryption
+connection.error.noAuthMec=No authentication mechanism offered by the server
+connection.error.noCompatibleAuthMec=None of the authentication mechanisms offered by the server are supported
+connection.error.notSendingPasswordInClear=The server only supports authentication by sending the password in cleartext
+connection.error.authenticationFailure=Authentication failure
+connection.error.notAuthorized=Not authorized (Did you enter the wrong password?)
+connection.error.failedToGetAResource=Failed to get a resource
+connection.error.failedMaxResourceLimit=This account is connected from too many places at the same time.
+connection.error.failedResourceNotValid=Resource is not valid.
+connection.error.XMPPNotSupported=This server does not support XMPP
+
+# LOCALIZATION NOTE (conversation.error.notDelivered):
+# This is displayed in a conversation as an error message when a message
+# the user has sent wasn't delivered.
+# %S is replaced by the text of the message that wasn't delivered.
+conversation.error.notDelivered=This message could not be delivered: %S
+# This is displayed in a conversation as an error message when joining a MUC
+# fails.
+# %S is the name of the MUC.
+conversation.error.joinFailed=Could not join: %S
+# This is displayed in a conversation as an error message when the user is
+# banned from a room.
+# %S is the name of the MUC room.
+conversation.error.joinForbidden=Couldn’t join %S as you are banned from this room.
+conversation.error.joinFailedNotAuthorized=Registration required: You are not authorized to join this room.
+conversation.error.creationFailedNotAllowed=Access restricted: You are not allowed to create rooms.
+# This is displayed in a conversation as an error message when remote server
+# is not found.
+# %S is the name of MUC room.
+conversation.error.joinFailedRemoteServerNotFound=Could not join the room %S as the server the room is hosted on could not be reached.
+conversation.error.changeTopicFailedNotAuthorized=You are not authorized to set the topic of this room.
+# This is displayed in a conversation as an error message when the user sends
+# a message to a room that he is not in.
+# %1$S is the name of MUC room.
+# %2$S is the text of the message that wasn't delivered.
+conversation.error.sendFailedAsNotInRoom=Message could not be sent to %1$S as you are no longer in the room: %2$S
+# This is displayed in a conversation as an error message when the user sends
+# a message to a room that the recipient is not in.
+# %1$S is the jid of the recipient.
+# %2$S is the text of the message that wasn't delivered.
+conversation.error.sendFailedAsRecipientNotInRoom=Message could not be sent to %1$S as the recipient is no longer in the room: %2$S
+# These are displayed in a conversation as a system error message.
+conversation.error.remoteServerNotFound=Could not reach the recipient’s server.
+conversation.error.unknownSendError=An unknown error occurred on sending this message.
+# %S is the name of the message recipient.
+conversation.error.sendServiceUnavailable=It is not possible to send messages to %S at this time.
+# %S is the nick of participant that is not in room.
+conversation.error.nickNotInRoom=%S is not in the room.
+conversation.error.banCommandAnonymousRoom=You can’t ban participants from anonymous rooms. Try /kick instead.
+conversation.error.banKickCommandNotAllowed=You don’t have the required privileges to remove this participant from the room.
+conversation.error.banKickCommandConflict=Sorry, you can’t remove yourself from the room.
+conversation.error.changeNickFailedConflict=Could not change your nick to %S as this nick is already in use.
+conversation.error.changeNickFailedNotAcceptable=Could not change your nick to %S as nicks are locked down in this room.
+conversation.error.inviteFailedForbidden=You don’t have the required privileges to invite users to this room.
+# %S is the jid of user that is invited.
+conversation.error.failedJIDNotFound=Could not reach %S.
+# %S is the jid that is invalid.
+conversation.error.invalidJID=%S is an invalid jid (Jabber identifiers must be of the form user@domain).
+conversation.error.commandFailedNotInRoom=You have to rejoin the room to be able to use this command.
+# %S is the name of the recipient.
+conversation.error.resourceNotAvailable=You must talk first as %S could be connected with more than one client.
+
+# LOCALIZATION NOTE (conversation.error.version.*):
+# %S is the name of the recipient.
+conversation.error.version.unknown=%S’s client does not support querying for its software version.
+
+# LOCALIZATION NOTE (tooltip.*):
+# These are the titles of lines of information that will appear in
+# the tooltip showing details about a contact or conversation.
+# LOCALIZATION NOTE (tooltip.status):
+# %S will be replaced by the XMPP resource identifier
+tooltip.status=Status (%S)
+tooltip.statusNoResource=Status
+tooltip.subscription=Subscription
+tooltip.fullName=Full Name
+tooltip.nickname=Nickname
+tooltip.email=Email
+tooltip.birthday=Birthday
+tooltip.userName=Username
+tooltip.title=Title
+tooltip.organization=Organization
+tooltip.locality=Locality
+tooltip.country=Country
+tooltip.telephone=Telephone number
+
+# LOCALIZATION NOTE (chatRoomField.*):
+# These are the name of fields displayed in the 'Join Chat' dialog
+# for XMPP accounts.
+# The _ character won't be displayed; it indicates the next
+# character of the string should be used as the access key for this
+# field.
+chatRoomField.room=_Room
+chatRoomField.server=_Server
+chatRoomField.nick=_Nick
+chatRoomField.password=_Password
+
+# LOCALIZATION NOTE (conversation.muc.*):
+# These are displayed as a system message when a chatroom invitation is
+# received.
+# %1$S is the inviter.
+# %2$S is the room.
+# %3$S is the reason which is a message provided by the person sending the
+# invitation.
+conversation.muc.invitationWithReason2=%1$S has invited you to join %2$S: %3$S
+# %3$S is the password of the room.
+# %4$S is the reason which is a message provided by the person sending the
+# invitation.
+conversation.muc.invitationWithReason2.password=%1$S has invited you to join %2$S with password %3$S: %4$S
+conversation.muc.invitationWithoutReason=%1$S has invited you to join %2$S
+# %3$S is the password of the room.
+conversation.muc.invitationWithoutReason.password=%1$S has invited you to join %2$S with password %3$S
+
+# LOCALIZATION NOTE (conversation.muc.join):
+# This is displayed as a system message when a participant joins room.
+# %S is the nick of the participant.
+conversation.message.join=%S entered the room.
+
+# LOCALIZATION NOTE (conversation.muc.rejoined):
+# This is displayed as a system message when a participant rejoins room after
+# parting it.
+conversation.message.rejoined=You have rejoined the room.
+
+# LOCALIZATION NOTE (conversation.message.parted.*):
+# These are displayed as a system message when a participant parts a room.
+# %S is the part message supplied by the user.
+conversation.message.parted.you=You have left the room.
+conversation.message.parted.you.reason=You have left the room: %S
+# %1$S is the participant that is leaving.
+# %2$S is the part message supplied by the participant.
+conversation.message.parted=%1$S has left the room.
+conversation.message.parted.reason=%1$S has left the room: %2$S
+
+# LOCALIZATION NOTE (conversation.message.invitationDeclined*):
+# %1$S is the invitee that declined the invitation.
+# %2$S is the decline message supplied by the invitee.
+conversation.message.invitationDeclined=%1$S has declined your invitation.
+conversation.message.invitationDeclined.reason=%1$S has declined your invitation: %2$S
+
+# LOCALIZATION NOTE (conversation.message.banned.*):
+# These are displayed as a system message when a participant is banned from
+# a room.
+# %1$S is the participant that is banned.
+# %2$S is the reason.
+# %3$S is the person who is banning.
+conversation.message.banned=%1$S has been banned from the room.
+conversation.message.banned.reason=%1$S has been banned from the room: %2$S
+# %1$S is the person who is banning.
+# %2$S is the participant that is banned.
+# %3$S is the reason.
+conversation.message.banned.actor=%1$S has banned %2$S from the room.
+conversation.message.banned.actor.reason=%1$S has banned %2$S from the room: %3$S
+conversation.message.banned.you=You have been banned from the room.
+# %1$S is the reason.
+conversation.message.banned.you.reason=You have been banned from the room: %1$S
+# %1$S is the person who is banning.
+# %2$S is the reason.
+conversation.message.banned.you.actor=%1$S has banned you from the room.
+conversation.message.banned.you.actor.reason=%1$S has banned you from the room: %2$S
+
+# LOCALIZATION NOTE (conversation.message.kicked.*):
+# These are displayed as a system message when a participant is kicked from
+# a room.
+# %1$S is the participant that is kicked.
+# %2$S is the reason.
+conversation.message.kicked=%1$S has been kicked from the room.
+conversation.message.kicked.reason=%1$S has been kicked from the room: %2$S
+# %1$S is the person who is kicking.
+# %2$S is the participant that is kicked.
+# %3$S is the reason.
+conversation.message.kicked.actor=%1$S has kicked %2$S from the room.
+conversation.message.kicked.actor.reason=%1$S has kicked %2$S from the room: %3$S
+conversation.message.kicked.you=You have been kicked from the room.
+# %1$S is the reason.
+conversation.message.kicked.you.reason=You have been kicked from the room: %1$S
+# %1$S is the person who is kicking.
+# %2$S is the reason.
+conversation.message.kicked.you.actor=%1$S has kicked you from the room.
+conversation.message.kicked.you.actor.reason=%1$S has kicked you from the room: %2$S
+
+# LOCALIZATION NOTE (conversation.message.removedNonMember.*):
+# These are displayed as a system message when a participant is removed from
+# a room because the room has been changed to members-only.
+# %1$S is the participant that is removed.
+# %2$S is the person who changed the room configuration.
+conversation.message.removedNonMember=%1$S has been removed from the room because its configuration was changed to members-only.
+conversation.message.removedNonMember.actor=%1$S has been removed from the room because %2$S has changed it to members-only.
+conversation.message.removedNonMember.you=You have been removed from the room because its configuration has been changed to members-only.
+# %1$S is the person who changed the room configuration.
+conversation.message.removedNonMember.you.actor=You have been removed from the room because %1$S has changed it to members-only.
+
+# LOCALIZATION NOTE (conversation.message.MUCShutdown):
+# These are displayed as a system message when a participant is removed from
+# a room because of a system shutdown.
+conversation.message.mucShutdown=You have been removed from the room because of a system shutdown.
+
+# LOCALIZATION NOTE (conversation.message.version*):
+# %1$S is the name of the user whose version was requested.
+# %2$S is the client name response from the client.
+# %3$S is the client version response from the client.
+# %4$S is the operating system(OS) response from the client.
+conversation.message.version=%1$S is using “%2$S %3$S”.
+conversation.message.versionWithOS=%1$S is using “%2$S %3$S” on %4$S.
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.resource=Resource
+options.priority=Priority
+options.connectionSecurity=Connection security
+options.connectionSecurity.requireEncryption=Require encryption
+options.connectionSecurity.opportunisticTLS=Use encryption if available
+options.connectionSecurity.allowUnencryptedAuth=Allow sending the password unencrypted
+options.connectServer=Server
+options.connectPort=Port
+options.domain=Domain
+
+# LOCALIZATION NOTE (*.protocolName)
+# This name is used whenever the name of the protocol is shown.
+gtalk.protocolName=Google Talk
+odnoklassniki.protocolName=Odnoklassniki
+
+# LOCALIZATION NOTE (gtalk.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring a Google Talk account.
+gtalk.usernameHint=email address
+
+# LOCALIZATION NOTE (gtalk.disabled):
+# Google Talk was disabled on June 16, 2022. The message below is a localized
+# error message to be displayed to users with Google Talk accounts.
+gtalk.disabled=Google Talk is no longer supported due to Google disabling their XMPP gateway.
+
+# LOCALIZATION NOTE (odnoklassniki.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring a Odnoklassniki account.
+odnoklassniki.usernameHint=Profile ID
+
+# LOCALZIATION NOTE (command.*):
+# These are the help messages for each command.
+command.join3=%S [&lt;room&gt;[@&lt;server&gt;][/&lt;nick&gt;]] [&lt;password&gt;]: Join a room, optionally providing a different server, or nickname, or the room password.
+command.part2=%S [&lt;message&gt;]: Leave the current room with an optional message.
+command.topic=%S [&lt;new topic&gt;]: Set this room’s topic.
+command.ban=%S &lt;nick&gt;[&lt;message&gt;]: Ban someone from the room. You must be a room administrator to do this.
+command.kick=%S &lt;nick&gt;[&lt;message&gt;]: Remove someone from the room. You must be a room moderator to do this.
+command.invite=%S &lt;jid&gt;[&lt;message&gt;]: Invite a user to join the current room with an optional message.
+command.inviteto=%S &lt;room jid&gt;[&lt;password&gt;]: Invite your conversation partner to join a room, together with its password if required.
+command.me=%S &lt;action to perform&gt;: Perform an action.
+command.nick=%S &lt;new nickname&gt;: Change your nickname.
+command.msg=%S &lt;nick&gt; &lt;message&gt;: Send a private message to a participant in the room.
+command.version=%S: Request information about the client your conversation partner is using.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/yahoo.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/yahoo.properties
new file mode 100644
index 0000000000..89ee0093c1
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/chat/yahoo.properties
@@ -0,0 +1,5 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+yahoo.disabled=Yahoo Messenger is no longer supported due to Yahoo disabling their legacy protocol.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/communicator/utilityOverlay.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/communicator/utilityOverlay.dtd
new file mode 100644
index 0000000000..1146fb0c43
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/communicator/utilityOverlay.dtd
@@ -0,0 +1,43 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- LOCALIZATION NOTE : FILE This file contains the global menu items -->
+
+<!ENTITY fileMenu.label "File">
+<!ENTITY fileMenu.accesskey "F">
+<!ENTITY newMenu.label "New">
+<!ENTITY newMenu.accesskey "N">
+
+<!ENTITY editMenu.label "Edit">
+<!ENTITY editMenu.accesskey "E">
+<!ENTITY undoCmd.label "Undo">
+<!ENTITY undoCmd.accesskey "U">
+<!ENTITY redoCmd.label "Redo">
+<!ENTITY redoCmd.accesskey "R">
+<!ENTITY deleteCmd.label "Delete">
+<!ENTITY deleteCmd.accesskey "D">
+
+<!ENTITY customizeCmd.label "Customize">
+<!ENTITY customizeCmd.accesskey "t">
+
+<!ENTITY viewMenu.label "View">
+<!ENTITY viewMenu.accesskey "V">
+<!ENTITY viewToolbarsMenu.label "Toolbars">
+<!ENTITY viewToolbarsMenu.accesskey "T">
+<!ENTITY showTaskbarCmd.label "Status Bar">
+<!ENTITY showTaskbarCmd.accesskey "u">
+
+<!ENTITY closeCmd.label "Close">
+<!ENTITY closeCmd.key "W">
+<!ENTITY closeCmd.accesskey "C">
+
+<!ENTITY quitApplicationCmd.label "Exit">
+<!ENTITY quitApplicationCmd.key "Q">
+<!ENTITY quitApplicationCmd.accesskey "x">
+
+<!ENTITY quitApplicationCmdUnix.label "Quit">
+<!ENTITY quitApplicationCmdUnix.accesskey "Q">
+
+<!ENTITY quitApplicationCmdMac.label "Quit &brandShortName;">
+<!ENTITY quitApplicationCmdMac.accesskey "Q">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/accessibility.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/accessibility.properties
new file mode 100644
index 0000000000..21258f1d7c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/accessibility.properties
@@ -0,0 +1,314 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Accessibility panel
+# which is available from the Web Developer sub-menu -> 'Accessibility'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE These strings are used inside the Accessibility panel
+# which is in the Developer Tools, available in the
+# Browser Tools sub-menu -> 'Web Developer Tools'
+#
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (accessibility.role): A title text used for Accessibility
+# tree header column that represents accessible element role.
+accessibility.role=Role
+
+# LOCALIZATION NOTE (accessibility.name): A title text used for Accessibility
+# tree header column that represents accessible element name.
+accessibility.name=Name
+
+# LOCALIZATION NOTE (accessibility.logo): A title text used for Accessibility
+# logo used on the accessibility panel landing page.
+accessibility.logo=Accessibility Logo
+
+# LOCALIZATION NOTE (accessibility.properties): A title text used for header
+# for Accessibility details sidebar.
+accessibility.properties=Properties
+
+# LOCALIZATION NOTE (accessibility.treeName): A title text used for
+# Accessibility tree (that represents accessible element name) container.
+accessibility.treeName=Accessibility Tree
+
+# LOCALIZATION NOTE (accessibility.accessible.selectElement.title): A title text
+# displayed on buttons next to accessible elements in the `relations` section, allowing the
+# user to select the element in the accessibility tree.
+accessibility.accessible.selectElement.title=Click to select the node in the Accessibility Tree
+
+# LOCALIZATION NOTE (accessibility.accessible.selectNodeInInspector.title): A title text
+# displayed on buttons next to nodes in the sidebar, allowing the user to select the node
+# in the Inspector panel.
+accessibility.accessible.selectNodeInInspector.title=Click to select the node in the inspector
+
+# LOCALIZATION NOTE (accessibility.accessible.notAvailable): A title text
+# displayed when accessible sidebar panel does not have an accessible object to
+# display.
+accessibility.accessible.notAvailable=Accessible Information Unavailable
+
+# LOCALIZATION NOTE (accessibility.enable): A title text for Enable
+# accessibility button used to enable accessibility service.
+accessibility.enable=Turn On Accessibility Features
+
+# LOCALIZATION NOTE (accessibility.enabling): A title text for Enable
+# accessibility button used when accessibility service is being enabled.
+accessibility.enabling=Turning on accessibility features…
+
+# LOCALIZATION NOTE (accessibility.disable): A title text for Disable
+# accessibility button used to disable accessibility service.
+accessibility.disable=Turn Off Accessibility Features
+
+# LOCALIZATION NOTE (accessibility.disabling): A title text for Disable
+# accessibility button used when accessibility service is being
+# disabled.
+accessibility.disabling=Turning off accessibility features…
+
+# LOCALIZATION NOTE (accessibility.pick): A title text for Picker button
+# button used to pick accessible objects from the page.
+accessibility.pick=Pick accessible object from the page
+
+# LOCALIZATION NOTE (accessibility.disable.disabledTitle): A title text used for
+# a tooltip for Disable accessibility button when accessibility service can not
+# be disabled. It is the case when a user is using a 3rd party accessibility
+# tool such as screen reader.
+accessibility.disable.disabledTitle=Accessibility service can not be turned off. It is used outside Developer Tools.
+
+# LOCALIZATION NOTE (accessibility.disable.enabledTitle): A title text used for
+# a tooltip for Disable accessibility button when accessibility service can be
+# disabled.
+accessibility.disable.enabledTitle=Accessibility service will be turned off for all tabs and windows.
+
+# LOCALIZATION NOTE (accessibility.enable.disabledTitle): A title text used for
+# a tooltip for Enabled accessibility button when accessibility service can not
+# be enabled.
+accessibility.enable.disabledTitle=Accessibility service can not be turned on. It is turned off via accessibility services privacy preference.
+
+# LOCALIZATION NOTE (accessibility.enable.enabledTitle): A title text used for
+# a tooltip for Enabled accessibility button when accessibility service can be
+# enabled.
+accessibility.enable.enabledTitle=Accessibility service will be turned on for all tabs and windows.
+
+# LOCALIZATION NOTE (accessibility.learnMore): A text that is used as is or as textual
+# description in places that link to accessibility inspector documentation.
+accessibility.learnMore=Learn more
+
+# LOCALIZATION NOTE (accessibility.description.general.p1): A title text for the first
+# paragraph, used when accessibility service description is provided before accessibility
+# inspector is enabled. %S in the content will be replaced by a link at run time
+# with the accessibility.learnMore string.
+accessibility.description.general.p1=Accessibility Inspector lets you examine the current page’s accessibility tree, which is used by screen readers and other assistive technologies. %S
+
+# LOCALIZATION NOTE (accessibility.description.general.p2): A title text for the second
+# paragraph, used when accessibility service description is provided before accessibility
+# inspector is enabled.
+accessibility.description.general.p2=Accessibility features may affect the performance of other developer tools panels and should be turned off when not in use.
+
+# LOCALIZATION NOTE (accessibility.tree.menu.printToJSON): A title text used when a
+# context menu item for printing an accessible tree to JSON is rendered after triggering a
+# context menu for an accessible tree row.
+accessibility.tree.menu.printToJSON=Print to JSON
+
+# LOCALIZATION NOTE (accessibility.checks): A title text used for header for checks
+# section in Accessibility details sidebar.
+accessibility.checks=Checks
+
+# LOCALIZATION NOTE (accessibility.checks.empty2): A title text used for indicating that
+# accessibility checks for a node yielded no results and another node should be
+# selected.
+accessibility.checks.empty2=No checks for this node.
+
+# LOCALIZATION NOTE (accessibility.contrast.header): A title text used for header for
+# checks related to color and contrast.
+accessibility.contrast.header=Colour and Contrast
+
+# LOCALIZATION NOTE (accessibility.contrast.error): A title text for the color
+# contrast ratio, used when the tool is unable to calculate the contrast ratio value.
+accessibility.contrast.error=Unable to calculate
+
+# LOCALIZATION NOTE (accessibility.contrast.large.text): A title text for the color
+# contrast ratio label indicating that the color contrast criteria used is if for large
+# text. This is lower case because it's used as a label for a tree item in accessibility
+# tree.
+accessibility.contrast.large.text=large text
+
+# LOCALIZATION NOTE (accessibility.contrast.large.title): A title text for the tooltip
+# used for the large text label (see accessibility.contrast.large.text).
+accessibility.contrast.large.title=Text is 14 point and bold or larger, or 18 point or larger.
+
+# LOCALIZATION NOTE (accessibility.contrast.annotation.AA): A title text for the paragraph
+# describing that the given colour contrast satisfies AA standard from Web Content
+# Accessibility Guidelines. %S in the content will be replaced by a link at run time
+# with the accessibility.learnMore string.
+accessibility.contrast.annotation.AA=Meets WCAG AA standards for accessible text. %S
+
+# LOCALIZATION NOTE (accessibility.contrast.annotation.AAA): A title text for the
+# paragraph describing that the given colour contrast satisfies AAA standard from Web
+# Content Accessibility Guidelines. %S in the content will be replaced by a link at run
+# time with the accessibility.learnMore string.
+accessibility.contrast.annotation.AAA=Meets WCAG AAA standards for accessible text. %S
+
+# LOCALIZATION NOTE (accessibility.contrast.annotation.FAIL): A title text for the
+# paragraph describing that the given colour contrast fails to meet the minimum level from
+# Web Content Accessibility Guidelines. %S in the content will be replaced by a link at
+# run time with the accessibility.learnMore string.
+accessibility.contrast.annotation.FAIL=Does not meet WCAG standards for accessible text. %S
+
+# LOCALIZATION NOTE (accessibility.contrast.annotation.transparent.error): A title text for the
+# paragraph suggesting a fix for error in color contrast calculation for text nodes with zero alpha.
+accessibility.contrast.annotation.transparent.error=Pick a colour that is not transparent.
+
+# LOCALIZATION NOTE (accessibility.badges): A title text for the group of badges
+# that are rendered for each accessible row within the accessibility tree when
+# one or more accessibility checks fail.
+accessibility.badges=Accessibility checks
+
+# LOCALIZATION NOTE (accessibility.filter.none): A title text for the filter
+# that is rendered within the accessibility panel toolbar for a menu item that
+# resets all filtering in tree, and for the simulation menu item that resets
+# applied color matrices to the default matrix.
+accessibility.filter.none=None
+
+# LOCALIZATION NOTE (accessibility.filter.all2): A title text for the filter
+# that is rendered within the accessibility panel toolbar for a menu item that
+# filters the tree based on all accessibility failures within it.
+accessibility.filter.all2=All Issues
+
+# LOCALIZATION NOTE (accessibility.filter.contrast): A title text for the filter
+# that is rendered within the accessibility panel toolbar for a menu item that
+# filters the tree based on contrast accessibility failures within it.
+accessibility.filter.contrast=Contrast
+
+# LOCALIZATION NOTE (accessibility.filter.textLabel): A title text for the filter
+# that is rendered within the accessibility panel toolbar for a menu item that
+# filters the tree based on text label and name accessibility failures within it.
+accessibility.filter.textLabel=Text Labels
+
+# LOCALIZATION NOTE (accessibility.filter.keyboard): A title text for the filter
+# that is rendered within the accessibility panel toolbar for a menu item that
+# filters the tree based on keyboard accessibility failures within it.
+accessibility.filter.keyboard=Keyboard
+
+# LOCALIZATION NOTE (accessibility.badge.contrast): A title text for the badge
+# that is rendered within the accessible row in the accessibility tree for a
+# given accessible object that does not satisfy the WCAG guideline for colour
+# contrast.
+accessibility.badge.contrast=contrast
+
+# LOCALIZATION NOTE (accessibility.badge.contrast.warning): A label for the
+# badge and attached warning icon that is rendered within the accessible row in
+# the accessibility tree for a given accessible object that does not satisfy the
+# WCAG guideline for colour contrast.
+accessibility.badge.contrast.warning=contrast warning
+
+# LOCALIZATION NOTE (accessibility.badge.keyboard): A title text for the
+# badge that is rendered within the accessible row in the accessibility tree for
+# a given accessible object that does not satisfy the WCAG guideline for
+# keyboard accessibility.
+accessibility.badge.keyboard=keyboard
+
+# LOCALIZATION NOTE (accessibility.badge.textLabel): A title text for the
+# badge that is rendered within the accessible row in the accessibility tree for
+# a given accessible object that does not satisfy the WCAG guideline for text
+# alternative.
+accessibility.badge.textLabel=text label
+
+# LOCALIZATION NOTE (accessibility.badge.contrast.tooltip): A title text for the
+# badge tooltip that is rendered on mouse hover over the badge in the accessible
+# row in the accessibility tree for a given accessible object that does not
+# satisfy the WCAG guideline for colour contrast.
+accessibility.badge.contrast.tooltip=Does not meet WCAG standards for accessible text.
+
+# LOCALIZATION NOTE (accessibility.badge.keyboard.tooltip): A title text
+# for the badge tooltip that is rendered on mouse hover over the badge in the
+# accessible row in the accessibility tree for a given accessible object that
+# does not satisfy the WCAG guideline for keyboard accessibility.
+accessibility.badge.keyboard.tooltip=Does not meet WCAG standards for keyboard accessibility.
+
+# LOCALIZATION NOTE (accessibility.badge.textLabel.tooltip): A title text
+# for the badge tooltip that is rendered on mouse hover over the badge in the
+# accessible row in the accessibility tree for a given accessible object that
+# does not satisfy the WCAG guideline for text alternative.
+accessibility.badge.textLabel.tooltip=Does not meet WCAG standards for text alternative.
+
+# LOCALIZATION NOTE (accessibility.tree.filters): A title text for the toolbar
+# within the main accessibility panel that contains a list of filters to be for
+# accessibility audit.
+accessibility.tree.filters=Check for issues:
+
+# LOCALIZATION NOTE (accessibility.tree.filters.prefs): A title text for the
+# preferences button tooltip that contains preferences for accessibility audit.
+accessibility.tree.filters.prefs=Configure preferences
+
+# LOCALIZATION NOTE (accessibility.progress.initializing): A title text for the
+# accessibility panel overlay shown when accessibility audit is starting up.
+accessibility.progress.initializing=Initializing…
+
+# LOCALIZATION NOTE (accessibility.progress.initializing): A title text for the
+# accessibility panel overlay shown when accessibility audit is running showing
+# the number of nodes being audited. Semi-colon list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+accessibility.progress.progressbar=Checking #1 node;Checking #1 nodes
+
+# LOCALIZATION NOTE (accessibility.progress.finishing): A title text for the
+# accessibility panel overlay shown when accessibility audit is finishing up.
+accessibility.progress.finishing=Finishing up…
+
+# LOCALIZATION NOTE (accessibility.pref.scroll.into.view.title): A title
+# text for the tooltip for the checkbox pref in the accessibility panel that
+# sets node auto scroll.
+accessibility.pref.scroll.into.view.title=Automatically scroll selected node into view
+
+# LOCALIZATION NOTE (accessibility.pref.scroll.into.view.label): A title
+# text for the checkbox pref in the accessibility panel that sets node auto
+# scroll.
+accessibility.pref.scroll.into.view.label=Scroll into view
+
+# LOCALIZATION NOTE (accessibility.documentation.label): This is the label for
+# the Documentation menu item.
+accessibility.documentation.label=Documentation…
+
+# LOCALIZATION NOTE (accessibility.simulation): A title text for the toolbar
+# within the main accessibility panel that contains a list of simulations for
+# vision deficiencies.
+accessibility.simulation=Simulate:
+
+# LOCALIZATION NOTE (accessibility.simulation.protanopia): This label is shown
+# in the "Simulate" menu in the accessibility panel and represent the protanopia simulation option.
+accessibility.simulation.protanopia=Protanopia (no red)
+
+# LOCALIZATION NOTE (accessibility.simulation.deuteranopia): This label is shown
+# in the "Simulate" menu in the accessibility panel and represent the deuteranopia simulation option.
+accessibility.simulation.deuteranopia=Deuteranopia (no green)
+
+# LOCALIZATION NOTE (accessibility.simulation.tritanopia): This label is shown
+# in the "Simulate" menu in the accessibility panel and represent the tritanopia simulation option.
+accessibility.simulation.tritanopia=Tritanopia (no blue)
+
+# LOCALIZATION NOTE (accessibility.simulation.contrastLoss): This label is shown
+# in the "Simulate" menu in the accessibility panel and represent the contrast loss simulation option.
+# It is also shown in the simulation menu button in the accessibility panel and represent the
+# contrast loss simulation option currently selected.
+accessibility.simulation.contrastLoss=Contrast loss
+
+# LOCALIZATION NOTE (accessibility.simulation.achromatopsia): This label is shown
+# in the "Simulate" menu in the accessibility panel and represent the achromatopsia simulation option.
+accessibility.simulation.achromatopsia=Achromatopsia (no colour)
+
+# LOCALIZATION NOTE (accessibility.toolbar.displayTabbingOrder.label): A title text for a checkbox label
+# in the accessibility panel toolbar that turns on/off the overlay of focusable elements in their
+# tabbing order.
+accessibility.toolbar.displayTabbingOrder.label=Show Tabbing Order
+
+# LOCALIZATION NOTE (accessibility.toolbar.displayTabbingOrder.tooltip): A title text for a checkbox
+# tooltip in the accessibility panel toolbar that turns on/off the overlay of focusable elements in
+# their tabbing order.
+accessibility.toolbar.displayTabbingOrder.tooltip=Show tabbing order of elements and their tabbing index.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/animationinspector.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/animationinspector.properties
new file mode 100644
index 0000000000..09e4afffe0
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/animationinspector.properties
@@ -0,0 +1,182 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Animation inspector
+# which is available as a sidebar panel in the Inspector.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (panel.noAnimation):
+# This is the label shown in the panel when there are no displayable animations.
+# (e.g. In case of user selected a non-element node or a node that is not animated).
+panel.noAnimation=No animations were found for the current element.\nPick another element from the page.
+
+# LOCALIZATION NOTE (player.animationDurationLabel):
+# This string is displayed in each animation player widget. It is the label
+# displayed before the animation duration.
+player.animationDurationLabel=Duration:
+
+# LOCALIZATION NOTE (player.infiniteDurationText):
+# This string is displayed in a tooltip on animation player widget, in case the
+# duration of the animation is infinite.
+player.infiniteDurationText=∞
+
+# LOCALIZATION NOTE (player.animationDelayLabel):
+# This string is displayed in each animation player widget. It is the label
+# displayed before the animation delay.
+player.animationDelayLabel=Delay:
+
+# LOCALIZATION NOTE (player.animationEndDelayLabel):
+# This string is displayed in each animation player widget. It is the label
+# displayed before the animation endDelay.
+player.animationEndDelayLabel=End delay:
+
+# LOCALIZATION NOTE (player.animationRateLabel):
+# This string is displayed in each animation player widget. It is the label
+# displayed before the animation playback rate.
+player.animationRateLabel=Playback rate:
+
+# LOCALIZATION NOTE (player.animationIterationCountLabel):
+# This string is displayed in each animation player widget. It is the label
+# displayed before the number of times the animation is set to repeat.
+player.animationIterationCountLabel=Repeats:
+
+# LOCALIZATION NOTE (player.infiniteIterationCount):
+# In case the animation repeats infinitely, this string is displayed next to the
+# player.animationIterationCountLabel string, instead of a number.
+player.infiniteIterationCount=&#8734;
+
+# LOCALIZATION NOTE (player.infiniteIterationCountText):
+# See player.infiniteIterationCount for a description of what this is.
+# Unlike player.infiniteIterationCount, this string isn't used in HTML, but in
+# a tooltip.
+player.infiniteIterationCountText=∞
+
+# LOCALIZATION NOTE (player.animationIterationStartLabel2):
+# This string is displayed in a tooltip that appears when hovering over
+# animations in the timeline. It is the label displayed before the animation
+# iterationStart value.
+# %1$S will be replaced by the original iteration start value
+# %2$S will be replaced by the actual time of iteration start without time unit
+# e.g.
+# If iterationStart of animation is 0.5 and duration is 1 sec, the string will be
+# "Iteration start: 0.5 (0.5s)"
+player.animationIterationStartLabel2=Iteration start: %1$S (%2$S)
+
+# LOCALIZATION NOTE (player.animationOverallEasingLabel):
+# This string is displayed in a tooltip that appears when hovering over
+# animations in the timeline. It is the label displayed before the easing
+# that applies to a whole iteration of an animation as opposed to the
+# easing that applies between animation keyframes.
+player.animationOverallEasingLabel=Overall easing:
+
+# LOCALIZATION NOTE (player.animationTimingFunctionLabel):
+# This string is displayed in a tooltip that appears when hovering over
+# animations in the timeline. It is the label displayed before the
+# animation-timing-function for CSS Animations.
+player.animationTimingFunctionLabel=Animation timing function:
+
+# LOCALIZATION NOTE (player.animationFillLabel):
+# This string is displayed in a tooltip that appears when hovering over
+# animations in the timeline. It is the label displayed before the animation
+# fill mode value.
+player.animationFillLabel=Fill:
+
+# LOCALIZATION NOTE (player.animationDirectionLabel):
+# This string is displayed in a tooltip that appears when hovering over
+# animations in the timeline. It is the label displayed before the animation
+# direction value.
+player.animationDirectionLabel=Direction:
+
+# LOCALIZATION NOTE (player.timeLabel):
+# This string is displayed in each animation player widget, to indicate either
+# how long (in seconds) the animation lasts, or what is the animation's current
+# time (in seconds too);
+player.timeLabel=%Ss
+
+# LOCALIZATION NOTE (player.infiniteDurationText):
+# This string is displayed in animation player widget, in case the duration of the
+# animation is infinite.
+player.infiniteTimeLabel=∞
+
+# LOCALIZATION NOTE (player.playbackRateLabel):
+# This string is displayed in each animation player widget, as the label of
+# drop-down list items that can be used to change the rate at which the
+# animation runs (1× being the default, 2× being twice as fast).
+player.playbackRateLabel=%S×
+
+# LOCALIZATION NOTE (player.runningOnCompositorTooltip):
+# This string is displayed as a tooltip for the icon that indicates that the
+# animation is running on the compositor thread.
+player.runningOnCompositorTooltip=This animation is running on compositor thread
+
+# LOCALIZATION NOTE (player.allPropertiesOnCompositorTooltip):
+# This string is displayed as a tooltip for the icon that indicates that
+# all of animation is running on the compositor thread.
+player.allPropertiesOnCompositorTooltip=All animation properties are optimized
+
+# LOCALIZATION NOTE (player.somePropertiesOnCompositorTooltip):
+# This string is displayed as a tooltip for the icon that indicates that
+# all of animation is not running on the compositor thread.
+player.somePropertiesOnCompositorTooltip=Some animation properties are optimized
+
+# LOCALIZATION NOTE (timeline.pausedButtonTooltip):
+# This string is displayed in the timeline toolbar, as the tooltip of the
+# pause/resume button that can be used to pause or resume the animations
+timeline.pausedButtonTooltip=Resume the animations
+
+# LOCALIZATION NOTE (timeline.resumedButtonTooltip):
+# This string is displayed in the timeline toolbar, as the tooltip of the
+# pause/resume button that can be used to pause or resume the animations
+timeline.resumedButtonTooltip=Pause the animations
+
+# LOCALIZATION NOTE (timeline.rewindButtonTooltip):
+# This string is displayed in the timeline toolbar, as the tooltip of the
+# rewind button that can be used to rewind the animations
+timeline.rewindButtonTooltip=Rewind the animations
+
+# LOCALIZATION NOTE (timeline.timeGraduationLabel):
+# This string is displayed at the top of the animation panel, next to each time
+# graduation, to indicate what duration (in milliseconds) this graduation
+# corresponds to.
+timeline.timeGraduationLabel=%Sms
+
+# LOCALIZATION NOTE (timeline.cssanimation.nameLabel):
+# This string is displayed in a tooltip of the animation panel that is shown
+# when hovering over the name of a CSS Animation in the timeline UI.
+# %S will be replaced by the name of the animation at run-time.
+timeline.cssanimation.nameLabel=%S — CSS Animation
+
+# LOCALIZATION NOTE (timeline.csstransition.nameLabel):
+# This string is displayed in a tooltip of the animation panel that is shown
+# when hovering over the name of a CSS Transition in the timeline UI.
+# %S will be replaced by the name of the transition at run-time.
+timeline.csstransition.nameLabel=%S — CSS Transition
+
+# LOCALIZATION NOTE (timeline.scriptanimation.nameLabel):
+# This string is displayed in a tooltip of the animation panel that is shown
+# when hovering over the name of a script-generated animation in the timeline UI.
+# %S will be replaced by the name of the animation at run-time.
+timeline.scriptanimation.nameLabel=%S — Script Animation
+
+# LOCALIZATION NOTE (timeline.scriptanimation.unnamedLabel):
+# This string is displayed in a tooltip of the animation panel that is shown
+# when hovering over an unnamed script-generated animation in the timeline UI.
+timeline.scriptanimation.unnamedLabel=Script Animation
+
+# LOCALIZATION NOTE (timeline.unknown.nameLabel):
+# This string is displayed in a tooltip of the animation panel that is shown
+# when hovering over the name of an unknown animation type in the timeline UI.
+# This can happen if devtools couldn't figure out the type of the animation.
+# %S will be replaced by the name of the transition at run-time.
+timeline.unknown.nameLabel=%S
+
+# LOCALIZATION NOTE (detail.propertiesHeader.percentage):
+# This string is displayed on header label in .animated-properties-header.
+# %S represents the value in percentage with two decimal points, localized.
+# there are two "%" after %S to escape and display "%"
+detail.propertiesHeader.percentage=%S%%
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/boxmodel.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/boxmodel.properties
new file mode 100644
index 0000000000..e932d8f0c5
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/boxmodel.properties
@@ -0,0 +1,48 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE : FILE This file contains the Layout View strings.
+# The Layout View is a panel displayed in the computed view tab of the Inspector sidebar.
+
+# LOCALIZATION NOTE : FILE The correct localization of this file might be to
+# keep it in English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (boxmodel.title) This is the title of the box model panel and is
+# displayed as a label.
+boxmodel.title=Box Model
+
+# LOCALIZATION NOTE: (boxmodel.geometryButton.tooltip) This label is displayed as a
+# tooltip that appears when hovering over the button that allows users to edit the
+# position of an element in the page.
+boxmodel.geometryButton.tooltip=Edit position
+
+# LOCALIZATION NOTE: (boxmodel.propertiesLabel) This label is displayed as the header
+# for showing and collapsing the properties underneath the box model in the layout view
+boxmodel.propertiesLabel=Box Model Properties
+
+# LOCALIZATION NOTE (boxmodel.propertiesHideLabel):
+# This is the spoken label for the twisty.
+# If the properties are currently showing, it will say "Hide".
+boxmodel.propertiesHideLabel=Hide
+
+# LOCALIZATION NOTE (boxmodel.propertiesShowLabel):
+# This is the spoken label for the twisty.
+# If the properties are currently hidden, it will say "Show".
+boxmodel.propertiesShowLabel=Show
+
+# LOCALIZATION NOTE: (boxmodel.offsetParent) This label is displayed inside the list of
+# properties, below the box model, in the layout view. It is displayed next to the
+# position property, when position is absolute, relative, sticky. This label tells users
+# what the DOM node previewed next to it is: an offset parent for the position element.
+boxmodel.offsetParent=offset
+
+# LOCALIZATION NOTE: (boxmodel.offsetParent.title) This label is displayed as a
+# tooltip that appears when hovering over the offset label, inside the list of properties,
+# below the box model, in the layout view. This label tells users
+# what the DOM node previewed next to it is: an offset parent for the position element.
+boxmodel.offsetParent.title=Offset parent of the selected element
+
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/changes.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/changes.properties
new file mode 100644
index 0000000000..dc75955b37
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/changes.properties
@@ -0,0 +1,64 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE This file contains the strings for the Changes panel accessible from
+# the Inspector sidebar.
+
+# LOCALIZATION NOTE (changes.noChanges): This text is shown when no changes are available.
+changes.noChanges=No changes found.
+
+# LOCALIZATION NOTE (changes.noChangesDescription): This text is shown when no changes are
+# available and provides additional context for the purpose of the Changes panel.
+changes.noChangesDescription=Changes to CSS in Inspector will appear here.
+
+# LOCALIZATION NOTE (changes.inlineStyleSheetLabel): This label appears in the Changes
+# panel above changes done to inline stylesheets. The variable will be replaced with the
+# index of the stylesheet within its document like so: Inline #1
+changes.inlineStyleSheetLabel=Inline %S
+
+# LOCALIZATION NOTE (changes.elementStyleLabel): This label appears in the Changes
+# panel above changes done to element styles.
+changes.elementStyleLabel=Element
+
+# LOCALIZATION NOTE (changes.iframeLabel): This label appears next to URLs of stylesheets
+# and element inline styles hosted by iframes. Lowercase intentional.
+changes.iframeLabel=iframe
+
+# LOCALIZATION NOTE (changes.contextmenu.copy): Label for "Copy" option in Changes panel
+# context menu
+changes.contextmenu.copy=Copy
+
+# LOCALIZATION NOTE (changes.contextmenu.copy.accessKey): Access key for "Copy"
+# option in the Changes panel.
+changes.contextmenu.copy.accessKey=C
+
+# LOCALIZATION NOTE (changes.contextmenu.copyAllChanges): Label for "Copy All Changes"
+# option in Changes panel context menu which copies all changed CSS declarations from a
+# stylesheet
+changes.contextmenu.copyAllChanges=Copy All Changes
+
+# LOCALIZATION NOTE (changes.contextmenu.copyAllChangesDescription): Detailed explanation
+# for "Copy All Changes" option in Changes panel. Used as title attribute on "Copy All
+# Changes" button
+changes.contextmenu.copyAllChangesDescription=Copy a list of all CSS changes to clipboard.
+
+# LOCALIZATION NOTE (changes.contextmenu.copyDeclaration): Label for "Copy Declaration"
+# option in Changes panel context menu which copies the target CSS declaration.
+changes.contextmenu.copyDeclaration=Copy Declaration
+
+# LOCALIZATION NOTE (changes.contextmenu.copyRule): Label for "Copy Rule" option in
+# Changes panel context menu which copies the complete contents of a CSS rule.
+changes.contextmenu.copyRule=Copy Rule
+
+# LOCALIZATION NOTE (changes.contextmenu.copyRuleDescription): Detailed explanation for
+# "Copy Rule" option in Changes panel. Used as title attribute on "Copy Rule" button.
+changes.contextmenu.copyRuleDescription=Copy contents of this CSS rule to clipboard.
+
+# LOCALIZATION NOTE (changes.contextmenu.selectAll): Label for "Select All" option in the
+# Changes panel context menu to select all text content.
+changes.contextmenu.selectAll=Select All
+
+# LOCALIZATION NOTE (changes.contextmenu.selectAll.accessKey): Access key for "Select All"
+# option in the Changes panel.
+changes.contextmenu.selectAll.accessKey=A
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/components.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/components.properties
new file mode 100644
index 0000000000..7849afba30
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/components.properties
@@ -0,0 +1,49 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used in the shared React components,
+# so files in `devtools/client/shared/components/*`.
+
+# LOCALIZATION NOTE (frame.unknownSource): When we do not know the source filename of
+# a frame, we use this string instead.
+frame.unknownSource=(unknown)
+
+# LOCALIZATION NOTE (frame.viewsourceindebugger): The label for the tooltip when hovering over
+# a source link that links to the debugger.
+# %S represents the URL to match in the debugger.
+frame.viewsourceindebugger=View source in Debugger → %S
+
+# LOCALIZATION NOTE (frame.viewsourceinstyleeditor): The label for the tooltip when hovering over
+# a source link that links to the Style Editor.
+# %S represents the URL to match in the style editor.
+frame.viewsourceinstyleeditor=View source in Style Editor → %S
+
+# LOCALIZATION NOTE (notificationBox.closeTooltip): The content of a tooltip that
+# appears when hovering over the close button in a notification box.
+notificationBox.closeTooltip=Close this message
+
+# LOCALIZATION NOTE (appErrorBoundary.description): This is the information displayed
+# once the panel errors.
+# %S represents the name of panel which has the crash.
+appErrorBoundary.description=The %S panel has crashed.
+
+# LOCALIZATION NOTE (appErrorBoundary.fileBugButton): This is the text that appears in
+# the button to visit the bug filing link.
+appErrorBoundary.fileBugButton=File Bug Report
+
+# LOCALIZATION NOTE (appErrorBoundary.reloadPanelInfo): This is the text that appears
+# after the panel errors to instruct the user to reload the panel.
+appErrorBoundary.reloadPanelInfo=Close and reopen the toolbox to clear this error.
+
+# LOCALIZATION NOTE(searchModifier.regExpModifier): A search option
+# when searching text in a file
+searchModifier.regExpModifier=Use Regular Expression
+
+# LOCALIZATION NOTE(searchModifier.caseSensitiveModifier): A search option
+# when searching text in a file
+searchModifier.caseSensitiveModifier=Match Case
+
+# LOCALIZATION NOTE(searchModifier.wholeWordModifier): A search option
+# when searching text in a file
+searchModifier.wholeWordModifier=Match Whole Word
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/debugger.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/debugger.properties
new file mode 100644
index 0000000000..a5503155d9
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/debugger.properties
@@ -0,0 +1,1082 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Debugger
+# which is available from the Browser Tools sub-menu -> 'Debugger'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (collapseSources): This is the tooltip for the button
+# that collapses the Sources and Outlines panes in the debugger UI.
+collapseSources=Collapse Sources and Outline panes
+
+# LOCALIZATION NOTE (collapseBreakpoints): This is the tooltip for the button
+# that collapses the Breakpoints panes in the debugger UI.
+collapseBreakpoints=Collapse Breakpoints pane
+
+# LOCALIZATION NOTE (copyToClipboard.label): This is the text that appears in the
+# context menu to copy the text that the user selected.
+copyToClipboard.label=Copy to clipboard
+copyToClipboard.accesskey=C
+
+# LOCALIZATION NOTE (copySource.label): This is the text that appears in the
+# context menu to copy all of the text in the open file.
+copySource.label=Copy source text
+copySource.accesskey=y
+
+# LOCALIZATION NOTE (copySourceUri2): This is the text that appears in the
+# context menu to copy the source URI of file open.
+copySourceUri2=Copy source URI
+copySourceUri2.accesskey=u
+
+# LOCALIZATION NOTE (collapseAll.label): This is the text that appears in the
+# context menu to collapse a directory and all of its subdirectories.
+collapseAll.label=Collapse all
+
+# LOCALIZATION NOTE (expandAll.label): This is the text that appears in the
+# context menu to expand a directory and all of its subdirectories.
+expandAll.label=Expand all
+
+# LOCALIZATION NOTE (setDirectoryRoot.label): This is the text that appears in the
+# context menu to set a directory as root directory
+setDirectoryRoot.label=Set directory root
+setDirectoryRoot.accesskey=r
+
+# LOCALIZATION NOTE (removeDirectoryRoot.label): This is the text that appears in the
+# context menu to remove a directory as root directory
+removeDirectoryRoot.label=Remove directory root
+
+# LOCALIZATION NOTE (ignoreAll.label): Text associated with the ignore context menu item
+ignoreAll.label=Ignore
+
+# LOCALIZATION NOTE (ignoreAllInGroup.label): This is the text that appears in the
+# context submenu to ignore all files inside of the selected group
+ignoreAllInGroup.label=Ignore files in this group
+
+# LOCALIZATION NOTE (unignoreAllInGroup.label): This is the text that appears in the
+# context submenu to unignore all files inside of the selected group
+unignoreAllInGroup.label=Unignore files in this group
+
+# LOCALIZATION NOTE (ignoreAllOutsideGroup.label): This is the text that appears in the
+# context submenu to ignore all files outside of the selected group
+ignoreAllOutsideGroup.label=Ignore files outside this group
+
+# LOCALIZATION NOTE (unignoreAllOutsideGroup.label): This is the text that appears in the
+# context submenu to unignore all files outside of the selected group
+unignoreAllOutsideGroup.label=Unignore files outside this group
+
+# LOCALIZATION NOTE (ignoreAllInDir.label): This is the text that appears in the
+# context submenu to ignore all files inside of the selected directory
+ignoreAllInDir.label=Ignore files in this directory
+
+# LOCALIZATION NOTE (unignoreAllInDir.label): This is the text that appears in the
+# context submenu to unignore all files inside of the selected directory
+unignoreAllInDir.label=Unignore files in this directory
+
+# LOCALIZATION NOTE (ignoreAllOutsideDir.label): This is the text that appears in the
+# context submenu to ignore all files outside of the selected directory
+ignoreAllOutsideDir.label=Ignore files outside this directory
+
+# LOCALIZATION NOTE (unignoreAllOutsideDir.label: This is the text that appears in the
+# context submenu to unignore all files outside of the selected directory
+unignoreAllOutsideDir.label=Unignore files outside this directory
+
+# LOCALIZATION NOTE (copyFunction.label): This is the text that appears in the
+# context menu to copy the function the user selected
+copyFunction.label=Copy function
+copyFunction.accesskey=F
+
+# LOCALIZATION NOTE (copyStackTrace): This is the text that appears in the
+# context menu to copy the stack trace methods, file names and row number.
+copyStackTrace=Copy stack trace
+copyStackTrace.accesskey=C
+
+# LOCALIZATION NOTE (restartFrame): This is the text that appears in the
+# context menu to restart a frame.
+restartFrame=Restart frame
+restartFrame.accesskey=r
+
+# LOCALIZATION NOTE (expandSources): This is the tooltip for the button
+# that expands the Sources and Outlines panes in the debugger UI.
+expandSources=Expand Sources and Outline panes
+
+# LOCALIZATION NOTE (expandBreakpoints): This is the tooltip for the button
+# that expands the Breakpoints panes in the debugger UI.
+expandBreakpoints=Expand Breakpoints pane
+
+# LOCALIZATION NOTE (evaluateInConsole.label): Editor right-click menu item
+# to execute selected text in browser console.
+evaluateInConsole.label=Evaluate in console
+
+# LOCALIZATION NOTE (pauseButtonTooltip): The tooltip that is displayed for the pause
+# button when the debugger is in a running state.
+pauseButtonTooltip=Pause %S
+
+# LOCALIZATION NOTE (pausePendingButtonTooltip): The tooltip that is displayed for
+# the pause button after it's been clicked but before the next JavaScript to run.
+pausePendingButtonTooltip=Waiting for next execution
+
+# LOCALIZATION NOTE (startTraceButtonTooltip): The label that is displayed on the trace
+# button in the top of the debugger right sidebar. %S is for the log output location (webconsole or stdout).
+startTraceButtonTooltip=Trace all JavaScript frames to %S.\nRight click to change the output.
+
+# LOCALIZATION NOTE (stopTraceButtonTooltip): The label that is displayed on the trace
+# button in the top of the debugger right sidebar. This label is only displayed when we are current tracing
+# JavaScript.
+stopTraceButtonTooltip=Stop tracing JavaScript frames.
+
+# LOCALIZATION NOTE (startTraceButtonTooltip): The label that is displayed on the trace
+# button in the top of the debugger right sidebar.
+# %1$S is for the key shortcut
+# %2$S is for the log output location (webconsole or stdout).
+startTraceButtonTooltip2=Trace all JavaScript frames to %2$S. (%1$S)\nRight click to change the output.
+
+# LOCALIZATION NOTE (stopTraceButtonTooltip): The label that is displayed on the trace
+# button in the top of the debugger right sidebar. This label is only displayed when we are current tracing
+# JavaScript.
+# %S is for the key shortcut
+stopTraceButtonTooltip2=Stop tracing JavaScript frames. (%S)
+
+# LOCALIZATION NOTE (traceInWebConsole): The label that is displayed in the context menu
+# of the trace button, which is in the top of the debugger right sidebar.
+# This is used to force logging JavaScript traces in the Web Console.
+traceInWebConsole=Trace in the web console
+
+# LOCALIZATION NOTE (traceInWebConsole): The label that is displayed in the context menu
+# of the trace button, which is in the top of the debugger right sidebar.
+# This is used to force logging JavaScript traces in the stdout.
+traceInStdout=Trace in the stdout
+
+# LOCALIZATION NOTE (resumeButtonTooltip): The label that is displayed on the pause
+# button when the debugger is in a paused state.
+resumeButtonTooltip=Resume %S
+
+# LOCALIZATION NOTE (stepOverTooltip): The label that is displayed on the
+# button that steps over a function call.
+stepOverTooltip=Step over %S
+
+# LOCALIZATION NOTE (stepInTooltip): The label that is displayed on the
+# button that steps into a function call.
+stepInTooltip=Step in %S
+
+# LOCALIZATION NOTE (stepOutTooltip): The label that is displayed on the
+# button that steps out of a function call.
+stepOutTooltip=Step out %S
+
+# LOCALIZATION NOTE (skipPausingTooltip.label): The tooltip text for disabling all
+# breakpoints and pausing triggers
+skipPausingTooltip.label=Deactivate breakpoints
+
+# LOCALIZATION NOTE (undoSkipPausingTooltip.label): The tooltip text for enabling all
+# breakpoints and pausing triggers
+undoSkipPausingTooltip.label=Activate breakpoints
+
+# LOCALIZATION NOTE (pauseOnExceptionsItem2): The pause on exceptions checkbox description
+# when the debugger will pause on all exceptions.
+pauseOnExceptionsItem2=Pause on exceptions
+
+# LOCALIZATION NOTE (pauseOnCaughtExceptionsItem): The pause on exceptions checkbox description
+# when the debugger should pause on caught exceptions
+pauseOnCaughtExceptionsItem=Pause on caught exceptions
+
+# LOCALIZATION NOTE (threadsHeader): The text to describe the threads header
+threadsHeader=Threads
+
+# LOCALIZATION NOTE (mainThread): The text to describe the thread of the
+# program as opposed to worker threads.
+mainThread=Main Thread
+
+# LOCALIZATION NOTE (noSourcesText): The text to display in the sources list
+# when there are no sources.
+noSourcesText=This page has no sources.
+
+# LOCALIZATION NOTE (ignoredSourcesHidden): Notification message displayed in the
+# sources list footer when ignored sources are hidden.
+ignoredSourcesHidden=Ignored sources are hidden.
+
+# LOCALIZATION NOTE (showIgnoredSources): Notification button displayed in the
+# source next to the "ignored sources are hidden" string. Clicking on this link
+# shows all the ignored sources which are currently hidden.
+showIgnoredSources=Show all sources
+
+# LOCALIZATION NOTE (showIgnoredSources.tooltip.label): Message displayed in the tooltip of the notification
+# link displayed in the sources list footer when ignored sources are hidden.
+showIgnoredSources.tooltip.label=This will show all the ignored sources (which are currently hidden) in the tree.
+
+# LOCALIZATION NOTE (eventListenersHeader1): The text to display in the events
+# header.
+eventListenersHeader1=Event Listener Breakpoints
+
+# LOCALIZATION NOTE (noDomMutationBreakpoints): The text to
+# display in the DOM Mutation Breakpoints pane when there are no events.
+# %S will be replaced by an active link using inspectorTool as text
+noDomMutationBreakpoints=Right click an element in the %S and select “Break on…” to add a breakpoint
+
+# LOCALIZATION NOTE (inspectorTool): The text to describe the the Inspector tool
+inspectorTool=Inspector
+
+# LOCALIZATION NOTE (eventListenersHeader1.placeholder): The placeholder text in
+# the event search input bar
+eventListenersHeader1.placeholder=Filter by event type
+
+# LOCALIZATION NOTE (domMutationHeader): The text to display in the
+# DOM Mutation Breakpoints header
+domMutationHeader=DOM Mutation Breakpoints
+
+# LOCALIZATION NOTE (domMutationTypes.attribute): The text to display in the
+# DOM Mutation Breakpoints panel for an attribute change
+domMutationTypes.attribute=Attribute Modification
+
+# LOCALIZATION NOTE (domMutationTypes.removal): The text to display in the
+# DOM Mutation Breakpoints panel for a DOM node removal
+domMutationTypes.removal=Node Removal
+
+# LOCALIZATION NOTE (domMutationTypes.subtree): The text to display in the
+# DOM Mutation Breakpoints panel for a DOM subtree change
+domMutationTypes.subtree=Subtree Modification
+
+# LOCALIZATION NOTE (sources.search.key2): Key shortcut to open the search for
+# searching all the source files the debugger has seen.
+# Do not localize "CmdOrCtrl+P", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+sources.search.key2=CmdOrCtrl+P
+
+# LOCALIZATION NOTE (sources.search.alt.key): A second key shortcut to open the
+# search for searching all the source files the debugger has seen.
+# Do not localize "CmdOrCtrl+O", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+sources.search.alt.key=CmdOrCtrl+O
+
+# LOCALIZATION NOTE (projectTextSearch.key): A key shortcut to open the
+# full project text search for searching all the files the debugger has seen.
+# Do not localize "CmdOrCtrl+Shift+F", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+projectTextSearch.key=CmdOrCtrl+Shift+F
+
+# LOCALIZATION NOTE (allShortcut.key): A key shortcut to open the
+# modal of full shortcuts list.
+# Do not localize "CmdOrCtrl+/", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+allShortcut.key=CmdOrCtrl+/
+
+# LOCALIZATION NOTE (functionSearch.key): A key shortcut to open the
+# modal for searching functions in a file.
+# Do not localize "CmdOrCtrl+Shift+O", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+functionSearch.key=CmdOrCtrl+Shift+O
+
+# LOCALIZATION NOTE (toggleBreakpoint.key): A key shortcut to toggle
+# breakpoints.
+# Do not localize "CmdOrCtrl+B", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+toggleBreakpoint.key=CmdOrCtrl+B
+
+# LOCALIZATION NOTE (toggleCondPanel.breakpoint.key): A key shortcut to toggle
+# the conditional panel for breakpoints.
+# Do not localize "CmdOrCtrl+Shift+B", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+toggleCondPanel.breakpoint.key=CmdOrCtrl+Shift+B
+
+# LOCALIZATION NOTE (toggleCondPanel.logPoint.key): A key shortcut to toggle
+# the conditional panel for log points.
+# Do not localize "CmdOrCtrl+Shift+Y", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+toggleCondPanel.logPoint.key=CmdOrCtrl+Shift+Y
+
+# LOCALIZATION NOTE (stepOut.key): A key shortcut to
+# step out.
+stepOut.key=Shift+F11
+
+# LOCALIZATION NOTE (shortcuts.header.editor): Sections header in
+# the shortcuts modal for keyboard shortcuts related to editing.
+shortcuts.header.editor=Editor
+
+# LOCALIZATION NOTE (shortcuts.header.stepping): Sections header in
+# the shortcuts modal for keyboard shortcuts related to stepping.
+shortcuts.header.stepping=Stepping
+
+# LOCALIZATION NOTE (shortcuts.header.search): Sections header in
+# the shortcuts modal for keyboard shortcuts related to search.
+shortcuts.header.search=Search
+
+# LOCALIZATION NOTE (projectTextSearch.placeholder): A placeholder shown
+# when searching across all of the files in a project.
+projectTextSearch.placeholder=Find in files…
+
+# LOCALIZATION NOTE (projectTextSearch.excludePatterns.label): A label shown
+# above the exclude patterns field when searching across all of the files in a project.
+projectTextSearch.excludePatterns.label=files to exclude
+
+# LOCALIZATION NOTE (projectTextSearch.excludePatterns.placeholder): A placeholder shown
+# for the exclude patterns field when searching across all of the files in a project.
+projectTextSearch.excludePatterns.placeholder=e.g. **/node_modules/**,app.js
+
+# LOCALIZATION NOTE (projectTextSearch.noResults): The center pane Text Search
+# message when the query did not match any text of all files in a project.
+projectTextSearch.noResults=No results found
+
+# LOCALIZATION NOTE (sourceSearch.search.key2): Key shortcut to open the search
+# for searching within a the currently opened files in the editor
+# Do not localize "CmdOrCtrl+F", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+sourceSearch.search.key2=CmdOrCtrl+F
+
+# LOCALIZATION NOTE (sourceSearch.search.placeholder): placeholder text in
+# the source search input bar
+sourceSearch.search.placeholder=Search in file…
+
+# LOCALIZATION NOTE (sourceSearch.search.placeholder2): placeholder text in
+# the source search input bar
+sourceSearch.search.placeholder2=Find in file…
+
+# LOCALIZATION NOTE (sourceSearch.resultsSummary2): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# Shows a summary of the number of matches for autocomplete
+sourceSearch.resultsSummary2=#1 result;#1 results
+
+# LOCALIZATION NOTE (breakpointHeadingMenuItem.*): The text for all the elements
+# that are displayed in the breakpoint headings menu item popup.
+breakpointHeadingsMenuItem.enableInSource.label=Enable breakpoints
+breakpointHeadingsMenuItem.enableInSource.accesskey=E
+breakpointHeadingsMenuItem.disableInSource.label=Disable breakpoints
+breakpointHeadingsMenuItem.disableInSource.accesskey=D
+breakpointHeadingsMenuItem.removeInSource.label=Remove breakpoints
+breakpointHeadingsMenuItem.removeInSource.accesskey=R
+
+# LOCALIZATION NOTE (breakpointMenuItem): The text for all the elements that
+# are displayed in the breakpoints menu item popup.
+breakpointMenuItem.enableSelf2.label=Enable
+breakpointMenuItem.enableSelf2.accesskey=E
+breakpointMenuItem.disableSelf2.label=Disable
+breakpointMenuItem.disableSelf2.accesskey=D
+breakpointMenuItem.deleteSelf2.label=Remove
+breakpointMenuItem.deleteSelf2.accesskey=R
+breakpointMenuItem.disabledbg.label=Never pause here
+breakpointMenuItem.enabledbg.label=Pause here
+breakpointMenuItem.enableOthers2.label=Enable others
+breakpointMenuItem.enableOthers2.accesskey=o
+breakpointMenuItem.disableOthers2.label=Disable others
+breakpointMenuItem.disableOthers2.accesskey=s
+breakpointMenuItem.deleteOthers2.label=Remove others
+breakpointMenuItem.deleteOthers2.accesskey=h
+breakpointMenuItem.enableAll2.label=Enable all
+breakpointMenuItem.enableAll2.accesskey=b
+breakpointMenuItem.disableAll2.label=Disable all
+breakpointMenuItem.disableAll2.accesskey=k
+breakpointMenuItem.deleteAll2.label=Remove all
+breakpointMenuItem.deleteAll2.accesskey=a
+breakpointMenuItem.removeCondition2.label=Remove condition
+breakpointMenuItem.removeCondition2.accesskey=c
+breakpointMenuItem.addCondition2.label=Add condition
+breakpointMenuItem.addCondition2.accesskey=A
+breakpointMenuItem.editCondition2.label=Edit condition
+breakpointMenuItem.editCondition2.accesskey=n
+breakpointMenuItem.enableSelf=Enable breakpoint
+breakpointMenuItem.disableSelf=Disable breakpoint
+breakpointMenuItem.deleteSelf=Remove breakpoint
+breakpointMenuItem.enableOthers=Enable others
+breakpointMenuItem.disableOthers=Disable others
+breakpointMenuItem.deleteOthers=Remove others
+breakpointMenuItem.enableAll=Enable all breakpoints
+breakpointMenuItem.disableAll=Disable all breakpoints
+breakpointMenuItem.deleteAll=Remove all breakpoints
+breakpointMenuItem.disableAllAtLine.label=Disable breakpoints on line
+breakpointMenuItem.disableAllAtLine.accesskey=K
+breakpointMenuItem.enableAllAtLine.label=Enable breakpoints on line
+breakpointMenuItem.enableAllAtLine.accesskey=L
+breakpointMenuItem.removeAllAtLine.label=Remove breakpoints on line
+breakpointMenuItem.removeAllAtLine.accesskey=X
+
+# LOCALIZATION NOTE (breakpoints.header): Breakpoints right sidebar pane header.
+breakpoints.header=Breakpoints
+
+# LOCALIZATION NOTE (breakpoints.removeBreakpointTooltip): The tooltip that is displayed
+# for remove breakpoint button in right sidebar
+breakpoints.removeBreakpointTooltip=Remove breakpoint
+
+# LOCALIZATION NOTE (callStack.header): Call Stack right sidebar pane header.
+callStack.header=Call stack
+
+# LOCALIZATION NOTE (callStack.notPaused): Call Stack right sidebar pane
+# message when not paused.
+callStack.notPaused=Not paused
+
+# LOCALIZATION NOTE (callStack.collapse): Call Stack right sidebar pane
+# message to hide some of the frames that are shown.
+callStack.collapse=Collapse rows
+
+# LOCALIZATION NOTE (callStack.expand): Call Stack right sidebar pane
+# message to show more of the frames.
+callStack.expand=Expand rows
+
+# LOCALIZATION NOTE (callStack.group.expandTooltip): The text that will appear
+# when hovering a collapsed Group of frames in the callStack panel. `frames` is
+# always plural since a group can only exist if it contain more that 1 frame.
+# %S is replaced by the name of the library of the frames in the group.
+# example: `Show React frames`.
+callStack.group.expandTooltip=Show %S frames
+
+# LOCALIZATION NOTE (callStack.group.collapseTooltip): The text that will appear
+# when hovering an expanded Group of frames in the callStack panel. `frames` is
+# always plural since a group can only exist if it contain more that 1 frame.
+# %S is replaced by the name of the library of the frames in the group.
+# example: `Collapse React frames`.
+callStack.group.collapseTooltip=Collapse %S frames
+
+# LOCALIZATION NOTE (editor.searchResults1): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# Editor Search bar message to summarize the selected search result. e.g. 5 of 10 results.
+editor.searchResults1=%d of #1 result;%d of #1 results
+
+# LOCALIZATION NOTE (editor.noResultsFound): Editor Search bar message
+# for when no results found.
+editor.noResultsFound=No results found
+
+# LOCALIZATION NOTE (editor.searchResults.nextResult): Editor Search bar
+# tooltip for traversing to the Next Result
+editor.searchResults.nextResult=Next result
+
+# LOCALIZATION NOTE (editor.searchResults.prevResult): Editor Search bar
+# tooltip for traversing to the Previous Result
+editor.searchResults.prevResult=Previous result
+
+# LOCALIZATION NOTE (editor.continueToHere.label): Editor gutter context
+# menu item for jumping to a new paused location
+editor.continueToHere.label=Continue to here
+editor.continueToHere.accesskey=H
+
+# LOCALIZATION NOTE (editor.addBreakpoint): Editor gutter context menu item
+# for adding a breakpoint on a line.
+editor.addBreakpoint=Add breakpoint
+
+# LOCALIZATION NOTE (editor.disableBreakpoint): Editor gutter context menu item
+# for disabling a breakpoint on a line.
+editor.disableBreakpoint=Disable breakpoint
+editor.disableBreakpoint.accesskey=D
+
+# LOCALIZATION NOTE (editor.enableBreakpoint): Editor gutter context menu item
+# for enabling a breakpoint on a line.
+editor.enableBreakpoint=Enable breakpoint
+
+# LOCALIZATION NOTE (editor.removeBreakpoint): Editor gutter context menu item
+# for removing a breakpoint on a line.
+editor.removeBreakpoint=Remove breakpoint
+
+# LOCALIZATION NOTE (editor.addConditionBreakpoint): Editor gutter context
+# menu item for adding a breakpoint condition on a line.
+editor.addConditionBreakpoint=Add condition
+editor.addConditionBreakpoint.accesskey=c
+
+# LOCALIZATION NOTE (editor.editConditionBreakpoint): Editor gutter context menu item
+# for setting a breakpoint condition on a line.
+editor.editConditionBreakpoint=Edit condition
+
+# LOCALIZATION NOTE (editor.addLogPoint): Editor gutter context
+# menu item for adding a log point on a line.
+editor.addLogPoint=Add log
+editor.addLogPoint.accesskey=l
+
+# LOCALIZATION NOTE (editor.editLogPoint): Editor gutter context menu item
+# for editing a log point already set on a line.
+editor.editLogPoint=Edit log
+editor.editLogPoint.accesskey=E
+
+# LOCALIZATION NOTE (editor.removeLogPoint): Context menu item for removing
+# a log point on a line.
+editor.removeLogPoint.label=Remove log
+editor.removeLogPoint.accesskey=V
+
+# LOCALIZATION NOTE (editor.conditionalPanel.placeholder2): Placeholder text for
+# input element inside ConditionalPanel component
+editor.conditionalPanel.placeholder2=Breakpoint condition, e.g. items.length > 0
+
+# LOCALIZATION NOTE (editor.conditionalPanel.logPoint.placeholder2): Placeholder text for
+# input element inside ConditionalPanel component when a log point is set
+editor.conditionalPanel.logPoint.placeholder2=Log message, e.g. displayName
+
+# LOCALIZATION NOTE (editor.jumpToMappedLocation1): Context menu item
+# for navigating to a source mapped location
+editor.jumpToMappedLocation1=Jump to %S location
+editor.jumpToMappedLocation1.accesskey=m
+
+# LOCALIZATION NOTE (downloadFile.label): Context menu item
+# for downloading a source's content
+downloadFile.label=Download file
+downloadFile.accesskey=d
+
+# LOCALIZATION NOTE (inlinePreview.show.label): Context menu item
+# for showing the inline preview blocks
+inlinePreview.show.label=Show inline preview
+
+# LOCALIZATION NOTE (inlinePreview.hide.label): Context menu item
+# for hiding the inline preview block
+inlinePreview.hide.label=Hide inline preview
+
+# LOCALIZATION NOTE (inlinePreview.toggle.label): Context menu item
+# that will toggle display of inline preview
+inlinePreview.toggle.label=Inline Variable Preview
+
+# LOCALIZATION NOTE (inlinePreview.toggle.tooltip): Context menu item
+# tooltip that will describe toggling inline preview
+inlinePreview.toggle.tooltip=Show inline preview in the debugger editor
+
+# LOCALIZATION NOTE (editorWrapping.show.label): Context menu item
+# for showing the wrap lines block
+editorWrapping.show.label=Wrap lines
+
+# LOCALIZATION NOTE (editorWrapping.hide.label): Context menu item
+# for showing the wrap lines block
+editorWrapping.hide.label=Unwrap lines
+
+# LOCALIZATION NOTE (editorWrapping.toggle.label): Context menu item
+# label for toggling the lines wrapping feature
+editorWrapping.toggle.label=Wrap Lines
+
+# LOCALIZATION NOTE (editorWrapping.toggle.tooltip): Context menu item
+# tooltip for toggling the lines wrapping feature
+editorWrapping.toggle.tooltip=Wrap lines in the debugger editor
+
+# LOCALIZATION NOTE (settings.button.label): Label for Settings button
+settings.button.label=Debugger Settings
+
+# LOCALIZATION NOTE (settings.disableJavaScript.label): Context menu item
+# label for disabling JavaScript
+settings.disableJavaScript.label=Disable JavaScript
+
+# LOCALIZATION NOTE (settings.disableJavaScript.tooltip): Context menu item
+# tooltip for disabling JavaScript
+settings.disableJavaScript.tooltip=Disables JavaScript (Requires refresh)
+
+# LOCALIZATION NOTE (settings.toggleSourceMaps.tooltip): Context menu item
+# tooltip for toggling the source maps feature
+settings.toggleSourceMaps.tooltip=Enable Source Maps to let DevTools load your original sources in addition to your generated ones
+
+# LOCALIZATION NOTE (settings.toggleSourceMaps.label): Context menu item
+# label for toggling the source maps feature
+settings.toggleSourceMaps.label=Source Maps
+
+# LOCALIZATION NOTE (settings.hideIgnoredSources.tooltip): Context menu item
+# tooltip for hiding and showing all the ignored sources
+settings.hideIgnoredSources.tooltip=Hides all ignored sources in the Sources panel
+
+# LOCALIZATION NOTE (settings.hideIgnoredSources.label): Context menu item
+# label for hiding all ignored sources when enabled (indicated by the check mark)
+# Ignored sources will be shown when disabled (no check mark).
+settings.hideIgnoredSources.label=Hide Ignored Sources
+
+# LOCALIZATION NOTE (settings.enableSourceMapIgnoreList.tooltip): Context menu item
+# tooltip for ignoring all sources on the sourcemaps ignore list.
+# Note: x_google_ignoreList should not be translated.
+settings.enableSourceMapIgnoreList.tooltip=Ignores all sources on the source map x_google_ignoreList field.
+
+# LOCALIZATION NOTE (settings.enableSourceMapIgnoreList.label): Context menu item
+# label for ignoring all sources on the sourcemaps ignore list when enabled
+# (indicated by the check mark). The sources on the ignore list are un-ignored
+# when disabled (no check mark).
+# Note: Make sure to also keep 'sourceFooter.ignoreList' in sync when this changes
+settings.enableSourceMapIgnoreList.label=Ignore Known Third-party Scripts
+
+# LOCALIZATION NOTE (preview.noProperties): Label shown in the preview
+# popup when there are no properties to show.
+preview.noProperties=No properties
+
+# LOCALIZATION NOTE (framework.disableGrouping): This is the text that appears in the
+# context menu to disable framework grouping.
+framework.disableGrouping=Disable framework grouping
+framework.disableGrouping.accesskey=u
+
+# LOCALIZATION NOTE (framework.enableGrouping): This is the text that appears in the
+# context menu to enable framework grouping.
+framework.enableGrouping=Enable framework grouping
+framework.enableGrouping.accesskey=u
+
+# LOCALIZATION NOTE (generated): Source Map term for a server source location
+generated=generated
+
+# LOCALIZATION NOTE (original): Source Map term for a debugger UI source location
+original=original
+
+# LOCALIZATION NOTE (expressions.placeholder): Placeholder text for expression
+# input element
+expressions.placeholder=Add watch expression
+
+# LOCALIZATION NOTE (expressions.errorMsg): Error text for expression
+# input element
+expressions.errorMsg=Invalid expression…
+expressions.label=Add watch expression
+expressions.accesskey=e
+expressions.remove.tooltip=Remove watch expression
+
+# LOCALIZATION NOTE (xhrBreakpoints.header): The pause on any XHR breakpoints headings
+xhrBreakpoints.header=XHR Breakpoints
+xhrBreakpoints.placeholder=Break when URL contains
+xhrBreakpoints.label=Add XHR breakpoint
+
+# LOCALIZATION NOTE (xhrBreakpoints.removeAll.tooltip): For the `Remove all XHR breakpoints' button in the header of the XHR breakpoints panel
+xhrBreakpoints.removeAll.tooltip=Remove all XHR breakpoints
+
+
+# LOCALIZATION NOTE (xhrBreakpoints.item.label): message displayed when reaching a breakpoint for XHR requests. %S is replaced by the path provided as condition for the breakpoint.
+xhrBreakpoints.item.label=URL contains “%S”
+
+# LOCALIZATION NOTE (pauseOnAnyXHR): The pause on any XHR checkbox description
+# when the debugger will pause on any XHR requests.
+pauseOnAnyXHR=Pause on any URL
+
+# LOCALIZATION NOTE (watchpoints.submenu): This is the text for the watchpoints sub-menu.
+watchpoints.submenu=Break on…
+
+# LOCALIZATION NOTE (watchpoints.getWatchpoint): This is the text that appears in the
+# watchpoints sub-menu to add a "get" watchpoint on an object property.
+watchpoints.getWatchpoint=Property get
+
+# LOCALIZATION NOTE (watchpoints.setWatchpoint): This is the text that appears in the
+# watchpoints submenu to add a "set" watchpoint on an object property.
+watchpoints.setWatchpoint=Property set
+
+# LOCALIZATION NOTE (watchpoints.getOrSetWatchpoint): This is the text that appears in the
+# watchpoints submenu to add a "set" watchpoint on an object property.
+watchpoints.getOrSetWatchpoint=Property get or set
+
+# LOCALIZATION NOTE (watchpoints.removeWatchpoint): This is the text that appears in the
+# context menu to delete a watchpoint on an object property.
+watchpoints.removeWatchpoint=Remove watchpoint
+
+# LOCALIZATION NOTE (watchpoints.removeWatchpointTooltip): This is the text that appears in the
+# tooltip to delete a watchpoint on an object property.
+watchpoints.removeWatchpointTooltip=Remove watchpoint
+
+# LOCALIZATION NOTE (sourceTabs.closeTab): Editor source tab context menu item
+# for closing the selected tab below the mouse.
+sourceTabs.closeTab=Close tab
+sourceTabs.closeTab.accesskey=C
+sourceTabs.closeTab.key=CmdOrCtrl+W
+
+# LOCALIZATION NOTE (sourceTabs.closeOtherTabs): Editor source tab context menu item
+# for closing the other tabs.
+sourceTabs.closeOtherTabs=Close other tabs
+sourceTabs.closeOtherTabs.accesskey=o
+
+# LOCALIZATION NOTE (sourceTabs.closeTabsToEnd): Editor source tab context menu item
+# for closing the tabs to the end (the right for LTR languages) of the selected tab.
+sourceTabs.closeTabsToEnd=Close tabs to the right
+sourceTabs.closeTabsToEnd.accesskey=e
+
+# LOCALIZATION NOTE (sourceTabs.closeAllTabs): Editor source tab context menu item
+# for closing all tabs.
+sourceTabs.closeAllTabs=Close all tabs
+sourceTabs.closeAllTabs.accesskey=A
+
+# LOCALIZATION NOTE (sourceTabs.revealInTree): Editor source tab context menu item
+# for revealing source in tree.
+sourceTabs.revealInTree=Reveal in tree
+sourceTabs.revealInTree.accesskey=R
+
+# LOCALIZATION NOTE (sourceTabs.prettyPrint): Editor source tab context menu item
+# for pretty printing the source.
+sourceTabs.prettyPrint=Pretty print source
+sourceTabs.prettyPrint.accesskey=P
+
+# LOCALIZATION NOTE (sourceFooter.prettyPrint.isPrettyPrintedMessage): Tooltip text for the disabled
+# pretty print button in editor footer. This displays when the file is already pretty printed.
+sourceFooter.prettyPrint.isPrettyPrintedMessage=Can’t pretty print, file is already pretty printed
+
+# LOCALIZATION NOTE (sourceFooter.prettyPrint.isOriginalMessage): Tooltip text for the disabled
+# pretty print button in editor footer. This displays when the file is an original source.
+sourceFooter.prettyPrint.isOriginalMessage=Can’t pretty print original sources, file is already readable
+
+# LOCALIZATION NOTE (sourceFooter.prettyPrint.hasSourceMapMessage): Tooltip text for the disabled
+# pretty print button in editor footer. This displays when the file has a valid sourcemap with original sources.
+sourceFooter.prettyPrint.hasSourceMapMessage=Can’t pretty print generated sources with valid sourcemaps. Please use the original sources.
+
+# LOCALIZATION NOTE (sourceFooter.prettyPrint.noContentMessage): Tooltip text for the disabled
+# pretty print button in editor footer. This displays when the file has no content.
+sourceFooter.prettyPrint.noContentMessage=Can’t pretty print, file has no content
+
+# LOCALIZATION NOTE (sourceFooter.prettyPrint.isNotJavascriptMessage): Tooltip text for the disabled
+# pretty print button in editor footer. This displays when the file is not JavaScript code.
+sourceFooter.prettyPrint.isNotJavascriptMessage=Can’t pretty print, file is not JavaScript
+
+# LOCALIZATION NOTE (sourceFooter.ignores): Tooltip text associated
+# with the ignores button
+sourceFooter.ignore=Ignore source
+
+# LOCALIZATION NOTE (sourceFooter.unignore): Tooltip text associated
+# with the ignore button
+sourceFooter.unignore=Unignore source
+
+# LOCALIZATION NOTE (sourceFooter.ignoreList): Tooltip text associated
+# with the ignore source button when the selected source is on the ignore list
+sourceFooter.ignoreList=This source is on the ignore list. Please turn off the `Ignore Known Third-party Scripts` option to enable it.
+
+# LOCALIZATION NOTE (ignoreContextItem.ignore): Text associated
+# with the ignore context menu item
+ignoreContextItem.ignore=Ignore source
+ignoreContextItem.ignore.accesskey=I
+
+# LOCALIZATION NOTE (ignoreContextItem.unignore): Text associated
+# with the unignore context menu item
+ignoreContextItem.unignore=Unignore source
+ignoreContextItem.unignore.accesskey=U
+
+# LOCALIZATION NOTE (overridesContextItem.override): Text associated
+# with the add overrides context menu item
+overridesContextItem.override=Add script override
+overridesContextItem.override.accesskey=o
+
+# LOCALIZATION NOTE (overridesContextItem.removeOverride): Text associated
+# with the remove override context menu item
+overridesContextItem.removeOverride=Remove script override
+overridesContextItem.removeOverride.accesskey=o
+
+# LOCALIZATION NOTE (ignoreContextItem.ignoreLine): Text associated
+# with the ignore line context menu item
+ignoreContextItem.ignoreLine=Ignore line
+ignoreContextItem.ignoreLine.accesskey=l
+
+# LOCALIZATION NOTE (ignoreContextItem.unignoreLine): Text associated
+# with the unignore line context menu item
+ignoreContextItem.unignoreLine=Unignore line
+ignoreContextItem.unignoreLine.accesskey=n
+
+# LOCALIZATION NOTE (ignoreContextItem.ignoreLines): Text associated
+# with the ignore lines context menu item
+ignoreContextItem.ignoreLines=Ignore lines
+ignoreContextItem.ignoreLines.accesskey=i
+
+# LOCALIZATION NOTE (ignoreContextItem.unignoreLines): Text associated
+# with the unignore lines context menu item
+ignoreContextItem.unignoreLines=Unignore lines
+ignoreContextItem.unignoreLines.accesskey=u
+
+# LOCALIZATION NOTE (sourceFooter.mappedSource): Text associated
+# with a mapped source. %S is replaced by the source map origin.
+sourceFooter.mappedSource=(From %S)
+
+# LOCALIZATION NOTE (sourceFooter.mappedSourceTooltip): Tooltip text associated
+# with a mapped source. %S is replaced by the source map origin.
+sourceFooter.mappedSourceTooltip=(Source mapped from %S)
+
+# LOCALIZATION NOTE (sourceFooter.mappedSuffix): Text associated
+# with a mapped source. Displays next to URLs in tree and tabs.
+sourceFooter.mappedSuffix=(mapped)
+
+# LOCALIZATION NOTE (sourceFooter.currentCursorPosition): Text associated
+# with the current cursor line and column
+sourceFooter.currentCursorPosition=(%1$S, %2$S)
+
+# LOCALIZATION NOTE (sourceFooter.currentCursorPosition.tooltip): Text associated
+# with the current cursor line and column
+sourceFooter.currentCursorPosition.tooltip=(Line %1$S, column %2$S)
+
+# LOCALIZATION NOTE (sourceTabs.closeTabButtonTooltip): The tooltip that is displayed
+# for close tab button in source tabs.
+sourceTabs.closeTabButtonTooltip=Close tab
+
+# LOCALIZATION NOTE (scopes.header): Scopes right sidebar pane header.
+scopes.header=Scopes
+
+# LOCALIZATION NOTE (scopes.notAvailable): Scopes right sidebar pane message
+# for when the debugger is paused, but there isn't pause data.
+scopes.notAvailable=Scopes unavailable
+
+# LOCALIZATION NOTE (scopes.notPaused): Scopes right sidebar pane message
+# for when the debugger is not paused.
+scopes.notPaused=Not paused
+
+# LOCALIZATION NOTE (scopes.mapping.label): Scopes right sidebar pane
+# tooltip for checkbox and label
+scopes.mapping.label=Map original variable names
+
+# LOCALIZATION NOTE (eventlisteners.log.label): Event listeners tooltip for
+# checkbox and label
+eventlisteners.log.label=Log events to the console
+
+# LOCALIZATION NOTE (eventlisteners.log): Checkbox label for logging events
+eventlisteners.log=Log
+
+# LOCALIZATION NOTE (scopes.helpTooltip.label): Scopes right sidebar pane
+# icon tooltip for link to MDN
+scopes.helpTooltip.label=Learn more about map scopes
+
+# LOCALIZATION NOTE (scopes.map.label): Checkbox label to map scopes
+scopes.map.label=Map
+
+# LOCALIZATION NOTE (scopes.block): Refers to a block of code in
+# the scopes pane when the debugger is paused.
+scopes.block=Block
+
+# LOCALIZATION NOTE (sources.header): Sources left sidebar header
+sources.header=Sources
+
+# LOCALIZATION NOTE (outline.header): Outline left sidebar header
+outline.header=Outline
+
+# LOCALIZATION NOTE (search.header): Search left sidebar header
+search.header=Search
+
+# LOCALIZATION NOTE (outline.placeholder): Placeholder text for the filter input
+# element
+outline.placeholder=Filter functions
+
+# LOCALIZATION NOTE (outline.sortLabel): Label for the sort button
+outline.sortLabel=Sort by name
+
+# LOCALIZATION NOTE (outline.noFunctions): Outline text when there are no functions to display
+outline.noFunctions=No functions
+
+# LOCALIZATION NOTE (outline.noFileSelected): Outline text when there are no files selected
+outline.noFileSelected=No file selected
+
+# LOCALIZATION NOTE (sources.search): Sources left sidebar prompt
+# e.g. Cmd+P to search. On a mac, we use the command unicode character.
+# On windows, it's ctrl.
+sources.search=%S to search
+
+# LOCALIZATION NOTE (watchExpressions.header): Watch Expressions right sidebar
+# pane header.
+watchExpressions.header=Watch expressions
+
+# LOCALIZATION NOTE (watchExpressions.refreshButton): Watch Expressions header
+# button for refreshing the expressions.
+watchExpressions.refreshButton=Refresh
+
+# LOCALIZATION NOTE (welcome.search): The center pane welcome panel's
+# search prompt. e.g. cmd+p to search for files. On windows, it's ctrl, on
+# a mac we use the unicode character.
+welcome.search=%S to search for sources
+
+# LOCALIZATION NOTE (welcome.search2): The center pane welcome panel's
+# search prompt. e.g. cmd+p to search for files. On windows, it's ctrl, on
+# a mac we use the unicode character.
+welcome.search2=%S Go to file
+
+# LOCALIZATION NOTE (welcome.findInFiles): The center pane welcome panel's
+# search prompt. e.g. cmd+f to search for files. On windows, it's ctrl+shift+f, on
+# a mac we use the unicode character.
+welcome.findInFiles=%S to find in files
+
+# LOCALIZATION NOTE (welcome.findInFiles2): The center pane welcome panel's
+# search prompt. e.g. cmd+f to search for files. On windows, it's ctrl+shift+f, on
+# a mac we use the unicode character.
+welcome.findInFiles2=%S Find in files
+
+# LOCALIZATION NOTE (welcome.allShortcuts): The label to open the modal of
+# shortcuts, displayed in the welcome panel.
+welcome.allShortcuts=Show all shortcuts
+
+# LOCALIZATION NOTE (sourceSearch.search): The center pane Source Search
+# prompt for searching for files.
+sourceSearch.search=Search sources…
+
+# LOCALIZATION NOTE (sourceSearch.search2): The center pane Source Search
+# prompt for searching for files.
+sourceSearch.search2=Go to file…
+
+# LOCALIZATION NOTE (pauseOnExceptions): The pause on exceptions button tooltip
+# when the debugger will pause on all exceptions.
+pauseOnExceptions=Pause on all exceptions. Click to ignore exceptions
+
+# LOCALIZATION NOTE (loadingText): The text that is displayed in the script
+# editor when the loading process has started but there is no file to display
+# yet.
+loadingText=Loading\u2026
+
+# LOCALIZATION NOTE (wasmIsNotAvailable): The text that is displayed in the
+# script editor when the WebAssembly source is not available.
+wasmIsNotAvailable=Please refresh to debug this module
+
+# LOCALIZATION NOTE (errorLoadingText3): The text that is displayed in the debugger
+# viewer when there is an error loading a file
+errorLoadingText3=Error loading this URI: %S
+
+# LOCALIZATION NOTE(gotoLineModal.placeholder): The placeholder
+# text displayed when the user searches for specific lines in a file
+gotoLineModal.placeholder=Go to line…
+
+# LOCALIZATION NOTE(gotoLineModal.title): The message shown to users
+# to open the go to line modal
+gotoLineModal.title=Go to a line number in a file
+
+# LOCALIZATION NOTE(gotoLineModal.key3): The shortcut for opening the
+# go to line modal
+# Do not localize "Ctrl+G", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+gotoLineModal.key3=Ctrl+G
+
+# LOCALIZATION NOTE(symbolSearch.search.functionsPlaceholder): The placeholder
+# text displayed when the user searches for functions in a file
+symbolSearch.search.functionsPlaceholder=Search functions…
+symbolSearch.search.functionsPlaceholder.title=Search for a function in a file
+
+# LOCALIZATION NOTE(symbolSearch.search.variablesPlaceholder): The placeholder
+# text displayed when the user searches for variables in a file
+symbolSearch.search.variablesPlaceholder=Search variables…
+symbolSearch.search.variablesPlaceholder.title=Search for a variable in a file
+
+# LOCALIZATION NOTE(symbolSearch.search.key2): The Key Shortcut for
+# searching for a function or variable
+# Do not localize "CmdOrCtrl+Shift+O", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+symbolSearch.search.key2=CmdOrCtrl+Shift+O
+
+experimental=This is an experimental feature
+
+# LOCALIZATION NOTE (ctrl): The text that is used for documenting
+# keyboard shortcuts that use the control key
+ctrl=Ctrl
+
+# LOCALIZATION NOTE (anonymousFunction): this string is used to display
+# JavaScript functions that have no given name - they are said to be
+# anonymous.
+anonymousFunction=<anonymous>
+
+# LOCALIZATION NOTE (stacktrace.asyncStack): this string is used to
+# indicate that a given stack frame has an async parent.
+# %S is the "Async Cause" of the frame.
+stacktrace.asyncStack=(Async: %S)
+
+# LOCALIZATION NOTE (shortcuts.toggleBreakpoint): text describing
+# keyboard shortcut action for toggling breakpoint
+shortcuts.toggleBreakpoint=Toggle Breakpoint
+shortcuts.toggleBreakpoint.accesskey=B
+
+# LOCALIZATION NOTE (shortcuts.toggleCondPanel.breakpoint): text describing
+# keyboard shortcut action for toggling conditional panel for breakpoints
+shortcuts.toggleCondPanel.breakpoint=Edit Conditional Breakpoint
+
+# LOCALIZATION NOTE (shortcuts.toggleCondPanel.logPoint): text describing
+# keyboard shortcut action for toggling conditional panel for log points
+shortcuts.toggleCondPanel.logPoint=Edit Log Point
+
+# LOCALIZATION NOTE (shortcuts.pauseOrResume): text describing
+# keyboard shortcut action for pause of resume
+shortcuts.pauseOrResume=Pause/Resume
+
+# LOCALIZATION NOTE (shortcuts.stepOver): text describing
+# keyboard shortcut action for stepping over
+shortcuts.stepOver=Step Over
+
+# LOCALIZATION NOTE (shortcuts.stepIn): text describing
+# keyboard shortcut action for stepping in
+shortcuts.stepIn=Step In
+
+# LOCALIZATION NOTE (shortcuts.stepOut): text describing
+# keyboard shortcut action for stepping out
+shortcuts.stepOut=Step Out
+
+# LOCALIZATION NOTE (shortcuts.fileSearch): text describing
+# keyboard shortcut action for source file search
+shortcuts.fileSearch=Source File Search
+
+# LOCALIZATION NOTE (shortcuts.fileSearch2): text describing
+# keyboard shortcut action for source file search
+shortcuts.fileSearch2=Go to file
+
+# LOCALIZATION NOTE (shortcuts.gotoLine): text describing
+# keyboard shortcut for jumping to a specific line
+shortcuts.gotoLine=Go to line
+
+# LOCALIZATION NOTE (shortcuts.projectSearch): text describing
+# keyboard shortcut action for full project search
+shortcuts.projectSearch=Full Project Search
+
+# LOCALIZATION NOTE (shortcuts.projectSearch2): text describing
+# keyboard shortcut action for full project search
+shortcuts.projectSearch2=Find in files
+
+# LOCALIZATION NOTE (shortcuts.functionSearch): text describing
+# keyboard shortcut action for function search
+shortcuts.functionSearch=Function Search
+
+# LOCALIZATION NOTE (shortcuts.functionSearch2): text describing
+# keyboard shortcut action for function search
+shortcuts.functionSearch2=Find function
+
+# LOCALIZATION NOTE (shortcuts.buttonName): text describing
+# keyboard shortcut button text
+shortcuts.buttonName=Keyboard shortcuts
+
+# LOCALIZATION NOTE (variablesSeparatorLabel): The text that is displayed
+# in the variables list as a separator between the name and value.
+variablesSeparatorLabel=:
+variablesViewOptimizedOut=(optimized away)
+variablesViewUninitialized=(uninitialized)
+variablesViewMissingArgs=(unavailable)
+
+# LOCALIZATION NOTE (variablesDomNodeValueTooltip): The text that is displayed
+# in a tooltip on the "open in inspector" button in the the variables list for a
+# DOMNode item.
+variablesDomNodeValueTooltip=Click to select the node in the inspector
+
+# LOCALIZATION NOTE (variablesEditButtonTooltip): The text that is displayed
+# in the variables list on a getter or setter which can be edited.
+variablesEditButtonTooltip=Click to set value
+
+# LOCALIZATION NOTE (variablesViewErrorStacktrace): This is the text that is
+# shown before the stack trace in an error.
+variablesViewErrorStacktrace=Stack trace:
+
+# LOCALIZATION NOTE (variablesViewMoreObjects): the text that is displayed
+# when you have an object preview that does not show all of the elements. At the end of the list
+# you see "N more..." in the web console output.
+# This is a semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 number of remaining items in the object
+# example: 3 more…
+variablesViewMoreObjects=#1 more…;#1 more…
+
+# LOCALIZATION NOTE (variablesEditableNameTooltip): The text that is displayed
+# in the variables list on an item with an editable name.
+variablesEditableNameTooltip=Double click to edit
+
+# LOCALIZATION NOTE (variablesEditableValueTooltip): The text that is displayed
+# in the variables list on an item with an editable value.
+variablesEditableValueTooltip=Click to change value
+
+# LOCALIZATION NOTE (variablesCloseButtonTooltip): The text that is displayed
+# in the variables list on an item which can be removed.
+variablesCloseButtonTooltip=Click to remove
+
+# LOCALIZATION NOTE (configurable|...|Tooltip): The text that is displayed
+# in the variables list on certain variables or properties as tooltips.
+# Explanations of what these represent can be found at the following links:
+# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty
+# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible
+# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/isFrozen
+# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/isSealed
+# It's probably best to keep these in English.
+configurableTooltip=configurable
+enumerableTooltip=enumerable
+writableTooltip=writable
+frozenTooltip=frozen
+sealedTooltip=sealed
+extensibleTooltip=extensible
+overriddenTooltip=overridden
+WebIDLTooltip=WebIDL
+
+# LOCALIZATION NOTE (serviceWorkerInfo.parsed): State displayed for a service
+# worker that has been parsed.
+serviceWorkerInfo.parsed=parsed
+# LOCALIZATION NOTE (serviceWorkerInfo.installing): State displayed for a
+# service worker that is being installed.
+serviceWorkerInfo.installing=installing
+# LOCALIZATION NOTE (serviceWorkerInfo.installed): State displayed for a
+# service worker that has finished being installed.
+serviceWorkerInfo.installed=installed
+# LOCALIZATION NOTE (serviceWorkerInfo.activating): State displayed for a
+# service worker that is being activated.
+serviceWorkerInfo.activating=activating
+# LOCALIZATION NOTE (serviceWorkerInfo.activated): State displayed for a
+# service worker that has finished being activated.
+serviceWorkerInfo.activated=activated
+# LOCALIZATION NOTE (serviceWorkerInfo.redundant): State displayed for a
+# service worker that is redundant.
+serviceWorkerInfo.redundant=redundant
+# LOCALIZATION NOTE (serviceWorkerInfo.unknown): State displayed for a
+# service worker that is in an unknown state.
+serviceWorkerInfo.unknown=unknown
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/device.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/device.properties
new file mode 100644
index 0000000000..9c7e26b704
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/device.properties
@@ -0,0 +1,21 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside Device Emulation developer
+# tools. The correct localization of this file might be to keep it in English,
+# or another language commonly spoken among web developers. You want to make
+# that choice consistent across the developer tools. A good criteria is the
+# language in which you'd find the best documentation on web development on the
+# web.
+
+# LOCALIZATION NOTE:
+# These strings are category names in a list of devices that a user can choose
+# to simulate (e.g. "ZTE Open C", "VIA Vixen", "720p HD Television", etc).
+device.phones=Phones
+device.tablets=Tablets
+device.laptops=Laptops
+device.televisions=TVs
+device.consoles=Gaming consoles
+device.watches=Watches
+device.custom=Custom
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/dom.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/dom.properties
new file mode 100644
index 0000000000..f2d060a469
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/dom.properties
@@ -0,0 +1,27 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the DOM panel
+# which is available from the Web Developer sub-menu -> 'DOM'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE These strings are used inside the DOM panel
+# which is available from the Browser Tools sub-menu -> 'DOM'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (dom.filterDOMPanel): A placeholder text used for
+# DOM panel search box.
+dom.filterDOMPanel=Filter DOM Panel
+
+# LOCALIZATION NOTE (dom.refresh): A label for Refresh button in
+# DOM panel toolbar
+dom.refresh=Refresh
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/filterwidget.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/filterwidget.properties
new file mode 100644
index 0000000000..5141cde14c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/filterwidget.properties
@@ -0,0 +1,61 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used in the CSS Filter Editor Widget
+# which can be found in a tooltip that appears in the Rule View when clicking
+# on a filter swatch displayed next to CSS declarations like 'filter: blur(2px)'.
+
+# LOCALIZATION NOTE (emptyFilterList):
+# This string is displayed when filter's list is empty
+# (no filter specified / all removed)
+emptyFilterList=No filter specified
+
+# LOCALIZATION NOTE (emptyPresetList):
+# This string is displayed when preset's list is empty
+emptyPresetList=You don’t have any saved presets. \
+You can store filter presets by choosing a name and saving them. \
+Presets are quickly accessible and you can re-use them with ease.
+
+# LOCALIZATION NOTE (addUsingList):
+# This string is displayed under [emptyFilterList] when filter's
+# list is empty, guiding user to add a filter using the list below it
+addUsingList=Add a filter using the list below
+
+# LOCALIZATION NOTE (dropShadowPlaceholder):
+# This string is used as a placeholder for drop-shadow's input
+# in the filter list (shown when <input> is empty)
+dropShadowPlaceholder=x y radius colour
+
+# LOCALIZATION NOTE (dragHandleTooltipText):
+# This string is used as a tooltip text (shown on mouse hover) on the
+# drag handles of filters which are used to re-order filters
+dragHandleTooltipText=Drag up or down to re-order filter
+
+# LOCALIZATION NOTE (labelDragTooltipText):
+# This string is used as a tooltip text (shown on mouse hover) on the
+# filters' labels which can be dragged left/right to increase/decrease
+# the filter's value (like photoshop)
+labelDragTooltipText=Drag left or right to decrease or increase the value
+
+# LOCALIZATION NOTE (filterListSelectPlaceholder):
+# This string is used as a preview option in the list of possible filters
+# <select>
+filterListSelectPlaceholder=Select a Filter
+
+# LOCALIZATION NOTE (addNewFilterButton):
+# This string is displayed on a button used to add new filters
+addNewFilterButton=Add
+
+# LOCALIZATION NOTE (newPresetPlaceholder):
+# This string is used as a placeholder in the list of presets which is used to
+# save a new preset
+newPresetPlaceholder=Preset Name
+
+# LOCALIZATION NOTE (savePresetButton):
+# This string is displayed on a button used to save a new preset
+savePresetButton=Save
+
+# LOCALIZATION NOTE(presetsToggleButton):
+# This string is used in a button which toggles the presets list
+presetsToggleButton=Presets
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/font-inspector.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/font-inspector.properties
new file mode 100644
index 0000000000..eaf33d2c3f
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/font-inspector.properties
@@ -0,0 +1,69 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE This file contains the Font Inspector strings.
+# The Font Inspector is a panel accessible in the Inspector sidebar.
+
+# LOCALIZATION NOTE (fontinspector.system) This label indicates that the font is a local
+# system font.
+fontinspector.system=system
+
+# LOCALIZATION NOTE (fontinspector.noFontsUsedOnCurrentElement): This label is shown when
+# no fonts were used on the selected element.
+fontinspector.noFontsUsedOnCurrentElement=No fonts used on the current element.
+
+# LOCALIZATION NOTE (fontinspector.copyURL): This is the text that appears in a tooltip
+# displayed when the user hovers over the copy icon next to the font URL.
+# Clicking the copy icon copies the full font URL to the user's clipboard
+fontinspector.copyURL=Copy URL
+
+# LOCALIZATION NOTE (fontinspector.customInstanceName): Think of instances as presets
+# (groups of settings that apply in bulk to a thing). Instances have names. When the user
+# creates a new instance, it doesn't have a name. This is the text that appears as the
+# default name for a new instance. It shows up in a dropdown from which users can select
+# between predefined instances and this custom instance.
+fontinspector.customInstanceName=Custom
+
+# LOCALIZATION NOTE (fontinspector.fontInstanceLabel): This label is shown next to the UI
+# in the font editor which allows a user to select a font instance option from a
+# dropdown. An instance is like a preset. A "font instance" is the term used by the font
+# authors to mean a group of predefined font settings.
+fontinspector.fontInstanceLabel=Instance
+
+# LOCALIZATION NOTE (fontinspector.fontSizeLabel): This label is shown next to the UI
+# in the font editor which allows the user to change the font size.
+fontinspector.fontSizeLabel=Size
+
+# LOCALIZATION NOTE (fontinspector.fontWeightLabel): This label is shown next to the UI
+# in the font editor which allows the user to change the font weight.
+fontinspector.fontWeightLabel=Weight
+
+# LOCALIZATION NOTE (fontinspector.fontItalicLabel): This label is shown next to the UI
+# in the font editor which allows the user to change the style of the font to italic.
+fontinspector.fontItalicLabel=Italic
+
+# LOCALIZATION NOTE (fontinspector.showMore): Label for a collapsed list of fonts.
+fontinspector.showMore=Show more
+
+# LOCALIZATION NOTE (fontinspector.showLess): Label for an expanded list of fonts.
+fontinspector.showLess=Show less
+
+# LOCALIZATION NOTE (fontinspector.letterSpacingLabel): Label for the UI to change the
+# letter spacing in the font editor.
+fontinspector.letterSpacingLabel=Spacing
+
+# LOCALIZATION NOTE (fontinspector.lineHeightLabelCapitalized): Label for the UI to change the line height in the font editor.
+fontinspector.lineHeightLabelCapitalized=Line Height
+
+# LOCALIZATION NOTE (fontinspector.allFontsOnPageHeader): Header for the section listing
+# all the fonts on the current page.
+fontinspector.allFontsOnPageHeader=All Fonts on Page
+
+# LOCALIZATION NOTE (fontinspector.fontsUsedLabel): Label for the Font Editor section
+# which shows the fonts used on the selected element.
+fontinspector.fontsUsedLabel=Fonts Used
+
+# LOCALIZATION NOTE (fontinspector.previewTextPlaceholder): Placeholder for the input
+# where the user can type text to get a preview of it using a font.
+fontinspector.previewTextPlaceholder=Font Preview Text
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/har.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/har.properties
new file mode 100644
index 0000000000..b14ef1ad50
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/har.properties
@@ -0,0 +1,30 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Network Monitor
+# which is available from the Web Developer sub-menu -> 'Network Monitor'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE These strings are used inside the Network Monitor
+# which is available from the Browser Tools sub-menu -> 'Network Monitor'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (har.responseBodyNotIncluded): A label used within
+# HAR file explaining that HTTP response bodies are not includes
+# in exported data.
+har.responseBodyNotIncluded=Response bodies are not included.
+
+# LOCALIZATION NOTE (har.responseBodyNotIncluded): A label used within
+# HAR file explaining that HTTP request bodies are not includes
+# in exported data.
+har.requestBodyNotIncluded=Request bodies are not included.
+
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/inspector.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/inspector.properties
new file mode 100644
index 0000000000..f1f04a7b4b
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/inspector.properties
@@ -0,0 +1,584 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Inspector
+# which is available from the Web Developer sub-menu -> 'Inspect'.
+#
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE These strings are used inside the Inspector
+# which is available from the Browser Tools sub-menu -> 'Inspect'.
+#
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+inspector.panelLabel.markupView=Markup View
+
+# LOCALIZATION NOTE (markupView.more.showing)
+# When there are too many nodes to load at once, we will offer to
+# show all the nodes.
+markupView.more.showing=Some nodes were hidden.
+
+# LOCALIZATION NOTE (markupView.more.showAll2): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+markupView.more.showAll2=Show one more node;Show all #1 nodes
+
+# LOCALIZATION NOTE (markupView.whitespaceOnly.label)
+# Used in the badge that appears when whitespace-only text nodes are displayed in the
+# inspector.
+markupView.whitespaceOnly.label=whitespace
+
+# LOCALIZATION NOTE (markupView.unavailableChildren.label)
+# Used in the badge that appears when the Browser Toolbox is in "parent-process"
+# mode and the markup view cannot display the children from a content browser.
+markupView.unavailableChildren.label=unavailable
+
+# LOCALIZATION NOTE (markupView.unavailableChildren.title)
+# Title for the badge that appears when the Browser Toolbox is in "parent-process"
+# mode and the markup view cannot display the children from a content browser.
+markupView.unavailableChildren.title=Children of this element are unavailable with the current Browser Toolbox mode
+
+# LOCALIZATION NOTE (markupView.whitespaceOnly)
+# Used in a tooltip that appears when the user hovers over whitespace-only text nodes in
+# the inspector. %S in the content will be replaced by the whitespace characters used in
+# the text node.
+markupView.whitespaceOnly=Whitespace-only text node: %S
+
+# LOCALIZATION NOTE (markupView.display.flex.tooltiptext2)
+# Used in a tooltip that appears when the user hovers over the display type button in
+# the markup view.
+markupView.display.flex.tooltiptext2=This element behaves like a block element and lays out its content according to the flexbox model. Click to toggle the flexbox overlay for this element.
+
+# LOCALIZATION NOTE (markupView.display.inlineFlex.tooltiptext2)
+# Used in a tooltip that appears when the user hovers over the display type button in
+# the markup view.
+markupView.display.inlineFlex.tooltiptext2=This element behaves like an inline element and lays out its content according to the flexbox model. Click to toggle the flexbox overlay for this element.
+
+# LOCALIZATION NOTE (markupView.display.grid.tooltiptext2)
+# Used in a tooltip that appears when the user hovers over the display type button in
+# the markup view.
+markupView.display.grid.tooltiptext2=This element behaves like a block element and lays out its content according to the grid model. Click to toggle the grid overlay for this element.
+
+# LOCALIZATION NOTE (markupView.display.inlineGrid.tooltiptext2)
+# Used in a tooltip that appears when the user hovers over the display type button in
+# the markup view.
+markupView.display.inlineGrid.tooltiptext2=This element behaves like an inline element and lays out its content according to the grid model. Click to toggle the grid overlay for this element.
+
+# LOCALIZATION NOTE (markupView.display.subgrid.tooltiptext)
+# Used in a tooltip that appears when the user hovers over the display type button in
+# the markup view.
+markupView.display.subgrid.tooltiptiptext=This element lays out its content according to the grid model but defers the definition of its rows and/or columns to its parent grid container.
+
+# LOCALIZATION NOTE (markupView.display.flowRoot.tooltiptext)
+# Used in a tooltip that appears when the user hovers over the display type button in
+# the markup view.
+markupView.display.flowRoot.tooltiptext=This element generates a block element box that establishes a new block formatting context.
+
+# LOCALIZATION NOTE (markupView.display.contents.tooltiptext2)
+# Used in a tooltip that appears when the user hovers over the display type button in
+# the markup view.
+markupView.display.contents.tooltiptext2=This element doesn’t produce a specific box by itself, but renders its contents.
+
+# LOCALIZATION NOTE (markupView.event.tooltiptext)
+# Used in a tooltip that appears when the user hovers over 'event' badge in
+# the markup view.
+markupView.event.tooltiptext=Event listener
+
+# LOCALIZATION NOTE (markupView.custom.tooltiptext)
+# Used in a tooltip that appears when the user hovers over 'custom' badge in
+# the markup view. Only displayed on custom elements with a shadow root attached.
+markupView.custom.tooltiptext=Show custom element definition
+
+# LOCALIZATION NOTE (markupView.newAttribute.label)
+# This is used to speak the New Attribute button when editing a tag
+# and a screen reader user tabs to it. This string is not visible onscreen.
+markupView.newAttribute.label=New attribute
+
+# LOCALIZATION NOTE (markupView.revealLink.tooltip)
+# Used as a tooltip for an icon in the markup view when displaying elements inserted in
+# <slot> nodes in a custom component. When clicking on the icon, the corresponding
+# non-slotted container will be selected
+markupView.revealLink.tooltip=Reveal
+
+#LOCALIZATION NOTE: Used in the image preview tooltip when the image could not be loaded
+previewTooltip.image.brokenImage=Could not load the image
+
+# LOCALIZATION NOTE: Used in color picker tooltip when the eyedropper is disabled for
+# non-HTML documents
+eyedropper.disabled.title=Unavailable in non-HTML documents
+
+#LOCALIZATION NOTE: Used in the event tooltip to allow the debugger to be opened
+eventsTooltip.openInDebugger=Open in Debugger
+
+#LOCALIZATION NOTE: Used in the event tooltip when a script's filename cannot be detected
+eventsTooltip.unknownLocation=Unknown location
+
+#LOCALIZATION NOTE: Used in the mouseover tooltip when hovering "Unknown location."
+eventsTooltip.unknownLocationExplanation=The original location of this listener cannot be detected. Maybe the code is transpiled by a utility such as Babel.
+
+#LOCALIZATION NOTE: Used in the tooltip for Bubbling
+eventsTooltip.Bubbling=Bubbling
+
+#LOCALIZATION NOTE: Used in the tooltip for Capturing
+eventsTooltip.Capturing=Capturing
+
+# LOCALIZATION NOTE (allTabsMenuButton.tooltip): The tooltip that gets
+# displayed when hovering over the tabs overflow button.
+allTabsMenuButton.tooltip=Show all tabs
+
+# LOCALIZATION NOTE (inspector.showThreePaneMode): This is the tooltip for the button
+# that toggles on the 3 pane inspector mode.
+inspector.showThreePaneMode=Toggle on the 3-pane inspector
+
+# LOCALIZATION NOTE (inspector.hideThreePaneMode): This is the tooltip for the button
+# that toggles off the 3 pane inspector mode.
+inspector.hideThreePaneMode=Toggle off the 3-pane inspector
+
+# LOCALIZATION NOTE (inspector.searchResultsCount2): This is the label that
+# will show up next to the inspector search box. %1$S is the current result
+# index and %2$S is the total number of search results. For example: "3 of 9".
+# This won't be visible until the search box is updated in Bug 835896.
+inspector.searchResultsCount2=%1$S of %2$S
+
+# LOCALIZATION NOTE (inspector.searchResultsNone): This is the label that
+# will show up next to the inspector search box when no matches were found
+# for the given string.
+# This won't be visible until the search box is updated in Bug 835896.
+inspector.searchResultsNone=No matches
+
+# LOCALIZATION NOTE (inspector.menu.openUrlInNewTab.label): This is the label of
+# a menu item in the inspector contextual-menu that appears when the user right-
+# clicks on the attribute of a node in the inspector that is a URL, and that
+# allows to open that URL in a new tab.
+inspector.menu.openUrlInNewTab.label=Open Link in New Tab
+
+# LOCALIZATION NOTE (inspector.menu.copyUrlToClipboard.label): This is the label
+# of a menu item in the inspector contextual-menu that appears when the user
+# right-clicks on the attribute of a node in the inspector that is a URL, and
+# that allows to copy that URL in the clipboard.
+inspector.menu.copyUrlToClipboard.label=Copy Link Address
+
+# LOCALIZATION NOTE (inspector.menu.selectElement.label): This is the label of a
+# menu item in the inspector contextual-menu that appears when the user right-
+# clicks on the attribute of a node in the inspector that is the ID of another
+# element in the DOM (like with <label for="input-id">), and that allows to
+# select that element in the inspector.
+inspector.menu.selectElement.label=Select Element #%S
+
+# LOCALIZATION NOTE (inspectorEditAttribute.label): This is the label of a
+# sub-menu "Attribute" in the inspector contextual-menu that appears
+# when the user right-clicks on the node in the inspector, and that allows
+# to edit an attribute on this node.
+inspectorEditAttribute.label=Edit Attribute “%S”
+inspectorEditAttribute.accesskey=E
+
+# LOCALIZATION NOTE (inspectorRemoveAttribute.label): This is the label of a
+# sub-menu "Attribute" in the inspector contextual-menu that appears
+# when the user right-clicks on the attribute of a node in the inspector,
+# and that allows to remove this attribute.
+inspectorRemoveAttribute.label=Remove Attribute “%S”
+inspectorRemoveAttribute.accesskey=R
+
+# LOCALIZATION NOTE (inspectorCopyAttributeValue.label): This is the label of a
+# sub-menu "Attribute" in the inspector contextual-menu that appears
+# when the user right-clicks on the attribute of a node in the inspector,
+# and that allows to copy the attribute value to clipboard.
+inspectorCopyAttributeValue.label=Copy Attribute Value “%S”
+inspectorCopyAttributeValue.accesskey=V
+
+# LOCALIZATION NOTE (inspector.nodePreview.highlightNodeLabel):
+# This string is displayed in a tooltip that is shown when hovering over a the
+# inspector icon displayed next to a DOM node preview (e.g. next to something
+# like "div#foo.bar").
+# DOM node previews can be displayed in places like the animation-inspector, the
+# console or the object inspector.
+# The tooltip invites the user to click on the icon in order to highlight the
+# node in the page.
+inspector.nodePreview.highlightNodeLabel=Click to highlight this node in the page
+
+# LOCALIZATION NOTE (inspectorHTMLEdit.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users edit the
+# (outer) HTML of the current node
+inspectorXMLEdit.label=Edit As XML
+inspectorHTMLEdit.label=Edit As HTML
+inspectorSVGEdit.label=Edit As SVG
+inspectorMathMLEdit.label=Edit As MathML
+inspectorHTMLEdit.accesskey=E
+
+# LOCALIZATION NOTE (inspectorCopyInnerHTML.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users copy the
+# inner HTML of the current node
+inspectorCopyInnerHTML.label=Inner HTML
+inspectorCopyInnerHTML.accesskey=I
+
+# LOCALIZATION NOTE (inspectorCopyOuterHTML.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users copy the
+# outer HTML of the current node
+inspectorCopyOuterHTML.label=Outer HTML
+inspectorCopyOuterHTML.accesskey=O
+
+# LOCALIZATION NOTE (inspectorCopyCSSSelector.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users copy
+# the CSS Selector of the current node
+inspectorCopyCSSSelector.label=CSS Selector
+inspectorCopyCSSSelector.accesskey=S
+
+# LOCALIZATION NOTE (inspectorCopyCSSPath.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users copy
+# the full CSS path of the current node
+inspectorCopyCSSPath.label=CSS Path
+inspectorCopyCSSPath.accesskey=P
+
+# LOCALIZATION NOTE (inspectorCopyXPath.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users copy
+# the XPath of the current node
+inspectorCopyXPath.label=XPath
+inspectorCopyXPath.accesskey=X
+
+# LOCALIZATION NOTE (inspectorPasteOuterHTML.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users paste outer
+# HTML in the current node
+inspectorPasteOuterHTML.label=Outer HTML
+inspectorPasteOuterHTML.accesskey=O
+
+# LOCALIZATION NOTE (inspectorPasteInnerHTML.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users paste inner
+# HTML in the current node
+inspectorPasteInnerHTML.label=Inner HTML
+inspectorPasteInnerHTML.accesskey=I
+
+# LOCALIZATION NOTE (inspectorHTMLPasteBefore.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users paste
+# the HTML before the current node
+inspectorHTMLPasteBefore.label=Before
+inspectorHTMLPasteBefore.accesskey=B
+
+# LOCALIZATION NOTE (inspectorHTMLPasteAfter.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users paste
+# the HTML after the current node
+inspectorHTMLPasteAfter.label=After
+inspectorHTMLPasteAfter.accesskey=A
+
+# LOCALIZATION NOTE (inspectorHTMLPasteFirstChild.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users paste
+# the HTML as the first child the current node
+inspectorHTMLPasteFirstChild.label=As First Child
+inspectorHTMLPasteFirstChild.accesskey=F
+
+# LOCALIZATION NOTE (inspectorHTMLPasteLastChild.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users paste
+# the HTML as the last child the current node
+inspectorHTMLPasteLastChild.label=As Last Child
+inspectorHTMLPasteLastChild.accesskey=L
+
+# LOCALIZATION NOTE (inspectorScrollNodeIntoView.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users scroll
+# the current node into view
+inspectorScrollNodeIntoView.label=Scroll Into View
+inspectorScrollNodeIntoView.accesskey=S
+
+# LOCALIZATION NOTE (inspectorHTMLDelete.label): This is the label shown in
+# the inspector contextual-menu for the item that lets users delete the
+# current node
+inspectorHTMLDelete.label=Delete Node
+inspectorHTMLDelete.accesskey=D
+
+# LOCALIZATION NOTE (inspectorAttributesSubmenu.label): This is the label
+# shown in the inspector contextual-menu for the sub-menu of the other
+# attribute items, which allow to:
+# - add new attribute
+# - edit attribute
+# - remove attribute
+inspectorAttributesSubmenu.label=Attributes
+inspectorAttributesSubmenu.accesskey=A
+
+# LOCALIZATION NOTE (inspectorAddAttribute.label): This is the label shown in
+# the inspector contextual-menu for the item that lets users add attribute
+# to current node
+inspectorAddAttribute.label=Add Attribute
+inspectorAddAttribute.accesskey=A
+
+# LOCALIZATION NOTE (inspectorPseudoClassSubmenu.label): This is the label
+# shown in the inspector contextual-menu for the sub-menu of the pseudo-classes.
+inspectorPseudoClassSubmenu.label=Change Pseudo-class
+
+# LOCALIZATION NOTE (inspectorBreakpointSubmenu.label): This is the label
+# shown in the inspector contextual-menu for the sub-menu of the DOM breakpoints.
+inspectorBreakpointSubmenu.label=Break on…
+
+# LOCALIZATION NOTE (inspectorSubtreeModification.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users add a DOM breakpoint
+# for subtree modification.
+inspectorSubtreeModification.label=Subtree Modification
+
+# LOCALIZATION NOTE (inspectorAttributeModification.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users add a DOM breakpoint
+# for attribute modification.
+inspectorAttributeModification.label=Attribute Modification
+
+# LOCALIZATION NOTE (inspectorNodeRemoval.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users add a DOM breakpoint
+# for node removal.
+inspectorNodeRemoval.label=Node Removal
+
+# LOCALIZATION NOTE (inspectorSearchHTML.label3): This is the label that is
+# shown as the placeholder for the markup view search in the inspector.
+inspectorSearchHTML.label3=Search HTML
+
+# LOCALIZATION NOTE (inspectorImageDataUri.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users copy
+# the URL embedding the image data encoded in Base 64 (what we name
+# here Image Data URL). For more information:
+# https://developer.mozilla.org/en-US/docs/Web/HTTP/data_URIs
+inspectorImageDataUri.label=Image Data-URL
+
+# LOCALIZATION NOTE (inspectorShowDOMProperties.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users see
+# the DOM properties of the current node. When triggered, this item
+# opens the split Console and displays the properties in its side panel.
+inspectorShowDOMProperties.label=Show DOM Properties
+
+# LOCALIZATION NOTE (inspectorShowAccessibilityProperties.label): This is the
+# label shown in the inspector contextual-menu for the item that lets users see
+# the accessibility tree and accessibility properties of the current node.
+# When triggered, this item opens accessibility panel and selects an accessible
+# object for the given node.
+inspectorShowAccessibilityProperties.label=Show Accessibility Properties
+
+# LOCALIZATION NOTE (inspectorUseInConsole.label): This is the label
+# shown in the inspector contextual-menu for the item that outputs a
+# variable for the current node to the console. When triggered,
+# this item opens the split Console.
+inspectorUseInConsole.label=Use in Console
+
+# LOCALIZATION NOTE (inspectorExpandNode.label): This is the label
+# shown in the inspector contextual-menu for recursively expanding
+# mark-up elements
+inspectorExpandNode.label=Expand All
+
+# LOCALIZATION NOTE (inspectorCollapseAll.label): This is the label
+# shown in the inspector contextual-menu for recursively collapsing
+# mark-up elements
+inspectorCollapseAll.label=Collapse All
+
+# LOCALIZATION NOTE (inspectorScreenshotNode.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users take
+# a screenshot of the currently selected node.
+inspectorScreenshotNode.label=Screenshot Node
+
+# LOCALIZATION NOTE (inspectorDuplicateNode.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users
+# duplicate the currently selected node.
+inspectorDuplicateNode.label=Duplicate Node
+
+# LOCALIZATION NOTE (inspectorAddNode.label): This is the label shown in
+# the inspector toolbar for the button that lets users add elements to the
+# DOM (as children of the currently selected element).
+inspectorAddNode.label=Create New Node
+inspectorAddNode.accesskey=C
+
+# LOCALIZATION NOTE (inspectorCopyHTMLSubmenu.label): This is the label
+# shown in the inspector contextual-menu for the sub-menu of the other
+# copy items, which allow to:
+# - Copy Inner HTML
+# - Copy Outer HTML
+# - Copy Unique selector
+# - Copy Image data URI
+inspectorCopyHTMLSubmenu.label=Copy
+
+# LOCALIZATION NOTE (inspectorPasteHTMLSubmenu.label): This is the label
+# shown in the inspector contextual-menu for the sub-menu of the other
+# paste items, which allow to:
+# - Paste Inner HTML
+# - Paste Outer HTML
+# - Before
+# - After
+# - As First Child
+# - As Last Child
+inspectorPasteHTMLSubmenu.label=Paste
+
+# LOCALIZATION NOTE (inspectorCustomElementDefinition.label): This is the label
+# shown in the inspector contextual-menu for custom elements to which a shadow root has
+# been attached. Clicking on the menu item will open the Debugger on the custom element
+# definition location.
+inspectorCustomElementDefinition.label=Show Custom Element
+
+# LOCALIZATION NOTE (inspector.searchHTML.key):
+# Key shortcut used to focus the DOM element search box on top-right corner of
+# the markup view
+inspector.searchHTML.key=CmdOrCtrl+F
+
+# LOCALIZATION NOTE (markupView.hide.key):
+# Key shortcut used to hide the selected node in the markup view.
+markupView.hide.key=h
+
+# LOCALIZATION NOTE (markupView.edit.key):
+# Key shortcut used to hide the selected node in the markup view.
+markupView.edit.key=F2
+
+# LOCALIZATION NOTE (markupView.scrollInto.key):
+# Key shortcut used to scroll the webpage in order to ensure the selected node
+# is visible
+markupView.scrollInto.key=s
+
+# LOCALIZATION NOTE (inspector.sidebar.fontInspectorTitle):
+# This is the title shown in a tab in the side panel of the Inspector panel
+# that corresponds to the tool displaying the list of fonts used in the page.
+inspector.sidebar.fontInspectorTitle=Fonts
+
+# LOCALIZATION NOTE (inspector.sidebar.changesViewTitle):
+# Title of the Changes sidebar tab shown in the Inspector panel. The Changes panel shows
+# style changes made using DevTools.
+inspector.sidebar.changesViewTitle=Changes
+
+# LOCALIZATION NOTE (inspector.sidebar.ruleViewTitle):
+# This is the title shown in a tab in the side panel of the Inspector panel
+# that corresponds to the tool displaying the list of CSS rules used
+# in the page.
+inspector.sidebar.ruleViewTitle=Rules
+
+# LOCALIZATION NOTE (inspector.sidebar.computedViewTitle):
+# This is the title shown in a tab in the side panel of the Inspector panel
+# that corresponds to the tool displaying the list of computed CSS values
+# used in the page.
+inspector.sidebar.computedViewTitle=Computed
+
+# LOCALIZATION NOTE (inspector.sidebar.layoutViewTitle2):
+# This is the title shown in a tab in the side panel of the Inspector panel
+# that corresponds to the tool displaying layout information defined in the page.
+inspector.sidebar.layoutViewTitle2=Layout
+
+# LOCALIZATION NOTE (inspector.sidebar.animationInspectorTitle):
+# This is the title shown in a tab in the side panel of the Inspector panel
+# that corresponds to the tool displaying animations defined in the page.
+inspector.sidebar.animationInspectorTitle=Animations
+
+# LOCALIZATION NOTE (inspector.sidebar.compatibilityViewTitle):
+# This is the title shown in a tab in the side panel of the Inspector panel
+# that corresponds to the tool displaying web compatibility information about the page.
+inspector.sidebar.compatibilityViewTitle=Compatibility
+
+# LOCALIZATION NOTE (inspector.eyedropper.label): A string displayed as the tooltip of
+# a button in the inspector which toggles the Eyedropper tool
+inspector.eyedropper.label=Grab a colour from the page
+
+# LOCALIZATION NOTE (inspector.breadcrumbs.label): A string visible only to a screen reader and
+# is used to label (using aria-label attribute) a container for inspector breadcrumbs
+inspector.breadcrumbs.label=Breadcrumbs
+
+# LOCALIZATION NOTE (inspector.browserStyles.label): This is the label for the checkbox
+# that specifies whether the styles that are not from the user's stylesheet should be
+# displayed or not.
+inspector.browserStyles.label=Browser Styles
+
+# LOCALIZATION NOTE (inspector.filterStyles.placeholder): This is the placeholder that
+# goes in the search box when no search term has been entered.
+inspector.filterStyles.placeholder=Filter Styles
+
+# LOCALIZATION NOTE (inspector.addRule.tooltip): This is the tooltip shown when
+# hovering the `Add new rule` button in the rules view toolbar. This should
+# match ruleView.contextmenu.addNewRule in styleinspector.properties
+inspector.addRule.tooltip=Add new rule
+
+# LOCALIZATION NOTE (inspector.togglePseudo.tooltip): This is the tooltip
+# shown when hovering over the `Toggle Pseudo Class Panel` button in the
+# rule view toolbar.
+inspector.togglePseudo.tooltip=Toggle pseudo-classes
+
+# LOCALIZATION NOTE (inspector.classPanel.toggleClass.tooltip): This is the tooltip
+# shown when hovering over the `Toggle Class Panel` button in the
+# rule view toolbar.
+inspector.classPanel.toggleClass.tooltip=Toggle classes
+
+# LOCALIZATION NOTE (inspector.classPanel.newClass.placeholder): This is the placeholder
+# shown inside the text field used to add a new class in the rule-view.
+inspector.classPanel.newClass.placeholder=Add new class
+
+# LOCALIZATION NOTE (inspector.classPanel.noClasses): This is the text displayed in the
+# class panel when the current element has no classes applied.
+inspector.classPanel.noClasses=No classes on this element
+
+# LOCALIZATION NOTE (inspector.noProperties): In the case where there are no CSS
+# properties to display e.g. due to search criteria this message is
+# displayed.
+inspector.noProperties=No CSS properties found.
+
+# LOCALIZATION NOTE (inspector.printSimulation.tooltip):
+# This is the tooltip of the print simulation button in the Rule View toolbar
+# that toggles print simulation.
+inspector.printSimulation.tooltip = Toggle print media simulation for the page
+
+# LOCALIZATION NOTE (inspector.colorSchemeSimulationLight.tooltip):
+# This is the tooltip of the light color scheme simulation button in the Rule View
+# toolbar that toggles light color scheme simulation.
+inspector.colorSchemeSimulationLight.tooltip=Toggle light colour scheme simulation for the page
+
+# LOCALIZATION NOTE (inspector.colorSchemeSimulationDark.tooltip):
+# This is the tooltip of the dark color scheme simulation button in the Rule View
+# toolbar that toggles dark color scheme simulation.
+inspector.colorSchemeSimulationDark.tooltip=Toggle dark colour scheme simulation for the page
+
+# LOCALIZATION NOTE (markupView.scrollableBadge.label): This is the text displayed inside a
+# badge, in the inspector, next to nodes that are scrollable in the page.
+markupView.scrollableBadge.label=scroll
+
+# LOCALIZATION NOTE (markupView.scrollableBadge.tooltip): This is the tooltip that is displayed
+# when hovering over badges next to scrollable elements in the inspector.
+markupView.scrollableBadge.tooltip=This element has scrollable overflow.
+
+# LOCALIZATION NOTE (markupView.scrollableBadge.interactive.tooltip): This is the tooltip that is displayed
+# when hovering over interactive badges next to scrollable elements in the inspector.
+markupView.scrollableBadge.interactive.tooltip=This element has scrollable overflow. Click to reveal elements that are causing the overflow.
+
+# LOCALIZATION NOTE (markupView.overflowBadge.label): This is the text displayed inside a
+# badge, in the inspector, next to nodes that are causing overflow in other elements.
+markupView.overflowBadge.label=overflow
+
+# LOCALIZATION NOTE (markupView.overflowBadge.tooltip): This is the tooltip that is displayed
+# when hovering over badges next to overflow causing elements in the inspector.
+markupView.overflowBadge.tooltip=This element is causing an element to overflow.
+
+# LOCALIZATION NOTE (rulePreviewTooltip.noAssociatedRule): This is the text displayed inside
+# the RulePreviewTooltip when a rule cannot be found for a CSS property declaration.
+rulePreviewTooltip.noAssociatedRule=No associated rule
+
+# LOCALIZATION NOTE (colorPickerTooltip.contrastAgainstBgTitle): A title text for the
+# contrast ratio value description that labels the background the color contrast ratio is calculated
+# against, used together with the actual background color. %S in the content will be replaced by a
+# span (containing bg color swatch) and textNode (containing bg color hex string) at run time
+colorPickerTooltip.contrastAgainstBgTitle=Calculated against background: %S
+
+# LOCALIZATION NOTE (colorPickerTooltip.spectrumDraggerTitle): A title text for the
+# spectrum dragger panel in the color picker tooltip.
+colorPickerTooltip.spectrumDraggerTitle=Spectrum
+
+# LOCALIZATION NOTE (colorPickerTooltip.eyedropperTitle): A title text for the
+# eyedropper in the color picker tooltip.
+colorPickerTooltip.eyedropperTitle=Pick colour on page
+
+# LOCALIZATION NOTE (colorPickerTooltip.colorNameTitle): A title text for the
+# closest color name shown in the color picker tooltip, used together with the actual color.
+# %S in the content will be replaced by the color name the current color is closest to.
+colorPickerTooltip.colorNameTitle=Closest to: %S
+
+# LOCALIZATION NOTE (colorPickerTooltip.hueSliderTitle): A title text for the
+# hue slider in the color picker tooltip.
+colorPickerTooltip.hueSliderTitle=Hue
+
+# LOCALIZATION NOTE (colorPickerTooltip.alphaSliderTitle): A title text for the
+# alpha slider in the color picker tooltip.
+colorPickerTooltip.alphaSliderTitle=Opacity
+
+# LOCALIZATION NOTE (colorPickerTooltip.contrast.large.title): A title text for the color
+# contrast ratio description in the color picker tooltip, used together with the specification
+# that the color contrast criteria used is for large text. %S in the content will be replaced by a
+# large text indicator span at run time.
+colorPickerTooltip.contrast.large.title=Contrast %S:
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/jsonview.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/jsonview.properties
new file mode 100644
index 0000000000..fe243b08c9
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/jsonview.properties
@@ -0,0 +1,47 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used in the JSON View tool
+# that is used to inspect application/json document types loaded
+# in the browser.
+
+# LOCALIZATION NOTE The correct localization of this file might be to keep it
+# in English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best documentation
+# on web development on the web.
+
+# LOCALIZATION NOTE (jsonViewer.tab.JSON, jsonViewer.tab.RawData,
+# jsonViewer.tab.Headers): Label for a panel tab.
+jsonViewer.tab.JSON=JSON
+jsonViewer.tab.RawData=Raw Data
+jsonViewer.tab.Headers=Headers
+
+# LOCALIZATION NOTE (jsonViewer.responseHeaders, jsonViewer.requestHeaders):
+# Label for header groups within the 'Headers' panel.
+jsonViewer.responseHeaders=Response Headers
+jsonViewer.requestHeaders=Request Headers
+
+# LOCALIZATION NOTE (jsonViewer.Save): Label for save command
+jsonViewer.Save=Save
+
+# LOCALIZATION NOTE (jsonViewer.Copy): Label for clipboard copy command
+jsonViewer.Copy=Copy
+
+# LOCALIZATION NOTE (jsonViewer.ExpandAll): Label for expanding all nodes
+jsonViewer.ExpandAll=Expand All
+
+jsonViewer.ExpandAllSlow=Expand All (slow)
+
+# LOCALIZATION NOTE (jsonViewer.CollapseAll): Label for collapsing all nodes
+jsonViewer.CollapseAll=Collapse All
+
+# LOCALIZATION NOTE (jsonViewer.PrettyPrint): Label for JSON
+# pretty print action button.
+jsonViewer.PrettyPrint=Pretty Print
+
+# LOCALIZATION NOTE (jsonViewer.filterJSON): Label used in search box
+# at the top right cornder of the JSON Viewer.
+jsonViewer.filterJSON=Filter JSON
+
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/layout.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/layout.properties
new file mode 100644
index 0000000000..4ca6b6b0f9
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/layout.properties
@@ -0,0 +1,129 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE This file contains the Layout Inspector strings.
+# The Layout Inspector is a panel accessible in the Inspector sidebar.
+
+# LOCALIZATION NOTE (flexbox.header): The accordion header for the Flexbox panel when
+# no flex container or item is selected.
+flexbox.header=Flexbox
+
+# LOCALIZATION NOTE (flexbox.backButtonLabel): The spoken label for the button
+# that returns from the display of a flex item to the flex item list.
+# This label is spoken by screen readers, not displayed on screen.
+flexbox.backButtonLabel=Back to Flex Container
+
+# LOCALIZATION (flexbox.flexContainer): The accordion header for the Flexbox panel
+# when a flex container is selected.
+flexbox.flexContainer=Flex Container
+
+# LOCALIZATION NOTE) (flexbox.flexItemOf): The accordion header for the Flexbox panel
+# when a flex item is selected. %s represents the flex container selector.
+flexbox.flexItemOf=Flex Item of %S
+
+# LOCALIZATION NOTE (flexbox.noFlexboxeOnThisPage): In the case where there are no CSS
+# flex containers to display.
+flexbox.noFlexboxeOnThisPage=Select a Flex container or item to continue.
+
+# LOCALIZATION NOTE (flexbox.flexItems): Header label displayed for the flex item list.
+flexbox.flexItems=Flex Items
+
+# LOCALIZATION NOTE (flexbox.noFlexItems): Label shown in the flex items list section if
+# there are no flex items for the flex container to display.
+flexbox.noFlexItems=No flex items
+
+# LOCALIZATION NOTE (flexbox.itemSizing.baseSizeSectionHeader): Header label displayed
+# at the start of the flex item sizing Base Size section.
+flexbox.itemSizing.baseSizeSectionHeader=Base Size
+
+# LOCALIZATION NOTE (flexbox.itemSizing.flexibilitySectionHeader): Header label displayed
+# at the start of the flex item sizing Flexibility section.
+flexbox.itemSizing.flexibilitySectionHeader=Flexibility
+
+# LOCALIZATION NOTE (flexbox.itemSizing.minSizeSectionHeader): Header label displayed
+# at the start of the flex item sizing Minimum Size section.
+flexbox.itemSizing.minSizeSectionHeader=Minimum Size
+
+# LOCALIZATION NOTE (flexbox.itemSizing.maxSizeSectionHeader): Header label displayed at
+# the start of the flex item sizing Maximum Size section.
+flexbox.itemSizing.maxSizeSectionHeader=Maximum Size
+
+# LOCALIZATION NOTE (flexbox.itemSizing.finalSizeSectionHeader): Header label displayed at
+# the start of the flex item sizing Final Size section.
+flexbox.itemSizing.finalSizeSectionHeader=Final Size
+
+# LOCALIZATION NOTE (flexbox.itemSizing.itemContentSize): Label shown in the flex item
+# sizing panel. It tells users that a given item’s base size was calculated from its
+# content size when unconstrained.
+flexbox.itemSizing.itemContentSize=Content Size
+
+# LOCALIZATION NOTE (flexbox.itemSizing.clampedToMax): Label shown in the flexbox item
+# sizing panel. It tells users that a given item attempted to grow but ended up being
+# clamped to a smaller max size.
+# (Note that clamp is a common word in flexbox terminology. It refers to constraining an
+# item's size to some defined min/max-width/height set on the element, even though there
+# might have been room for it to grow, or reason for it to shrink more).
+flexbox.itemSizing.clampedToMax=The item was clamped to its maximum size.
+
+# LOCALIZATION NOTE (flexbox.itemSizing.clampedToMin): Label shown in the flexbox item
+# sizing panel. It tells users that a given item attempted to grow but ended up being
+# clamped to a larger min size.
+# (Note that clamp is a common word in flexbox terminology. It refers to constraining an
+# item's size to some defined min/max-width/height set on the element, even though there
+# might have been room for it to grow, or reason for it to shrink more).
+flexbox.itemSizing.clampedToMin=The item was clamped to its minimum size.
+
+# LOCALIZATION NOTE (flexbox.itemSizing.setToGrow): Label shown in the flex item sizing
+# panel. It tells users that a given item was set to grow.
+flexbox.itemSizing.setToGrow=Item was set to grow.
+
+# LOCALIZATION NOTE (flexbox.itemSizing.setToShrink): Label shown in the flexbox item
+# sizing panel. It tells users that a given item was set to shrink.
+flexbox.itemSizing.setToShrink=Item was set to shrink.
+
+# LOCALIZATION NOTE (flexbox.itemSizing.notSetToGrow): Label shown in the
+# flexbox item sizing panel. It tells users that a given item was not set to grow, even
+# though there might have been space on the flex line for it to grow.
+flexbox.itemSizing.notSetToGrow=Item was not set to grow.
+
+# LOCALIZATION NOTE (flexbox.itemSizing.notSetToShrink): Label shown in the
+# flexbox item sizing panel. It tells users that a given item did not shrink even though
+# there might not have been enough space on the flex line for all items to fit.
+flexbox.itemSizing.notSetToShrink=Item was not set to shrink.
+
+# LOCALIZATION NOTE (flexbox.togglesFlexboxHighlighter2): The tooltip text for the Flexbox
+# toggle button.
+flexbox.togglesFlexboxHighlighter2=Toggle Flexbox Highlighter
+
+# LOCALIZATION NOTE (layout.cannotShowGridOutline, layout.cannotSHowGridOutline.title):
+# In the case where the grid outline cannot be effectively displayed.
+layout.cannotShowGridOutline=Cannot show outline for this grid
+layout.cannotShowGridOutline.title=The selected grid’s outline cannot effectively fit inside the layout panel for it to be usable.
+
+# LOCALIZATION NOTE (layout.displayAreaNames): Label of the display area names setting
+# option in the CSS Grid panel.
+layout.displayAreaNames=Display area names
+
+# LOCALIZATION NOTE (layout.displayLineNumbers): Label of the display line numbers
+# setting option in the CSS Grid panel.
+layout.displayLineNumbers=Display line numbers
+
+# LOCALIZATION NOTE (layout.extendLinesInfinitely): Label of the extend lines
+# infinitely setting option in the CSS Grid panel.
+layout.extendLinesInfinitely=Extend lines infinitely
+
+# LOCALIZATION NOTE (layout.header): The accordion header for the CSS Grid panel.
+layout.header=Grid
+
+# LOCALIZATION NOTE (layout.gridDisplaySettings): The header for the grid display
+# settings container in the CSS Grid panel.
+layout.gridDisplaySettings=Grid Display Settings
+
+# LOCALIZATION NOTE (layout.noGridsOnThisPage): In the case where there are no CSS grid
+# containers to display.
+layout.noGridsOnThisPage=CSS Grid is not in use on this page
+
+# LOCALIZATION NOTE (layout.overlayGrid): Alternate header for the list of grid container
+# elements if only one item can be selected.
+layout.overlayGrid=Overlay Grid
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/memory.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/memory.properties
new file mode 100644
index 0000000000..e6a71fadbd
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/memory.properties
@@ -0,0 +1,434 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Memory Tools
+# which is available from the Web Developer sub-menu -> 'Memory'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE These strings are used inside the Memory Tools
+# which is available from the Browser Tools sub-menu -> 'Memory'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (snapshot.io.save): The label for the link that saves a
+# snapshot to disk.
+snapshot.io.save=Save
+
+# LOCALIZATION NOTE (snapshot.io.delete): The label for the link that deletes
+# a snapshot
+snapshot.io.delete=Delete
+
+# LOCALIZATION NOTE (snapshot.io.save.window): The title for the window
+# displayed when saving a snapshot to disk.
+snapshot.io.save.window=Save Snapshot
+
+# LOCALIZATION NOTE (snapshot.io.import.window): The title for the window
+# displayed when importing a snapshot form disk.
+snapshot.io.import.window=Import Snapshot
+
+# LOCALIZATION NOTE (snapshot.io.filter): The title for the filter used to
+# filter file types (*.fxsnapshot)
+snapshot.io.filter=Firefox Snapshots
+
+# LOCALIZATION NOTE (aggregate.mb): The label annotating the number of bytes (in
+# megabytes) in a snapshot. %S represents the value, rounded to 2 decimal
+# points.
+aggregate.mb=%S MB
+
+# LOCALIZATION NOTE (snapshot-title.loading): The title for a snapshot before
+# it has a creation time to display.
+snapshot-title.loading=Processing…
+
+# LOCALIZATION NOTE (checkbox.recordAllocationStacks): The label describing the
+# boolean checkbox whether or not to record call stacks.
+checkbox.recordAllocationStacks=Record call stacks
+
+# LOCALIZATION NOTE (checkbox.recordAllocationStacks.tooltip): The tooltip for
+# the label describing the boolean checkbox whether or not to record call
+# stacks.
+checkbox.recordAllocationStacks.tooltip=Toggle the recording of the call stack of when an object was allocated. Subsequent snapshots will be able to group and label objects by call stacks, but only with those objects created after toggling this option. Recording call stacks has a performance overhead.
+
+# LOCALIZATION NOTE (toolbar.displayBy): The label describing the select menu
+# options of the display options.
+toolbar.displayBy=Group by:
+
+# LOCALIZATION NOTE (toolbar.displayBy.tooltip): The tooltip for the label
+# describing the select menu options of the display options.
+toolbar.displayBy.tooltip=Change how objects are grouped
+
+# LOCALIZATION NOTE (toolbar.pop-view): The text in the button to go back to the
+# previous view.
+toolbar.pop-view=←
+
+# LOCALIZATION NOTE (toolbar.pop-view.label): The text for the label for the
+# button to go back to the previous view.
+toolbar.pop-view.label=Go back to aggregates
+
+# LOCALIZATION NOTE (toolbar.viewing-individuals): The text letting the user
+# know that they are viewing individual nodes from a census group.
+toolbar.viewing-individuals=⁂ Viewing individuals in group
+
+# LOCALIZATION NOTE (censusDisplays.coarseType.tooltip): The tooltip for the
+# "coarse type" display option.
+censusDisplays.coarseType.tooltip=Group items by their type
+
+# LOCALIZATION NOTE (censusDisplays.allocationStack.tooltip): The tooltip for
+# the "call stack" display option.
+censusDisplays.allocationStack.tooltip=Group items by the JavaScript stack recorded when the object was allocated
+
+# LOCALIZATION NOTE (censusDisplays.invertedAllocationStack.tooltip): The
+# tooltip for the "inverted call stack" display option.
+censusDisplays.invertedAllocationStack.tooltip=Group items by the inverted JavaScript call stack recorded when the object was created
+
+# LOCALIZATION NOTE (toolbar.labelBy): The label describing the select menu
+# options of the label options.
+toolbar.labelBy=Label by:
+
+# LOCALIZATION NOTE (toolbar.labelBy.tooltip): The tooltip for the label describing the
+# select menu options of the label options.
+toolbar.labelBy.tooltip=Change how objects are labelled
+
+# LOCALIZATION NOTE (dominatorTreeDisplays.coarseType.tooltip): The tooltip for
+# the "coarse type" dominator tree display option.
+dominatorTreeDisplays.coarseType.tooltip=Label objects by the broad categories they fit in
+
+# LOCALIZATION NOTE (dominatorTreeDisplays.allocationStack.tooltip): The
+# tooltip for the "call stack" dominator tree display option.
+dominatorTreeDisplays.allocationStack.tooltip=Label objects by the JavaScript stack recorded when it was allocated
+
+# LOCALIZATION NOTE (treeMapDisplays.coarseType.tooltip): The tooltip for
+# the "coarse type" tree map display option.
+treeMapDisplays.coarseType.tooltip=Label objects by the broad categories they fit in
+
+# LOCALIZATION NOTE (toolbar.view): The label for the view selector in the
+# toolbar.
+toolbar.view=View:
+
+# LOCALIZATION NOTE (toolbar.view.tooltip): The tooltip for the label for the
+# view selector in the toolbar.
+toolbar.view.tooltip=Change the view of the snapshot
+
+# LOCALIZATION NOTE (toolbar.view.census): The label for the census view option
+# in the toolbar.
+toolbar.view.census=Aggregate
+
+# LOCALIZATION NOTE (toolbar.view.census.tooltip): The tooltip for the label for
+# the census view option in the toolbar.
+toolbar.view.census.tooltip=View a summary of the snapshot’s contents by aggregating objects into groups
+
+# LOCALIZATION NOTE (toolbar.view.dominators): The label for the dominators view
+# option in the toolbar.
+toolbar.view.dominators=Dominators
+
+# LOCALIZATION NOTE (toolbar.view.dominators.tooltip): The tooltip for the label
+# for the dominators view option in the toolbar.
+toolbar.view.dominators.tooltip=View the dominator tree and surface the largest structures in the snapshot
+
+# LOCALIZATION NOTE (toolbar.view.treemap): The label for the tree map option
+# in the toolbar.
+toolbar.view.treemap=Tree Map
+
+# LOCALIZATION NOTE (toolbar.view.treemap.tooltip): The tooltip for the label for
+# the tree map view option in the toolbar.
+toolbar.view.treemap.tooltip=Visualize memory usage: larger blocks account for a larger percent of memory usage
+
+# LOCALIZATION NOTE (take-snapshot): The label describing the button that
+# initiates taking a snapshot, either as the main label, or a tooltip.
+take-snapshot=Take snapshot
+
+# LOCALIZATION NOTE (import-snapshot): The label describing the button that
+# initiates importing a snapshot.
+import-snapshot=Import…
+
+# LOCALIZATION NOTE (clear-snapshots.tooltip): The tooltip for the button that
+# deletes existing snapshot.
+clear-snapshots.tooltip=Delete all snapshots
+
+# LOCALIZATION NOTE (diff-snapshots.tooltip): The tooltip for the button that
+# initiates selecting two snapshots to diff with each other.
+diff-snapshots.tooltip=Compare snapshots
+
+# LOCALIZATION NOTE (filter.placeholder): The placeholder text used for the
+# memory tool's filter search box.
+filter.placeholder=Filter
+
+# LOCALIZATION NOTE (filter.tooltip): The tooltip text used for the memory
+# tool's filter search box.
+filter.tooltip=Filter the contents of the snapshot
+
+# LOCALIZATION NOTE (tree-item.view-individuals.tooltip): The tooltip for the
+# button to view individuals in this group.
+tree-item.view-individuals.tooltip=View individual nodes in this group and their retaining paths
+
+# LOCALIZATION NOTE (tree-item.load-more): The label for the links to fetch the
+# lazily loaded sub trees in the dominator tree view.
+tree-item.load-more=Load more…
+
+# LOCALIZATION NOTE (tree-item.rootlist): The label for the root of the
+# dominator tree.
+tree-item.rootlist=GC Roots
+
+# LOCALIZATION NOTE (tree-item.nostack): The label describing the row in the heap tree
+# that represents a row broken down by call stack when no stack was available.
+tree-item.nostack=(no stack available)
+
+# LOCALIZATION NOTE (tree-item.nofilename): The label describing the row in the
+# heap tree that represents a row broken down by filename when no filename was
+# available.
+tree-item.nofilename=(no filename available)
+
+# LOCALIZATION NOTE (tree-item.root): The label describing the row in the heap tree
+# that represents the root of the tree when inverted.
+tree-item.root=(root)
+
+# LOCALIZATION NOTE (tree-item.percent2): A percent of bytes or count displayed in the tree view.
+# there are two "%" after %S to escape and display "%"
+tree-item.percent2=%S%%
+
+# LOCALIZATION NOTE (diffing.baseline): The name of the baseline snapshot in a
+# diffing comparison.
+diffing.baseline=Baseline
+
+# LOCALIZATION NOTE (diffing.comparison): The name of the snapshot being
+# compared to the baseline in a diffing comparison.
+diffing.comparison=Comparison
+
+# LOCALIZATION NOTE (diffing.prompt.selectBaseline): The prompt to select the
+# first snapshot when doing a diffing comparison.
+diffing.prompt.selectBaseline=Select the baseline snapshot
+
+# LOCALIZATION NOTE (diffing.prompt.selectComparison): The prompt to select the
+# second snapshot when doing a diffing comparison.
+diffing.prompt.selectComparison=Select the snapshot to compare to the baseline
+
+# LOCALIZATION NOTE (diffing.state.error): The label describing the diffing
+# state ERROR, used in the snapshot list when an error occurs while diffing two
+# snapshots.
+diffing.state.error=Error
+
+# LOCALIZATION NOTE (diffing.state.error.full): The text describing the diffing
+# state ERROR, used in the main view when an error occurs while diffing two
+# snapshots.
+diffing.state.error.full=There was an error while comparing snapshots.
+
+# LOCALIZATION NOTE (diffing.state.taking-diff): The label describing the diffin
+# state TAKING_DIFF, used in the snapshots list when computing the difference
+# between two snapshots.
+diffing.state.taking-diff=Computing difference…
+
+# LOCALIZATION NOTE (diffing.state.taking-diff.full): The label describing the
+# diffing state TAKING_DIFF, used in the main view when computing the difference
+# between two snapshots.
+diffing.state.taking-diff.full=Computing difference…
+
+# LOCALIZATION NOTE (diffing.state.selecting): The label describing the diffing
+# state SELECTING.
+diffing.state.selecting=Select two snapshots to compare
+
+# LOCALIZATION NOTE (diffing.state.selecting.full): The label describing the
+# diffing state SELECTING, used in the main view when selecting snapshots to
+# diff.
+diffing.state.selecting.full=Select two snapshots to compare
+
+# LOCALIZATION NOTE (dominatorTree.state.computing): The label describing the
+# dominator tree state COMPUTING.
+dominatorTree.state.computing=Generating dominators report…
+
+# LOCALIZATION NOTE (dominatorTree.state.computing.full): The label describing the
+# dominator tree state COMPUTING, used in the dominator tree view.
+dominatorTree.state.computing.full=Generating dominators report…
+
+# LOCALIZATION NOTE (dominatorTree.state.fetching): The label describing the
+# dominator tree state FETCHING.
+dominatorTree.state.fetching=Computing sizes…
+
+# LOCALIZATION NOTE (dominatorTree.state.fetching.full): The label describing the
+# dominator tree state FETCHING, used in the dominator tree view.
+dominatorTree.state.fetching.full=Computing dominator’s retained sizes…
+
+# LOCALIZATION NOTE (dominatorTree.state.incrementalFetching): The label
+# describing the dominator tree state INCREMENTAL_FETCHING.
+dominatorTree.state.incrementalFetching=Fetching…
+
+# LOCALIZATION NOTE (dominatorTree.state.incrementalFetching.full): The label describing the
+# dominator tree state INCREMENTAL_FETCHING, used in the dominator tree view.
+dominatorTree.state.incrementalFetching.full=Fetching more…
+
+# LOCALIZATION NOTE (dominatorTree.state.error): The label describing the
+# dominator tree state ERROR.
+dominatorTree.state.error=Error
+
+# LOCALIZATION NOTE (dominatorTree.state.error.full): The label describing the
+# dominator tree state ERROR, used in the dominator tree view.
+dominatorTree.state.error.full=There was an error while processing the dominator tree
+
+# LOCALIZATION NOTE (snapshot.state.saving.full): The label describing the
+# snapshot state SAVING, used in the main heap view.
+snapshot.state.saving.full=Saving snapshot…
+
+# LOCALIZATION NOTE (snapshot.state.reading.full): The label describing the
+# snapshot state READING, and SAVED, due to these states being combined
+# visually, used in the main heap view.
+snapshot.state.reading.full=Reading snapshot…
+
+# LOCALIZATION NOTE (snapshot.state.saving-census.full): The label describing
+# the snapshot state SAVING, used in the main heap view.
+snapshot.state.saving-census.full=Generating aggregate report…
+
+# LOCALIZATION NOTE (snapshot.state.saving-tree-map.full): The label describing
+# the snapshot state SAVING, used in the main heap view.
+snapshot.state.saving-tree-map.full=Saving tree map…
+
+# LOCALIZATION NOTE (snapshot.state.error.full): The label describing the
+# snapshot state ERROR, used in the main heap view.
+snapshot.state.error.full=There was an error processing this snapshot.
+
+# LOCALIZATION NOTE (individuals.state.error): The short message displayed when
+# there is an error fetching individuals from a group.
+individuals.state.error=Error
+
+# LOCALIZATION NOTE (individuals.state.error.full): The longer message displayed
+# when there is an error fetching individuals from a group.
+individuals.state.error.full=There was an error while fetching individuals in the group
+
+# LOCALIZATION NOTE (individuals.state.fetching): The short message displayed
+# while fetching individuals.
+individuals.state.fetching=Fetching…
+
+# LOCALIZATION NOTE (individuals.state.fetching.full): The longer message
+# displayed while fetching individuals.
+individuals.state.fetching.full=Fetching individuals in group…
+
+# LOCALIZATION NOTE (individuals.field.node): The header label for an individual
+# node.
+individuals.field.node=Node
+
+# LOCALIZATION NOTE (individuals.field.node.tooltip): The tooltip for the header
+# label for an individual node.
+individuals.field.node.tooltip=The individual node in the snapshot
+
+# LOCALIZATION NOTE (snapshot.state.saving): The label describing the snapshot
+# state SAVING, used in the snapshot list view
+snapshot.state.saving=Saving snapshot…
+
+# LOCALIZATION NOTE (snapshot.state.importing): The label describing the
+# snapshot state IMPORTING, used in the snapshot list view
+snapshot.state.importing=Importing snapshot…
+
+# LOCALIZATION NOTE (snapshot.state.reading): The label describing the snapshot
+# state READING, and SAVED, due to these states being combined visually, used in
+# the snapshot list view.
+snapshot.state.reading=Reading snapshot…
+
+# LOCALIZATION NOTE (snapshot.state.saving-census): The label describing the
+# snapshot state SAVING, used in snapshot list view.
+snapshot.state.saving-census=Saving report…
+
+# LOCALIZATION NOTE (snapshot.state.saving-census): The label describing the
+# snapshot state SAVING, used in snapshot list view.
+snapshot.state.saving-tree-map=Saving tree map…
+
+# LOCALIZATION NOTE (snapshot.state.error): The label describing the snapshot
+# state ERROR, used in the snapshot list view.
+snapshot.state.error=Error
+
+# LOCALIZATION NOTE (heapview.no-difference): Message displayed when there is no
+# difference between two snapshots.
+heapview.no-difference=No difference between the baseline and comparison.
+
+# LOCALIZATION NOTE (heapview.none-match): Message displayed when there are no
+# matches when filtering.
+heapview.none-match=No matches.
+
+# LOCALIZATION NOTE (heapview.none-match): Message displayed when there report
+# is empty.
+heapview.empty=Empty.
+
+# LOCALIZATION NOTE (heapview.noAllocationStacks): The message displayed to
+# users when selecting a display by "call stack" but no call stacks
+# were recorded in the heap snapshot.
+heapview.noAllocationStacks=No call stacks found. Record call stacks before taking a snapshot.
+
+# LOCALIZATION NOTE (heapview.field.retainedSize): The name of the column in the
+# dominator tree view for retained byte sizes.
+heapview.field.retainedSize=Retained Size (Bytes)
+
+# LOCALIZATION NOTE (heapview.field.retainedSize.tooltip): The tooltip for the
+# column header in the dominator tree view for retained byte sizes.
+heapview.field.retainedSize.tooltip=The sum of the size of the object itself, and the sizes of all the other objects kept alive by it
+
+# LOCALIZATION NOTE (heapview.field.shallowSize): The name of the column in the
+# dominator tree view for shallow byte sizes.
+heapview.field.shallowSize=Shallow Size (Bytes)
+
+# LOCALIZATION NOTE (heapview.field.shallowSize.tooltip): The tooltip for the
+# column header in the dominator tree view for shallow byte sizes.
+heapview.field.shallowSize.tooltip=The size of the object itself
+
+# LOCALIZATION NOTE (dominatortree.field.label): The name of the column in the
+# dominator tree for an object's label.
+dominatortree.field.label=Dominator
+
+# LOCALIZATION NOTE (dominatortree.field.label.tooltip): The tooltip for the column
+# header in the dominator tree view for an object's label.
+dominatortree.field.label.tooltip=The label for an object in memory
+
+# LOCALIZATION NOTE (heapview.field.bytes): The name of the column in the heap
+# view for bytes.
+heapview.field.bytes=Bytes
+
+# LOCALIZATION NOTE (heapview.field.bytes.tooltip): The tooltip for the column
+# header in the heap view for bytes.
+heapview.field.bytes.tooltip=The number of bytes taken up by this group, excluding subgroups
+
+# LOCALIZATION NOTE (heapview.field.count): The name of the column in the heap
+# view for count.
+heapview.field.count=Count
+
+# LOCALIZATION NOTE (heapview.field.count.tooltip): The tooltip for the column
+# header in the heap view for count.
+heapview.field.count.tooltip=The number of reachable objects in this group, excluding subgroups
+
+# LOCALIZATION NOTE (heapview.field.totalbytes): The name of the column in the
+# heap view for total bytes.
+heapview.field.totalbytes=Total Bytes
+
+# LOCALIZATION NOTE (heapview.field.totalbytes.tooltip): The tooltip for the
+# column header in the heap view for total bytes.
+heapview.field.totalbytes.tooltip=The number of bytes taken up by this group, including subgroups
+
+# LOCALIZATION NOTE (heapview.field.totalcount): The name of the column in the
+# heap view for total count.
+heapview.field.totalcount=Total Count
+
+# LOCALIZATION NOTE (heapview.field.totalcount.tooltip): The tooltip for the
+# column header in the heap view for total count.
+heapview.field.totalcount.tooltip=The number of reachable objects in this group, including subgroups
+
+# LOCALIZATION NOTE (heapview.field.name): The name of the column in the heap
+# view for name.
+heapview.field.name=Group
+
+# LOCALIZATION NOTE (heapview.field.name.tooltip): The tooltip for the column
+# header in the heap view for name.
+heapview.field.name.tooltip=The name of this group
+
+# LOCALIZATION NOTE (shortest-paths.header): The header label for the shortest
+# paths pane.
+shortest-paths.header=Retaining Paths (from Garbage Collector Roots)
+
+# LOCALIZATION NOTE (shortest-paths.select-node): The message displayed in the
+# shortest paths pane when a node is not yet selected.
+shortest-paths.select-node=Select an item to view its retaining paths
+
+# LOCALIZATION NOTE (tree-map.node-count): The label for the count value of a
+# node in the tree map
+tree-map.node-count=count
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/menus.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/menus.properties
new file mode 100644
index 0000000000..563169971f
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/menus.properties
@@ -0,0 +1,29 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (devtoolsRemoteDebugging.label): This is the label for the menu item
+# in Tools > Web Developer. Clicking on this menu item will open about:debugging which
+# acts as a hub for debugging remote devices.
+devtoolsRemoteDebugging.label = Remote Debugging
+devtoolsRemoteDebugging.accesskey = R
+
+browserConsoleCmd.label = Browser Console
+browserConsoleCmd.accesskey = B
+
+responsiveDesignMode.label = Responsive Design Mode
+responsiveDesignMode.accesskey = R
+
+eyedropper.label = Eyedropper
+eyedropper.accesskey = y
+
+# LOCALIZATION NOTE (browserToolboxMenu.label): This is the label for the
+# application menu item that opens the browser toolbox UI in the Tools menu.
+browserToolboxMenu.label = Browser Toolbox
+browserToolboxMenu.accesskey = e
+
+webDeveloperToolsMenu.label = Web Developer Tools
+webDeveloperToolsMenu.accesskey = T
+
+extensionsForDevelopersCmd.label = Extensions for Developers
+extensionsForDevelopersCmd.accesskey = f
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/netmonitor.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/netmonitor.properties
new file mode 100644
index 0000000000..f320df66a7
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/netmonitor.properties
@@ -0,0 +1,1679 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Network Monitor
+# which is available from the Browser Tools sub-menu -> 'Network Monitor'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (netmonitor.security.state.secure)
+# This string is used as an tooltip for request that was performed over secure
+# channel i.e. the connection was encrypted.
+netmonitor.security.state.secure=The connection used to fetch this resource was secure.
+
+# LOCALIZATION NOTE (netmonitor.security.state.insecure)
+# This string is used as an tooltip for request that was performed over insecure
+# channel i.e. the connection was not https
+netmonitor.security.state.insecure=The connection used to fetch this resource was not secure.
+
+# LOCALIZATION NOTE (netmonitor.security.state.broken)
+# This string is used as an tooltip for request that failed due to security
+# issues.
+netmonitor.security.state.broken=A security error prevented the resource from being loaded.
+
+# LOCALIZATION NOTE (netmonitor.security.state.weak)
+# This string is used as an tooltip for request that had minor security issues
+netmonitor.security.state.weak=This resource was transferred over a connection that used weak encryption.
+
+# LOCALIZATION NOTE (netmonitor.security.enabled):
+# This string is used to indicate that a specific security feature is used by
+# a connection in the security details tab.
+# For example: "HTTP Strict Transport Security: Enabled"
+netmonitor.security.enabled=Enabled
+
+# LOCALIZATION NOTE (netmonitor.security.disabled):
+# This string is used to indicate that a specific security feature is not used by
+# a connection in the security details tab.
+# For example: "HTTP Strict Transport Security: Disabled"
+netmonitor.security.disabled=Disabled
+
+# LOCALIZATION NOTE (netmonitor.security.hostHeader):
+# This string is used as a header for section containing security information
+# related to the remote host. %S is replaced with the domain name of the remote
+# host. For example: Host example.com
+netmonitor.security.hostHeader=Host %S:
+
+# LOCALIZATION NOTE (netmonitor.security.notAvailable):
+# This string is used to indicate that a certain piece of information is not
+# available to be displayed. For example a certificate that has no organization
+# defined:
+# Organization: <Not Available>
+netmonitor.security.notAvailable=<Not Available>
+
+# LOCALIZATION NOTE (collapseDetailsPane): This is the tooltip for the button
+# that collapses the network details pane in the UI.
+collapseDetailsPane=Hide request details
+
+# LOCALIZATION NOTE (collapseActionPane): This is the tooltip for the button
+# that collapses the network action pane in the UI.
+collapseActionPane=Hide network action
+
+# LOCALIZATION NOTE (allTabsMenuButton.tooltip): The tooltip that gets
+# displayed when hovering over the tabs overflow button.
+allTabsMenuButton.tooltip=Show all tabs
+
+# LOCALIZATION NOTE (headersEmptyText): This is the text displayed in the
+# headers tab of the network details pane when there are no headers available.
+headersEmptyText=No headers for this request
+
+# LOCALIZATION NOTE (headersFilterText): This is the text displayed in the
+# headers tab of the network details pane for the filtering input.
+headersFilterText=Filter Headers
+
+# LOCALIZATION NOTE (messagesEmptyText): This is the text displayed in the
+# WebSockets tab of the network details pane when there are no frames available.
+messagesEmptyText=No messages for this request
+
+# LOCALIZATION NOTE (cookiesEmptyText): This is the text displayed in the
+# cookies tab of the network details pane when there are no cookies available.
+cookiesEmptyText=No cookies for this request
+
+# LOCALIZATION NOTE (cookiesFilterText): This is the text displayed in the
+# cookies tab of the network details pane for the filtering input.
+cookiesFilterText=Filter Cookies
+
+# LOCALIZATION NOTE (responseEmptyText): This is the text displayed in the
+# response tab of the network details pane when the response is empty or not
+# available for shown.
+responseEmptyText=No response data available for this request
+
+# LOCALIZATION NOTE (paramsNoPayloadText): This is the text displayed in the
+# request tab of the network details pane when there are no params available.
+paramsNoPayloadText=No payload for this request
+
+# LOCALIZATION NOTE (paramsFilterText): This is the text displayed in the
+# request tab of the network details pane for the filtering input.
+paramsFilterText=Filter Request Parameters
+
+# LOCALIZATION NOTE (paramsQueryString): This is the label displayed
+# in the network details request tab identifying the query string.
+paramsQueryString=Query String
+
+# LOCALIZATION NOTE (paramsFormData): This is the label displayed
+# in the network details request tab identifying the form data.
+paramsFormData=Form data
+
+# LOCALIZATION NOTE (paramsPostPayload): This is the label displayed
+# in the network details request tab identifying the request payload.
+paramsPostPayload=Request payload
+
+# LOCALIZATION NOTE (netmonitor.request.raw): This is the label displayed
+# on the button in the network details request tab that toggles the
+# view of the network request between the raw data and the formatted display.
+netmonitor.request.raw=Raw
+
+# LOCALIZATION NOTE (requestHeaders): This is the label displayed
+# in the network details headers tab identifying the request headers.
+requestHeaders=Request Headers
+
+# LOCALIZATION NOTE (requestHeadersFromUpload): This is the label displayed
+# in the network details headers tab identifying the request headers from
+# the upload stream of a POST request's body.
+requestHeadersFromUpload=Request headers from upload stream
+
+# LOCALIZATION NOTE (responseHeaders): This is the label displayed
+# in the network details headers tab identifying the response headers.
+responseHeaders=Response Headers
+
+# LOCALIZATION NOTE (requestCookies): This is the label displayed
+# in the network details request tab identifying the request cookies.
+requestCookies=Request Cookies
+
+# LOCALIZATION NOTE (responseCookies): This is the label displayed
+# in the network details request tab identifying the response cookies.
+responseCookies=Response Cookies
+
+# LOCALIZATION NOTE (responsePayload): This is the label displayed
+# in the network details response tab identifying the response payload.
+responsePayload=Response Payload
+
+# LOCALIZATION NOTE (netmonitor.response.raw): This is the label displayed
+# on the button in the network details response tab that toggles the
+# view of the network response between the raw data and the formatted display.
+netmonitor.response.raw=Raw
+
+# LOCALIZATION NOTE (netmonitor.response.html): This is the text displayed
+# in the response tab of the network details pane for an HTML preview.
+netmonitor.response.html=HTML
+
+# LOCALIZATION NOTE (jsonFilterText): This is the text displayed
+# in the response tab of the network details pane for the JSON filtering input.
+jsonFilterText=Filter properties
+
+# LOCALIZATION NOTE (jsonScopeName): This is the text displayed
+# in the response tab of the network details pane for a JSON scope.
+jsonScopeName=JSON
+
+# LOCALIZATION NOTE (jsonpScopeName): This is the text displayed
+# in the response tab of the network details pane for a JSONP scope.
+jsonpScopeName=JSONP → callback %S()
+
+# LOCALIZATION NOTE (jsonXssiStripped): This is the text displayed
+# in a notification in the response tab of the network details pane
+# when a JSON payload had XSSI escape characters which were removed
+jsonXssiStripped=The string “%S” was removed from the beginning of the JSON shown below
+
+# LOCALIZATION NOTE (responseTruncated): This is the text displayed
+# in the response tab of the network details pane when the response is over
+# the truncation limit and thus was truncated.
+responseTruncated=Response has been truncated
+
+# LOCALIZATION NOTE (requestTruncated): This is the text displayed
+# in the request tab of the network details pane when the request is over
+# the truncation limit and thus was truncated.
+requestTruncated=Request has been truncated
+
+# LOCALIZATION NOTE (networkMenu.raced): This is the label displayed
+# in the network menu specifying the transfer or a request is
+# raced. %S refers to the current transfer size.
+networkMenu.raced=%S (raced)
+
+# LOCALIZATION NOTE (networkMenu.sortedAsc): This is the tooltip displayed
+# in the network table toolbar, for any column that is sorted ascending.
+networkMenu.sortedAsc=Sorted ascending
+
+# LOCALIZATION NOTE (networkMenu.sortedDesc): This is the tooltip displayed
+# in the network table toolbar, for any column that is sorted descending.
+networkMenu.sortedDesc=Sorted descending
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.perf): A tooltip explaining
+# what the perf button does
+networkMenu.summary.tooltip.perf=Start performance analysis
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.domContentLoaded): A tooltip explaining
+# what the DOMContentLoaded label displays
+networkMenu.summary.tooltip.domContentLoaded=Time when “DOMContentLoad” event occurred
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.load): A tooltip explaining
+# what the load label displays
+networkMenu.summary.tooltip.load=Time when “load” event occurred
+
+# LOCALIZATION NOTE (networkMenu.summary.requestsCount2): This label is displayed
+# in the network table footer providing the number of requests
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+networkMenu.summary.requestsCount2=#1 request;#1 requests
+
+# LOCALIZATION NOTE (networkMenu.summary.requestsCountEmpty): This label is displayed
+# in the network table footer when there are no requests
+networkMenu.summary.requestsCountEmpty=No requests
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.requestsCount): A tooltip explaining
+# what the requestsCount label displays
+networkMenu.summary.tooltip.requestsCount=Number of requests
+
+# LOCALIZATION NOTE (networkMenu.summary.transferred): This label is displayed
+# in the network table footer providing the transferred size.
+networkMenu.summary.transferred=%S / %S transferred
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.transferred): A tooltip explaining
+# what the transferred label displays
+networkMenu.summary.tooltip.transferred=Size/transferred size of all requests
+
+# LOCALIZATION NOTE (networkMenu.summary.finish): This label is displayed
+# in the network table footer providing the transfer time.
+networkMenu.summary.finish=Finish: %S
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.finish): A tooltip explaining
+# what the finish label displays
+networkMenu.summary.tooltip.finish=Total time needed to load all requests
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.framesCount2): This label is displayed
+# in the messages table footer providing the number of frames
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+networkMenu.ws.summary.framesCount2=#1 message;#1 messages
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.framesCountEmpty): This label is displayed
+# in the messages table footer when there are no frames
+networkMenu.ws.summary.framesCountEmpty=No messages
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.tooltip.framesCount): A tooltip explaining
+# what the framesCount label displays
+networkMenu.ws.summary.tooltip.framesCount=Number of messages
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.tooltip.framesTotalSize): A tooltip explaining
+# what the framesTotalSize label displays
+networkMenu.ws.summary.tooltip.framesTotalSize=Total size of displayed messages
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.label.framesTranferredSize): A label showing
+# summary size info related to the current list of WS messages
+# %1$S is the total size of the transferred data, %2$S is the size of sent data, %3$S is the size of received data.
+networkMenu.ws.summary.label.framesTranferredSize=%1$S total, %2$S sent, %3$S received
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.tooltip.framesTotalTime): A tooltip explaining
+# what framesTotalTime displays
+networkMenu.ws.summary.tooltip.framesTotalTime=Total elapsed time between the first and last displayed messages
+
+# LOCALIZATION NOTE (networkMenu.sizeB): This is the label displayed
+# in the network menu specifying the size of a request (in bytes).
+networkMenu.sizeB=%S B
+
+# LOCALIZATION NOTE (networkMenu.size.kB): This is the label displayed
+# in the network menu specifying the size of a request (in kilobytes).
+networkMenu.size.kB=%S kB
+
+# LOCALIZATION NOTE (networkMenu.sizeMB): This is the label displayed
+# in the network menu specifying the size of a request (in megabytes).
+networkMenu.sizeMB=%S MB
+
+# LOCALIZATION NOTE (networkMenu.sizeGB): This is the label displayed
+# in the network menu specifying the size of a request (in gigabytes).
+networkMenu.sizeGB=%S GB
+
+# LOCALIZATION NOTE (networkMenu.sizeUnavailable): This is the label displayed
+# in the network menu specifying the transferred size of a request is
+# unavailable.
+networkMenu.sizeUnavailable=—
+
+# LOCALIZATION NOTE (networkMenu.sizeUnavailable.title): This is the tooltip
+# displayed in the network menu specifying that the transferred size of a
+# request is unavailable.
+networkMenu.sizeUnavailable.title=Transferred size is not available
+
+# LOCALIZATION NOTE (networkMenu.sizeCached): This is the label displayed
+# in the network menu and the headers panel specifying the transfer or a request is
+# cached.
+networkMenu.sizeCached=cached
+
+# LOCALIZATION NOTE (networkMenu.sizeServiceWorker): This is the label displayed
+# in the network menu and the headers panel specifying the transferred of a request
+# computed by a service worker.
+networkMenu.sizeServiceWorker=service worker
+
+# LOCALIZATION NOTE (networkMenu.blocked2): This is a generic message for a
+# URL that has been blocked for an unknown reason
+networkMenu.blocked2=Blocked
+
+# LOCALIZATION NOTE (networkMenu.blockedby): This is a generic message for a
+# URL that has been blocked by an extension
+# %S is the extension name.
+networkMenu.blockedby=Blocked By %S
+
+# LOCALIZATION NOTE (networkMenu.blockedTooltip): This is a the text displayed
+# as a tooltip for the blocked icon in the request list
+networkMenu.blockedTooltip=Blocked
+
+# LOCALIZATION NOTE (networkMenu.totalMS2): This is the label displayed
+# in the network menu specifying the time for a request to finish (in milliseconds).
+networkMenu.totalMS2=%S ms
+
+# This string is used to concatenate tooltips (netmonitor.waterfall.tooltip.*)
+# in the requests waterfall for total time (in milliseconds). \\u0020 represents
+# a whitespace. You can replace this with a different character, e.g. an hyphen
+# or a period, if a comma doesn't work for your language.
+netmonitor.waterfall.tooltip.separator=,\u0020
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.total): This is part of the tooltip
+# displayed in the requests waterfall for total time (in milliseconds).
+netmonitor.waterfall.tooltip.total=Total %S ms
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.blocked): This is part of the tooltip
+# displayed in the requests waterfall for blocked time (in milliseconds).
+netmonitor.waterfall.tooltip.blocked=Blocked %S ms
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.dns): This is part of the tooltip
+# displayed in the requests waterfall for dns time (in milliseconds).
+netmonitor.waterfall.tooltip.dns=DNS %S ms
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.ssl): This is part of the tooltip
+# displayed in the requests waterfall for tls setup time (in milliseconds).
+netmonitor.waterfall.tooltip.ssl=TLS %S ms
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.connect): This is part of the tooltip
+# displayed in the requests waterfall for connect time (in milliseconds).
+netmonitor.waterfall.tooltip.connect=Connect %S ms
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.send): This is part of the tooltip
+# displayed in the requests waterfall for send time (in milliseconds).
+netmonitor.waterfall.tooltip.send=Send %S ms
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.wait): This is part of the tooltip
+# displayed in the requests waterfall for wait time (in milliseconds).
+netmonitor.waterfall.tooltip.wait=Wait %S ms
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.receive): This is part of the tooltip
+# displayed in the requests waterfall for receive time (in milliseiconds).
+netmonitor.waterfall.tooltip.receive=Receive %S ms
+
+# LOCALIZATION NOTE (netmonitor.timings.requestTiming): This is the title of the existing
+# section in Timings side panel. This section contains request timings.
+netmonitor.timings.requestTiming=Request Timing
+
+# LOCALIZATION NOTE (netmonitor.timings.serverTiming): This is the title of a new section
+# in Timings side panel. This section contains server timings transferred from the server
+# through the "Server-Timing" header.
+netmonitor.timings.serverTiming=Server Timing
+
+# LOCALIZATION NOTE (netmonitor.timings.queuedAt): This is relative queued time to the
+# first request. %S is time expressed in milliseconds or minutes.
+netmonitor.timings.queuedAt=Queued: %S
+
+# LOCALIZATION NOTE (netmonitor.timings.startedAt): Relative to the first request,
+# when the request actually started. %S is time expressed in milliseconds or minutes.
+netmonitor.timings.startedAt=Started: %S
+
+# LOCALIZATION NOTE (netmonitor.timings.downloadedAt): Relative to first request,
+# when the request actually finished downloading.
+# %S is time expressed in milliseconds or minutes.
+netmonitor.timings.downloadedAt=Downloaded: %S
+
+# LOCALIZATION NOTE (netmonitor.timings.noTimings): Message that displays in the
+# timings pane when thea request has been blocked
+netmonitor.timings.noTimings=No timings for this request
+
+# LOCALIZATION NOTE (networkMenu.millisecond): This is the label displayed
+# in the network menu specifying timing interval divisions (in milliseconds).
+networkMenu.millisecond=%S ms
+
+# LOCALIZATION NOTE (networkMenu.second): This is the label displayed
+# in the network menu specifying timing interval divisions (in seconds).
+networkMenu.second=%S s
+
+# LOCALIZATION NOTE (networkMenu.minute): This is the label displayed
+# in the network menu specifying timing interval divisions (in minutes).
+networkMenu.minute=%S min
+
+# LOCALIZATION NOTE (pieChart.loading): This is the label displayed
+# for pie charts (e.g., in the performance analysis view) when there is
+# no data available yet.
+pieChart.loading=Loading
+
+# LOCALIZATION NOTE (pieChart.unavailable): This is the label displayed
+# for pie charts (e.g., in the performance analysis view) when there is
+# no data available, even after loading it.
+pieChart.unavailable=Empty
+
+# LOCALIZATION NOTE (pieChart.ariaLabel): This is the text used for the aria-label attribute
+# for SVG pie charts (e.g., in the performance analysis view).
+pieChart.ariaLabel=Pie chart representing the size of each type of request in proportion to each other
+
+# LOCALIZATION NOTE (pieChart.sliceAriaLabel): This is the text used for the aria-label attribute
+# for SVG pie charts slices (e.g., in the performance analysis view).
+# %1$S is the slice label (e.g. "html")
+# %2$S is the percentage (e.g. "33.23%").
+pieChart.sliceAriaLabel=%1$S: %2$S
+
+# LOCALIZATION NOTE (tableChart.loading): This is the label displayed
+# for table charts (e.g., in the performance analysis view) when there is
+# no data available yet.
+tableChart.loading=Please wait…
+
+# LOCALIZATION NOTE (tableChart.unavailable): This is the label displayed
+# for table charts (e.g., in the performance analysis view) when there is
+# no data available, even after loading it.
+tableChart.unavailable=No data available
+
+# LOCALIZATION NOTE (charts.size.kB): This is the label displayed
+# in pie or table charts specifying the size of a request (in kilobytes).
+charts.size.kB=%S kB
+
+# LOCALIZATION NOTE (charts.transferredSize.kB): This is the label displayed
+# in pie or table charts specifying the size of a transferred request (in kilobytes).
+charts.transferredSize.kB=%S kB
+
+# LOCALIZATION NOTE (charts.totalS): This is the label displayed
+# in pie or table charts specifying the time for a request to finish (in seconds).
+charts.totalS=%S s
+
+# LOCALIZATION NOTE (charts.totalTransferredSize.kB): This is the label displayed
+# in the performance analysis view for total transferred size, in kilobytes.
+charts.totalTransferredSize.kB=Transferred Size: %S kB
+
+# LOCALIZATION NOTE (charts.cacheEnabled): This is the label displayed
+# in the performance analysis view for "cache enabled" charts.
+charts.cacheEnabled=Primed cache
+
+# LOCALIZATION NOTE (charts.cacheDisabled): This is the label displayed
+# in the performance analysis view for "cache disabled" charts.
+charts.cacheDisabled=Empty cache
+
+# LOCALIZATION NOTE (charts.learnMore): This is the label displayed
+# in the performance analysis view, with a link to external documentation.
+charts.learnMore=Learn more about performance analysis
+
+# LOCALIZATION NOTE (charts.totalSize.kB): This is the label displayed
+# in the performance analysis view for total requests size, in kilobytes.
+charts.totalSize.kB=Size: %S kB
+
+# LOCALIZATION NOTE (charts.totalSeconds): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# This is the label displayed in the performance analysis view for the
+# total requests time, in seconds.
+charts.totalSeconds=Time: #1 second;Time: #1 seconds
+
+# LOCALIZATION NOTE (charts.totalSecondsNonBlocking): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# This is the label displayed in the performance analysis view for the
+# total requests time (non-blocking), in seconds.
+charts.totalSecondsNonBlocking=Non blocking time: #1 second;Non blocking time: #1 seconds
+
+# LOCALIZATION NOTE (charts.totalCached): This is the label displayed
+# in the performance analysis view for total cached responses.
+charts.totalCached=Cached responses: %S
+
+# LOCALIZATION NOTE (charts.totalCount): This is the label displayed
+# in the performance analysis view for total requests.
+charts.totalCount=Total requests: %S
+
+# LOCALIZATION NOTE (charts.requestsNumber): This is the label for the header column in
+# the performance analysis view for the number of requests. The label is not visible on screen,
+# but is set in the DOM for accessibility sake.
+charts.requestsNumber=Number of requests
+
+# LOCALIZATION NOTE (charts.size): This is the label displayed
+# in the header column in the performance analysis view for size of the request.
+charts.size=Size
+
+# LOCALIZATION NOTE (charts.type): This is the label displayed
+# in the header column in the performance analysis view for type of request.
+charts.type=Type
+
+# LOCALIZATION NOTE (charts.transferred): This is the label displayed
+# in the header column in the performance analysis view for transferred
+# size of the request.
+charts.transferred=Transferred
+
+# LOCALIZATION NOTE (charts.time): This is the label displayed
+# in the header column in the performance analysis view for time of request.
+charts.time=Time
+
+# LOCALIZATION NOTE (charts.nonBlockingTime): This is the label displayed
+# in the header column in the performance analysis view for non blocking
+# time of request.
+charts.nonBlockingTime=Non blocking time
+
+# LOCALIZATION NOTE (netRequest.originalFileURL.tooltip): This is the tooltip
+# displayed for the file's original URL value displayed in the file column of
+# a request.
+netRequest.originalFileURL.tooltip=Original: %S
+
+# LOCALIZATION NOTE (netRequest.decodedFileURL.tooltip): This is the tooltip
+# displayed for the file's decoded URL value displayed in the file column of
+# a request.
+netRequest.decodedFileURL.tooltip=Decoded: %S
+
+# LOCALIZATION NOTE (certmgr.subjectinfo.label):
+# A label used for a certificate section in security tab.
+# This section displays Name and organization who has been assigned the fingerprints
+certmgr.subjectinfo.label=Issued To
+
+# LOCALIZATION NOTE (certmgr.certdetail.cn):
+# A label used for Issued To and Issued By sub-section in security tab
+certmgr.certdetail.cn=Common Name (CN):
+
+# LOCALIZATION NOTE (certmgr.certdetail.o):
+# A label used for Issued To and Issued By sub-section in security tab
+certmgr.certdetail.o=Organization (O):
+
+# LOCALIZATION NOTE (certmgr.certdetail.ou):
+# A label used for Issued To and Issued By sub-section in security tab
+certmgr.certdetail.ou=Organizational Unit (OU):
+
+# LOCALIZATION NOTE (certmgr.issuerinfo.label):
+# A label used for a certificate section in security tab
+# This section displays Name and organization who issued the fingerprints
+certmgr.issuerinfo.label=Issued By
+
+# LOCALIZATION NOTE (certmgr.periodofvalidity.label):
+# A label used for a certificate section in security tab
+# This section displays the valid period of this fingerprints
+certmgr.periodofvalidity.label=Period of Validity
+
+# LOCALIZATION NOTE (certmgr.begins):
+# A label used for Period of Validity sub-section in security tab
+certmgr.begins=Begins On:
+
+# LOCALIZATION NOTE (certmgr.expires):
+# A label used for Period of Validity sub-section in security tab
+certmgr.expires=Expires On:
+
+# LOCALIZATION NOTE (certmgr.fingerprints.label):
+# A label used for a certificate section in security tab
+# This section displays the valid period of this fingerprints
+certmgr.fingerprints.label=Fingerprints
+
+# LOCALIZATION NOTE (certmgr.certdetail.sha256fingerprint):
+# A label used for Fingerprints sub-section in security tab
+certmgr.certdetail.sha256fingerprint=SHA-256 Fingerprint:
+
+# LOCALIZATION NOTE (certmgr.certdetail.sha1fingerprint):
+# A label used for Fingerprints sub-section in security tab
+certmgr.certdetail.sha1fingerprint=SHA1 Fingerprint:
+
+# LOCALIZATION NOTE (certmgr.certificateTransparency.label):
+# This string is used as a label in the security tab.
+certmgr.certificateTransparency.label=Transparency:
+
+# LOCALIZATION NOTE (certmgr.certificateTransparency.status.ok):
+# This string is used to indicate that there are valid signed certificate
+# timestamps. This is a property for the 'Transparency'
+# field in the security tab.
+certmgr.certificateTransparency.status.ok=Valid SCT records
+
+# LOCALIZATION NOTE (certmgr.certificateTransparency.status.notEnoughSCTS):
+# This string is used to indicate that there are not enough valid signed
+# certificate timestamps. This is a property for the 'Transparency'
+# field in the security tab.
+certmgr.certificateTransparency.status.notEnoughSCTS=Not enough SCTs
+
+# LOCALIZATION NOTE (certmgr.certificateTransparency.status.notDiverseSCTS):
+# This string is used to indicate that there ar not enough diverse signed
+# certificate timestamps. This is a property for the 'Transparency'
+# field in the security tab.
+certmgr.certificateTransparency.status.notDiverseSCTS=Not diverse SCTs
+
+# LOCALIZATION NOTE (netmonitor.perfNotice1/2/3): These are the labels displayed
+# in the network table when empty to start performance analysis.
+netmonitor.perfNotice1=• Click on the
+netmonitor.perfNotice2=button to start performance analysis.
+netmonitor.perfNotice3=Analyze
+
+# LOCALIZATION NOTE (netmonitor.reload1/2/3): These are the labels displayed
+# in the network table when empty to start logging network requests.
+netmonitor.reloadNotice1=• Perform a request or
+netmonitor.reloadNotice2=Reload
+netmonitor.reloadNotice3=the page to see detailed information about network activity.
+netmonitor.emptyBrowserToolbox=Perform a request to see detailed information about network activity.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.status3): This is the label displayed
+# in the network table toolbar, above the "status" column.
+netmonitor.toolbar.status3=Status
+
+# LOCALIZATION NOTE (netmonitor.toolbar.method): This is the label displayed
+# in the network table toolbar, above the "method" column.
+netmonitor.toolbar.method=Method
+
+# LOCALIZATION NOTE (netmonitor.toolbar.priority): This is the label displayed
+# in the network table toolbar, above the "priority" column.
+netmonitor.toolbar.priority=Priority
+
+# LOCALIZATION NOTE (netmonitor.toolbar.file): This is the label displayed
+# in the network table toolbar, above the "file" column.
+netmonitor.toolbar.file=File
+
+# LOCALIZATION NOTE (netmonitor.toolbar.url): This is the label displayed
+# in the network table toolbar, above the "url" column.
+netmonitor.toolbar.url=URL
+
+# LOCALIZATION NOTE (netmonitor.toolbar.protocol): This is the label displayed
+# in the network table toolbar, above the "protocol" column.
+netmonitor.toolbar.protocol=Protocol
+
+# LOCALIZATION NOTE (netmonitor.toolbar.domain): This is the label displayed
+# in the network table toolbar, above the "domain" column.
+netmonitor.toolbar.domain=Domain
+
+# LOCALIZATION NOTE (netmonitor.toolbar.remoteip): This is the label displayed
+# in the network table toolbar, above the "remoteip" column.
+netmonitor.toolbar.remoteip=Remote IP
+
+# LOCALIZATION NOTE (netmonitor.toolbar.initiator): This is the label displayed
+# in the network table toolbar, above the "initiator" column.
+netmonitor.toolbar.initiator=Initiator
+
+# LOCALIZATION NOTE (netmonitor.toolbar.type): This is the label displayed
+# in the network table toolbar, above the "type" column.
+netmonitor.toolbar.type=Type
+
+# LOCALIZATION NOTE (netmonitor.toolbar.cookies): This is the label displayed
+# in the network table toolbar, above the "cookies" column.
+netmonitor.toolbar.cookies=Cookies
+
+# LOCALIZATION NOTE (netmonitor.toolbar.setCookies): This is the label displayed
+# in the network table toolbar, above the "set cookies" column.
+# Set-Cookie is a HTTP response header. This string is the plural form of it.
+# See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie
+netmonitor.toolbar.setCookies=Set-Cookies
+
+# LOCALIZATION NOTE (netmonitor.toolbar.scheme): This is the label displayed
+# in the network table toolbar, above the "scheme" column.
+netmonitor.toolbar.scheme=Scheme
+
+# LOCALIZATION NOTE (netmonitor.toolbar.startTime): This is the label displayed
+# in the network table toolbar, above the "start time" column, which is the time
+# from start of 1st request until the start of this request.
+netmonitor.toolbar.startTime=Start Time
+
+# LOCALIZATION NOTE (netmonitor.toolbar.endTime): This is the label displayed
+# in the network table toolbar, above the "end time" column, which is the time
+# from start of 1st request until the end of this response.
+netmonitor.toolbar.endTime=End Time
+
+# LOCALIZATION NOTE (netmonitor.toolbar.responseTime): This is the label displayed
+# in the network table toolbar, above the "response time" column, which is the time
+# from start of 1st request until the beginning of download of this response.
+netmonitor.toolbar.responseTime=Response Time
+
+# LOCALIZATION NOTE (netmonitor.toolbar.duration): This is the label displayed
+# in the network table toolbar, above the "duration" column, which is the time
+# from start of this request until the end of this response.
+netmonitor.toolbar.duration=Duration
+
+# LOCALIZATION NOTE (netmonitor.toolbar.latency): This is the label displayed
+# in the network table toolbar, above the "latency" column, which is the time
+# from end of this request until the beginning of download of this response.
+netmonitor.toolbar.latency=Latency
+
+# LOCALIZATION NOTE (netmonitor.toolbar.transferred): This is the label displayed
+# in the network table toolbar, above the "transferred" column and in general
+# section of the headers panel, which is the compressed / encoded size.
+netmonitor.toolbar.transferred=Transferred
+
+# LOCALIZATION NOTE (netmonitor.toolbar.contentSize): This is the label displayed
+# in the network table toolbar, above the "size" column, which is the
+# uncompressed / decoded size.
+netmonitor.toolbar.contentSize=Size
+
+# LOCALIZATION NOTE (netmonitor.toolbar.waterfall): This is the label displayed
+# in the network table toolbar, above the "waterfall" column.
+netmonitor.toolbar.waterfall=Timeline
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.size): This is the label displayed
+# in the messages table header, above the "size" column.
+netmonitor.ws.toolbar.size=Size
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.data): This is the label displayed
+# in the messages table header, above the "data" column.
+netmonitor.ws.toolbar.data=Data
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.opCode): This is the label displayed
+# in the messages table header, above the "opCode" column.
+netmonitor.ws.toolbar.opCode=OpCode
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.maskBit): This is the label displayed
+# in the messages table header, above the "maskBit" column.
+netmonitor.ws.toolbar.maskBit=MaskBit
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.finBit): This is the label displayed
+# in the messages table header, above the "finBit" column.
+netmonitor.ws.toolbar.finBit=FinBit
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.time): This is the label displayed
+# in the messages table header, above the "time" column.
+netmonitor.ws.toolbar.time=Time
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.eventName): This is the label displayed
+# in the messages table header, above the "eventName" column.
+netmonitor.ws.toolbar.eventName=Event Name
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.retry): This is the label displayed
+# in the messages table header, above the "retry" column.
+netmonitor.ws.toolbar.retry=Retry
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.lastEventId): This is the label displayed
+# in the messages table header, above the "lastEventId" column.
+netmonitor.ws.toolbar.lastEventId=Last Event ID
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.clear): This is the label displayed
+# in the messages panel toolbar for the "Clear" button.
+netmonitor.ws.toolbar.clear=Clear
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.filterFreetext.label): This is the label
+# displayed in the messages panel toolbar for the frames filtering textbox.
+netmonitor.ws.toolbar.filterFreetext.label=Filter Messages
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.filterFreetext.key): This is the
+# shortcut key to focus on the messages panel toolbar messages filtering textbox
+netmonitor.ws.toolbar.filterFreetext.key=CmdOrCtrl+E
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.resetColumns): This is the label
+# displayed in the messages panel table header context menu.
+netmonitor.ws.toolbar.resetColumns=Reset Columns
+
+# LOCALIZATION NOTE (netmonitor.ws.context.all): This is the label displayed
+# on the context menu that shows "All" WebSocket frames.
+netmonitor.ws.context.all=All
+
+# LOCALIZATION NOTE (netmonitor.ws.context.all.accesskey): This is the access key
+# for the "All" menu item displayed in the context menu in the websocket toolbar.
+netmonitor.ws.context.all.accesskey=A
+
+# LOCALIZATION NOTE (netmonitor.ws.context.sent): This is the label displayed
+# on the context menu that shows "Sent" WebSocket frames.
+netmonitor.ws.context.sent=Sent
+
+# LOCALIZATION NOTE (netmonitor.ws.context.sent.accesskey): This is the access key
+# for the "Sent" menu item displayed in the context menu in the websocket toolbar.
+netmonitor.ws.context.sent.accesskey=S
+
+# LOCALIZATION NOTE (netmonitor.ws.context.received): This is the label displayed
+# on the context menu that shows "Received" WebSocket frames.
+netmonitor.ws.context.received=Received
+
+# LOCALIZATION NOTE (netmonitor.ws.context.received.accesskey): This is the access key
+# for the "Received" menu item displayed in the context menu in the websocket toolbar.
+netmonitor.ws.context.received.accesskey=R
+
+# LOCALIZATION NOTE (netmonitor.ws.context.controlFrames): This is the label displayed
+# on the context menu that shows "Control Frames" WebSocket frames.
+netmonitor.ws.context.controlFrames=Control
+
+# LOCALIZATION NOTE (netmonitor.ws.context.controlFrames.accesskey): This is the access key
+# for the "Control Frames" menu item displayed in the context menu in the websocket toolbar.
+netmonitor.ws.context.controlFrames.accesskey=o
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrame): This is the label displayed
+# on the context menu that shows "Copy Message".
+netmonitor.ws.context.copyFrame=Copy Message
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrame.accesskey): This is the access key
+# for the "Copy Message" menu item displayed in the context menu of a WebSocket frame.
+netmonitor.ws.context.copyFrame.accesskey=C
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrameAsBase64): This is the label displayed
+# on the context menu that shows "Copy as Base64" displayed in the context menu of a binary WebSocket frame.
+netmonitor.ws.context.copyFrameAsBase64=Copy as Base64
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrameAsBase64.accesskey): This is the access key
+# for the "Copy as Base64" menu item displayed in the context menu of a binary WebSocket frame.
+netmonitor.ws.context.copyFrameAsBase64.accesskey=B
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrameAsHex): This is the label displayed
+# on the context menu that shows "Copy as Hex" displayed in the context menu of a binary WebSocket frame.
+netmonitor.ws.context.copyFrameAsHex=Copy as Hex
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrameAsHex.accesskey): This is the access key
+# for the "Copy as Hex" menu item displayed in the context menu of a binary WebSocket frame.
+netmonitor.ws.context.copyFrameAsHex.accesskey=H
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrameAsText): This is the label displayed
+# on the context menu that shows "Copy as Text" displayed in the context menu of a binary WebSocket frame.
+netmonitor.ws.context.copyFrameAsText=Copy as Text
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrameAsText.accesskey): This is the access key
+# for the "Copy as Text" menu item displayed in the context menu of a binary WebSocket frame.
+netmonitor.ws.context.copyFrameAsText.accesskey=T
+
+# LOCALIZATION NOTE (netmonitor.ws.connection.closed): This is the text displayed in the
+# websocket messages panel when the connection is closed
+netmonitor.ws.connection.closed=Connection Closed
+
+# LOCALIZATION NOTE (netmonitor.ws.type.sent): This is the label used as
+# accessible text for the "sent" type icon in the websocket table's "data" column.
+netmonitor.ws.type.sent=Sent
+
+# LOCALIZATION NOTE (netmonitor.ws.type.received): This is the label used as
+# accessible text for the "received" type icon in the websocket table's "data" column.
+netmonitor.ws.type.received=Received
+
+# LOCALIZATION NOTE (netmonitor.ws.rawData.header): This is the label displayed
+# in the messages panel identifying the raw data.
+netmonitor.ws.rawData.header=Raw Data (%S)
+
+# LOCALIZATION NOTE (netmonitor.search.toolbar.inputPlaceholder): This is the label
+# displayed in the search toolbar for the search input as the placeholder.
+netmonitor.search.toolbar.inputPlaceholder=Find in resources…
+
+# LOCALIZATION NOTE (netmonitor.search.toolbar.close): This is the label
+# displayed in the search toolbar to close the search panel.
+netmonitor.search.toolbar.close=Close Search Panel
+
+# LOCALIZATION NOTE (netmonitor.search.toolbar.clear): This is the label
+# displayed in the search toolbar to clear the search panel.
+netmonitor.search.toolbar.clear=Clear Search Results
+
+# LOCALIZATION NOTE (netmonitor.search.toolbar.caseSensitive): This is the label
+# displayed in the search toolbar to do a case sensitive search.
+netmonitor.search.toolbar.caseSensitive=Case Sensitive
+
+# LOCALIZATION NOTE (netmonitor.search.status.labels.fetching): This is the label
+# displayed in the search results status bar when status is set to fetching.
+netmonitor.search.status.labels.fetching=Searching…
+
+# LOCALIZATION NOTE (netmonitor.search.status.labels.canceled): This is the label
+# displayed in the search results status bar when status is set to cancelled.
+netmonitor.search.status.labels.canceled=Search cancelled.
+
+# LOCALIZATION NOTE (netmonitor.search.status.labels.done): This is the label
+# displayed in the search results status bar when status is set to done.
+# %1$S is the number of matching lines in search results (netmonitor.search.status.labels.matchingLines)
+# %2$S is the number of files in which matching lines were found (netmonitor.search.status.labels.fileCount)
+netmonitor.search.status.labels.done=Search finished. %1$S %2$S.
+
+# LOCALIZATION NOTE (netmonitor.search.status.labels.matchingLines): Semi-colon list of plural forms.
+# This is the label displayed in the search results status bar showing matching lines found.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of matching lines found
+netmonitor.search.status.labels.matchingLines=Found #1 matching line;Found #1 matching lines
+
+# LOCALIZATION NOTE (netmonitor.search.status.labels.fileCount): Semi-colon list of plural forms.
+# This is the label displayed in the search results status bar showing file count
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of files in which matching lines were found
+netmonitor.search.status.labels.fileCount=in #1 file;in #1 files
+
+# LOCALIZATION NOTE (netmonitor.search.status.labels.error): This is the label
+# displayed in the search results status bar when status is set to error.
+netmonitor.search.status.labels.error=Search error.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.requestBlocking): This is the tooltip displayed
+# over the toolbar's Request Blocking button
+netmonitor.toolbar.requestBlocking=Request Blocking
+
+# LOCALIZATION NOTE (netmonitor.actionbar.requestBlocking2): This is the label displayed
+# in the action bar's request blocking tab
+netmonitor.actionbar.requestBlocking2=Blocking
+
+# LOCALIZATION NOTE (netmonitor.actionbar.enableBlocking): This is the label displayed
+# in request blocking tab to represent if requests blocking should be enabled
+netmonitor.actionbar.enableBlocking=Enable Request Blocking
+
+# LOCALIZATION NOTE (netmonitor.actionbar.blockSearchPlaceholder): This is the
+# placeholder text for the request addition form
+netmonitor.actionbar.blockSearchPlaceholder=Block resource when URL contains
+
+# LOCALIZATION NOTE (netmonitor.actionbar.removeBlockedUrl): This is the
+# tooltip shown over the remove button for blocked URL item
+netmonitor.actionbar.removeBlockedUrl=Remove pattern
+
+# LOCALIZATION NOTE (netmonitor.actionbar.requestBlockingUsageNotice): This is the
+# usage notice displayed when network blocking list is empty
+netmonitor.actionbar.requestBlockingUsageNotice=Add URL patterns here to block matching requests.
+
+# LOCALIZATION NOTE (netmonitor.actionbar.requestBlockingAddNotice): This is the
+# add notice that explains ways to add blocking pattern that is displayed when
+# network blocking list is empty
+netmonitor.actionbar.requestBlockingAddNotice=Start by adding a pattern or dragging a row from the network table.
+
+# LOCALIZATION NOTE (netmonitor.requestBlockingMenu.removeAllBlockedUrls): This is the
+# context menu item for removing all blocked URLs
+netmonitor.requestBlockingMenu.removeAllBlockedUrls=Remove all
+
+# LOCALIZATION NOTE (netmonitor.requestBlockingMenu.enableAllBlockedUrls): This is the
+# context menu item for enabling all blocked URLs
+netmonitor.requestBlockingMenu.enableAllBlockedUrls=Enable all
+
+# LOCALIZATION NOTE (netmonitor.requestBlockingMenu.disableAllBlockedUrls): This is the
+# context menu item for disabling all blocked URLs
+netmonitor.requestBlockingMenu.disableAllBlockedUrls=Disable all
+
+# LOCALIZATION NOTE (netmonitor.actionbar.search): This is the label displayed
+# in the action bar's search tab
+netmonitor.actionbar.search=Search
+
+# LOCALIZATION NOTE (netmonitor.actionbar.HTTPCustomRequest): This is the label displayed
+# in the action bar's edit and resend tab
+netmonitor.actionbar.HTTPCustomRequest=New Request
+
+# LOCALIZATION NOTE (messagesTruncated): This is the text displayed
+# in the messages panel when the number of messages is over the
+# truncation limit.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+netmonitor.ws.truncated-messages.warning=#1 message has been truncated to conserve memory;#1 messages have been truncated to conserve memory
+
+# LOCALIZATION NOTE (disableMessagesTruncation): This is the text displayed
+# in the messages panel checkbox label for toggling message truncation.
+toggleMessagesTruncation=Keep all future messages
+
+# LOCALIZATION NOTE (toggleMessagesTruncation.title): This is the title used
+# to describe the checkbox used to toggle message truncation.
+toggleMessagesTruncation.title=Keep all future messages or continue showing truncated messages
+
+# LOCALIZATION NOTE (messageDataTruncated): This is the text displayed
+# to describe to describe data truncation in the messages panel.
+messageDataTruncated=Data has been truncated
+
+# LOCALIZATION NOTE (netmonitor.tab.headers): This is the label displayed
+# in the network details pane identifying the headers tab.
+netmonitor.tab.headers=Headers
+
+# LOCALIZATION NOTE (netmonitor.tab.messages): This is the label displayed
+# in the network details pane identifying the messages tab.
+netmonitor.tab.messages=Messages
+
+# LOCALIZATION NOTE (netmonitor.tab.cookies): This is the label displayed
+# in the network details pane identifying the cookies tab.
+netmonitor.tab.cookies=Cookies
+
+# LOCALIZATION NOTE (netmonitor.tab.cache): This is the label displayed
+# in the network details pane identifying the cache tab.
+netmonitor.tab.cache=Cache
+
+# LOCALIZATION NOTE (netmonitor.tab.params): This is the label displayed
+# in the network details pane identifying the params tab.
+netmonitor.tab.params=Params
+
+# LOCALIZATION NOTE (netmonitor.tab.request): This is the label displayed
+# in the network details pane identifying the request tab.
+netmonitor.tab.request=Request
+
+# LOCALIZATION NOTE (netmonitor.tab.response): This is the label displayed
+# in the network details pane identifying the response tab.
+netmonitor.tab.response=Response
+
+# LOCALIZATION NOTE (netmonitor.tab.timings): This is the label displayed
+# in the network details pane identifying the timings tab.
+netmonitor.tab.timings=Timings
+
+# LOCALIZATION NOTE (netmonitor.tab.stackTrace): This is the label displayed
+# in the network details pane identifying the stack-trace tab.
+netmonitor.tab.stackTrace=Stack Trace
+
+# LOCALIZATION NOTE (netmonitor.tab.security): This is the label displayed
+# in the network details pane identifying the security tab.
+netmonitor.tab.security=Security
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.all): This is the label displayed
+# in the network toolbar for the "All" filtering button.
+netmonitor.toolbar.filter.all=All
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.html): This is the label displayed
+# in the network toolbar for the "HTML" filtering button.
+netmonitor.toolbar.filter.html=HTML
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.css): This is the label displayed
+# in the network toolbar for the "CSS" filtering button.
+netmonitor.toolbar.filter.css=CSS
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.js): This is the label displayed
+# in the network toolbar for the "JS" filtering button.
+netmonitor.toolbar.filter.js=JS
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.xhr): This is the label displayed
+# in the network toolbar for the "XHR" filtering button.
+netmonitor.toolbar.filter.xhr=XHR
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.fonts): This is the label displayed
+# in the network toolbar for the "Fonts" filtering button.
+netmonitor.toolbar.filter.fonts=Fonts
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.images): This is the label displayed
+# in the network toolbar for the "Images" filtering button.
+netmonitor.toolbar.filter.images=Images
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.media): This is the label displayed
+# in the network toolbar for the "Media" filtering button.
+netmonitor.toolbar.filter.media=Media
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.flash): This is the label displayed
+# in the network toolbar for the "Flash" filtering button.
+netmonitor.toolbar.filter.flash=Flash
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.ws): This is the label displayed
+# in the network toolbar for the "WS" filtering button.
+netmonitor.toolbar.filter.ws=WS
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.other): This is the label displayed
+# in the network toolbar for the "Other" filtering button.
+netmonitor.toolbar.filter.other=Other
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filterFreetext.label): This is the label
+# displayed in the network toolbar for the url filtering textbox.
+netmonitor.toolbar.filterFreetext.label=Filter URLs
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filterFreetext.key): This is the
+# shortcut key to focus on the toolbar url filtering textbox
+netmonitor.toolbar.filterFreetext.key=CmdOrCtrl+F
+
+# LOCALIZATION NOTE (netmonitor.toolbar.search.key): This is the
+# shortcut key to toggle the search panel
+netmonitor.toolbar.search.key=CmdOrCtrl+Shift+F
+
+# LOCALIZATION NOTE (netmonitor.toolbar.copy.key): This is the
+# shortcut key to copy a selected request url from the network table
+netmonitor.toolbar.copy.key=CmdOrCtrl+C
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filterFreetext.learnMore): This is
+# the title used for MDN icon in filtering textbox
+netmonitor.toolbar.filterFreetext.learnMore=Learn more about filtering
+
+# LOCALIZATION NOTE (netmonitor.toolbar.enablePersistentLogs.label): This is the label
+# displayed for the checkbox for enabling persistent logs.
+netmonitor.toolbar.enablePersistentLogs.label=Persist Logs
+
+# LOCALIZATION NOTE (netmonitor.toolbar.enablePersistentLogs.tooltip): This is the tooltip
+# displayed for the checkbox for enabling persistent logs.
+netmonitor.toolbar.enablePersistentLogs.tooltip=If you enable this option the requests list will not be cleared each time you navigate to a new page
+
+# LOCALIZATION NOTE (netmonitor.toolbar.disableCache.label): This is the label
+# displayed for the checkbox for disabling browser cache.
+netmonitor.toolbar.disableCache.label=Disable Cache
+
+# LOCALIZATION NOTE (netmonitor.toolbar.disableCache.tooltip): This is the tooltip
+# displayed for the checkbox for disabling browser cache.
+netmonitor.toolbar.disableCache.tooltip=Disable HTTP cache
+
+# LOCALIZATION NOTE (netmonitor.toolbar.clear): This is the label displayed
+# in the network toolbar for the "Clear" button.
+netmonitor.toolbar.clear=Clear
+
+# LOCALIZATION NOTE (netmonitor.toolbar.toggleRecording): This is the label displayed
+# in the network toolbar for the toggle recording button.
+netmonitor.toolbar.toggleRecording=Pause/Resume recording network log
+
+# LOCALIZATION NOTE (netmonitor.toolbar.search): This is the tooltip label displayed
+# in the network toolbar for the search button.
+netmonitor.toolbar.search=Search
+
+# LOCALIZATION NOTE (netmonitor.toolbar.HTTPCustomRequest): This is the tooltip label displayed
+# in the network toolbar for the new HTTP Custom Request button.
+netmonitor.toolbar.HTTPCustomRequest=New Request
+
+# LOCALIZATION NOTE (netmonitor.toolbar.resetColumns): This is the label
+# displayed in the network table header context menu.
+netmonitor.toolbar.resetColumns=Reset Columns
+
+# LOCALIZATION NOTE (netmonitor.toolbar.resetSorting): This is the label
+# displayed in the network table header context menu to reset sorting
+netmonitor.toolbar.resetSorting=Reset Sorting
+
+# LOCALIZATION NOTE (netmonitor.toolbar.resizeColumnToFitContent): This is the label
+# displayed in the network table header context menu to resize a column to fit its content
+netmonitor.toolbar.resizeColumnToFitContent=Resize Column To Fit Content
+
+# LOCALIZATION NOTE (netmonitor.toolbar.resizeColumnToFitContent.title): This is the title
+# tooltip displayed when draggable resizer in network table headers is hovered
+netmonitor.toolbar.resizeColumnToFitContent.title=Double-click to fit column to content
+
+# LOCALIZATION NOTE (netmonitor.toolbar.timings): This is the label
+# displayed in the network table header context menu for the timing submenu
+netmonitor.toolbar.timings=Timings
+
+# LOCALIZATION NOTE (netmonitor.toolbar.responseHeaders): This is the
+# label displayed in the network table header context menu for the
+# response headers submenu.
+netmonitor.toolbar.responseHeaders=Response Headers
+
+# LOCALIZATION NOTE (netmonitor.headers.toolbar.block): This is the
+# label displayed in the network details headers tab identifying the
+# block url toolbar button.
+netmonitor.headers.toolbar.block=Block
+
+# LOCALIZATION NOTE (netmonitor.headers.address): This is the label displayed
+# in the network details headers tab identifying the remote address.
+netmonitor.headers.address=Address
+
+# LOCALIZATION NOTE (netmonitor.headers.proxyAddress): This is the label displayed
+# in the network details headers tab identifying the proxy address.
+netmonitor.headers.proxyAddress=Proxy Address
+
+# LOCALIZATION NOTE (netmonitor.headers.status): This is the label displayed
+# in the network details headers tab identifying the status code.
+netmonitor.headers.status=Status
+
+# LOCALIZATION NOTE (netmonitor.headers.proxyStatus): This is the label displayed
+# in the network details headers tab identifying the status code for the proxy.
+netmonitor.headers.proxyStatus=Proxy Status
+
+# LOCALIZATION NOTE (netmonitor.headers.size): This is the label displayed
+# in the network details headers tab identifying the size.
+netmonitor.headers.size=Size
+
+# LOCALIZATION NOTE (networkMenu.headers.sizeDetails): This label is displayed
+# in the network details headers tab providing the size details.
+# %1$S is the transferred size, %2$S is the size.
+netmonitor.headers.sizeDetails=%1$S (%2$S size)
+
+# LOCALIZATION NOTE (netmonitor.headers.version): This is the label displayed
+# in the network details headers tab identifying the http version.
+netmonitor.headers.version=Version
+
+# LOCALIZATION NOTE (netmonitor.headers.proxyVersion): This is the label displayed
+# in the network details headers tab identifying the http version of the proxy.
+netmonitor.headers.proxyVersion=Proxy Version
+
+# LOCALIZATION NOTE (netmonitor.summary.learnMore): This is the label displayed
+# in the network details headers tab, with a link to external documentation for
+# status codes.
+netmonitor.summary.learnMore=Learn more about status code
+
+# LOCALIZATION NOTE (netmonitor.headers.referrerPolicy): This is the label displayed
+# in the network details headers tab identifying the referrer policy.
+netmonitor.headers.referrerPolicy=Referrer Policy
+
+# LOCALIZATION NOTE (netmonitor.headers.contentBlocking): This is the label displayed
+# in the network details headers tab identifying the content blocking mode.
+netmonitor.headers.contentBlocking=Blocking
+
+# LOCALIZATION NOTE (netmonitor.headers.requestPriority): This is the label displayed
+# in the network details headers tab identifying the request priority.
+netmonitor.headers.requestPriority=Request Priority
+
+# LOCALIZATION NOTE (netmonitor.headers.dns): This is the label displayed
+# in the network details headers tab identifying the DNS resolution.
+netmonitor.headers.dns=DNS Resolution
+
+# LOCALIZATION NOTE (netmonitor.headers.dns.basic): This is the label value displayed
+# in the network details headers tab identifying the Basic DNS resolution.
+netmonitor.headers.dns.basic=System
+
+# LOCALIZATION NOTE (netmonitor.headers.dns.doh): This is the label value displayed
+# in the network details headers tab identifying the DNS over HTTPS resolution.
+netmonitor.headers.dns.overHttps=DNS over HTTPS
+
+# LOCALIZATION NOTE (netmonitor.summary.editAndResend): This is the label displayed
+# on the button in the headers tab that opens a form to edit and resend the currently
+# displayed request
+netmonitor.summary.editAndResend=Edit and Resend
+
+# LOCALIZATION NOTE (netmonitor.headers.raw): This is the label displayed
+# on the button in the headers tab that toggle view for raw request/response headers
+# from the currently displayed request
+netmonitor.headers.raw=Raw
+
+# LOCALIZATION NOTE (netmonitor.headers.blockedByCORS): This is the message displayed
+# in the notification shown when a request has been blocked by CORS with a more
+# specific reason shown in the parenthesis
+netmonitor.headers.blockedByCORS=Response body is not available to scripts (Reason: %S)
+
+#LOCALIZATION NOTE (netmonitor.headers.blockedByCORSTooltip): This is the tooltip
+# displayed on the learnmore link of the blocked by CORS notification.
+netmonitor.headers.blockedByCORSTooltip=Learn more about this CORS error
+
+# LOCALIZATION NOTE (netmonitor.response.name): This is the label displayed
+# in the network details response tab identifying an image's file name or font face's name.
+netmonitor.response.name=Name:
+
+# LOCALIZATION NOTE (netmonitor.response.dimensions): This is the label displayed
+# in the network details response tab identifying an image's dimensions.
+netmonitor.response.dimensions=Dimensions:
+
+# LOCALIZATION NOTE (netmonitor.response.mime): This is the label displayed
+# in the network details response tab identifying an image's or font's MIME type.
+netmonitor.response.mime=MIME Type:
+
+# LOCALIZATION NOTE (netmonitor.response.fontPreviewFailed): This is the notice displayed
+# in the network details response tab if the font preview could not be generated due to
+# an error.
+netmonitor.response.fontPreviewFailed=Font preview could not be generated
+
+# LOCALIZATION NOTE (netmonitor.timings.blocked): This is the label displayed
+# in the network details timings tab identifying the amount of time spent
+# in a "blocked" state.
+netmonitor.timings.blocked=Blocked:
+
+# LOCALIZATION NOTE (netmonitor.timings.dns): This is the label displayed
+# in the network details timings tab identifying the amount of time spent
+# in a "dns" state.
+netmonitor.timings.dns=DNS Resolution:
+
+# LOCALIZATION NOTE (netmonitor.timings.ssl): This is the label displayed
+# in the network details timings tab identifying the amount of time spent
+# in a "tls" handshake state.
+netmonitor.timings.ssl=TLS Setup:
+
+# LOCALIZATION NOTE (netmonitor.timings.connect): This is the label displayed
+# in the network details timings tab identifying the amount of time spent
+# in a "connect" state.
+netmonitor.timings.connect=Connecting:
+
+# LOCALIZATION NOTE (netmonitor.timings.send): This is the label displayed
+# in the network details timings tab identifying the amount of time spent
+# in a "send" state.
+netmonitor.timings.send=Sending:
+
+# LOCALIZATION NOTE (netmonitor.timings.wait): This is the label displayed
+# in the network details timings tab identifying the amount of time spent
+# in a "wait" state.
+netmonitor.timings.wait=Waiting:
+
+# LOCALIZATION NOTE (netmonitor.timings.receive): This is the label displayed
+# in the network details timings tab identifying the amount of time spent
+# in a "receive" state.
+netmonitor.timings.receive=Receiving:
+
+# LOCALIZATION NOTE (netmonitor.timings.learnMore): This is the label displayed
+# in the network details timings tab, with a link to external documentation
+netmonitor.timings.learnMore=Learn more about timings
+
+# LOCALIZATION NOTE (netmonitor.audits.slowIconTooltip): This is the tooltip text displayed
+# in the network request list file column, on the slow icon button.
+# %1$S is the waiting time %2$S is the slow threshold.
+netmonitor.audits.slowIconTooltip=Slow server response time (%1$S). The recommended limit is %2$S.
+
+# LOCALIZATION NOTE (netmonitor.security.warning.cipher): A tooltip
+# for warning icon that indicates a connection uses insecure cipher suite.
+netmonitor.security.warning.cipher=The cipher used for encryption is deprecated and insecure.
+
+# LOCALIZATION NOTE (netmonitor.security.error): This is the label displayed
+# in the security tab if a security error prevented the connection.
+netmonitor.security.error=An error occurred:
+
+# LOCALIZATION NOTE (netmonitor.security.protocolVersion): This is the label displayed
+# in the security tab describing TLS/SSL protocol version.
+netmonitor.security.protocolVersion=Protocol version:
+
+# LOCALIZATION NOTE (netmonitor.security.cipherSuite): This is the label displayed
+# in the security tab describing the cipher suite used to secure this connection.
+netmonitor.security.cipherSuite=Cipher suite:
+
+# LOCALIZATION NOTE (netmonitor.security.keaGroup): This is the label displayed
+# in the security tab describing the key exchange group suite used to secure
+# this connection.
+netmonitor.security.keaGroup=Key Exchange Group:
+
+# LOCALIZATION NOTE (netmonitor.security.keaGroup.none): This is the label
+# displayed in the security tab describing the case when no group was used.
+netmonitor.security.keaGroup.none=none
+
+# LOCALIZATION NOTE (netmonitor.security.keaGroup.custom): This is the label
+# displayed in the security tab describing the case when a custom group was used.
+netmonitor.security.keaGroup.custom=custom
+
+# LOCALIZATION NOTE (netmonitor.security.keaGroup.unknown): This is the value
+# displayed in the security tab describing an unknown group.
+netmonitor.security.keaGroup.unknown=unknown group
+
+# LOCALIZATION NOTE (netmonitor.security.signatureScheme): This is the label
+# displayed in the security tab describing the signature scheme used by for
+# the server certificate in this connection.
+netmonitor.security.signatureScheme=Signature Scheme:
+
+# LOCALIZATION NOTE (netmonitor.security.signatureScheme.none): This is the
+# label displayed in the security tab describing the case when no signature
+# was used.
+netmonitor.security.signatureScheme.none=none
+
+# LOCALIZATION NOTE (netmonitor.security.signatureScheme.unknown): This is the
+# value displayed in the security tab describing an unknown signature scheme.
+netmonitor.security.signatureScheme.unknown=unknown signature scheme
+
+# LOCALIZATION NOTE (netmonitor.security.hsts): This is the label displayed
+# in the security tab describing the usage of HTTP Strict Transport Security.
+netmonitor.security.hsts=HTTP Strict Transport Security:
+
+# LOCALIZATION NOTE (netmonitor.security.hpkp): This is the label displayed
+# in the security tab describing the usage of Public Key Pinning.
+netmonitor.security.hpkp=Public Key Pinning:
+
+# LOCALIZATION NOTE (netmonitor.security.connection): This is the label displayed
+# in the security tab describing the section containing information related to
+# the secure connection.
+netmonitor.security.connection=Connection:
+
+# LOCALIZATION NOTE (netmonitor.security.certificate): This is the label displayed
+# in the security tab describing the server certificate section.
+netmonitor.security.certificate=Certificate:
+
+# LOCALIZATION NOTE (netmonitor.trackingResource.tooltip): This is the label used
+# in the Network monitor panel as a tooltip for tracking resource icon.
+netmonitor.trackingResource.tooltip=This URL matches a known tracker and it would be blocked with Content Blocking enabled.
+
+# LOCALIZATION NOTE (netmonitor.trackingResource.enhancedTrackingProtection): This is
+# the label used in the Network monitor panel for showing enhanced tracking protection.
+netmonitor.trackingResource.enhancedTrackingProtection=Enhanced Tracking Protection
+
+# LOCALIZATION NOTE (netmonitor.enhancedTrackingProtection.learnMore): This is the label
+# displayed in the network details headers tab, with a link to external documentation for
+# enhanced tracking protection.
+netmonitor.enhancedTrackingProtection.learnMore=Learn more about enhanced tracking protection
+
+# LOCALIZATION NOTE (netmonitor.context.copyValue): This is the label displayed
+# for the copy sub-menu in the context menu for a request
+netmonitor.context.copyValue=Copy Value
+
+# LOCALIZATION NOTE (netmonitor.context.copyValue.accesskey): This is the access key
+# for the copy menu/sub-menu displayed in the context menu for a request
+netmonitor.context.copyValue.accesskey=C
+
+# LOCALIZATION NOTE (netmonitor.context.copyUrl): This is the label displayed
+# on the context menu that copies the selected request's url
+netmonitor.context.copyUrl=Copy URL
+
+# LOCALIZATION NOTE (netmonitor.context.copyUrl.accesskey): This is the access key
+# for the Copy URL menu item displayed in the context menu for a request
+netmonitor.context.copyUrl.accesskey=U
+
+# LOCALIZATION NOTE (netmonitor.context.copyUrlParams): This is the label displayed
+# on the context menu that copies the selected request's url parameters
+netmonitor.context.copyUrlParams=Copy URL Parameters
+
+# LOCALIZATION NOTE (netmonitor.context.copyUrlParams.accesskey): This is the access key
+# for the Copy URL Parameters menu item displayed in the context menu for a request
+netmonitor.context.copyUrlParams.accesskey=P
+
+# LOCALIZATION NOTE (netmonitor.context.copyRequestData): This is the label displayed
+# on the context menu that copies the selected request's data
+netmonitor.context.copyRequestData=Copy %S Data
+
+# LOCALIZATION NOTE (netmonitor.context.copyRequestData.accesskey): This is the access key
+# for the Copy POST/PATCH/PUT/DELETE Data menu item displayed in the context menu for a request
+netmonitor.context.copyRequestData.accesskey=D
+
+# LOCALIZATION NOTE (netmonitor.context.copyAsPowerShell): This is the label displayed
+# on the context menu that copies the selected request as a PowerShell command.
+netmonitor.context.copyAsPowerShell=Copy as PowerShell
+
+# LOCALIZATION NOTE (netmonitor.context.copyAsPowerShell.accesskey): This is the access key
+# for the Copy as PowerShell menu item displayed in the context menu for a request
+netmonitor.context.copyAsPowerShell.accesskey=S
+
+# LOCALIZATION NOTE (netmonitor.context.copyAsCurl): This is the label displayed
+# on the context menu that copies the selected request as a cURL command.
+# The capitalization is part of the official name and should be used throughout all languages.
+# http://en.wikipedia.org/wiki/CURL
+netmonitor.context.copyAsCurl=Copy as cURL
+
+# LOCALIZATION NOTE (netmonitor.context.copyAsCurl.accesskey): This is the access key
+# for the Copy as cURL menu item displayed in the context menu for a request
+netmonitor.context.copyAsCurl.accesskey=C
+
+# LOCALIZATION NOTE (netmonitor.context.copyAsCurl.*): This is the template used to add
+# a target platform to the label for "Copy as cURL" command
+# e.g. Copy as cURL (Windows)
+# Localized label for "Copy as cURL": %S
+netmonitor.context.copyAsCurl.win=%S (Windows)
+netmonitor.context.copyAsCurl.win.accesskey=C
+netmonitor.context.copyAsCurl.posix=%S (POSIX)
+netmonitor.context.copyAsCurl.posix.accesskey=P
+
+# LOCALIZATION NOTE (netmonitor.context.copyAsFetch): This is the label displayed
+# on the context menu that copies the selected request as a fetch request.
+netmonitor.context.copyAsFetch=Copy as Fetch
+
+# LOCALIZATION NOTE (netmonitor.context.copyAsFetch.accesskey): This is the access key
+# for the Copy as fetch menu item displayed in the context menu for a request
+netmonitor.context.copyAsFetch.accesskey=F
+
+# LOCALIZATION NOTE (netmonitor.context.copyRequestHeaders): This is the label displayed
+# on the context menu that copies the selected item's request headers
+netmonitor.context.copyRequestHeaders=Copy Request Headers
+
+# LOCALIZATION NOTE (netmonitor.context.copyRequestHeaders.accesskey): This is the access key
+# for the Copy Request Headers menu item displayed in the context menu for a request
+netmonitor.context.copyRequestHeaders.accesskey=q
+
+# LOCALIZATION NOTE (netmonitor.context.copyResponseHeaders): This is the label displayed
+# on the context menu that copies the selected item's response headers
+netmonitor.context.copyResponseHeaders=Copy Response Headers
+
+# LOCALIZATION NOTE (netmonitor.context.copyResponseHeaders.accesskey): This is the access key
+# for the Copy Response Headers menu item displayed in the context menu for a response
+netmonitor.context.copyResponseHeaders.accesskey=s
+
+# LOCALIZATION NOTE (netmonitor.context.copyResponse): This is the label displayed
+# on the context menu that copies the selected response as a string
+netmonitor.context.copyResponse=Copy Response
+
+# LOCALIZATION NOTE (netmonitor.context.copyResponse.accesskey): This is the access key
+# for the Copy Response menu item displayed in the context menu for a request
+netmonitor.context.copyResponse.accesskey=R
+
+# LOCALIZATION NOTE (netmonitor.context.copyImageAsDataUri): This is the label displayed
+# on the context menu that copies the selected image as data uri
+netmonitor.context.copyImageAsDataUri=Copy Image as Data URI
+
+# LOCALIZATION NOTE (netmonitor.context.copyImageAsDataUri.accesskey): This is the access key
+# for the Copy Image As Data URI menu item displayed in the context menu for a request
+netmonitor.context.copyImageAsDataUri.accesskey=I
+
+# LOCALIZATION NOTE (netmonitor.context.useAsFetch): This is the label displayed
+# on the context menu that copies the selected request as a fetch command.
+netmonitor.context.useAsFetch=Use as Fetch in Console
+
+# LOCALIZATION NOTE (netmonitor.context.useAsFetch.accesskey): This is the access key
+# for the Copy as fetch menu item displayed in the context menu for a request
+netmonitor.context.useAsFetch.accesskey=F
+
+# LOCALIZATION NOTE (netmonitor.context.saveImageAs): This is the label displayed
+# on the context menu that save the Image
+netmonitor.context.saveImageAs=Save Image As
+
+# LOCALIZATION NOTE (netmonitor.context.saveImageAs.accesskey): This is the access key
+# for the Copy Image As Data URI menu item displayed in the context menu for a request
+netmonitor.context.saveImageAs.accesskey=v
+
+# LOCALIZATION NOTE (netmonitor.context.copyAll): This is the label displayed
+# on the context menu that copies all data
+netmonitor.context.copyAll=Copy All
+
+# LOCALIZATION NOTE (netmonitor.context.copyAll.accesskey): This is the access key
+# for the Copy All menu item displayed in the context menu for a properties view panel
+netmonitor.context.copyAll.accesskey=A
+
+# LOCALIZATION NOTE (netmonitor.context.copyAllAsHar): This is the label displayed
+# on the context menu that copies all as HAR format
+netmonitor.context.copyAllAsHar=Copy All As HAR
+
+# LOCALIZATION NOTE (netmonitor.context.copyAllAsHar.accesskey): This is the access key
+# for the Copy All As HAR menu item displayed in the context menu for a network panel
+netmonitor.context.copyAllAsHar.accesskey=o
+
+# LOCALIZATION NOTE (netmonitor.context.saveAllAsHar): This is the label displayed
+# on the context menu that saves all as HAR format
+netmonitor.context.saveAllAsHar=Save All As HAR
+
+# LOCALIZATION NOTE (netmonitor.context.saveAllAsHar.accesskey): This is the access key
+# for the Save All As HAR menu item displayed in the context menu for a network panel
+netmonitor.context.saveAllAsHar.accesskey=H
+
+# LOCALIZATION NOTE (netmonitor.context.importHar.accesskey): This is the access key
+# for the Import HAR menu item displayed in the context menu for a network panel
+netmonitor.context.importHar.accesskey=I
+
+# LOCALIZATION NOTE (netmonitor.har.importHarDialogTitle): This is a label
+# used for import file open dialog
+netmonitor.har.importHarDialogTitle=Import HAR File
+
+# LOCALIZATION NOTE (netmonitor.har.importDialogHARFilter):
+# This string is displayed as a filter for importing HAR file
+netmonitor.har.importDialogHARFilter=HAR Files
+
+# LOCALIZATION NOTE (netmonitor.har.importDialogAllFilter):
+# This string is displayed as a filter for importing HAR file
+netmonitor.har.importDialogAllFilter=All Files
+
+# LOCALIZATION NOTE (netmonitor.context.resend.label): This is the label displayed
+# on the context menu that resends the currently displayed request immediately
+netmonitor.context.resend.label=Resend
+
+# LOCALIZATION NOTE (netmonitor.context.resend.accesskey): This is the access key
+# for the "Resend" menu item displayed in the context menu for a request
+netmonitor.context.resend.accesskey=n
+
+# LOCALIZATION NOTE (netmonitor.context.editAndResend): This is the label displayed
+# on the context menu that opens a form to edit and resend the currently
+# displayed request
+netmonitor.context.editAndResend=Edit and Resend
+
+# LOCALIZATION NOTE (netmonitor.context.editAndResend.accesskey): This is the access key
+# for the "Edit and Resend" menu item displayed in the context menu for a request
+netmonitor.context.editAndResend.accesskey=E
+
+# LOCALIZATION NOTE (netmonitor.context.blockURL): This is the label displayed
+# on the context menu that blocks any requests matching the selected request's URL.
+netmonitor.context.blockURL=Block URL
+
+# LOCALIZATION NOTE (netmonitor.context.unblockURL): This is the label displayed
+# on the context menu that unblocks any requests matching the selected request's URL.
+netmonitor.context.unblockURL=Unblock URL
+
+# LOCALIZATION NOTE (netmonitor.context.newTab): This is the label
+# for the Open in New Tab menu item displayed in the context menu of the
+# network container
+netmonitor.context.newTab=Open in New Tab
+
+# LOCALIZATION NOTE (netmonitor.context.newTab.accesskey): This is the access key
+# for the Open in New Tab menu item displayed in the context menu of the
+# network container
+netmonitor.context.newTab.accesskey=T
+
+# LOCALIZATION NOTE (netmonitor.context.openInDebugger): This is the label
+# for the Open in Debugger menu item displayed in the context menu of the
+# network container
+netmonitor.context.openInDebugger=Open in Debugger
+
+# LOCALIZATION NOTE (netmonitor.context.openInDebugger.accesskey): This is the access key
+# for the Open in Debugger menu item displayed in the context menu of the
+# network container
+netmonitor.context.openInDebugger.accesskey=D
+
+# LOCALIZATION NOTE (netmonitor.context.openInStyleEditor): This is the label
+# for the Open in Style Editor menu item displayed in the context menu of the
+# network container
+netmonitor.context.openInStyleEditor=Open in Style Editor
+
+# LOCALIZATION NOTE (netmonitor.context.openInStyleEditor.accesskey): This is
+# the access key for the Open in Style Editor menu item displayed in the
+# context menu of the network container
+netmonitor.context.openInStyleEditor.accesskey=S
+
+# LOCALIZATION NOTE (netmonitor.context.perfTools): This is the label displayed
+# on the context menu that shows the performance analysis tools
+netmonitor.context.perfTools=Start Performance Analysis…
+
+# LOCALIZATION NOTE (netmonitor.context.perfTools.accesskey): This is the access key
+# for the performance analysis menu item displayed in the context menu for a request
+netmonitor.context.perfTools.accesskey=A
+
+# LOCALIZATION NOTE (netmonitor.custom.newRequest): This is the label displayed
+# as the title of the new custom request form
+netmonitor.custom.newRequest=New Request
+
+# LOCALIZATION NOTE (netmonitor.custom.newRequestMethodLabel): This is the label displayed
+# above the method text input field of the new custom request form
+netmonitor.custom.newRequestMethodLabel=Method
+
+# LOCALIZATION NOTE (netmonitor.custom.newRequestUrlLabel): This is the label displayed
+# above the url text input field of the new custom request form
+netmonitor.custom.newRequestUrlLabel=URL
+
+# LOCALIZATION NOTE (netmonitor.custom.query): This is the label displayed
+# above the query string entry in the custom request form
+netmonitor.custom.query=Query String
+
+# LOCALIZATION NOTE (netmonitor.custom.urlParameters): This is the label displayed
+# above the query string entry in the custom request form
+netmonitor.custom.urlParameters=URL Parameters
+
+# LOCALIZATION NOTE (netmonitor.custom.headers): This is the label displayed
+# above the request headers entry in the custom request form
+netmonitor.custom.headers=Request Headers
+
+# LOCALIZATION NOTE (netmonitor.custom.newRequestHeaders): This is the label displayed
+# above the request headers entry in the new custom request form
+netmonitor.custom.newRequestHeaders=Headers
+
+# LOCALIZATION NOTE (netmonitor.custom.placeholder.name): This is the placeholder displayed
+# on the input on the headers and query params on new custom request form
+netmonitor.custom.placeholder.name=name
+
+# LOCALIZATION NOTE (netmonitor.custom.placeholder.value): This is the placeholder displayed
+# on the input on the headers and query params on new custom request form
+netmonitor.custom.placeholder.value=value
+
+# LOCALIZATION NOTE (netmonitor.custom.postBody): This is the label displayed
+# above the request body entry in the new custom request form
+netmonitor.custom.postBody=Body
+
+# LOCALIZATION NOTE (netmonitor.custom.postBody.placeholder): This is the placeholder displayed
+# on the textarea body in the new custom request form
+netmonitor.custom.postBody.placeholder=payload
+
+# LOCALIZATION NOTE (netmonitor.custom.postData): This is the label displayed
+# above the request body entry in the custom request form
+netmonitor.custom.postData=Request Body
+
+# LOCALIZATION NOTE (netmonitor.custom.send): This is the label displayed
+# on the button which sends the custom request
+netmonitor.custom.send=Send
+
+# LOCALIZATION NOTE (netmonitor.custom.cancel): This is the label displayed
+# on the button which cancels and closes the custom request form
+netmonitor.custom.cancel=Cancel
+
+# LOCALIZATION NOTE (netmonitor.custom.clear): This is the label displayed
+# on the button which clears the content of the new custom request panel
+netmonitor.custom.clear=Clear
+
+# LOCALIZATION NOTE (netmonitor.custom.removeItem): This is the
+# tooltip shown over the remove button for headers and query params item
+netmonitor.custom.removeItem=Remove item
+
+# LOCALIZATION NOTE (netmonitor.backButton): This is the label displayed
+# on the button which exists the performance statistics view
+netmonitor.backButton=Back
+
+# LOCALIZATION NOTE (netmonitor.status.tooltip.simple): This is the tooltip of the
+# column status code, when request is not being cached or is not from a service worker
+# %1$S is the status code, %2$S is the status text.
+netmonitor.status.tooltip.simple = %1$S %2$S
+
+# LOCALIZATION NOTE (netmonitor.status.tooltip.cached): This is the tooltip of
+# the column status code, when the request is cached
+# %1$S is the status code, %2$S is the status text.
+netmonitor.status.tooltip.cached = %1$S %2$S (cached)
+
+# LOCALIZATION NOTE (netmonitor.status.tooltip.worker): This is the tooltip of
+# the column status code, when the request is from a service worker
+# %1$S is the status code, %2$S is the status text.
+netmonitor.status.tooltip.worker = %1$S %2$S (service worker)
+
+# LOCALIZATION NOTE (netmonitor.status.tooltip.cachedworker): This is the tooltip
+# of the column status code, when the request is cached and is from a service worker
+# %1$S is the status code, %2$S is the status text.
+netmonitor.status.tooltip.cachedworker = %1$S %2$S (cached, service worker)
+
+# LOCALIZATION NOTE (netmonitor.label.dropHarFiles): This is a label
+# rendered within the Network panel when *.har file(s) are dragged
+# over the content.
+netmonitor.label.dropHarFiles = Drop HAR files here
+
+# LOCALIZATION NOTE (netmonitor.label.har): This is a label used
+# as a tooltip for toolbar drop-down button with HAR actions
+netmonitor.label.har=HAR Export/Import
+
+# LOCALIZATION NOTE (netmonitor.cache.cache): This is the label text for the parent
+# node in the TreeView.
+netmonitor.cache.cache=Cache
+
+# LOCALIZATION NOTE (netmonitor.cache.empty): This is the text displayed when cache
+# information is not available.
+netmonitor.cache.empty=No cache information
+
+# LOCALIZATION NOTE (netmonitor.cache.notAvailable): This is the text displayed under
+# a node that has no information available.
+netmonitor.cache.notAvailable=Not Available
+
+# LOCALIZATION NOTE (netmonitor.cache.dataSize): This is the label text for
+# the datasize of the cached object.
+netmonitor.cache.dataSize=Data Size
+
+# LOCALIZATION NOTE (netmonitor.cache.expires): This is the label text for the
+# expires time of the cached object.
+netmonitor.cache.expires=Expires
+
+# LOCALIZATION NOTE (netmonitor.cache.fetchCount): This is the label text for the
+# fetch count of the cached object.
+netmonitor.cache.fetchCount=Fetch Count
+
+# LOCALIZATION NOTE (netmonitor.cache.lastFetched): This is the label text for the
+# last fetched date/time of the cached object.
+netmonitor.cache.lastFetched=Last Fetched
+
+# LOCALIZATION NOTE (netmonitor.cache.lastModified): This is the label text for the
+# last modified date/time of the cached object.
+netmonitor.cache.lastModified=Last Modified
+
+# LOCALIZATION NOTE (netmonitor.cache.device): This is the label text for the device
+# where a cached object was fetched from (e.g. "disk").
+netmonitor.cache.device=Device
+
+# LOCALIZATION NOTE (netmonitor.settings.menuTooltip): This is the tooltip that gets displayed
+# when the settings menu button is hovered.
+netmonitor.settings.menuTooltip=Network Settings
+
+# LOCALIZATION NOTE (netmonitor.settings.importHarTooltip): This is the tooltip that gets displayed
+# when the HAR import menu item is hovered
+netmonitor.settings.importHarTooltip=Import a HAR file of network data
+
+# LOCALIZATION NOTE (netmonitor.settings.saveHarTooltip): This is the tooltip that gets displayed
+# when the HAR save menu item is hovered
+netmonitor.settings.saveHarTooltip=Save network data to HAR file
+
+# LOCALIZATION NOTE (netmonitor.settings.copyHarTooltip): This is the tooltip that gets displayed
+# when the HAR copy menu item is hovered
+netmonitor.settings.copyHarTooltip=Copy network data to the clipboard
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/network-throttling.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/network-throttling.properties
new file mode 100644
index 0000000000..b7e5933375
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/network-throttling.properties
@@ -0,0 +1,27 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the NetworkThrottlingMenu
+# component used to throttle network bandwidth.
+#
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (responsive.noThrottling): UI option in a menu to configure
+# network throttling. This option is the default and disables throttling so you
+# just have normal network conditions. There is not very much room in the UI
+# so a short string would be best if possible.
+responsive.noThrottling=No Throttling
+
+# LOCALIZATION NOTE (throttling.profile.description): Tooltip for the throttling
+# menu button, which gives details about the currently selected profile.
+# %1$S: Download speed value (number)
+# %2$S: Download speed unit (eg "Kbps", "Mbps")
+# %3$S: Upload speed value (number)
+# %4$S: Upload speed unit (eg "Kbps", "Mbps")
+# %5$S: Latency value, (number, in ms)
+throttling.profile.description = download %1$S%2$S, upload %3$S%4$S, latency %5$Sms
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/responsive.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/responsive.properties
new file mode 100644
index 0000000000..5ae29b9a5d
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/responsive.properties
@@ -0,0 +1,182 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Responsive Design Mode,
+# available from the Web Developer sub-menu -> 'Responsive Design Mode'.
+#
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE These strings are used inside the Responsive Design Mode,
+# available from the Browser Tools sub-menu -> 'Responsive Design Mode'.
+#
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (responsive.editDeviceList2): Context menu item displayed in the
+# device selector.
+responsive.editDeviceList2=Edit List…
+
+# LOCALIZATION NOTE (responsive.exit): Tooltip text of the exit button.
+responsive.exit=Close Responsive Design Mode
+
+# LOCALIZATION NOTE (responsive.rotate): Tooltip text of the rotate button.
+responsive.rotate=Rotate viewport
+
+# LOCALIZATION NOTE (responsive.responsiveMode): Placeholder text for the
+# device selector.
+responsive.responsiveMode=Responsive
+
+# LOCALIZATION NOTE (responsive.enableTouch): Tooltip text for the touch
+# simulation button when it's disabled.
+responsive.enableTouch=Enable touch simulation
+
+# LOCALIZATION NOTE (responsive.disableTouch): Tooltip text for the touch
+# simulation button when it's enabled.
+responsive.disableTouch=Disable touch simulation
+
+# LOCALIZATION NOTE (responsive.screenshot): Tooltip of the screenshot button.
+responsive.screenshot=Take a screenshot of the viewport
+
+# LOCALIZATION NOTE (responsive.screenshotGeneratedFilename): The auto generated
+# filename.
+# The first argument (%1$S) is the date string in yyyy-mm-dd format and the
+# second argument (%2$S) is the time string in HH.MM.SS format.
+responsive.screenshotGeneratedFilename=Screen Shot %1$S at %2$S
+
+# LOCALIZATION NOTE (responsive.remoteOnly): Message displayed in the tab's
+# notification box if a user tries to open Responsive Design Mode in a
+# non-remote tab.
+responsive.remoteOnly=Responsive Design Mode is only available for remote browser tabs, such as those used for web content in multi-process Firefox.
+
+# LOCALIZATION NOTE (responsive.changeDevicePixelRatio): Tooltip for the
+# device pixel ratio dropdown when is enabled.
+responsive.changeDevicePixelRatio=Change device pixel ratio of the viewport
+
+# LOCALIZATION NOTE (responsive.devicePixelRatio.auto): Tooltip for the device pixel ratio
+# dropdown when it is disabled because a device is selected.
+# The argument (%1$S) is the selected device (e.g. iPhone 6) that set
+# automatically the device pixel ratio value.
+responsive.devicePixelRatio.auto=Device pixel ratio automatically set by %1$S
+
+# LOCALIZATION NOTE (responsive.customDeviceName): Default value in a form to
+# add a custom device based on an arbitrary size (no association to an existing
+# device).
+responsive.customDeviceName=Custom Device
+
+# LOCALIZATION NOTE (responsive.customDeviceNameFromBase): Default value in a
+# form to add a custom device based on the properties of another. %1$S is the
+# name of the device we're staring from, such as "Apple iPhone 6".
+responsive.customDeviceNameFromBase=%1$S (Custom)
+
+# LOCALIZATION NOTE (responsive.addDevice2): Button text that reveals a form to
+# be used for adding custom devices.
+responsive.addDevice2=Add Custom Device…
+
+# LOCALIZATION NOTE (responsive.deviceAdderName): Label of form field for the
+# name of a new device.
+responsive.deviceAdderName=Name
+
+# LOCALIZATION NOTE (responsive.deviceAdderSize): Label of form field for the
+# size of a new device.
+responsive.deviceAdderSize=Size
+
+# LOCALIZATION NOTE (responsive.deviceAdderPixelRatio2): Label of form field for
+# the device pixel ratio of a new device.
+responsive.deviceAdderPixelRatio2=Device Pixel Ratio
+
+# LOCALIZATION NOTE (responsive.deviceAdderUserAgent2): Label of form field for
+# the user agent of a new device.
+responsive.deviceAdderUserAgent2=User Agent String
+
+# LOCALIZATION NOTE (responsive.deviceAdderTouch2): Label of form field for the
+# touch input support of a new device.
+responsive.deviceAdderTouch2=Touch Screen
+
+# LOCALIZATION NOTE (responsive.deviceAdderSave): Button text that submits a
+# form to add a new device.
+responsive.deviceAdderSave=Save
+
+# LOCALIZATION NOTE (responsive.deviceAdderCancel): Button text that cancels a
+# form to add a new device.
+responsive.deviceAdderCancel=Cancel
+
+# LOCALIZATION NOTE (responsive.deviceDetails): Tooltip that appears when
+# hovering on a device in the device modal. %1$S is the width of the device.
+# %2$S is the height of the device. %3$S is the device pixel ratio value of the
+# device. %4$S is the user agent of the device. %5$S is a boolean value
+# noting whether touch input is supported.
+responsive.deviceDetails=Size: %1$S x %2$S\nDPR: %3$S\nUA: %4$S\nTouch: %5$S
+
+# LOCALIZATION NOTE (responsive.deviceDetails.browserAndOS): Used to display the browser
+# and the OS in a tooltip that appears when hovering on a device in the device modal.
+# %1$S: browser
+# %2$S: OS
+responsive.deviceDetails.browserAndOS=%1$S on %2$S
+
+# LOCALIZATION NOTE (responsive.deviceDetails.size): Used to display the pixel
+# size in a tooltip that appears when hovering on a device in the device modal.
+# %1$S: width
+# %2$S: height
+responsive.deviceDetails.size=Size: %1$S x %2$S
+
+# LOCALIZATION NOTE (responsive.deviceDetails.DPR): Used to display the DPR in a tooltip
+# that appears when hovering on a device in the device modal.
+# %1$S: device pixel ratio
+responsive.deviceDetails.DPR=DPR: %1$S
+
+# LOCALIZATION NOTE (responsive.deviceDetails.UA): Used to display the UA in a tooltip
+# that appears when hovering on a device in the device modal.
+# %1$S: user agent
+responsive.deviceDetails.UA=UA: %1$S
+
+# LOCALIZATION NOTE (responsive.deviceDetails.touch): Used to display a boolean value
+# which is whether the touch input is supported or not in a tooltip that appears when
+# hovering on a device in the device modal.
+# %1$S: touch
+responsive.deviceDetails.touch=Touch: %1$S
+
+# LOCALIZATION NOTE (responsive.devicePixelRatioOption): UI option in a menu to configure
+# the device pixel ratio. %1$S is the devicePixelRatio value of the device.
+responsive.devicePixelRatioOption=DPR: %1$S
+
+# LOCALIZATION NOTE (responsive.reloadConditions.touchSimulation): Label on checkbox used
+# to select whether to reload when touch simulation is toggled.
+responsive.reloadConditions.touchSimulation=Reload when touch simulation is toggled
+
+# LOCALIZATION NOTE (responsive.reloadConditions.userAgent): Label on checkbox used
+# to select whether to reload when user agent is changed.
+responsive.reloadConditions.userAgent=Reload when user agent is changed
+
+# LOCALIZATION NOTE (responsive.reloadNotification.description2): Text in notification bar
+# shown on first open to clarify that some features need a reload to apply.
+responsive.reloadNotification.description2=Device simulation changes require a reload to fully apply. Automatic reloads are disabled by default to avoid losing any changes in DevTools. You can enable reloading via the Settings menu.
+
+# LOCALIZATION NOTE (responsive.leftAlignViewport): Label on checkbox used in the settings
+# menu.
+responsive.leftAlignViewport=Left-align Viewport
+
+# LOCALIZATION NOTE (responsive.customUserAgent): This is the placeholder for the user
+# agent input in the responsive design mode toolbar.
+responsive.customUserAgent=Custom User Agent
+
+responsive.showUserAgentInput=Show user agent
+
+# LOCALIZATION NOTE (responsive.deviceSettings): The header text for the device settings
+# view.
+responsive.deviceSettings=Device Settings
+
+# LOCALIZATION NOTE (responsive.deviceNameAlreadyInUse): This is the text shown when adding a new
+# device with an already existing device name.
+responsive.deviceNameAlreadyInUse=Device name already in use
+
+# LOCALIZATION NOTE (responsive.deviceFormUpdate): Button text that updates a custom
+# device when the form is submitted.
+responsive.deviceFormUpdate=Update
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/shared.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/shared.properties
new file mode 100644
index 0000000000..33dd145445
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/shared.properties
@@ -0,0 +1,26 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (dimensions): This is used to display the dimensions
+# of a node or image, like 100×200.
+dimensions=%S\u00D7%S
+
+# LOCALIZATION NOTE (boxModelSize.accessibleLabel): This is used to read the
+# dimensions of a node by a screen reader. This helps communicate
+# the visual information in a more explicit form. Example:
+# Size: Width 100, height 200.
+boxModelSize.accessibleLabel=Size: Width %1$S, height %2$S
+
+# LOCALIZATION NOTE (boxModelInfo.accessibleLabel): This is used to read the
+# dimensions and position of a node by a screen reader. This helps communicate
+# the visual information in a more explicit form. Example:
+# Dimensions: Width 100, height 200, position static.
+boxModelInfo.accessibleLabel=Dimensions: Width %1$S, height %2$S, position %3$S
+
+# LOCALIZATION NOTE (boxModelEditable.accessibleLabel): The string spoken by
+# screen readers for each button in the box model view that opens that property
+# for editing. %1$S is the property displayed in the tooltip when hovering.
+# %2$S is the value that is visually displayed.
+# Example: margin-left: 0.
+boxModelEditable.accessibleLabel=%1$S: %2$S
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/sourceeditor.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/sourceeditor.properties
new file mode 100644
index 0000000000..0d4bd64f89
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/sourceeditor.properties
@@ -0,0 +1,117 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Source Editor component.
+# This component is used whenever source code is displayed for the purpose of
+# being edited, inside the Firefox developer tools - current examples are the
+# Scratchpad and the Style Editor tools.
+
+# LOCALIZATION NOTE These strings are used inside the Source Editor component.
+# This component is used whenever source code is displayed for the purpose of
+# being edited, inside the Firefox developer tools (like Style Editor).
+
+# LOCALIZATION NOTE The correct localization of this file might be to keep it
+# in English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best documentation
+# on web development on the web.
+
+# LOCALIZATION NOTE (findCmd.promptMessage): This is the message shown when
+# the user wants to search for a string in the code. You can
+# access this feature by pressing Ctrl-F on Windows/Linux or Cmd-F on Mac.
+findCmd.promptMessage=Search for:
+
+# LOCALIZATION NOTE (gotoLineCmd.promptTitle): This is the dialog title used
+# when the user wants to jump to a specific line number in the code. You can
+# access this feature by pressing Ctrl-J on Windows/Linux or Cmd-J on Mac.
+gotoLineCmd.promptTitle=Go to line…
+
+# LOCALIZATION NOTE (autocompletion.docsLink): This is the text shown on
+# the link inside of the documentation popup. If you type 'document' in Scratchpad
+# then press Shift+Space you can see the popup.
+autocompletion.docsLink=docs
+
+# LOCALIZATION NOTE (autocompletion.notFound): This is the text shown in
+# the documentation popup if Tern fails to find a type for the object.
+autocompletion.notFound=not found
+
+# LOCALIZATION NOTE (jumpToLine.commandkey): This is the key to use in
+# conjunction with accel (Command on Mac or Ctrl on other platforms) to jump to
+# a specific line in the editor.
+jumpToLine.commandkey=J
+
+# LOCALIZATION NOTE (toggleComment.commandkey): This is the key to use in
+# conjunction with accel (Command on Mac or Ctrl on other platforms) to either
+# comment or uncomment selected lines in the editor.
+toggleComment.commandkey=/
+
+# LOCALIZATION NOTE (indentLess.commandkey): This is the key to use in
+# conjunction with accel (Command on Mac or Ctrl on other platforms) to reduce
+# indentation level in CodeMirror. However, its default value also used by
+# the Toolbox to switch between tools so we disable it.
+#
+# DO NOT translate this key without proper synchronization with toolbox.dtd.
+indentLess.commandkey=[
+
+# LOCALIZATION NOTE (indentMore.commandkey): This is the key to use in
+# conjunction with accel (Command on Mac or Ctrl on other platforms) to increase
+# indentation level in CodeMirror. However, its default value also used by
+# the Toolbox to switch between tools
+#
+# DO NOT translate this key without proper synchronization with toolbox.dtd.
+indentMore.commandkey=]
+
+# LOCALIZATION NOTE (moveLineUp.commandkey): This is the combination of keys
+# used to move the current line up.
+# Do not localize "Alt", "Up", or change the format of the string. These are key
+# identifiers, not messages displayed to the user.
+moveLineUp.commandkey=Alt-Up
+
+# LOCALIZATION NOTE (moveLineDown.commandkey): This is the combination of keys
+# used to move the current line up.
+# Do not localize "Alt", "Down", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+moveLineDown.commandkey=Alt-Down
+
+# LOCALIZATION NOTE (autocompletion.commandkey): This is the key, used with
+# Ctrl, for code autocompletion.
+# Do not localize "Space", it's the key identifier, not a message displayed to
+# the user.
+autocompletion.commandkey=Space
+
+# LOCALIZATION NOTE (showInformation2.commandkey): This is the combination of
+# keys used to display more information, like type inference.
+# Do not localize "Shift", "Ctrl", "Space", or change the format of the string.
+# These are key identifiers, not messages displayed to the user.
+showInformation2.commandkey=Shift-Ctrl-Space
+
+# LOCALIZATION NOTE (find.key):
+# Key shortcut used to find the typed search
+# Do not localize "CmdOrCtrl", "F", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+find.key=CmdOrCtrl+F
+
+# LOCALIZATION NOTE (replaceAll.key):
+# Key shortcut used to replace the content of the editor
+# Do not localize "Shift", "CmdOrCtrl", "F", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+replaceAll.key=Shift+CmdOrCtrl+F
+
+# LOCALIZATION NOTE (replaceAllMac.key):
+# Key shortcut used to replace the content of the editor on Mac
+# Do not localize "Alt", "CmdOrCtrl", "F", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+replaceAllMac.key=Alt+CmdOrCtrl+F
+
+# LOCALIZATION NOTE (findNext.key):
+# Key shortcut used to find again the typed search
+# Do not localize "CmdOrCtrl", "G", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+findNext.key=CmdOrCtrl+G
+
+# LOCALIZATION NOTE (findPrev.key):
+# Key shortcut used to find the previous typed search
+# Do not localize "Shift", "CmdOrCtrl", "G", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+findPrev.key=Shift+CmdOrCtrl+G
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/startup.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/startup.properties
new file mode 100644
index 0000000000..c5fc62b2e0
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/startup.properties
@@ -0,0 +1,248 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (optionsButton.tooltip): This is used as the tooltip
+# for the options panel tab.
+optionsButton.tooltip=Toolbox Options
+
+# LOCALIZATION NOTE (options.label): This is used as the label of the tab in
+# the devtools window.
+options.label=Options
+
+# LOCALIZATION NOTE (options.panelLabel): This is used as the label for the
+# toolbox panel.
+options.panelLabel=Toolbox Options Panel
+
+# LOCALIZATION NOTE (options.darkTheme.label2)
+# Used as a label for dark theme
+options.darkTheme.label2=Dark
+
+# LOCALIZATION NOTE (options.lightTheme.label2)
+# Used as a label for light theme
+options.lightTheme.label2=Light
+
+# LOCALIZATION NOTE (performance.label):
+# This string is displayed in the title of the tab when the profiler is
+# displayed inside the developer tools window and in the Developer Tools Menu.
+performance.label=Performance
+
+# LOCALIZATION NOTE (performance.panelLabel):
+# This is used as the label for the toolbox panel.
+performance.panelLabel=Performance Panel
+
+# LOCALIZATION NOTE (performance.accesskey)
+# Used for the menuitem in the tool menu
+performance.accesskey=P
+
+# LOCALIZATION NOTE (performance.tooltip):
+# This string is displayed in the tooltip of the tab when the profiler is
+# displayed inside the developer tools window.
+# Keyboard shortcut for Performance Tools will be shown inside brackets.
+performance.tooltip=Performance (%S)
+
+# LOCALIZATION NOTE (MenuWebconsole.label): the string displayed in the Tools
+# menu as a shortcut to open the devtools with the Web Console tab selected.
+MenuWebconsole.label=Web Console
+
+# LOCALIZATION NOTE (ToolboxTabWebconsole.label): the string displayed as the
+# label of the tab in the devtools window.
+ToolboxTabWebconsole.label=Console
+
+# LOCALIZATION NOTE (ToolboxWebConsole.panelLabel): the string used as the
+# label for the toolbox panel.
+ToolboxWebConsole.panelLabel=Console Panel
+
+# LOCALIZATION NOTE (ToolboxWebconsole.tooltip2): the string displayed in the
+# tooltip of the tab when the Web Console is displayed inside the developer
+# tools window.
+# Keyboard shortcut for Console will be shown inside the brackets.
+ToolboxWebconsole.tooltip2=Web Console (%S)
+
+webConsoleCmd.accesskey=W
+
+# LOCALIZATION NOTE (ToolboxDebugger.label):
+# This string is displayed in the title of the tab when the debugger is
+# displayed inside the developer tools window and in the Developer Tools Menu.
+ToolboxDebugger.label=Debugger
+
+# LOCALIZATION NOTE (ToolboxDebugger.panelLabel):
+# This is used as the label for the toolbox panel.
+ToolboxDebugger.panelLabel=Debugger Panel
+
+# LOCALIZATION NOTE (ToolboxDebugger.tooltip4):
+# This string is displayed in the tooltip of the tab when the debugger is
+# displayed inside the developer tools window.
+ToolboxDebugger.tooltip4=JavaScript Debugger (%S)
+
+# LOCALIZATION NOTE (debuggerMenu.accesskey)
+# Used for the menuitem in the tool menu
+debuggerMenu.accesskey=D
+
+# LOCALIZATION NOTE (ToolboxStyleEditor.label):
+# This string is displayed in the title of the tab when the style editor is
+# displayed inside the developer tools window and in the Developer Tools Menu.
+ToolboxStyleEditor.label=Style Editor
+
+# LOCALIZATION NOTE (ToolboxStyleEditor.panelLabel):
+# This is used as the label for the toolbox panel.
+ToolboxStyleEditor.panelLabel=Style Editor Panel
+
+# LOCALIZATION NOTE (ToolboxStyleEditor.tooltip3):
+# This string is displayed in the tooltip of the tab when the style editor is
+# displayed inside the developer tools window.
+# A keyboard shortcut for Stylesheet Editor will be shown inside the latter pair of brackets.
+ToolboxStyleEditor.tooltip3=Stylesheet Editor (CSS) (%S)
+
+# LOCALIZATION NOTE (open.accesskey): The access key used to open the style
+# editor.
+open.accesskey=l
+
+# LOCALIZATION NOTE (inspector.*)
+# Used for the menuitem in the tool menu
+inspector.label=Inspector
+inspector.accesskey=I
+
+# LOCALIZATION NOTE (inspector.panelLabel)
+# Labels applied to the panel and views within the panel in the toolbox
+inspector.panelLabel=Inspector Panel
+
+# LOCALIZATION NOTE (inspector.tooltip2)
+# Keyboard shortcut for DOM and Style Inspector will be shown inside brackets.
+inspector.tooltip2=DOM and Style Inspector (%S)
+
+# LOCALIZATION NOTE (inspector.mac.tooltip)
+# This is the exact same string as inspector.tooltip2, except that we show it
+# on mac only, where we support toggling the inspector with either cmd+shift+C,
+# or cmd+opt+C
+inspector.mac.tooltip=DOM and Style Inspector (%1$S or %2$S)
+
+# LOCALIZATION NOTE (netmonitor.label):
+# This string is displayed in the title of the tab when the Network Monitor is
+# displayed inside the developer tools window and in the Developer Tools Menu.
+netmonitor.label=Network
+
+# LOCALIZATION NOTE (netmonitor.panelLabel):
+# This is used as the label for the toolbox panel.
+netmonitor.panelLabel=Network Panel
+
+# LOCALIZATION NOTE (netmonitor.accesskey)
+# Used for the menuitem in the tool menu
+netmonitor.accesskey=N
+
+# LOCALIZATION NOTE (netmonitor.tooltip2):
+# This string is displayed in the tooltip of the tab when the Network Monitor is
+# displayed inside the developer tools window.
+# Keyboard shortcut for Network Monitor will be shown inside the brackets.
+netmonitor.tooltip2=Network Monitor (%S)
+
+# LOCALIZATION NOTE (storage.accesskey): The access key used to open the storage
+# editor.
+storage.accesskey=a
+
+# LOCALIZATION NOTE (storage.label):
+# This string is displayed as the label of the tab in the developer tools window
+storage.label=Storage
+
+# LOCALIZATION NOTE (storage.menuLabel):
+# This string is displayed in the Tools menu as a shortcut to open the devtools
+# with the Storage Inspector tab selected.
+storage.menuLabel=Storage Inspector
+
+# LOCALIZATION NOTE (storage.panelLabel):
+# This string is used as the aria-label for the iframe of the Storage Inspector
+# tool in developer tools toolbox.
+storage.panelLabel=Storage Panel
+
+# LOCALIZATION NOTE (storage.tooltip3):
+# This string is displayed in the tooltip of the tab when the storage editor is
+# displayed inside the developer tools window.
+# A keyboard shortcut for Storage Inspector will be shown inside the brackets.
+storage.tooltip3=Storage Inspector (Cookies, Local Storage, …) (%S)
+
+# LOCALIZATION NOTE (memory.label): This string is displayed in the title of the
+# tab when the memory tool is displayed inside the developer tools window and in
+# the Developer Tools Menu.
+memory.label=Memory
+
+# LOCALIZATION NOTE (memory.panelLabel): This is used as the label for the
+# toolbox panel.
+memory.panelLabel=Memory Panel
+
+# LOCALIZATION NOTE (memory.tooltip): This string is displayed in the tooltip of
+# the tab when the memory tool is displayed inside the developer tools window.
+memory.tooltip=Memory
+
+# LOCALIZATION NOTE (dom.label):
+# This string is displayed in the title of the tab when the DOM panel is
+# displayed inside the developer tools window and in the Developer Tools Menu.
+dom.label=DOM
+
+# LOCALIZATION NOTE (dom.panelLabel):
+# This is used as the label for the toolbox panel.
+dom.panelLabel=DOM Panel
+
+# LOCALIZATION NOTE (dom.accesskey)
+# Used for the menuitem in the tool menu
+dom.accesskey=D
+
+# LOCALIZATION NOTE (dom.tooltip):
+# This string is displayed in the tooltip of the tab when the DOM is
+# displayed inside the developer tools window.
+# Keyboard shortcut for DOM panel will be shown inside the brackets.
+dom.tooltip=DOM (%S)
+
+# LOCALIZATION NOTE (accessibility.label):
+# This string is displayed in the title of the tab when the Accessibility panel
+# is displayed inside the developer tools window and in the Developer Tools Menu.
+accessibility.label=Accessibility
+
+# LOCALIZATION NOTE (accessibility.panelLabel):
+# This is used as the label for the toolbox panel.
+accessibility.panelLabel=Accessibility Panel
+
+# LOCALIZATION NOTE (accessibility.accesskey)
+# Used for the menuitem in the tool menu
+accessibility.accesskey=y
+
+# LOCALIZATION NOTE (accessibility.tooltip3):
+# This string is displayed in the tooltip of the tab when the Accessibility is
+# displayed inside the developer tools window.
+# Keyboard shortcut for Accessibility panel will be shown inside the brackets.
+accessibility.tooltip3=Accessibility (%S)
+
+# LOCALIZATION NOTE (application.label):
+# This string is displayed in the title of the tab when the Application panel
+# is displayed inside the developer tools window and in the Developer Tools Menu.
+application.label=Application
+
+# LOCALIZATION NOTE (application.panelLabel):
+# This is used as the label for the toolbox panel.
+application.panelLabel=Application Panel
+
+# LOCALIZATION NOTE (application.tooltip):
+# This string is displayed in the tooltip of the tab when the Application panel is
+# displayed inside the developer tools window.
+application.tooltip=Application Panel
+
+# LOCALIZATION NOTE (toolbox.buttons.responsive):
+# This is the tooltip of the button in the toolbox toolbar that toggles
+# the Responsive mode.
+# Keyboard shortcut will be shown inside brackets.
+toolbox.buttons.responsive = Responsive Design Mode (%S)
+
+# LOCALIZATION NOTE (toolbox.buttons.screenshot):
+# This is the tooltip of the button in the toolbox toolbar that allows you to
+# take a screenshot of the entire page
+toolbox.buttons.screenshot = Take a screenshot of the entire page
+
+# LOCALIZATION NOTE (toolbox.buttons.rulers):
+# This is the tooltip of the button in the toolbox toolbar that toggles the
+# rulers in the page
+toolbox.buttons.rulers = Toggle rulers for the page
+
+# LOCALIZATION NOTE (toolbox.buttons.measure):
+# This is the tooltip of the button in the toolbox toolbar that toggles the
+# measuring tools
+toolbox.buttons.measure = Measure a portion of the page
+
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/styleeditor.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/styleeditor.properties
new file mode 100644
index 0000000000..db24ad8eee
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/styleeditor.properties
@@ -0,0 +1,74 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Style Editor.
+# LOCALIZATION NOTE The correct localization of this file might be to keep it
+# in English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best documentation
+# on web development on the web.
+
+# LOCALIZATION NOTE (inlineStyleSheet): This is the name used for an style sheet
+# that is declared inline in the <style> element. Shown in the stylesheets list.
+# the argument is the index (order) of the containing <style> element in the
+# document.
+inlineStyleSheet=<inline style sheet #%S>
+
+# LOCALIZATION NOTE (newStyleSheet): This is the default name for a new
+# user-created style sheet.
+newStyleSheet=New style sheet #%S
+
+# LOCALIZATION NOTE (ruleCount.label): Semicolon-separated list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# This is shown in the style sheets list.
+# #1 rule.
+# example: 111 rules.
+ruleCount.label=#1 rule.;#1 rules.
+
+# LOCALIZATION NOTE (error-load): This is shown when loading fails.
+error-load=Style sheet could not be loaded.
+
+# LOCALIZATION NOTE (error-save): This is shown when saving fails.
+error-save=Style sheet could not be saved.
+
+# LOCALIZATION NOTE (importStyleSheet.title): This is the file picker title,
+# when you import a style sheet into the Style Editor.
+importStyleSheet.title=Import style sheet
+
+# LOCALIZATION NOTE (importStyleSheet.filter): This is the *.css filter title
+importStyleSheet.filter=CSS files
+
+# LOCALIZATION NOTE (saveStyleSheet.title): This is the file picker title,
+# when you save a style sheet from the Style Editor.
+saveStyleSheet.title=Save style sheet
+
+# LOCALIZATION NOTE (saveStyleSheet.filter): This is the *.css filter title
+saveStyleSheet.filter=CSS files
+
+# LOCALIZATION NOTE (saveStyleSheet.commandkey): This the key to use in
+# conjunction with accel (Command on Mac or Ctrl on other platforms) to Save
+saveStyleSheet.commandkey=S
+
+# LOCALIZATION NOTE (focusFilterInput.commandkey): This is the key to use in
+# conjunction with accel (Command on Mac or Ctrl on other platforms) to focus the
+# filter input. Don't use "F" as it's used by the CodeMirror editor to perform an
+# in-file search; if possible, keep it the same as sources.search.key2.
+focusFilterInput.commandkey=P
+
+# LOCALIZATION NOTE (showOriginalSources.label): This is the label on the context
+# menu item to toggle showing original sources in the editor.
+showOriginalSources.label=Show Original Sources
+
+# LOCALIZATION NOTE (showOriginalSources.accesskey): This is the access key for
+# the menu item to toggle showing original sources in the editor.
+showOriginalSources.accesskey=o
+
+# LOCALIZATION NOTE (showAtRulesSidebar.label): This is the label on the context
+# menu item to toggle showing at-rules shortcuts in a sidebar.
+# "@media" and "@supports" should not be translated as they are CSS rule identifiers.
+showAtRulesSidebar.label=Show At-rules Sidebar (@media, @supports, …)
+
+# LOCALIZATION NOTE (showAtRulesSidebar.accesskey): This is the access key for
+# the menu item to toggle showing the at-rules sidebar.
+showAtRulesSidebar.accesskey=a
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/toolbox.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/toolbox.properties
new file mode 100644
index 0000000000..b4e121bb17
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/toolbox.properties
@@ -0,0 +1,267 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (toolbox.titleTemplate1): This is the template
+# used to format the title of the toolbox.
+# The URL of the page being targeted: %1$S.
+toolbox.titleTemplate1=Developer Tools — %1$S
+
+# LOCALIZATION NOTE (toolbox.titleTemplate2): This is the template
+# used to format the title of the toolbox.
+# The page title or other name for the thing being targeted: %1$S
+# The URL of the page being targeted: %2$S.
+toolbox.titleTemplate2=Developer Tools — %1$S — %2$S
+
+# LOCALIZATION NOTE (toolbox.multiProcessBrowserToolboxTitle): Title used for
+# the Browser Toolbox when the pref `devtools.browsertoolbox.fission` is true.
+# This Browser Toolbox allows to debug the parent process as well as the content
+# processes in the same toolbox.
+toolbox.multiProcessBrowserToolboxTitle=Multiprocess Browser Toolbox
+
+# LOCALIZATION NOTE (toolbox.parentProcessBrowserToolboxTitle): Title used for
+# the Browser Toolbox when the pref `devtools.browsertoolbox.fission` and
+# `devtools.browsertoolbox.scope` is set to "parent-process".
+# This Browser Toolbox allows to debug only the parent process resources.
+toolbox.parentProcessBrowserToolboxTitle=Parent process Browser Toolbox
+
+# LOCALIZATION NOTE (toolbox.defaultTitle): This is used as the tool
+# name when no tool is selected.
+toolbox.defaultTitle=Developer Tools
+
+# LOCALIZATION NOTE (toolbox.label): This is used as the label for the
+# toolbox as a whole
+toolbox.label=Developer Tools
+
+# LOCALIZATION NOTE (options.autoTheme.label)
+# Used as a label for auto theme
+options.autoTheme.label=Auto
+
+# LOCALIZATION NOTE (options.toolNotSupportedMarker): This is the template
+# used to add a * marker to the label for the Options Panel tool checkbox for the
+# tool which is not supported for the current toolbox target.
+# The name of the tool: %1$S.
+options.toolNotSupportedMarker=%1$S *
+
+# LOCALIZATION NOTE (toolbox.pickButton.tooltip)
+# This is the tooltip of the element picker button in the toolbox toolbar.
+# %S is the keyboard shortcut that toggles the element picker.
+toolbox.elementPicker.tooltip=Pick an element from the page (%S)
+
+# LOCALIZATION NOTE (toolbox.pickButton.mac.tooltip)
+# Like toolbox.pickButton.tooltip, but for macOS there are two possible keyboard
+# shortcuts: Cmd+Shift+C or Cmd+Opt+C
+toolbox.elementPicker.mac.tooltip=Pick an element from the page (%1$S or %2$S)
+
+# LOCALIZATION NOTE (toolbox.androidElementPicker.tooltip)
+# This is the tooltip of the element picker button in the about:devtools-toolbox toolbox toolbar
+# when debugging an Android device
+# %S is the keyboard shortcut that toggles the element picker.
+toolbox.androidElementPicker.tooltip=Pick an element from the Android phone (%S)
+
+# LOCALIZATION NOTE (toolbox.androidElementPicker.mac.tooltip)
+# Like toolbox.androidElementPicker.tooltip, but for macOS as there are two possible keyboard
+# shortcuts (Cmd+Shift+C or Cmd+Opt+C)
+# %1$S and %2$S are the keyboard shortcuts that toggle the element picker.
+toolbox.androidElementPicker.mac.tooltip=Pick an element from the Android phone (%1$S or %2$S)
+
+# LOCALIZATION NOTE (toolbox.elementPicker.key)
+# Key shortcut used to toggle the element picker.
+toolbox.elementPicker.key=CmdOrCtrl+Shift+C
+
+# LOCALIZATION NOTE (toolbox.elementPicker.mac.key)
+# Key shortcut used to toggle the element picker for macOS.
+toolbox.elementPicker.mac.key=Cmd+Opt+C
+
+# LOCALIZATION NOTE (toolbox.viewCssSourceInStyleEditor.label)
+# Used as a message in either tooltips or contextual menu items to open the
+# corresponding URL as a css file in the Style-Editor tool.
+# DEV NOTE: Mostly used wherever toolbox.viewSourceInStyleEditorByXX is used.
+toolbox.viewCssSourceInStyleEditor.label=Open File in Style-Editor
+
+# LOCALIZATION NOTE (toolbox.viewJsSourceInDebugger.label)
+# Used as a message in either tooltips or contextual menu items to open the
+# corresponding URL as a js file in the Debugger tool.
+# DEV NOTE: Mostly used wherever toolbox.viewSourceInDebugger is used.
+toolbox.viewJsSourceInDebugger.label=Open File in Debugger
+
+toolbox.resumeOrderWarning=Page did not resume after the debugger was attached. To fix this, please close and re-open the toolbox.
+
+# LOCALIZATION NOTE (toolbox.help.key)
+# Key shortcut used to open the options panel
+toolbox.help.key=F1
+
+# LOCALIZATION NOTE (toolbox.nextTool.key)
+# Key shortcut used to select the next tool
+toolbox.nextTool.key=CmdOrCtrl+]
+
+# LOCALIZATION NOTE (toolbox.previousTool.key)
+# Key shortcut used to select the previous tool
+toolbox.previousTool.key=CmdOrCtrl+[
+
+# LOCALIZATION NOTE (toolbox.zoom*.key)
+# Key shortcuts used to zomm in/out or reset the toolbox
+# Should match full-zoom-*-shortcut values from browserSets.ftl
+toolbox.zoomIn.key=CmdOrCtrl+Plus
+toolbox.zoomIn2.key=CmdOrCtrl+=
+
+toolbox.zoomOut.key=CmdOrCtrl+-
+toolbox.zoomOut2.key=
+
+toolbox.zoomReset.key=CmdOrCtrl+0
+toolbox.zoomReset2.key=
+
+# LOCALIZATION NOTE (toolbox.reload*.key)
+# Key shortcuts used to reload the page
+toolbox.reload.key=CmdOrCtrl+R
+toolbox.reload2.key=F5
+
+# LOCALIZATION NOTE (toolbox.forceReload*.key)
+# Key shortcuts used to force reload of the page by bypassing caches
+toolbox.forceReload.key=CmdOrCtrl+Shift+R
+toolbox.forceReload2.key=CmdOrCtrl+F5
+
+# LOCALIZATION NOTE (toolbox.toggleHost.key)
+# Key shortcut used to move the toolbox in bottom or side of the browser window
+toolbox.toggleHost.key=CmdOrCtrl+Shift+D
+
+# LOCALIZATION NOTE (toolbox.closeToolbox.key) Key shortcut used to close the toolbox
+toolbox.closeToolbox.key=CmdOrCtrl+W
+
+# LOCALIZATION NOTE (toolbox.toggleToolbox.key) Key shortcut used to toggle the toolbox
+toolbox.toggleToolbox.key=CmdOrCtrl+Shift+I
+
+# LOCALIZATION NOTE (toolbox.toggleToolboxOSX.key) Key shortcut used to toggle the toolbox
+toolbox.toggleToolboxOSX.key=CmdOrCtrl+Alt+I
+
+# LOCALIZATION NOTE (toolbox.toggleToolboxF12.key) Key shortcut used to toggle the toolbox
+toolbox.toggleToolboxF12.key=F12
+
+# LOCALIZATION NOTE (toolbox.frames.tooltip): This is the label for
+# the iframes menu list that appears only when the document has some.
+# It allows you to switch the context of the whole toolbox.
+toolbox.frames.tooltip=Select an iframe as the currently targeted document
+
+# LOCALIZATION NOTE (toolbox.frames.disabled.tooltip): This is the title
+# displayed as a tooltip of the iframes menu button, when disabled. The button
+# is normally hidden when no frames are available. But if the user is on the
+# DevTools Options panel, the button is always shown for discoverability.
+toolbox.frames.disabled.tooltip=This button is only available on pages with several iframes
+
+# LOCALIZATION NOTE (toolbox.showFrames.key)
+# Key shortcut used to show frames menu when 'frames' button is focused
+toolbox.showFrames.key=Alt+Down
+
+# LOCALIZATION NOTE (toolbox.meatballMenu.button.tooltip): This is the tooltip
+# for the "..." button on the developer tools toolbox.
+toolbox.meatballMenu.button.tooltip=Customize Developer Tools and Get Help
+
+# LOCALIZATION NOTE (toolbox.closebutton.tooltip): This is the tooltip for
+# the close button the developer tools toolbox.
+toolbox.closebutton.tooltip=Close Developer Tools
+
+# LOCALIZATION NOTE (toolbox.errorCountButton.tooltip): This is the tooltip for
+# the error count button displayed in the developer tools toolbox.
+toolbox.errorCountButton.tooltip=Show Split Console
+
+# LOCALIZATION NOTE (toolbox.errorCountButton.description): This is the description that
+# will be used for the error count button in the devTools settings panel.
+toolbox.errorCountButton.description=Show the number of errors on the page
+
+# LOCALIZATION NOTE (toolbox.sourceMapFailure): This is shown in the web console
+# when there is a failure to fetch or parse a source map.
+# The text of the error: %1$S
+# The URL that caused DevTools to try to fetch a source map: %2$S
+# The URL of the source map itself: %3$S
+toolbox.sourceMapFailure=Source map error: %1$S\nResource URL: %2$S\nSource Map URL: %3$S
+
+# LOCALIZATION NOTE (toolbox.sourceMapSourceFailure): This is shown in
+# the web console when there is a failure to fetch or parse an
+# original source that was mentioned in a source map.
+# The text of the error: %1$S
+# The URL of the source: %2$S
+toolbox.sourceMapSourceFailure=Error while fetching an original source: %1$S\nSource URL: %2$S
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.runtimeLabel): This is displayed as a toolbox
+# header in about:devtools-toolbox. about:devtools-toolbox is used for instance when
+# inspecting tabs in about:debugging.
+# e.g. Mozilla Fennec (65.0a1)
+# The name of runtime: %1$S
+# The version of runtime: %2$S
+toolbox.debugTargetInfo.runtimeLabel=%1$S (%2$S)
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.runtimeLabel.thisRuntime): this is displayed
+# as a toolbox header in about:devtools-toolbox, when inspecting the current Firefox runtime
+# (for instance, when inspecting one of its tabs in about:debugging)
+# e.g. This Firefox (65.0a1)
+# The name of the current runtime/application (brandShorterName): %1$S
+# The version of runtime: %2$S
+toolbox.debugTargetInfo.runtimeLabel.thisRuntime=This %1$S (%2$S)
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.tabTitleRemote):
+# Used as the tab title for about:devtools-toolbox when connected to a remote target.
+# The connection type (see toolbox.debugTargetInfo.connection.*): %1$S
+# The target type (see toolbox.debugTargetInfo.targetType.*): %2$S
+# The target name (retrieved from DevTools, eg the extension's name): %3$S
+toolbox.debugTargetInfo.tabTitleRemote=Toolbox (%1$S) - %2$S / %3$S
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.tabTitleLocal):
+# Used as the tab title for about:devtools-toolbox when connected to This Firefox.
+# The target type (see toolbox.debugTargetInfo.targetType.*): %1$S
+# The target name (retrieved from DevTools, eg the extension's name): %2$S
+toolbox.debugTargetInfo.tabTitleLocal=Toolbox - %1$S / %2$S
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.tabTitleError):
+# Used as the tab title for about:devtools-toolbox when it failed to connect to the
+# target.
+toolbox.debugTargetInfo.tabTitleError=Toolbox - error occurred
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.connection.*): This is displayed in the
+# toolbox header in about:devtools-toolbox, to indicate how the connection to the
+# runtime being inspected was made.
+toolbox.debugTargetInfo.connection.usb=USB
+toolbox.debugTargetInfo.connection.network=Network
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.reload):
+# Used as the reload button tooltip
+toolbox.debugTargetInfo.reload=Reload
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.forward):
+# Used as the navigation's "forward" button tooltip
+toolbox.debugTargetInfo.forward=Forward
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.back):
+# Used as the navigation's "back" button tooltip
+toolbox.debugTargetInfo.back=Back
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.targetType.*): This is displayed as the
+# alt attribute for an icon in the toolbox header in about:devtools-toolbox,
+# to indicate what is the type of the debug target being inspected.
+toolbox.debugTargetInfo.targetType.extension=Extension
+toolbox.debugTargetInfo.targetType.process=Process
+toolbox.debugTargetInfo.targetType.tab=Tab
+toolbox.debugTargetInfo.targetType.worker=Worker
+
+# LOCALIZATION NOTE (browserToolbox.statusMessage): This is the label
+# shown next to status details when the Browser Toolbox fails to connect or
+# appears to be taking a while to do so.
+browserToolbox.statusMessage=Browser Toolbox connection status:
+
+# LOCALIZATION NOTE (toolbox.debugTargetErrorPage.title): This is the title
+# for the Error view shown by the toolbox when a connection to a debug target
+# could not be made
+toolbox.debugTargetErrorPage.title = Error
+
+# LOCALIZATION NOTE (toolbox.debugTargetErrorPage.description): This is the
+# text that appears in the Error view and explains to the user that an error
+# has happened while trying to connect to a debug target
+toolbox.debugTargetErrorPage.description = Cannot connect to the debug target. See error details below:
+
+# LOCALIZATION NOTE (options.deprecationNotice): This is the text that appears in the
+# settings panel for panel that will be removed in future releases.
+# This entire text is treated as a link to an MDN page.
+options.deprecationNotice=Deprecated. Learn More…
+
+# LOCALIZATION NOTE (options.enableMultiProcessToolbox): This is the text that appears in the
+# settings panel for the checkbox that enables the Multiprocess Browser Toolbox.
+options.enableMultiProcessToolbox=Enable the Multiprocess Browser Toolbox (requires restarting the Browser Toolbox)
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/webconsole.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/webconsole.properties
new file mode 100644
index 0000000000..6fa064d245
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/client/webconsole.properties
@@ -0,0 +1,571 @@
+# 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 http://mozilla.org/MPL/2.0/.
+# LOCALIZATION NOTE
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (multiProcessBrowserConsole.title): Title of the Browser
+# Console window when the pref `devtools.browsertoolbox.scope` is set to "everything". This
+# Browser Console will log messages from all processes, not just the the parent
+# process.
+multiProcessBrowserConsole.title=Multiprocess Browser Console
+
+# LOCALIZATION NOTE (parentProcessBrowserConsole.title): Title used for
+# the Browser Console when the pref `devtools.browsertoolbox.scope` is set to "parent-process".
+parentProcessBrowserConsole.title=Parent process Browser Console
+
+# LOCALIZATION NOTE (timestampFormat): %1$02S = hours (24-hour clock),
+# %2$02S = minutes, %3$02S = seconds, %4$03S = milliseconds.
+timestampFormat=%02S:%02S:%02S.%03S
+
+ConsoleAPIDisabled=The Web Console logging API (console.log, console.info, console.warn, console.error) has been disabled by a script on this page.
+
+# LOCALIZATION NOTE (webConsoleXhrIndicator): the indicator displayed before
+# a URL in the Web Console that was requested using an XMLHttpRequest.
+webConsoleXhrIndicator=XHR
+
+# LOCALIZATION NOTE (webConsoleMoreInfoLabel): the more info tag displayed
+# after security related web console messages.
+webConsoleMoreInfoLabel=Learn More
+
+# LOCALIZATION NOTE (stacktrace.anonymousFunction): this string is used to
+# display JavaScript functions that have no given name - they are said to be
+# anonymous. Test console.trace() in the webconsole.
+stacktrace.anonymousFunction=<anonymous>
+
+# LOCALIZATION NOTE (stacktrace.asyncStack): this string is used to
+# indicate that a given stack frame has an async parent.
+# %S is the "Async Cause" of the frame.
+stacktrace.asyncStack=(Async: %S)
+
+# LOCALIZATION NOTE (timeLog): this string is used to display the result of
+# the console.timeLog() call. Parameters: %1$S is the name of the timer, %2$S
+# is the number of milliseconds.
+timeLog=%1$S: %2$Sms
+
+# LOCALIZATION NOTE (console.timeEnd): this string is used to display the result of
+# the console.timeEnd() call. Parameters: %1$S is the name of the timer, %2$S
+# is the number of milliseconds.
+console.timeEnd=%1$S: %2$Sms - timer ended
+
+# LOCALIZATION NOTE (consoleCleared): this string is displayed when receiving a
+# call to console.clear() to let the user know the previous messages of the
+# console have been removed programmatically.
+consoleCleared=Console was cleared.
+
+# LOCALIZATION NOTE (preventedConsoleClear): this string is displayed when receiving a
+# call to console.clear() when the user has the "Persist logs" option enabled, to let the
+# user know the console method call was ignored.
+# "Persist Logs" should be kept in sync with webconsole.console.settings.menu.item.enablePersistentLogs.label
+preventedConsoleClear=console.clear() was prevented due to “Persist Logs”
+
+# LOCALIZATION NOTE (noCounterLabel): this string is used to display
+# count-messages with no label provided.
+noCounterLabel=<no label>
+
+# LOCALIZATION NOTE (counterDoesntExist): this string is displayed when
+# console.countReset() is called with a counter that doesn't exist.
+counterDoesntExist=Counter “%S” doesn’t exist.
+
+# LOCALIZATION NOTE (noGroupLabel): this string is used to display
+# console.group messages with no label provided.
+noGroupLabel=<no group label>
+
+maxTimersExceeded=The maximum allowed number of timers in this page was exceeded.
+timerAlreadyExists=Timer “%S” already exists.
+timerDoesntExist=Timer “%S” doesn’t exist.
+timerJSError=Failed to process the timer name.
+
+# LOCALIZATION NOTE (connectionTimeout): message displayed when the Remote Web
+# Console fails to connect to the server due to a timeout.
+connectionTimeout=Connection timeout. Check the Error Console on both ends for potential error messages. Reopen the Web Console to try again.
+
+# LOCALIZATION NOTE (propertiesFilterPlaceholder): this is the text that
+# appears in the filter text box for the properties view container.
+propertiesFilterPlaceholder=Filter properties
+
+# LOCALIZATION NOTE (messageRepeats.tooltip2): the tooltip text that is displayed
+# when you hover the red bubble that shows how many times a message is repeated
+# in the web console output.
+# This is a semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 number of message repeats
+# example: 3 repeats
+messageRepeats.tooltip2=#1 repeat;#1 repeats
+
+# LOCALIZATION NOTE (openNodeInInspector): the text that is displayed in a
+# tooltip when hovering over the inspector icon next to a DOM Node in the console
+# output
+openNodeInInspector=Click to select the node in the inspector
+
+# LOCALIZATION NOTE (selfxss.msg): the text that is displayed when
+# a new user of the developer tools pastes code into the console
+# %1 is the text of selfxss.okstring
+selfxss.msg=Scam Warning: Take care when pasting things you don’t understand. This could allow attackers to steal your identity or take control of your computer. Please type “%S” below (no need to press enter) to allow pasting.
+
+# LOCALIZATION NOTE (selfxss.okstring): the string to be typed
+# in by a new user of the developer tools when they receive the sefxss.msg prompt.
+# Please avoid using non-keyboard characters here
+selfxss.okstring=allow pasting
+
+# LOCALIZATION NOTE (messageToggleDetails): the text that is displayed when
+# you hover the arrow for expanding/collapsing the message details. For
+# console.error() and other messages we show the stacktrace.
+messageToggleDetails=Show/hide message details.
+
+# LOCALIZATION NOTE (groupToggle): the text that is displayed when
+# you hover the arrow for expanding/collapsing the messages of a group.
+groupToggle=Show/hide group.
+
+# LOCALIZATION NOTE (table.index, table.iterationIndex, table.key, table.value):
+# the column header displayed in the console table widget.
+table.index=(index)
+table.iterationIndex=(iteration index)
+table.key=Key
+table.value=Values
+
+# LOCALIZATION NOTE (level.error, level.warn, level.info, level.log, level.debug):
+# tooltip for icons next to console output
+level.error=Error
+level.warn=Warning
+level.info=Info
+level.log=Log
+level.debug=Debug
+
+# LOCALIZATION NOTE (logpoint.title)
+# Tooltip shown for logpoints sent from the debugger
+logpoint.title=Logpoints from the debugger
+
+# LOCALIZATION NOTE (logtrace.title)
+# Tooltip shown for JavaScript tracing logs
+logtrace.title=JavaScript tracing
+
+# LOCALIZATION NOTE (blockedReason.title)
+# Tooltip shown for blocked network events sent from the network panel
+blockedrequest.label=Blocked by DevTools
+
+# LOCALIZATION NOTE (webconsole.disableIcon.title)
+# Tooltip shown for disabled console messages
+webconsole.disableIcon.title=This message is no longer active, message details are not available
+
+# LOCALIZATION NOTE (webconsole.find.key)
+# Key shortcut used to focus the search box on upper right of the console
+webconsole.find.key=CmdOrCtrl+F
+
+# LOCALIZATION NOTE (webconsole.close.key)
+# Key shortcut used to close the Browser console (doesn't work in regular web console)
+webconsole.close.key=CmdOrCtrl+W
+
+# LOCALIZATION NOTE (webconsole.clear.key*)
+# Key shortcut used to clear the console output
+webconsole.clear.key=Ctrl+Shift+L
+webconsole.clear.keyOSX=Ctrl+L
+webconsole.clear.alternativeKeyOSX=Cmd+K
+
+# LOCALIZATION NOTE (webconsole.menu.copyURL.label)
+# Label used for a context-menu item displayed for network message logs. Clicking on it
+# copies the URL displayed in the message to the clipboard.
+webconsole.menu.copyURL.label=Copy Link Location
+webconsole.menu.copyURL.accesskey=a
+
+# LOCALIZATION NOTE (webconsole.menu.openURL.label)
+# Label used for a context-menu item displayed for network message logs. Clicking on it
+# opens the URL displayed in a new browser tab.
+webconsole.menu.openURL.label=Open URL in New Tab
+webconsole.menu.openURL.accesskey=T
+
+# LOCALIZATION NOTE (webconsole.menu.openInNetworkPanel.label)
+# Label used for a context-menu item displayed for network message logs. Clicking on it
+# opens the network message in the Network panel
+webconsole.menu.openInNetworkPanel.label=Open in Network Panel
+webconsole.menu.openInNetworkPanel.accesskey=N
+
+# LOCALIZATION NOTE (webconsole.menu.resendNetworkRequest.label)
+# Label used for a context-menu item displayed for network message logs. Clicking on it
+# resends the network request
+webconsole.menu.resendNetworkRequest.label=Resend Request
+webconsole.menu.resendNetworkRequest.accesskey=n
+
+# LOCALIZATION NOTE (webconsole.menu.openNodeInInspector.label)
+# Label used for a context-menu item displayed for DOM Node logs. Clicking on it will
+# reveal that specific DOM Node in the Inspector.
+webconsole.menu.openNodeInInspector.label=Reveal in Inspector
+webconsole.menu.openNodeInInspector.accesskey=Q
+
+# LOCALIZATION NOTE (webconsole.menu.storeAsGlobalVar.label)
+# Label used for a context-menu item displayed for object/variable logs. Clicking on it
+# creates a new global variable pointing to the logged variable.
+webconsole.menu.storeAsGlobalVar.label=Store as Global Variable
+webconsole.menu.storeAsGlobalVar.accesskey=S
+
+# LOCALIZATION NOTE (webconsole.menu.copyMessage.label)
+# Label used for a context-menu item displayed for any log. Clicking on it will copy the
+# content of the log (or the user selection, if any).
+webconsole.menu.copyMessage.label=Copy Message
+webconsole.menu.copyMessage.accesskey=C
+
+# LOCALIZATION NOTE (webconsole.menu.copyObject.label)
+# Label used for a context-menu item displayed for object/variable log. Clicking on it
+# will copy the object/variable.
+webconsole.menu.copyObject.label=Copy Object
+webconsole.menu.copyObject.accesskey=o
+
+# LOCALIZATION NOTE (webconsole.menu.openInSidebar.label)
+# Label used for a context-menu item displayed for object/variable logs. Clicking on it
+# opens the webconsole sidebar for the logged variable.
+webconsole.menu.openInSidebar.label1=Inspect object in Sidebar
+webconsole.menu.openInSidebar.accesskey=V
+
+# LOCALIZATION NOTE (webconsole.menu.copyAllMessages.label)
+# Label used for a context-menu item displayed on the output. Clicking on it
+# copies the entire output of the console to the clipboard.
+webconsole.menu.copyAllMessages.label=Copy all Messages
+webconsole.menu.copyAllMessages.accesskey=M
+
+# LOCALIZATION NOTE (webconsole.menu.saveAllMessagesFile.label)
+# Label used for a context-menu item displayed on the output. Clicking on it
+# opens a file picker to allow the user save a file containing
+# the output of the console.
+webconsole.menu.saveAllMessagesFile.label=Save all Messages to File
+webconsole.menu.saveAllMessagesFile.accesskey=F
+
+# LOCALIZATION NOTE (webconsole.clearButton.tooltip)
+# Label used for the tooltip on the clear logs button in the console top toolbar bar.
+# Clicking on it will clear the content of the console.
+webconsole.clearButton.tooltip=Clear the Web Console output
+
+# LOCALIZATION NOTE (webconsole.toggleFilterButton.tooltip)
+# Label used for the tooltip on the toggle filter bar button in the console top
+# toolbar bar. Clicking on it will toggle the visibility of an additional bar which
+# contains filter buttons.
+webconsole.toggleFilterButton.tooltip=Toggle filter bar
+
+# LOCALIZATION NOTE (webconsole.filterInput.placeholder)
+# Label used for for the placeholder on the filter input, in the console top toolbar.
+webconsole.filterInput.placeholder=Filter Output
+
+# LOCALIZATION NOTE (webconsole.errorsFilterButton.label)
+# Label used as the text of the "Errors" button in the additional filter toolbar.
+# It shows or hides error messages, either inserted in the page using
+# console.error() or as a result of a javascript error..
+webconsole.errorsFilterButton.label=Errors
+
+# LOCALIZATION NOTE (webconsole.warningsFilterButton.label)
+# Label used as the text of the "Warnings" button in the additional filter toolbar.
+# It shows or hides warning messages, inserted in the page using console.warn().
+webconsole.warningsFilterButton.label=Warnings
+
+# LOCALIZATION NOTE (webconsole.logsFilterButton.label)
+# Label used as the text of the "Logs" button in the additional filter toolbar.
+# It shows or hides log messages, inserted in the page using console.log().
+webconsole.logsFilterButton.label=Logs
+
+# LOCALIZATION NOTE (webconsole.infoFilterButton.label)
+# Label used as the text of the "Info" button in the additional filter toolbar.
+# It shows or hides info messages, inserted in the page using console.info().
+webconsole.infoFilterButton.label=Info
+
+# LOCALIZATION NOTE (webconsole.debugFilterButton.label)
+# Label used as the text of the "Debug" button in the additional filter toolbar.
+# It shows or hides debug messages, inserted in the page using console.debug().
+webconsole.debugFilterButton.label=Debug
+
+# LOCALIZATION NOTE (webconsole.cssFilterButton.label)
+# Label used as the text of the "CSS" button in the additional filter toolbar.
+# It shows or hides CSS warning messages, inserted in the page by the browser
+# when there are CSS errors in the page.
+webconsole.cssFilterButton.label=CSS
+
+# LOCALIZATION NOTE (webconsole.cssFilterButton.inactive.tooltip)
+# Label used as the tooltip of the "CSS" button in the additional filter toolbar, when the
+# filter is inactive (=unchecked).
+webconsole.cssFilterButton.inactive.tooltip=Stylesheets will be reparsed to check for errors. Refresh the page to also see errors from stylesheets modified from JavaScript.
+
+# LOCALIZATION NOTE (webconsole.xhrFilterButton.label)
+# Label used as the text of the "XHR" button in the additional filter toolbar.
+# It shows or hides messages displayed when the page makes an XMLHttpRequest or
+# a fetch call.
+webconsole.xhrFilterButton.label=XHR
+
+# LOCALIZATION NOTE (webconsole.requestsFilterButton.label)
+# Label used as the text of the "Requests" button in the additional filter toolbar.
+# It shows or hides messages displayed when the page makes a network call, for example
+# when an image or a scripts is requested.
+webconsole.requestsFilterButton.label=Requests
+
+# LOCALIZATION NOTE (webconsole.filteredMessagesByText.label)
+# Text on the filter input displayed when some console messages are hidden because the
+# user has filled in the input.
+# This is a semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# example: 345 hidden.
+webconsole.filteredMessagesByText.label=#1 hidden;#1 hidden
+
+# LOCALIZATION NOTE (webconsole.filteredMessagesByText.tooltip)
+# Tooltip on the filter input "hidden" text, displayed when some console messages are
+# hidden because the user has filled in the input.
+# This is a semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# example: 345 items hidden by text filter.
+webconsole.filteredMessagesByText.tooltip=#1 item hidden by text filter;#1 items hidden by text filter
+
+# LOCALIZATION NOTE (webconsole.console.settings.menu.menuButton.tooltip)
+# Tooltip for the filter bar preferences menu. This menu will display multiple perefences for the
+# filter bar, such as enabling the compact toolbar mode, enable the timestamps, persist logs, etc
+webconsole.console.settings.menu.button.tooltip=Console Settings
+
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.compactToolbar.label)
+# Label for the `Compact Toolbar` preference option. This will turn the message filters buttons
+# into a Menu Button, making the filter bar more compact.
+webconsole.console.settings.menu.item.compactToolbar.label=Compact Toolbar
+
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.timestamps.label)
+# Label for enabling the timestamps in the Web Console.
+webconsole.console.settings.menu.item.timestamps.label=Show Timestamps
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.timestamps.tooltip)
+webconsole.console.settings.menu.item.timestamps.tooltip=If you enable this option commands and output in the Web Console will display a timestamp
+
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.warningGroups.label)
+# Label for grouping the similar messages in the Web Console
+webconsole.console.settings.menu.item.warningGroups.label=Group Similar Messages
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.warningGroups.tooltip)
+webconsole.console.settings.menu.item.warningGroups.tooltip=When enabled, similar messages are placed into groups
+
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.autocomplete.label)
+# Label for enabling autocomplete for input in the Web Console
+webconsole.console.settings.menu.item.autocomplete.label=Enable Autocompletion
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.autocomplete.tooltip)
+webconsole.console.settings.menu.item.autocomplete.tooltip=If you enable this option the input will display suggestions as you type in it
+
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.enablePersistentLogs.label)
+webconsole.console.settings.menu.item.enablePersistentLogs.label=Persist Logs
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.enablePersistentLogs.tooltip)
+webconsole.console.settings.menu.item.enablePersistentLogs.tooltip=If you enable this option the output will not be cleared each time you navigate to a new page
+
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.instantEvaluation.label)
+webconsole.console.settings.menu.item.instantEvaluation.label=Instant Evaluation
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.instantEvaluation.tooltip)
+webconsole.console.settings.menu.item.instantEvaluation.tooltip=If you enable this option the input will be instantly evaluated as you type in it
+
+# LOCALIZATION NOTE (browserconsole.enableNetworkMonitoring.label)
+# Label used in the browser console / browser toolbox console. This label is used for a checkbox that
+# allows the user enable monitoring of network requests.
+browserconsole.enableNetworkMonitoring.label=Enable Network Monitoring
+# LOCALIZATION NOTE (browserconsole.enableNetworkMonitoring.tooltip)
+# Tooltip for the "Enable Network Monitoring" check item.
+browserconsole.enableNetworkMonitoring.tooltip=Enable this to start listening to network requests
+
+# LOCALIZATION NOTE (webconsole.navigated): this string is used in the console when the
+# current inspected page is navigated to a new location.
+# Parameters: %S is the new URL.
+webconsole.navigated=Navigated to %S
+
+# LOCALIZATION NOTE (webconsole.closeSplitConsoleButton.tooltip): This is the tooltip for
+# the close button of the split console.
+webconsole.closeSplitConsoleButton.tooltip=Close Split Console (Esc)
+
+# LOCALIZATION NOTE (webconsole.closeSidebarButton.tooltip): This is the tooltip for
+# the close button of the sidebar.
+webconsole.closeSidebarButton.tooltip=Close Sidebar
+
+# LOCALIZATION NOTE (webconsole.reverseSearch.input.placeHolder):
+# This string is displayed in the placeholder of the reverse search input in the console.
+webconsole.reverseSearch.input.placeHolder=Search history
+
+# LOCALIZATION NOTE (webconsole.reverseSearch.result.closeButton.tooltip):
+# This string is displayed in the tooltip of the close button in the reverse search toolbar.
+# A keyboard shortcut will be shown inside the latter pair of brackets.
+webconsole.reverseSearch.closeButton.tooltip=Close (%S)
+
+# LOCALIZATION NOTE (webconsole.reverseSearch.results):
+# This string is displayed in the reverse search UI when there are at least one result
+# to the search.
+# This is a semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 index of current search result displayed.
+# #2 total number of search results.
+webconsole.reverseSearch.results=#2 result;#1 of #2 results
+
+# LOCALIZATION NOTE (webconsole.reverseSearch.noResult):
+# This string is displayed in the reverse search UI when there is no results to the search.
+webconsole.reverseSearch.noResult=No results
+
+# LOCALIZATION NOTE (webconsole.reverseSearch.result.previousButton.tooltip):
+# This string is displayed in the tooltip of the "previous result" button in the reverse search toolbar.
+# A keyboard shortcut will be shown inside the latter pair of brackets.
+webconsole.reverseSearch.result.previousButton.tooltip=Previous result (%S)
+
+# LOCALIZATION NOTE (webconsole.reverseSearch.result.nextButton.tooltip):
+# This string is displayed in the tooltip of the "next result" button in the reverse search toolbar.
+# A keyboard shortcut will be shown inside the latter pair of brackets.
+webconsole.reverseSearch.result.nextButton.tooltip=Next result (%S)
+
+# LOCALIZATION NOTE (webconsole.confirmDialog.getter.label)
+# Label used for the "invoke getter" confirm dialog that appears in the console when
+# a user tries to autocomplete a property with a getter.
+# Example: given the following object `x = {get y() {}}`, when the user types `x.y.`, it
+# would return "Invoke getter y to retrieve the property list?".
+# Parameters: %S is the name of the getter.
+webconsole.confirmDialog.getter.label=Invoke getter %S to retrieve the property list?
+
+# LOCALIZATION NOTE (webconsole.confirmDialog.getter.invokeButtonLabelWithShortcut)
+# Label used for the confirm button in the "invoke getter" dialog that appears in the
+# console when a user tries to autocomplete a property with a getter.
+# A keyboard shortcut will be shown inside the latter pair of brackets.
+webconsole.confirmDialog.getter.invokeButtonLabelWithShortcut=Invoke (%S)
+
+# LOCALIZATION NOTE (webconsole.confirmDialog.getter.closeButton.tooltip)
+# Label used as the tooltip for the close button in the "invoke getter" dialog that
+# appears in the console when a user tries to autocomplete a property with a getter.
+# A keyboard shortcut will be shown inside the latter pair of brackets.
+webconsole.confirmDialog.getter.closeButton.tooltip=Close (%S)
+
+# LOCALIZATION NOTE (webconsole.cssWarningElements.label)
+# Label for the list of HTML elements matching the selector associated
+# with the CSS warning. Parameters: %S is the CSS selector.
+webconsole.cssWarningElements.label=Elements matching selector: %S
+
+# LOCALIZATION NOTE (webconsole.message.componentDidCatch.label)
+# Label displayed when the webconsole couldn't handle a given packet.
+# Parameters: %S is the URL to file a bug about the error.
+webconsole.message.componentDidCatch.label=[DEVTOOLS ERROR] We’re sorry, we couldn’t render the message. This shouldn’t have happened - please file a bug at %S with the message metadata in the description.
+
+# LOCALIZATION NOTE (webconsole.message.commands.copyValueToClipboard)
+# Label displayed when the string is copied to the clipboard as a result of a copy command,
+# in the console, for example, copy({hello: "world"}).
+webconsole.message.commands.copyValueToClipboard=String was copied to clipboard.
+
+# LOCALIZATION NOTE (webconsole.error.commands.copyError):
+# the error that is displayed when the "copy" command can't stringify an object
+# "copy" should not be translated, because is a function name.
+# Parameters: %S is the original error message
+webconsole.error.commands.copyError=`copy` command failed, object can’t be stringified: %S
+
+# LOCALIZATION NOTE (webconsole.message.commands.blockedUR)
+# Label displayed when the :block <url> command is successful
+# Parameters: %S is the URL filter
+webconsole.message.commands.blockedURL=Requests to URL containing “%S” are now blocked
+
+# LOCALIZATION NOTE (webconsole.message.commands.unblockedURL)
+# Label displayed when the :unblock <url> command is successful
+# Parameters: %S is the URL filter
+webconsole.message.commands.unblockedURL=Removed blocking filter “%S”
+
+# LOCALIZATION NOTE (webconsole.messages.commands.blockArgMissing)
+# Message displayed when no filter is passed to block/unblock command
+webconsole.messages.commands.blockArgMissing=No filter was specified
+
+# LOCALIZATION NOTE (webconsole.message.componentDidCatch.copyButton.label)
+# Label displayed on the button next to the message we display when the webconsole
+# couldn't handle a given packet (See webconsole.message.componentDidCatch.label).
+webconsole.message.componentDidCatch.copyButton.label=Copy message metadata to clipboard
+
+
+# LOCALIZATION NOTE (webconsole.editor.toolbar.executeButton.label)
+# Label used for the text of the execute button, in the editor toolbar, which is
+# displayed when the editor mode is enabled (devtools.webconsole.input.editor=true).
+webconsole.editor.toolbar.executeButton.label=Run
+
+# LOCALIZATION NOTE (webconsole.editor.toolbar.reverseSearchButton.openReverseSearch.tooltip)
+# Label used for the tooltip on the reverse search button for opening the Reverse Search UI.
+# The Reverse Search is a feature that mimics the bash-like reverse search of
+# command history in WebConsole, searching commands from the last item backwards.
+# Parameters: %S is the keyboard shortcut.
+webconsole.editor.toolbar.reverseSearchButton.openReverseSearch.tooltip=Open History Reverse Search (%S)
+
+# LOCALIZATION NOTE (webconsole.editor.toolbar.reverseSearchButton.closeReverseSearch.tooltip)
+# Label used for the tooltip on the reverse search button for closing the Reverse Search UI.
+# The Reverse Search is a feature that mimics the bash-like reverse search of
+# command history in WebConsole, searching commands from the last item backwards.
+# Parameters: %S is the keyboard shortcut.
+webconsole.editor.toolbar.reverseSearchButton.closeReverseSearch.tooltip=Close History Reverse Search (%S)
+
+# LOCALIZATION NOTE (webconsole.editor.toolbar.executeButton.tooltip)
+# Label used for the tooltip on the execute button, in the editor toolbar, which is
+# displayed when the editor mode is enabled (devtools.webconsole.input.editor=true).
+# Parameters: %S is the keyboard shortcut.
+webconsole.editor.toolbar.executeButton.tooltip=Run expression (%S). This won’t clear the input.
+
+# LOCALIZATION NOTE (webconsole.editor.toolbar.prettyPrintButton.tooltip)
+# Label used for the tooltip on the prettyPrint button, in the editor toolbar, which is
+# displayed when the editor mode is enabled (devtools.webconsole.input.editor=true).
+webconsole.editor.toolbar.prettyPrintButton.tooltip=Pretty print expression
+
+# LOCALIZATION NOTE (webconsole.editor.toolbar.executeButton.tooltip)
+# Label used for the tooltip on the history previous expression, in the editor toolbar,
+# which is displayed when the editor mode is enabled (devtools.webconsole.input.editor=true).
+webconsole.editor.toolbar.history.prevExpressionButton.tooltip=Previous Expression
+
+
+# LOCALIZATION NOTE (webconsole.editor.toolbar.executeButton.tooltip)
+# Label used for the tooltip on the history next expression, in the editor toolbar,
+# which is displayed when the editor mode is enabled (devtools.webconsole.input.editor=true).
+webconsole.editor.toolbar.history.nextExpressionButton.tooltip=Next Expression
+
+# LOCALIZATION NOTE (webconsole.editor.toolbar.closeButton.tooltip2)
+# Label used for the tooltip on the close button, in the editor toolbar, which is
+# displayed when the editor mode is enabled (devtools.webconsole.input.editor=true).
+# Parameters: %S is the keyboard shortcut.
+webconsole.editor.toolbar.closeButton.tooltip2=Switch back to inline mode (%S)
+
+# LOCALIZATION NOTE (webconsole.input.openEditorButton.tooltip2)
+# Label used for the tooltip on the open editor button, in console input, which is
+# displayed when the console is in regular mode.
+# Parameters: %S is the keyboard shortcut.
+webconsole.input.openEditorButton.tooltip2=Switch to multi-line editor mode (%S)
+
+# LOCALIZATION NOTE (webconsole.warningGroup.messageCount.tooltip): the tooltip text
+# displayed when you hover a warning group badge (i.e. repeated warning messages for a
+# given category, for example Content Blocked messages) in the web console output.
+# This is a semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 number of message in the group.
+# example: 3 messages
+webconsole.warningGroup.messageCount.tooltip=#1 message;#1 messages
+
+# LOCALIZATION NOTE (webconsole.input.editor.onboarding.label): the text that is displayed
+# when displaying the multiline-input mode for the first time, until the user dismiss the
+# text.
+# Parameters: %1$S is Enter key, %2$S is the shortcut to evaluate the expression (
+# Ctrl+Enter or Cmd+Enter on OSX).
+webconsole.input.editor.onboarding.label=Iterate on your code faster with the new multi-line editor mode. Use %1$S to add new lines and %2$S to run.
+
+# LOCALIZATION NOTE (webconsole.input.editor.onboarding.dismiss.label): the text that is
+# displayed in the multiline-input mode onboarding UI to dismiss it.
+webconsole.input.editor.onboarding.dismiss.label=Got it!
+
+# LOCALIZATION NOTE (webconsole.enterKey): The text that will be used to represent the
+# Enter key in the editor onboarding UI, as well as on the Editor toolbar "Run" button
+# tooltip.
+webconsole.enterKey=Enter
+
+# LOCALIZATION NOTE (webconsole.input.openJavaScriptFile): This is a label
+# used for opening a file in the console input (Ctrl+O or Cmd+O on OSX while
+# being focused on the input).
+webconsole.input.openJavaScriptFile=Open JavaScript File
+
+# LOCALIZATION NOTE (webconsole.input.openJavaScriptFileFilter):
+# This string is displayed as a filter when opening a file in the console input.
+webconsole.input.openJavaScriptFileFilter=JavaScript Files
+
+# LOCALIZATION NOTE (webconsole.input.selector.top): This is the term used
+# to describe the primary thread of execution in the page
+webconsole.input.selector.top=Top
+
+# LOCALIZATION NOTE (webconsole.input.selector.tooltip): This is the tooltip
+# shown when users select a thread that they want to evaluate an
+# expression for.
+webconsole.input.selector.tooltip=Select evaluation context
+
+# LOCALIZATION NOTE (webconsole.group.cookieSameSiteLaxByDefaultEnabled2): do not translate 'SameSite'.
+webconsole.group.cookieSameSiteLaxByDefaultEnabled2=Some cookies are misusing the “SameSite“ attribute, so it won’t work as expected
+# LOCALIZATION NOTE (webconsole.group.cookieSameSiteLaxByDefaultDisabled2): do not translate 'SameSite'.
+webconsole.group.cookieSameSiteLaxByDefaultDisabled2=Some cookies are misusing the recommended “SameSite“ attribute
+
+# LOCALIZATION NOTE (webconsole.group.csp): do not translate
+# 'Content-Security-Policy', as that's the name of the header.
+webconsole.group.csp=Content-Security-Policy warnings
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/shared/accessibility.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/shared/accessibility.properties
new file mode 100644
index 0000000000..b14c679b2c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/shared/accessibility.properties
@@ -0,0 +1,142 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (accessibility.contrast.ratio): A title text for the color contrast
+# ratio description, used by the accessibility highlighter to display the value. %S in the
+# content will be replaced by the contrast ratio numerical value.
+accessibility.contrast.ratio=Contrast: %S
+
+# LOCALIZATION NOTE (accessibility.contrast.ratio.error): A title text for the color
+# contrast ratio, used when the tool is unable to calculate the contrast ratio value.
+accessibility.contrast.ratio.error=Unable to calculate
+
+# LOCALIZATION NOTE (accessibility.contrast.ratio.label): A title text for the color
+# contrast ratio description, used together with the actual values.
+accessibility.contrast.ratio.label=Contrast:
+
+# LOCALIZATION NOTE (accessibility.contrast.ratio.label.large): A title text for the color
+# contrast ratio description that also specifies that the color contrast criteria used is
+# if for large text.
+accessibility.contrast.ratio.label.large=Contrast (large text):
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.area): A title text that
+# describes that currently selected accessible object for an <area> element must have
+# its name provided via the alt attribute.
+accessibility.text.label.issue.area = Use “alt” attribute to label “area” elements that have the “href” attribute.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.dialog): A title text that
+# describes that currently selected accessible object for a dialog should have a name
+# provided.
+accessibility.text.label.issue.dialog = Dialogs should be labelled.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.document.title): A title text that
+# describes that currently selected accessible object for a document must have a name
+# provided via title.
+accessibility.text.label.issue.document.title = Documents must have a title.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.embed): A title text that
+# describes that currently selected accessible object for an <embed> must have a name
+# provided.
+accessibility.text.label.issue.embed = Embedded content must be labelled.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.figure): A title text that
+# describes that currently selected accessible object for a figure should have a name
+# provided.
+accessibility.text.label.issue.figure = Figures with optional captions should be labelled.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.fieldset): A title text that
+# describes that currently selected accessible object for a <fieldset> must have a name
+# provided.
+accessibility.text.label.issue.fieldset = “fieldset” elements must be labelled.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.fieldset.legend2): A title text that
+# describes that currently selected accessible object for a <fieldset> must have a name
+# provided via <legend> element.
+accessibility.text.label.issue.fieldset.legend2 = Use a “legend” element to label a “fieldset”.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.form): A title text that
+# describes that currently selected accessible object for a form element must have a name
+# provided.
+accessibility.text.label.issue.form = Form elements must be labelled.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.form.visible): A title text that
+# describes that currently selected accessible object for a form element should have a name
+# provided via a visible label/element.
+accessibility.text.label.issue.form.visible = Form elements should have a visible text label.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.frame): A title text that
+# describes that currently selected accessible object for a <frame> must have a name
+# provided.
+accessibility.text.label.issue.frame = “frame” elements must be labelled.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.glyph): A title text that
+# describes that currently selected accessible object for a <mglyph> must have a name
+# provided via alt attribute.
+accessibility.text.label.issue.glyph = Use “alt” attribute to label “mglyph” elements.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.heading): A title text that
+# describes that currently selected accessible object for a heading must have a name
+# provided.
+accessibility.text.label.issue.heading = Headings must be labelled.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.heading.content): A title text that
+# describes that currently selected accessible object for a heading must have visible
+# content.
+accessibility.text.label.issue.heading.content = Headings should have visible text content.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.iframe): A title text that
+# describes that currently selected accessible object for an <iframe> have a name
+# provided via title attribute.
+accessibility.text.label.issue.iframe = Use “title” attribute to describe “iframe” content.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.image): A title text that
+# describes that currently selected accessible object for graphical content must have a
+# name provided.
+accessibility.text.label.issue.image = Content with images must be labelled.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.interactive): A title text that
+# describes that currently selected accessible object for interactive element must have a
+# name provided.
+accessibility.text.label.issue.interactive = Interactive elements must be labelled.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.optgroup.label2): A title text that
+# describes that currently selected accessible object for an <optgroup> must have a
+# name provided via label attribute.
+accessibility.text.label.issue.optgroup.label2 = Use a “label” attribute to label an “optgroup”.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.toolbar): A title text that
+# describes that currently selected accessible object for a toolbar must have a
+# name provided when there is more than one toolbar in the document.
+accessibility.text.label.issue.toolbar = Toolbars must be labelled when there is more than one toolbar.
+
+# LOCALIZATION NOTE (accessibility.keyboard.issue.semantics): A title text that
+# describes that currently selected accessible object is focusable and should
+# indicate that it could be interacted with.
+accessibility.keyboard.issue.semantics=Focusable elements should have interactive semantics.
+
+# LOCALIZATION NOTE (accessibility.keyboard.issue.tabindex): A title text that
+# describes that currently selected accessible object has a corresponding
+# DOMNode that defines a tabindex attribute greater that 0 which can result in
+# unexpected behaviour when navigating with keyboard.
+accessibility.keyboard.issue.tabindex=Avoid using “tabindex” attribute greater than zero.
+
+# LOCALIZATION NOTE (accessibility.keyboard.issue.action): A title text that
+# describes that currently selected accessible object is interactive but can not
+# be activated using keyboard or accessibility API.
+accessibility.keyboard.issue.action=Interactive elements must be able to be activated using a keyboard.
+
+# LOCALIZATION NOTE (accessibility.keyboard.issue.focusable): A title text that
+# describes that currently selected accessible object is interactive but is not
+# focusable with a keyboard.
+accessibility.keyboard.issue.focusable=Interactive elements must be focusable.
+
+# LOCALIZATION NOTE (accessibility.keyboard.issue.focus.visible): A title text
+# that describes that currently selected accessible object is focusable but
+# might not have appropriate focus styling.
+accessibility.keyboard.issue.focus.visible=Focusable element may be missing focus styling.
+
+# LOCALIZATION NOTE (accessibility.keyboard.issue.mouse.only): A title text that
+# describes that currently selected accessible object is not focusable and not
+# semantic but can be activated via mouse (e.g. has click handler).
+accessibility.keyboard.issue.mouse.only=Clickable elements must be focusable and should have interactive semantics.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/shared/debugger.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/shared/debugger.properties
new file mode 100644
index 0000000000..c799b7968b
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/shared/debugger.properties
@@ -0,0 +1,67 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Debugger
+# which is available from the Web Developer sub-menu -> 'Debugger'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE These strings are used inside the Debugger
+# which is available from the Browser Tools sub-menu -> 'Debugger'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (remoteIncomingPromptTitle): The title displayed on the
+# dialog that prompts the user to allow the incoming connection.
+remoteIncomingPromptTitle=Incoming Connection
+
+# LOCALIZATION NOTE (remoteIncomingPromptHeader): Header displayed on the
+# dialog that prompts the user to allow the incoming connection.
+remoteIncomingPromptHeader=An incoming request to permit remote debugging connection was detected. A remote client can take complete control over your browser!
+# LOCALIZATION NOTE (remoteIncomingPromptClientEndpoint): Part of the prompt
+# dialog for the user to choose whether an incoming connection should be
+# allowed.
+# %1$S: The host and port of the client such as "127.0.0.1:6000"
+remoteIncomingPromptClientEndpoint=Client Endpoint: %1$S
+# LOCALIZATION NOTE (remoteIncomingPromptServerEndpoint): Part of the prompt
+# dialog for the user to choose whether an incoming connection should be
+# allowed.
+# %1$S: The host and port of the server such as "127.0.0.1:6000"
+remoteIncomingPromptServerEndpoint=Server Endpoint: %1$S
+# LOCALIZATION NOTE (remoteIncomingPromptFooter): Footer displayed on the
+# dialog that prompts the user to allow the incoming connection.
+remoteIncomingPromptFooter=Allow connection?
+
+# LOCALIZATION NOTE (remoteIncomingPromptDisable): The label displayed on the
+# third button in the incoming connection dialog that lets the user disable the
+# remote devtools server.
+remoteIncomingPromptDisable=Disable
+
+# LOCALIZATION NOTE (clientSendOOBTitle): The title displayed on the dialog that
+# instructs the user to transfer an authentication token to the server.
+clientSendOOBTitle=Client Identification
+# LOCALIZATION NOTE (clientSendOOBHeader): Header displayed on the dialog that
+# instructs the user to transfer an authentication token to the server.
+clientSendOOBHeader=The endpoint you are connecting to needs more information to authenticate this connection. Please provide the token below in the prompt that appears on the other end.
+# LOCALIZATION NOTE (clientSendOOBHash): Part of the dialog that instructs the
+# user to transfer an authentication token to the server.
+# %1$S: The client's cert fingerprint
+clientSendOOBHash=My Cert: %1$S
+# LOCALIZATION NOTE (clientSendOOBToken): Part of the dialog that instructs the
+# user to transfer an authentication token to the server.
+# %1$S: The authentication token that the user will transfer.
+clientSendOOBToken=Token: %1$S
+
+# LOCALIZATION NOTE (serverReceiveOOBTitle): The title displayed on the dialog
+# that instructs the user to provide an authentication token from the client.
+serverReceiveOOBTitle=Provide Client Token
+# LOCALIZATION NOTE (serverReceiveOOBBody): Main text displayed on the dialog
+# that instructs the user to provide an authentication token from the client.
+serverReceiveOOBBody=The client should be displaying a token value. Enter that token value here to complete authentication with this client.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/shared/eyedropper.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/shared/eyedropper.properties
new file mode 100644
index 0000000000..0f320ab37c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/shared/eyedropper.properties
@@ -0,0 +1,14 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used in the Eyedropper color tool.
+# LOCALIZATION NOTE The correct localization of this file might be to keep it
+# in English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best documentation
+# on web development on the web.
+
+# LOCALIZATION NOTE (colorValue.copied): This text is displayed when the user selects a
+# color with the eyedropper and it's copied to the clipboard.
+colorValue.copied=copied
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/shared/screenshot.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/shared/screenshot.properties
new file mode 100644
index 0000000000..56db1ba2c5
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/shared/screenshot.properties
@@ -0,0 +1,148 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside Web Console commands.
+# The Web Console command line is available from the Web Developer sub-menu
+# -> 'Web Console'.
+#
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE These strings are used inside the Web Console commands
+# which can be executed in the Developer Tools, available in the
+# Browser Tools sub-menu -> 'Web Developer Tools'
+#
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (screenshotDesc) A very short description of the
+# 'screenshot' command. Displayed when the --help flag is passed to
+# the screenshot command.
+screenshotDesc=Save an image of the page
+
+# LOCALIZATION NOTE (screenshotFilenameDesc) A very short string to describe
+# the 'filename' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the screenshot command.
+screenshotFilenameDesc=Destination filename
+
+# LOCALIZATION NOTE (screenshotFilenameManual) A fuller description of the
+# 'filename' parameter to the 'screenshot' command.
+screenshotFilenameManual=The name of the file (should have a “.png” extension) to which we write the screenshot.
+
+# LOCALIZATION NOTE (screenshotClipboardDesc) A very short string to describe
+# the 'clipboard' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the screenshot command.
+screenshotClipboardDesc=Copy screenshot to clipboard? (true/false)
+
+# LOCALIZATION NOTE (screenshotClipboardManual) A fuller description of the
+# 'clipboard' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the screenshot command.
+screenshotClipboardManual=True if you want to copy the screenshot instead of saving it to a file.
+
+# LOCALIZATION NOTE (screenshotGroupOptions) A label for the optional options of
+# the screenshot command. Displayed when the --help flag is passed to the
+# screenshot command.
+screenshotGroupOptions=Options
+
+# LOCALIZATION NOTE (screenshotDelayDesc) A very short string to describe
+# the 'delay' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the screenshot command.
+screenshotDelayDesc=Delay (seconds)
+
+# LOCALIZATION NOTE (screenshotDelayManual) A fuller description of the
+# 'delay' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the screenshot command.
+screenshotDelayManual=The time to wait (in seconds) before the screenshot is taken
+
+# LOCALIZATION NOTE (screenshotDPRDesc) A very short string to describe
+# the 'dpr' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the `screenshot command.
+screenshotDPRDesc=Device pixel ratio
+
+# LOCALIZATION NOTE (screenshotDPRManual) A fuller description of the
+# 'dpr' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the `screenshot command.
+screenshotDPRManual=The device pixel ratio to use when taking the screenshot
+
+# LOCALIZATION NOTE (screenshotFullPageDesc) A very short string to describe
+# the 'fullpage' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the `screenshot command.
+screenshotFullPageDesc=Entire webpage? (true/false)
+
+# LOCALIZATION NOTE (screenshotFullPageManual) A fuller description of the
+# 'fullpage' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the `screenshot command.
+screenshotFullPageManual=True if the screenshot should also include parts of the webpage which are outside the current scrolled bounds.
+
+# LOCALIZATION NOTE (screenshotFileDesc) A very short string to describe
+# the 'file' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the `screenshot command.
+screenshotFileDesc=Save to file? (true/false)
+
+# LOCALIZATION NOTE (screenshotFileManual) A fuller description of the
+# 'file' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the `screenshot command.
+screenshotFileManual=True if the screenshot should save the file even when other options are enabled (e.g. clipboard).
+
+# LOCALIZATION NOTE (screenshotGeneratedFilename) The auto generated filename
+# when no file name is provided. The first argument (%1$S) is the date string
+# in yyyy-mm-dd format and the second argument (%2$S) is the time string
+# in HH.MM.SS format. Please don't add the extension here.
+screenshotGeneratedFilename=Screen Shot %1$S at %2$S
+
+# LOCALIZATION NOTE (screenshotErrorSavingToFile) Text displayed to user upon
+# encountering error while saving the screenshot to the file specified.
+# The argument (%1$S) is the filename.
+screenshotErrorSavingToFile=Error saving to %1$S
+
+# LOCALIZATION NOTE (screenshotSavedToFile) Text displayed to user when the
+# screenshot is successfully saved to the file specified.
+# The argument (%1$S) is the filename.
+screenshotSavedToFile=Saved to %1$S
+
+# LOCALIZATION NOTE (screenshotErrorCopying) Text displayed to user upon
+# encountering error while copying the screenshot to clipboard.
+screenshotErrorCopying=Error occurred while copying screenshot to clipboard.
+
+# LOCALIZATION NOTE (screenshotCopied) Text displayed to user when the
+# screenshot is successfully copied to the clipboard.
+screenshotCopied=Screenshot copied to clipboard.
+
+# LOCALIZATION NOTE (inspectNodeDesc) A very short string to describe the
+# 'node' parameter to the 'inspect' command. Displayed when the
+# --help flag is passed to the `screenshot command.
+inspectNodeDesc=CSS selector
+
+# LOCALIZATION NOTE (inspectNodeManual) A fuller description of the 'node'
+# parameter to the 'inspect' command. Displayed when the --help flag is
+# passed to the `screenshot command.
+inspectNodeManual=A CSS selector for use with document.querySelector which identifies a single element
+
+# LOCALIZATION NOTE (screenshotTruncationWarning) Text displayed to user when the image
+# that would be created by the screenshot is too big and needs to be truncated to avoid
+# errors.
+# The first parameter is the width of the final image and the second parameter is the
+# height of the image.
+screenshotTruncationWarning=The image was cut off to %1$S×%2$S as the resulting image was too large
+
+# LOCALIZATION NOTE (screenshotDPRDecreasedWarning2) Text displayed to user when
+# taking the screenshot initially failed. When the Device Pixel Ratio is larger
+# than 1.0 a second try immediately after displaying this message is attempted.
+screenshotDPRDecreasedWarning=The device pixel ratio was reduced to 1 as the resulting image was too large
+
+# LOCALIZATION NOTE (screenshotRenderingError) Text displayed to user upon
+# encountering an error while rendering the screenshot. This most often happens when the
+# resulting image is too large to be rendered.
+screenshotRenderingError=Error creating the image. The resulting image was probably too large.
+
+# LOCALIZATION NOTE (screenshotNoSelectorMatchWarning) Text displayed to user when the
+# provided selector for the screenshot does not match any element on the page.
+# The argument (%1$S) is selector.
+screenshotNoSelectorMatchWarning=The ‘%S’ selector does not match any element on the page.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/shared/shared.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/shared/shared.properties
new file mode 100644
index 0000000000..0978450dee
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/shared/shared.properties
@@ -0,0 +1,6 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (ellipsis): The ellipsis (three dots) character
+ellipsis=…
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/shared/styleinspector.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/shared/styleinspector.properties
new file mode 100644
index 0000000000..c40b1d8fd3
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/devtools/shared/styleinspector.properties
@@ -0,0 +1,249 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Style Inspector.
+#
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+
+# LOCALIZATION NOTE (rule.status): For each style property the panel shows
+# the rules which hold that specific property. For every rule, the rule status
+# is also displayed: a rule can be the best match, a match, a parent match, or a
+# rule did not match the element the user has highlighted.
+rule.status.BEST=Best Match
+rule.status.MATCHED=Matched
+rule.status.PARENT_MATCH=Parent Match
+
+# LOCALIZATION NOTE (rule.sourceElement, rule.sourceInline,
+# rule.sourceConstructed): For each style property the panel shows the rules
+# which hold that specific property.
+# For every rule, the rule source is also displayed: a rule can come from a
+# file, from the same page (inline), from a constructed style sheet
+# (constructed), or from the element itself (element).
+rule.sourceInline=inline
+rule.sourceConstructed=constructed
+rule.sourceElement=element
+
+# LOCALIZATION NOTE (rule.inheritedFrom): Shown for CSS rules
+# that were inherited from a parent node. Will be passed a node
+# identifier of the parent node.
+# e.g "Inherited from body#bodyID"
+rule.inheritedFrom=Inherited from %S
+
+# LOCALIZATION NOTE (rule.keyframe): Shown for CSS Rules keyframe header.
+# Will be passed an identifier of the keyframe animation name.
+rule.keyframe=Keyframes %S
+
+# LOCALIZATION NOTE (rule.userAgentStyles): Shown next to the style sheet
+# link for CSS rules that were loaded from a user agent style sheet.
+# These styles will not be editable, and will only be visible if the
+# devtools.inspector.showUserAgentStyles pref is true.
+rule.userAgentStyles=(user agent)
+
+# LOCALIZATION NOTE (rule.pseudoElement): Shown for CSS rules
+# pseudo element header
+rule.pseudoElement=Pseudo-elements
+
+# LOCALIZATION NOTE (rule.selectedElement): Shown for CSS rules element header if
+# pseudo elements are present in the rule view.
+rule.selectedElement=This Element
+
+# LOCALIZATION NOTE (rule.warning.title): When an invalid property value is
+# entered into the rule view a warning icon is displayed. This text is used for
+# the title attribute of the warning icon.
+rule.warning.title=Invalid property value
+
+# LOCALIZATION NOTE (rule.warningName.title): When an invalid property name is
+# entered into the rule view a warning icon is displayed. This text is used for
+# the title attribute of the warning icon.
+rule.warningName.title=Invalid property name
+
+# LOCALIZATION NOTE (rule.filterProperty.title): Text displayed in the tooltip
+# of the search button that is shown next to a property that has been overridden
+# in the rule view.
+rule.filterProperty.title=Filter rules containing this property
+
+# LOCALIZATION NOTE (rule.empty): Text displayed when the highlighter is
+# first opened and there's no node selected in the rule view.
+rule.empty=No element selected.
+
+# LOCALIZATION NOTE (rule.variableValue): Text displayed in a tooltip
+# when the mouse is over a variable use (like "var(--something)") in
+# the rule view. The first argument is the variable name and the
+# second argument is the value.
+rule.variableValue=%S = %S
+
+# LOCALIZATION NOTE (rule.variableUnset): Text displayed in a tooltip
+# when the mouse is over a variable use (like "var(--something)"),
+# where the variable is not set. the rule view. The argument is the
+# variable name.
+rule.variableUnset=%S is not set
+
+# LOCALIZATION NOTE (rule.selectorHighlighter.tooltip): Text displayed in a
+# tooltip when the mouse is over a selector highlighter icon in the rule view.
+rule.selectorHighlighter.tooltip=Highlight all elements matching this selector
+
+# LOCALIZATION NOTE (rule.colorSwatch.tooltip): Text displayed in a tooltip
+# when the mouse is over a color swatch in the rule view.
+rule.colorSwatch.tooltip=Click to open the colour picker, Shift+click to change the colour format
+
+# LOCALIZATION NOTE (rule.bezierSwatch.tooltip): Text displayed in a tooltip
+# when the mouse is over a cubic-bezier swatch in the rule view.
+rule.bezierSwatch.tooltip=Click to open the timing-function editor
+
+# LOCALIZATION NOTE (rule.filterSwatch.tooltip): Text displayed in a tooltip
+# when the mouse is over a filter swatch in the rule view.
+rule.filterSwatch.tooltip=Click to open the filter editor
+
+# LOCALIZATION NOTE (rule.angleSwatch.tooltip): Text displayed in a tooltip
+# when the mouse is over a angle swatch in the rule view.
+rule.angleSwatch.tooltip=Shift+click to change the angle format
+
+# LOCALIZATION NOTE (rule.flexToggle.tooltip): Text displayed in a tooltip
+# when the mouse is over a Flexbox toggle icon in the rule view.
+rule.flexToggle.tooltip=Click to toggle the Flexbox highlighter
+
+# LOCALIZATION NOTE (rule.gridToggle.tooltip): Text displayed in a tooltip
+# when the mouse is over a CSS Grid toggle icon in the rule view.
+rule.gridToggle.tooltip=Click to toggle the CSS Grid highlighter
+
+# LOCALIZATION NOTE (rule.filterStyles.placeholder): This is the placeholder that
+# goes in the search box when no search term has been entered.
+rule.filterStyles.placeholder=Filter Styles
+
+# LOCALIZATION NOTE (rule.addRule.tooltip): This is the tooltip shown when
+# hovering the `Add new rule` button in the rules view toolbar.
+rule.addRule.tooltip=Add new rule
+
+# LOCALIZATION NOTE (rule.togglePseudo.tooltip): This is the tooltip
+# shown when hovering over the `Toggle Pseudo Class Panel` button in the
+# rule view toolbar.
+rule.togglePseudo.tooltip=Toggle pseudo-classes
+
+# LOCALIZATION NOTE (rule.classPanel.toggleClass.tooltip): This is the tooltip
+# shown when hovering over the `Toggle Class Panel` button in the
+# rule view toolbar.
+rule.classPanel.toggleClass.tooltip=Toggle classes
+
+# LOCALIZATION NOTE (rule.classPanel.newClass.placeholder): This is the placeholder
+# shown inside the text field used to add a new class in the rule-view.
+rule.classPanel.newClass.placeholder=Add new class
+
+# LOCALIZATION NOTE (rule.classPanel.noClasses): This is the text displayed in the
+# class panel when the current element has no classes applied.
+rule.classPanel.noClasses=No classes on this element
+
+# LOCALIZATION NOTE (rule.printSimulation.tooltip):
+# This is the tooltip of the print simulation button in the Rule View toolbar
+# that toggles print simulation.
+rule.printSimulation.tooltip=Toggle print media simulation for the page
+
+# LOCALIZATION NOTE (rule.colorSchemeSimulation.tooltip):
+# This is the tooltip of the color scheme simulation button in the Rule View
+# toolbar that toggles color-scheme simulation.
+rule.colorSchemeSimulation.tooltip=Toggle color-scheme simulation for the page
+
+# LOCALIZATION NOTE (rule.twistyCollapse.label): The text a screen reader
+# speaks when the header of a rule is expanded.
+rule.twistyCollapse.label=Collapse
+
+# LOCALIZATION NOTE (rule.twistyExpand.label): The text a screen reader
+# speaks when the header of a rule is collapsed.
+rule.twistyExpand.label=Expand
+
+# LOCALIZATION NOTE (rule.containerQuery.selectContainerButton.tooltip): Text displayed in a
+# tooltip when the mouse is over the icon to select a container in a container query in the rule view.
+rule.containerQuery.selectContainerButton.tooltip=Click to select the container node
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyColor): Text displayed in the rule
+# and computed view context menu when a color value was clicked.
+styleinspector.contextmenu.copyColor=Copy Colour
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyColor.accessKey): Access key for
+# the rule and computed view context menu "Copy Color" entry.
+styleinspector.contextmenu.copyColor.accessKey=L
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyUrl): In rule and computed view :
+# text displayed in the context menu for an image URL.
+# Clicking it copies the URL to the clipboard of the user.
+styleinspector.contextmenu.copyUrl=Copy URL
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyUrl.accessKey): Access key for
+# the rule and computed view context menu "Copy URL" entry.
+styleinspector.contextmenu.copyUrl.accessKey=U
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyImageDataUrl): In rule and computed view :
+# text displayed in the context menu for an image URL.
+# Clicking it copies the image as Data-URL to the clipboard of the user.
+styleinspector.contextmenu.copyImageDataUrl=Copy Image Data-URL
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyImageDataUrl.accessKey): Access key for
+# the rule and computed view context menu "Copy Image Data-URL" entry.
+styleinspector.contextmenu.copyImageDataUrl.accessKey=I
+
+# LOCALIZATION NOTE (styleinspector.copyImageDataUrlError): Text set in the clipboard
+# if an error occurs when using the copyImageDataUrl context menu action
+# (invalid image link, timeout, etc...)
+styleinspector.copyImageDataUrlError=Failed to copy image Data-URL
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.toggleOrigSources): Text displayed in the rule view
+# context menu.
+styleinspector.contextmenu.toggleOrigSources=Show Original Sources
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.toggleOrigSources.accessKey): Access key for
+# the rule view context menu "Show original sources" entry.
+styleinspector.contextmenu.toggleOrigSources.accessKey=O
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.addNewRule): Text displayed in the
+# rule view context menu for adding a new rule to the element.
+# This should match inspector.addRule.tooltip in inspector.properties
+styleinspector.contextmenu.addNewRule=Add New Rule
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.addNewRule.accessKey): Access key for
+# the rule view context menu "Add rule" entry.
+styleinspector.contextmenu.addNewRule.accessKey=R
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.selectAll): Text displayed in the
+# computed view context menu.
+styleinspector.contextmenu.selectAll=Select All
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.selectAll.accessKey): Access key for
+# the computed view context menu "Select all" entry.
+styleinspector.contextmenu.selectAll.accessKey=A
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copy): Text displayed in the
+# computed view context menu.
+styleinspector.contextmenu.copy=Copy
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copy.accessKey): Access key for
+# the computed view context menu "Copy" entry.
+styleinspector.contextmenu.copy.accessKey=C
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyLocation): Text displayed in the
+# rule view context menu for copying the source location.
+styleinspector.contextmenu.copyLocation=Copy Location
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyDeclaration): Text
+# displayed in the rule view context menu for copying the CSS declaration.
+styleinspector.contextmenu.copyDeclaration=Copy Declaration
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyPropertyName): Text displayed in
+# the rule view context menu for copying the property name.
+styleinspector.contextmenu.copyPropertyName=Copy Property Name
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyPropertyValue): Text displayed in
+# the rule view context menu for copying the property value.
+styleinspector.contextmenu.copyPropertyValue=Copy Property Value
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyRule): Text displayed in the
+# rule view context menu for copying the rule.
+styleinspector.contextmenu.copyRule=Copy Rule
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copySelector): Text displayed in the
+# rule view context menu for copying the selector.
+styleinspector.contextmenu.copySelector=Copy Selector
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/mac/accessible.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/mac/accessible.properties
new file mode 100644
index 0000000000..ff7d3167e7
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/mac/accessible.properties
@@ -0,0 +1,71 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+jump = Jump
+press = Press
+check = Check
+uncheck = Uncheck
+select = Select
+open = Open
+close = Close
+switch = Switch
+click = Click
+collapse= Collapse
+expand = Expand
+activate= Activate
+cycle = Cycle
+# An action provided to accessibility clients such as screen readers to allow
+# them to click an element when the click will be handled by a container
+# (ancestor) element. This is not normally reported to users.
+click ancestor = Click ancestor
+
+# Universal Access API support
+# (Mac Only)
+# The Role Description for AXWebArea (the web widget). Like in Safari.
+htmlContent = HTML Content
+# The Role Description for the Tab button.
+tab = tab
+# The Role Description for definition list dl, dt and dd
+term = term
+definition = definition
+# The Role Description for an input type="search" text field
+searchTextField = search text field
+# Role Description (exposed as AXTitle) for datepickers
+dateField = date field
+# The Role Description for WAI-ARIA Landmarks
+application = application
+search = search
+banner = banner
+navigation = navigation
+complementary = complementary
+content = content
+main = main
+# The (spoken) role description for various WAI-ARIA roles
+alert = alert
+alertDialog = alert dialog
+dialog = dialog
+article = article
+document = document
+# The (spoken) role description for the WAI-ARIA figure role
+# https://w3c.github.io/aria/core-aam/core-aam.html#role-map-figure
+figure = figure
+# The (spoken) role description for the WAI-ARIA heading role
+# https://w3c.github.io/aria/core-aam/core-aam.html#role-map-heading
+heading = heading
+log = log
+marquee = marquee
+math = math
+note = note
+region = region
+status = application status
+timer = timer
+tooltip = tooltip
+separator = separator
+tabPanel = tab panel
+# The roleDescription for the html:mark element
+highlight = highlight
+# The roleDescription for the details element
+details = details
+# The roleDescription for the summary element
+summary = summary
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/mac/intl.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/mac/intl.properties
new file mode 100644
index 0000000000..71265a9ef1
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/mac/intl.properties
@@ -0,0 +1,7 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (intl.ellipsis): Use the unicode ellipsis char, \u2026,
+# or use "..." if \u2026 doesn't suit traditions in your locale.
+intl.ellipsis=…
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/mac/platformKeys.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/mac/platformKeys.properties
new file mode 100644
index 0000000000..d830a29b86
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/mac/platformKeys.properties
@@ -0,0 +1,33 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Platform: Mac
+# This file defines the on-screen display names for the various modifier keys
+# and the Return key (VK_RETURN).
+# These are used in XP menus to show keyboard shortcuts.
+
+# The Shift key - open up arrow symbol (ctrl-e)
+VK_SHIFT=⇧
+
+# The Command key - clover leaf symbol (ctrl-q)
+VK_META=⌘
+
+# The Win key - never generated by native key event
+VK_WIN=win
+
+# The Command key - clover leaf symbol (ctrl-q)
+VK_COMMAND_OR_WIN=\u2318
+
+# The Option/Alt key - splitting tracks symbol (ctrl-g)
+VK_ALT=⌥
+
+# The Control key - hat symbol (ctrl-f)
+VK_CONTROL=⌃
+
+# The Return key (on the main keyboard or numpad):
+# "Enter" on Windows/Unix, "Return" on Mac
+VK_RETURN=Return
+
+# The separator character used between modifiers (none on Mac OS)
+MODIFIER_SEPARATOR=
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/unix/accessible.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/unix/accessible.properties
new file mode 100644
index 0000000000..7a0665712e
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/unix/accessible.properties
@@ -0,0 +1,21 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+jump = Jump
+press = Press
+check = Check
+uncheck = Uncheck
+select = Select
+open = Open
+close = Close
+switch = Switch
+click = Click
+collapse= Collapse
+expand = Expand
+activate= Activate
+cycle = Cycle
+# An action provided to accessibility clients such as screen readers to allow
+# them to click an element when the click will be handled by a container
+# (ancestor) element. This is not normally reported to users.
+click ancestor = Click ancestor
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/unix/intl.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/unix/intl.properties
new file mode 100644
index 0000000000..71265a9ef1
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/unix/intl.properties
@@ -0,0 +1,7 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (intl.ellipsis): Use the unicode ellipsis char, \u2026,
+# or use "..." if \u2026 doesn't suit traditions in your locale.
+intl.ellipsis=…
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/unix/platformKeys.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/unix/platformKeys.properties
new file mode 100644
index 0000000000..fded02a68e
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/unix/platformKeys.properties
@@ -0,0 +1,33 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Platform: Unix
+# This file defines the on-screen display names for the various modifier keys
+# and the Enter key (VK_RETURN).
+# These are used in XP menus to show keyboard shortcuts.
+
+# The Shift key
+VK_SHIFT=Shift
+
+# The Command key
+VK_META=Meta
+
+# The Win key (Super key and Hyper keys are mapped to DOM Win key)
+VK_WIN=Win
+
+# The Super/Hyper key
+VK_COMMAND_OR_WIN=Win
+
+# The Alt key
+VK_ALT=Alt
+
+# The Control key
+VK_CONTROL=Ctrl
+
+# The Enter key (on the main keyboard or numpad):
+# "Enter" on Windows/Unix, "Return" on Mac
+VK_RETURN=Enter
+
+# The separator character used between modifiers
+MODIFIER_SEPARATOR=+
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/win/accessible.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/win/accessible.properties
new file mode 100644
index 0000000000..7a0665712e
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/win/accessible.properties
@@ -0,0 +1,21 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+jump = Jump
+press = Press
+check = Check
+uncheck = Uncheck
+select = Select
+open = Open
+close = Close
+switch = Switch
+click = Click
+collapse= Collapse
+expand = Expand
+activate= Activate
+cycle = Cycle
+# An action provided to accessibility clients such as screen readers to allow
+# them to click an element when the click will be handled by a container
+# (ancestor) element. This is not normally reported to users.
+click ancestor = Click ancestor
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/win/intl.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/win/intl.properties
new file mode 100644
index 0000000000..71265a9ef1
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/win/intl.properties
@@ -0,0 +1,7 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (intl.ellipsis): Use the unicode ellipsis char, \u2026,
+# or use "..." if \u2026 doesn't suit traditions in your locale.
+intl.ellipsis=…
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/win/platformKeys.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/win/platformKeys.properties
new file mode 100644
index 0000000000..1df027dccf
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global-platform/win/platformKeys.properties
@@ -0,0 +1,33 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Platform: Windows
+# This file defines the on-screen display names for the various modifier keys
+# and the Enter key (VK_RETURN).
+# These are used in XP menus to show keyboard shortcuts.
+
+# The Shift key
+VK_SHIFT=Shift
+
+# The Command key
+VK_META=Meta
+
+# The Win key
+VK_WIN=Win
+
+# The Win key
+VK_COMMAND_OR_WIN=Win
+
+# The Alt key
+VK_ALT=Alt
+
+# The Control key
+VK_CONTROL=Ctrl
+
+# The Enter key (on the main keyboard or numpad):
+# "Enter" on Windows/Unix, "Return" on Mac
+VK_RETURN=Enter
+
+# The separator character used between modifiers
+MODIFIER_SEPARATOR=+
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/aboutStudies.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/aboutStudies.properties
new file mode 100644
index 0000000000..a117532a3c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/aboutStudies.properties
@@ -0,0 +1,33 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+# LOCALIZATION NOTE (title): keep "Shield" in English. See
+# https://wiki.mozilla.org/Firefox/Shield/Shield_Studies for more information
+title = Shield Studies
+removeButton = Remove
+
+# LOCALIZATION NOTE (activeStudiesList): Title above a list of active studies
+activeStudiesList = Active studies
+# LOCALIZATION NOTE (activeStudiesList): Title above a list of completed studies
+completedStudiesList = Completed studies
+# LOCALIZATION NOTE (activeStatus): Displayed for an active study
+activeStatus = Active
+
+# LOCALIZATION NOTE (completeStatus): Displayed for a study that is already complete
+completeStatus = Complete
+
+updateButtonWin = Update Options
+updateButtonUnix = Update Preferences
+learnMore = Learn more
+noStudies = You have not participated in any studies.
+disabledList = This is a list of studies that you have participated in. No new studies will run.
+# LOCALIZATION NOTE (enabledList): %S is brandShortName (e.g. Firefox)
+enabledList = What’s this? %S may install and run studies from time to time.
+
+# LOCALIZATION NOTE (preferenceStudyDescription) $1%S will be replaced with the
+# name of a preference (such as "stream.improvesearch.topSiteSearchShortcuts")
+# and $2%S will be replaced with the value of that preference. Both values will
+# be formatted differently than the surrounding text.
+preferenceStudyDescription = This study sets %1$S to %2$S.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/appstrings.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/appstrings.properties
new file mode 100644
index 0000000000..1267a91072
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/appstrings.properties
@@ -0,0 +1,37 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+malformedURI2=Please check that the URL is correct and try again.
+fileNotFound=The file %S cannot be found. Please check the location and try again.
+fileAccessDenied=The file at %S is not readable.
+dnsNotFound2=%S could not be found. Please check the name and try again.
+unknownProtocolFound=One of the following (%S) is not a registered protocol or is not allowed in this context.
+connectionFailure=The connection was refused when attempting to contact %S.
+netInterrupt=The connection to %S has terminated unexpectedly. Some data may have been transferred.
+netTimeout=The operation timed out when attempting to contact %S.
+redirectLoop=Redirection limit for this URL exceeded. Unable to load the requested page. This may be caused by cookies that are blocked.
+confirmRepostPrompt=To display this page, the application must send information that will repeat any action (such as a search or order confirmation) that was performed earlier.
+resendButton.label=Resend
+unknownSocketType=This document cannot be displayed unless you install the Personal Security Manager (PSM). Download and install PSM and try again, or contact your system administrator.
+netReset=The document contains no data.
+notCached=This document is no longer available.
+netOffline=This document cannot be displayed while offline. To go online, uncheck Work Offline from the File menu.
+isprinting=The document cannot change while Printing or in Print Preview.
+deniedPortAccess=Access to the port number given has been disabled for security reasons.
+proxyResolveFailure=The proxy server you have configured could not be found. Please check your proxy settings and try again.
+proxyConnectFailure=The connection was refused when attempting to contact the proxy server you have configured. Please check your proxy settings and try again.
+contentEncodingError=The page you are trying to view cannot be shown because it uses an invalid or unsupported form of compression.
+unsafeContentType=The page you are trying to view cannot be shown because it is contained in a file type that may not be safe to open. Please contact the website owners to inform them of this problem.
+malwareBlocked=The site at %S has been reported as an attack site and has been blocked based on your security preferences.
+harmfulBlocked=The site at %S has been reported as a potentially harmful site and has been blocked based on your security preferences.
+unwantedBlocked=The site at %S has been reported as serving unwanted software and has been blocked based on your security preferences.
+deceptiveBlocked=This web page at %S has been reported as a deceptive site and has been blocked based on your security preferences.
+cspBlocked=This page has a content security policy that prevents it from being loaded in this way.
+xfoBlocked=This page has an X-Frame-Options policy that prevents it from being loaded in this context.
+corruptedContentErrorv2=The site at %S has experienced a network protocol violation that cannot be repaired.
+sslv3Used=The safety of your data on %S could not be guaranteed because it uses SSLv3, a broken security protocol.
+weakCryptoUsed=The owner of %S has configured their website improperly. To protect your information from being stolen, the connection to this website has not been established.
+inadequateSecurityError=The website tried to negotiate an inadequate level of security.
+blockedByPolicy=Your organization has blocked access to this page or website.
+networkProtocolError=Firefox has experienced a network protocol violation that cannot be repaired.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/autocomplete.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/autocomplete.properties
new file mode 100644
index 0000000000..105e0ff25c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/autocomplete.properties
@@ -0,0 +1,9 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (bookmarkKeywordSearch): This is the title of autocomplete
+# entries that are bookmark keyword searches. %1$S will be replaced with the
+# domain name of the bookmark, and %2$S will be replaced with the keyword
+# search text that the user is typing. %2$S will not be empty.
+bookmarkKeywordSearch = %1$S: %2$S
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/browser.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/browser.properties
new file mode 100644
index 0000000000..1fd8a65de6
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/browser.properties
@@ -0,0 +1,7 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+formPostSecureToInsecureWarning.title = Security Warning
+formPostSecureToInsecureWarning.message = The information you have entered on this page will be sent over an insecure connection and could be read by a third party.\n\nAre you sure you want to send this information?
+formPostSecureToInsecureWarning.continue = Continue
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/commonDialogs.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/commonDialogs.properties
new file mode 100644
index 0000000000..14079b9879
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/commonDialogs.properties
@@ -0,0 +1,46 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+Alert=Alert
+Confirm=Confirm
+ConfirmCheck=Confirm
+Prompt=Prompt
+# LOCALIZATION NOTE - %S is brandFullName
+PromptUsernameAndPassword3=Authentication Required - %S
+# LOCALIZATION NOTE - %S is brandFullName
+PromptPassword3=Password Required - %S
+Select=Select
+OK=OK
+Cancel=Cancel
+Yes=&Yes
+No=&No
+Save=&Save
+Revert=&Revert
+DontSave=Do&n’t Save
+ScriptDlgGenericHeading=[JavaScript Application]
+ScriptDlgHeading=The page at %S says:
+ScriptDlgNullPrincipalHeading=This page says:
+ScriptDialogLabel=Prevent this page from creating additional dialogs
+ScriptDialogLabelNullPrincipal=Don’t allow this site to prompt you again
+# LOCALIZATION NOTE (ScriptDialogLabelContentPrincipal):
+# %S is either the domain and port of the site prompting, or the name of
+# an add-on prompting.
+ScriptDialogLabelContentPrincipal=Don’t allow %S to prompt you again
+ScriptDialogPreventTitle=Confirm Dialog Preference
+# LOCALIZATION NOTE (EnterLoginForRealm3, EnterLoginForProxy3):
+# %1 is an untrusted string provided by a remote server. It could try to
+# take advantage of sentence structure in order to mislead the user (see
+# bug 244273). %1 should be integrated into the translated sentences as
+# little as possible. %2 is the url of the site being accessed.
+EnterLoginForRealm3=%2$S is requesting your username and password. The site says: “%1$S”
+EnterLoginForProxy3=The proxy %2$S is requesting a username and password. The site says: “%1$S”
+EnterUserPasswordFor2=%1$S is requesting your username and password.
+EnterUserPasswordForCrossOrigin2=%1$S is requesting your username and password. WARNING: Your password will not be sent to the website you are currently visiting!
+EnterPasswordFor=Enter password for %1$S on %2$S
+EnterCredentials=This site is asking you to sign in.
+# %S is the username for which a password is requested.
+EnterPasswordOnlyFor=This site is asking you to sign in as %S.
+# %S is the domain of the site being accessed.
+EnterCredentialsCrossOrigin=This site is asking you to sign in. Warning: Your login information will be shared with %S, not the website you are currently visiting.
+SignIn=Sign in
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/contentAreaCommands.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/contentAreaCommands.properties
new file mode 100644
index 0000000000..311df92c30
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/contentAreaCommands.properties
@@ -0,0 +1,28 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# context menu strings
+
+SaveImageTitle=Save Image
+SaveMediaTitle=Save Media
+SaveVideoTitle=Save Video
+SaveAudioTitle=Save Audio
+SaveLinkTitle=Save As
+WebPageCompleteFilter=Web Page, complete
+WebPageHTMLOnlyFilter=Web Page, HTML only
+WebPageXHTMLOnlyFilter=Web Page, XHTML only
+WebPageSVGOnlyFilter=Web Page, SVG only
+WebPageXMLOnlyFilter=Web Page, XML only
+
+# LOCALIZATION NOTE (UntitledSaveFileName):
+# This is the default filename used when saving a file if a filename could
+# not be determined or if a filename was invalid. A period and file
+# extension may be appended to this string.
+UntitledSaveFileName=Untitled
+
+# LOCALIZATION NOTE (filesFolder):
+# This is the name of the folder that is created parallel to a HTML file
+# when it is saved "With Images". The %S section is replaced with the
+# leaf name of the file being saved (minus extension).
+filesFolder=%S_files
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/css.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/css.properties
new file mode 100644
index 0000000000..7bc40b1bbc
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/css.properties
@@ -0,0 +1,52 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+MimeNotCss=The stylesheet %1$S was not loaded because its MIME type, “%2$S”, is not “text/css”.
+MimeNotCssWarn=The stylesheet %1$S was loaded as CSS even though its MIME type, “%2$S”, is not “text/css”.
+
+PEDeclDropped=Declaration dropped.
+PEDeclSkipped=Skipped to next declaration.
+PEUnknownProperty=Unknown property “%1$S”.
+PEPRSyntaxFieldEmptyInput=@property syntax descriptor is empty.
+PEPRSyntaxFieldExpectedPipe=@property syntax descriptor ‘%S’ contains components without a pipe between them.
+PEPRSyntaxFieldInvalidNameStart=@property syntax descriptor ‘%S’ contains a component name that starts with an invalid character.
+PEPRSyntaxFieldInvalidName=@property syntax descriptor ‘%S’ contains a component name with an invalid character.
+PEPRSyntaxFieldUnclosedDataTypeName=@property syntax descriptor ‘%S’ contains an unclosed data type name.
+PEPRSyntaxFieldUnexpectedEOF=@property syntax descriptor ‘%S’ is incomplete.
+PEPRSyntaxFieldUnknownDataTypeName=@property syntax descriptor ‘%S’ contains an unknown data type name.
+PEValueParsingError=Error in parsing value for “%1$S”.
+PEUnknownAtRule=Unrecognized at-rule or error parsing at-rule “%1$S”.
+PEMQUnexpectedOperator=Unexpected operator in media list.
+PEMQUnexpectedToken=Unexpected token ‘%1$S’ in media list.
+PEAtNSUnexpected=Unexpected token within @namespace: “%1$S”.
+PEKeyframeBadName=Expected identifier for name of @keyframes rule.
+PEBadSelectorRSIgnored=Ruleset ignored due to bad selector.
+PEBadSelectorKeyframeRuleIgnored=Keyframe rule ignored due to bad selector.
+PESelectorGroupNoSelector=Selector expected.
+PESelectorGroupExtraCombinator=Dangling combinator.
+PEClassSelNotIdent=Expected identifier for class selector but found “%1$S”.
+PETypeSelNotType=Expected element name or “*” but found “%1$S”.
+PEUnknownNamespacePrefix=Unknown namespace prefix “%1$S”.
+PEAttributeNameExpected=Expected identifier for attribute name but found “%1$S”.
+PEAttributeNameOrNamespaceExpected=Expected attribute name or namespace but found “%1$S”.
+PEAttSelNoBar=Expected “|” but found “%1$S”.
+PEAttSelUnexpected=Unexpected token in attribute selector: “%1$S”.
+PEAttSelBadValue=Expected identifier or string for value in attribute selector but found “%1$S”.
+PEPseudoSelBadName=Expected identifier for pseudo-class or pseudo-element but found “%1$S”.
+PEPseudoSelEndOrUserActionPC=Expected end of selector or a user action pseudo-class after pseudo-element but found “%1$S”.
+PEPseudoSelUnknown=Unknown pseudo-class or pseudo-element “%1$S”.
+PEPseudoClassArgNotIdent=Expected identifier for pseudo-class parameter but found “%1$S”.
+PEColorNotColor=Expected colour but found “%1$S”.
+PEParseDeclarationDeclExpected=Expected declaration but found “%1$S”.
+PEUnknownFontDesc=Unknown descriptor “%1$S” in @font-face rule.
+PEMQExpectedFeatureName=Expected media feature name but found “%1$S”.
+PEMQNoMinMaxWithoutValue=Media features with min- or max- must have a value.
+PEMQExpectedFeatureValue=Found invalid value for media feature.
+PEExpectedNoneOrURL=Expected “none” or URL but found “%1$S”.
+PEExpectedNoneOrURLOrFilterFunction=Expected “none”, URL, or filter function but found “%1$S”.
+PEDisallowedImportRule=@import rules are not yet valid in constructed stylesheets.
+PENeverMatchingHostSelector=:host selector in ‘%S’ is not featureless and will never match. Maybe you intended to use :host()?
+
+TooLargeDashedRadius=Border radius is too large for ‘dashed’ style (the limit is 100000px). Rendering as solid.
+TooLargeDottedRadius=Border radius is too large for ‘dotted’ style (the limit is 100000px). Rendering as solid.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/dialog.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/dialog.properties
new file mode 100644
index 0000000000..ce6acb5eff
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/dialog.properties
@@ -0,0 +1,12 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+button-accept=OK
+button-cancel=Cancel
+button-help=Help
+button-disclosure=More Info
+accesskey-accept=
+accesskey-cancel=
+accesskey-help=H
+accesskey-disclosure=I
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/dom/dom.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/dom/dom.properties
new file mode 100644
index 0000000000..44cb8caf67
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/dom/dom.properties
@@ -0,0 +1,469 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+KillScriptTitle=Warning: Unresponsive script
+KillScriptMessage=A script on this page may be busy, or it may have stopped responding. You can stop the script now, or you can continue to see if the script will complete.
+KillScriptWithDebugMessage=A script on this page may be busy, or it may have stopped responding. You can stop the script now, open the script in the debugger, or let the script continue.
+KillScriptLocation=Script: %S
+
+KillAddonScriptTitle=Warning: Unresponsive add-on script
+# LOCALIZATION NOTE (KillAddonScriptMessage): %1$S is the name of an extension.
+# %2$S is the name of the application (e.g., Firefox).
+KillAddonScriptMessage=A script from the extension “%1$S” is running on this page, and making %2$S unresponsive.\n\nIt may be busy, or it may have stopped responding permanently. You can stop the script now, or you can continue to see if it will complete.
+KillAddonScriptGlobalMessage=Prevent the extension script from running on this page until it next reloads
+
+StopScriptButton=Stop script
+DebugScriptButton=Debug script
+WaitForScriptButton=Continue
+DontAskAgain=&Don’t ask me again
+WindowCloseBlockedWarning=Scripts may not close windows that were not opened by script.
+OnBeforeUnloadTitle=Are you sure?
+OnBeforeUnloadMessage2=This page is asking you to confirm that you want to leave — information you’ve entered may not be saved.
+OnBeforeUnloadStayButton=Stay on Page
+OnBeforeUnloadLeaveButton=Leave Page
+EmptyGetElementByIdParam=Empty string passed to getElementById().
+SpeculationFailed2=An unbalanced tree was written using document.write() causing data from the network to be reparsed. More information: https://developer.mozilla.org/docs/Glossary/speculative_parsing
+DocumentWriteIgnored=A call to document.write() from an asynchronously-loaded external script was ignored.
+# LOCALIZATION NOTE (EditorFileDropFailed): Do not translate contenteditable, %S is the error message explaining why the drop failed.
+EditorFileDropFailed=Dropping a file into a contenteditable element failed: %S.
+FormValidationTextTooLong=Please shorten this text to %S characters or less (you are currently using %S characters).
+FormValidationTextTooShort=Please use at least %S characters (you are currently using %S characters).
+FormValidationValueMissing=Please fill out this field.
+FormValidationCheckboxMissing=Please check this box if you want to proceed.
+FormValidationRadioMissing=Please select one of these options.
+FormValidationFileMissing=Please select a file.
+FormValidationSelectMissing=Please select an item in the list.
+FormValidationInvalidEmail=Please enter an email address.
+FormValidationInvalidURL=Please enter a URL.
+FormValidationInvalidDate=Please enter a valid date.
+FormValidationInvalidTime=Please enter a valid time.
+FormValidationInvalidDateTime=Please enter valid date and time.
+FormValidationInvalidDateMonth=Please enter a valid month.
+FormValidationInvalidDateWeek=Please enter a valid week.
+FormValidationPatternMismatch=Please match the requested format.
+# LOCALIZATION NOTE (FormValidationPatternMismatchWithTitle): %S is the (possibly truncated) title attribute value.
+FormValidationPatternMismatchWithTitle=Please match the requested format: %S.
+# LOCALIZATION NOTE (FormValidationNumberRangeOverflow): %S is a number.
+FormValidationNumberRangeOverflow=Please select a value that is no more than %S.
+# LOCALIZATION NOTE (FormValidationDateTimeRangeOverflow): %S is a date or a time.
+FormValidationDateTimeRangeOverflow=Please select a value that is no later than %S.
+# LOCALIZATION NOTE (FormValidationNumberRangeUnderflow): %S is a number.
+FormValidationNumberRangeUnderflow=Please select a value that is no less than %S.
+# LOCALIZATION NOTE (FormValidationDateTimeRangeUnderflow): %S is a date or a time.
+FormValidationDateTimeRangeUnderflow=Please select a value that is no earlier than %S.
+# LOCALIZATION NOTE (FormValidationStepMismatch): both %S can be a number, a date or a time.
+FormValidationStepMismatch=Please select a valid value. The two nearest valid values are %S and %S.
+# LOCALIZATION NOTE (FormValidationStepMismatchOneValue): %S can be a number, a date or a time. This is called instead of FormValidationStepMismatch when the second value is the same as the first.
+FormValidationStepMismatchOneValue=Please select a valid value. The nearest valid value is %S.
+# LOCALIZATION NOTE (FormValidationTimeReversedRangeUnderflowAndOverflow): %1$S,%2$S are time.
+FormValidationTimeReversedRangeUnderflowAndOverflow=Please select a value between %1$S and %2$S.
+FormValidationBadInputNumber=Please enter a number.
+FullscreenDeniedDisabled=Request for fullscreen was denied because Fullscreen API is disabled by user preference.
+FullscreenDeniedFocusedPlugin=Request for fullscreen was denied because a windowed plugin is focused.
+FullscreenDeniedHidden=Request for fullscreen was denied because the document is no longer visible.
+FullscreenDeniedHTMLDialog=Request for fullscreen was denied because requesting element is a <dialog> element.
+FullscreenDeniedContainerNotAllowed=Request for fullscreen was denied because at least one of the document’s containing elements is not an iframe or does not have an “allowfullscreen” attribute.
+FullscreenDeniedNotInputDriven=Request for fullscreen was denied because Element.requestFullscreen() was not called from inside a short running user-generated event handler.
+FullscreenDeniedMouseEventOnlyLeftBtn=Request for fullscreen was denied because Element.requestFullscreen() was called from inside a mouse event handler not triggered by left mouse button.
+FullscreenDeniedNotHTMLSVGOrMathML=Request for fullscreen was denied because requesting element is not <svg>, <math>, or an HTML element.
+FullscreenDeniedNotInDocument=Request for fullscreen was denied because requesting element is no longer in its document.
+FullscreenDeniedMovedDocument=Request for fullscreen was denied because requesting element has moved document.
+FullscreenDeniedLostWindow=Request for fullscreen was denied because we no longer have a window.
+FullscreenDeniedPopoverOpen=Request for fullscreen was denied because the element is already open as a popover.
+FullscreenDeniedSubDocFullscreen=Request for fullscreen was denied because a subdocument of the document requesting fullscreen is already fullscreen.
+FullscreenDeniedNotFocusedTab=Request for fullscreen was denied because requesting element is not in the currently focused tab.
+FullscreenDeniedFeaturePolicy=Request for fullscreen was denied because of FeaturePolicy directives.
+FullscreenExitWindowFocus=Exited fullscreen because a window was focused.
+RemovedFullscreenElement=Exited fullscreen because fullscreen element was removed from document.
+FocusedWindowedPluginWhileFullscreen=Exited fullscreen because windowed plugin was focused.
+PointerLockDeniedDisabled=Request for pointer lock was denied because Pointer Lock API is disabled by user preference.
+PointerLockDeniedInUse=Request for pointer lock was denied because the pointer is currently controlled by a different document.
+PointerLockDeniedNotInDocument=Request for pointer lock was denied because the requesting element is not in a document.
+PointerLockDeniedSandboxed=Request for pointer lock was denied because Pointer Lock API is restricted via sandbox.
+PointerLockDeniedHidden=Request for pointer lock was denied because the document is not visible.
+PointerLockDeniedNotFocused=Request for pointer lock was denied because the document is not focused.
+PointerLockDeniedMovedDocument=Request for pointer lock was denied because the requesting element has moved document.
+PointerLockDeniedNotInputDriven=Request for pointer lock was denied because Element.requestPointerLock() was not called from inside a short running user-generated event handler, and the document is not in full screen.
+PointerLockDeniedFailedToLock=Request for pointer lock was denied because the browser failed to lock the pointer.
+HTMLSyncXHRWarning=HTML parsing in XMLHttpRequest is not supported in the synchronous mode.
+# LOCALIZATION NOTE: %S is the name of the header in question
+ForbiddenHeaderWarning=Attempt to set a forbidden header was denied: %S
+ResponseTypeSyncXHRWarning=Use of XMLHttpRequest’s responseType attribute is no longer supported in the synchronous mode in window context.
+TimeoutSyncXHRWarning=Use of XMLHttpRequest’s timeout attribute is not supported in the synchronous mode in window context.
+# LOCALIZATION NOTE: Do not translate navigator.sendBeacon, unload, pagehide, or XMLHttpRequest.
+UseSendBeaconDuringUnloadAndPagehideWarning=Use of navigator.sendBeacon instead of synchronous XMLHttpRequest during unload and pagehide improves user experience.
+JSONCharsetWarning=An attempt was made to declare a non-UTF-8 encoding for JSON retrieved using XMLHttpRequest. Only UTF-8 is supported for decoding JSON.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and createMediaElementSource.
+MediaElementAudioSourceNodeCrossOrigin=The HTMLMediaElement passed to createMediaElementSource has a cross-origin resource, the node will output silence.
+# LOCALIZATION NOTE: Do not translate MediaStream and createMediaStreamSource.
+MediaStreamAudioSourceNodeCrossOrigin=The MediaStream passed to createMediaStreamSource has a cross-origin resource, the node will output silence.
+# LOCALIZATION NOTE : Do not translate MediaStreamTrack and createMediaStreamTrackSource.
+MediaStreamTrackAudioSourceNodeCrossOrigin=The MediaStreamTrack passed to createMediaStreamTrackSource is a cross-origin resource, the node will output silence.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and MediaStream.
+MediaElementAudioCaptureOfMediaStreamError=The captured HTMLMediaElement is playing a MediaStream. Applying volume or mute status is not currently supported.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and MediaStream.
+MediaElementStreamCaptureCycle=The MediaStream assigned to srcObject comes from a capture of this HTMLMediaElement, forming a cycle, assignment ignored.
+MediaLoadExhaustedCandidates=All candidate resources failed to load. Media load paused.
+MediaLoadSourceMissingSrc=<source> element has no “src” attribute. Media resource load failed.
+MediaStreamAudioSourceNodeDifferentRate=Connecting AudioNodes from AudioContexts with different sample-rate is currently not supported.
+# LOCALIZATION NOTE: %1$S is the Http error code the server returned (e.g. 404, 500, etc), %2$S is the URL of the media resource which failed to load.
+MediaLoadHttpError=HTTP load failed with status %1$S. Load of media resource %2$S failed.
+# LOCALIZATION NOTE: %S is the URL of the media resource which failed to load.
+MediaLoadInvalidURI=Invalid URI. Load of media resource %S failed.
+# LOCALIZATION NOTE: %1$S is the media resource's format/codec type (basically equivalent to the file type, e.g. MP4,AVI,WMV,MOV etc), %2$S is the URL of the media resource which failed to load.
+MediaLoadUnsupportedTypeAttribute=Specified “type” attribute of “%1$S” is not supported. Load of media resource %2$S failed.
+MediaLoadUnsupportedTypeAttributeLoadingNextChild=Specified “type” attribute of “%1$S” is not supported. Load of media resource %2$S failed. Trying to load from next <source> element.
+# LOCALIZATION NOTE: %1$S is the MIME type HTTP header being sent by the web server, %2$S is the URL of the media resource which failed to load.
+MediaLoadUnsupportedMimeType=HTTP “Content-Type” of “%1$S” is not supported. Load of media resource %2$S failed.
+# LOCALIZATION NOTE: %S is the URL of the media resource which failed to load because of error in decoding.
+MediaLoadDecodeError=Media resource %S could not be decoded.
+MediaWidevineNoWMF=Trying to play Widevine with no Windows Media Foundation. See https://support.mozilla.org/kb/fix-video-audio-problems-firefox-windows
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaWMFNeeded=To play video formats %S, you need to install extra Microsoft software, see https://support.mozilla.org/kb/fix-video-audio-problems-firefox-windows
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaPlatformDecoderNotFound=The video on this page can’t be played. Your system may not have the required video codecs for: %S
+MediaUnsupportedLibavcodec=The video on this page can’t be played. Your system has an unsupported version of libavcodec
+# LOCALIZATION NOTE: %1$S is the URL of the media resource, %2$S is technical information (in English)
+MediaDecodeError=Media resource %1$S could not be decoded, error: %2$S
+# LOCALIZATION NOTE: %1$S is the URL of the media resource, %2$S is technical information (in English)
+MediaDecodeWarning=Media resource %1$S could be decoded, but with error: %2$S
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaCannotPlayNoDecoders=Cannot play media. No decoders for requested formats: %S
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaNoDecoders=No decoders for some of the requested formats: %S
+MediaCannotInitializePulseAudio=Unable to use PulseAudio
+# LOCALIZATION NOTE: %S is the URL of the web page which is not served on HTTPS and thus is not encrypted and considered insecure.
+MediaEMEInsecureContextDeprecatedWarning=Using Encrypted Media Extensions at %S on an insecure (i.e. non-HTTPS) context is deprecated and will soon be removed. You should consider switching to a secure origin such as HTTPS.
+# LOCALIZATION NOTE: %S is the URL of the web page which is calling web APIs without passing data (either an audioCapabilities or a videoCapabilities) that will soon be required. See https://bugzilla.mozilla.org/show_bug.cgi?id=1368583#c21 for explanation of this string.
+MediaEMENoCapabilitiesDeprecatedWarning=Calling navigator.requestMediaKeySystemAccess() (at %S) without passing a candidate MediaKeySystemConfiguration containing audioCapabilities or videoCapabilities is deprecated and will soon become unsupported.
+# LOCALIZATION NOTE: %S is the URL of the web page which is calling web APIs without passing data (a "codecs" string in the "contentType") that will soon be required. See https://bugzilla.mozilla.org/show_bug.cgi?id=1368583#c21 for explanation of this string.
+MediaEMENoCodecsDeprecatedWarning=Calling navigator.requestMediaKeySystemAccess() (at %S) passing a candidate MediaKeySystemConfiguration containing audioCapabilities or videoCapabilities without a contentType with a “codecs” string is deprecated and will soon become unsupported.
+# LOCALIZATION NOTE: Do not translate "Mutation Event" and "MutationObserver"
+MutationEventWarning=Use of Mutation Events is deprecated. Use MutationObserver instead.
+BlockAutoplayError=Autoplay is only allowed when approved by the user, the site is activated by the user, or media is muted.
+BlockAutoplayWebAudioStartError=An AudioContext was prevented from starting automatically. It must be created or resumed after a user gesture on the page.
+# LOCALIZATION NOTE: Do not translate "Components"
+ComponentsWarning=The Components object is deprecated. It will soon be removed.
+PluginHangUITitle=Warning: Unresponsive plugin
+PluginHangUIMessage=%S may be busy, or it may have stopped responding. You can stop the plugin now, or you can continue to see if the plugin will complete.
+PluginHangUIWaitButton=Continue
+PluginHangUIStopButton=Stop plugin
+# LOCALIZATION NOTE: Do not translate "NodeIterator" or "detach()".
+NodeIteratorDetachWarning=Calling detach() on a NodeIterator no longer has an effect.
+# LOCALIZATION NOTE: Do not translate "LenientThis" and "this"
+LenientThisWarning=Ignoring get or set of property that has [LenientThis] because the “this” object is incorrect.
+# LOCALIZATION NOTE: Do not translate "captureEvents()" or "addEventListener()"
+UseOfCaptureEventsWarning=Use of captureEvents() is deprecated. To upgrade your code, use the DOM 2 addEventListener() method. For more help http://developer.mozilla.org/en/docs/DOM:element.addEventListener
+# LOCALIZATION NOTE: Do not translate "releaseEvents()" or "removeEventListener()"
+UseOfReleaseEventsWarning=Use of releaseEvents() is deprecated. To upgrade your code, use the DOM 2 removeEventListener() method. For more help http://developer.mozilla.org/en/docs/DOM:element.removeEventListener
+# LOCALIZATION NOTE: Do not translate "XMLHttpRequest"
+SyncXMLHttpRequestWarning=Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user’s experience. For more help http://xhr.spec.whatwg.org/
+# LOCALIZATION NOTE: Do not translate "XMLHttpRequest"
+SyncXMLHttpRequestDeprecatedWarning=Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user’s experience. For more help https://xhr.spec.whatwg.org/#sync-warning
+# LOCALIZATION NOTE: Do not translate "window.controllers/Controllers"
+Window_Cc_ontrollersWarning=window.controllers/Controllers is deprecated. Do not use it for UA detection.
+ImportXULIntoContentWarning=Importing XUL nodes into a content document is deprecated. This functionality may be removed soon.
+# LOCALIZATION NOTE: Do not translate "IndexedDB".
+IndexedDBTransactionAbortNavigation=An IndexedDB transaction that was not yet complete has been aborted due to page navigation.
+# LOCALIZATION NOTE: Do not translate Will-change, %1$S,%2$S are numbers.
+IgnoringWillChangeOverBudgetWarning=Will-change memory consumption is too high. Budget limit is the document surface area multiplied by %1$S (%2$S px). Occurrences of will-change over the budget will be ignored.
+# LOCALIZATION NOTE: Do not translate "Worker".
+HittingMaxWorkersPerDomain2=A Worker could not be started immediately because other documents in the same origin are already using the maximum number of workers. The Worker is now queued and will be started after some of the other workers have completed.
+# LOCALIZATION NOTE: Do not translate "Application Cache API", "AppCache" and "ServiceWorker".
+AppCacheWarning=The Application Cache API (AppCache) is deprecated and will be removed at a future date. Please consider using ServiceWorker for offline support.
+# LOCALIZATION NOTE: Do not translate "Worker".
+EmptyWorkerSourceWarning=Attempting to create a Worker from an empty source. This is probably unintentional.
+NavigatorGetUserMediaWarning=navigator.mozGetUserMedia has been replaced by navigator.mediaDevices.getUserMedia
+# LOCALIZATION NOTE: Do not translate "RTCPeerConnection", "getLocalStreams", "getRemoteStreams", "getSenders" or "getReceivers".
+RTCPeerConnectionGetStreamsWarning=RTCPeerConnection.getLocalStreams/getRemoteStreams are deprecated. Use RTCPeerConnection.getSenders/getReceivers instead.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %S is a URL.
+InterceptionFailedWithURL=Failed to load “%S”. A ServiceWorker intercepted the request and encountered an unexpected error.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "cors", "Response", "same-origin" or "Request". %1$S is a URL, %2$S is a URL.
+CorsResponseForSameOriginRequest=Failed to load “%1$S” by responding “%2$S”. A ServiceWorker is not allowed to synthesize a cors Response for a same-origin Request.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "FetchEvent.respondWith()", "FetchEvent", "no-cors", "opaque", "Response", or "RequestMode". %1$S is a URL. %2$S is a RequestMode value.
+BadOpaqueInterceptionRequestModeWithURL=Failed to load “%1$S”. A ServiceWorker passed an opaque Response to FetchEvent.respondWith() while handling a “%2$S” FetchEvent. Opaque Response objects are only valid when the RequestMode is “no-cors”.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Error", "Response", "FetchEvent.respondWith()", or "fetch()". %S is a URL.
+InterceptedErrorResponseWithURL=Failed to load “%S”. A ServiceWorker passed an Error Response to FetchEvent.respondWith(). This typically means the ServiceWorker performed an invalid fetch() call.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Response", "FetchEvent.respondWith()", or "Response.clone()". %S is a URL.
+InterceptedUsedResponseWithURL=Failed to load “%S”. A ServiceWorker passed a used Response to FetchEvent.respondWith(). The body of a Response may only be read once. Use Response.clone() to access the body multiple times.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "opaqueredirect", "Response", "FetchEvent.respondWith()", or "FetchEvent". %S is a URL.
+BadOpaqueRedirectInterceptionWithURL=Failed to load “%S”. A ServiceWorker passed an opaqueredirect Response to FetchEvent.respondWith() while handling a non-navigation FetchEvent.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Response", "FetchEvent.respondWith()", "RedirectMode" or "follow". %S is a URL.
+BadRedirectModeInterceptionWithURL=Failed to load “%S”. A ServiceWorker passed a redirected Response to FetchEvent.respondWith() while RedirectMode is not ‘follow’.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker" or "FetchEvent.preventDefault()". %S is a URL.
+InterceptionCanceledWithURL=Failed to load “%S”. A ServiceWorker cancelled the load by calling FetchEvent.preventDefault().
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "promise", or "FetchEvent.respondWith()". %1$S is a URL. %2$S is an error string.
+InterceptionRejectedResponseWithURL=Failed to load “%1$S”. A ServiceWorker passed a promise to FetchEvent.respondWith() that rejected with “%2$S”.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "promise", "FetchEvent.respondWith()", or "Response". %1$S is a URL. %2$S is an error string.
+InterceptedNonResponseWithURL=Failed to load “%1$S”. A ServiceWorker passed a promise to FetchEvent.respondWith() that resolved with non-Response value “%2$S”.
+
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Service-Worker-Allowed" or "HTTP". %1$S and %2$S are URLs.
+ServiceWorkerScopePathMismatch=Failed to register a ServiceWorker: The path of the provided scope “%1$S” is not under the max scope allowed “%2$S”. Adjust the scope, move the Service Worker script, or use the Service-Worker-Allowed HTTP header to allow the scope.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %1$S is a URL representing the scope of the ServiceWorker, %2$S is a stringified numeric HTTP status code like "404" and %3$S is a URL.
+ServiceWorkerRegisterNetworkError=Failed to register/update a ServiceWorker for scope “%1$S”: Load failed with status %2$S for script ‘%3$S’.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %1$S is a URL representing the scope of the ServiceWorker, %2$S is a MIME Media Type like "text/plain" and %3$S is a URL.
+ServiceWorkerRegisterMimeTypeError2=Failed to register/update a ServiceWorker for scope ‘%1$S’: Bad Content-Type of ‘%2$S’ received for script ‘%3$S’. Must be a JavaScript MIME type.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %S is a URL representing the scope of the ServiceWorker.
+ServiceWorkerRegisterStorageError=Failed to register/update a ServiceWorker for scope “%S”: Storage access is restricted in this context due to user settings or private browsing mode.
+ServiceWorkerGetRegistrationStorageError=Failed to get service worker registration(s): Storage access is restricted in this context due to user settings or private browsing mode.
+ServiceWorkerGetClientStorageError=Failed to get service worker’s client(s): Storage access is restricted in this context due to user settings or private browsing mode.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker" and "postMessage". %S is a URL representing the scope of the ServiceWorker.
+ServiceWorkerPostMessageStorageError=The ServiceWorker for scope “%S” failed to execute “postMessage” because storage access is restricted in this context due to user settings or private browsing mode.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %1$S is a URL representing the scope of the ServiceWorker.
+ServiceWorkerGraceTimeoutTermination=Terminating ServiceWorker for scope “%1$S” with pending waitUntil/respondWith promises because of grace timeout.
+# LOCALIZATION NOTE (ServiceWorkerNoFetchHandler): Do not translate "Fetch".
+ServiceWorkerNoFetchHandler=Fetch event handlers must be added during the worker script’s initial evaluation.
+ExecCommandCutCopyDeniedNotInputDriven=document.execCommand('cut'/'copy') was denied because it was not called from inside a short running user-generated event handler.
+ManifestIdIsInvalid=The id member did not resolve to a valid URL.
+ManifestIdNotSameOrigin=The id member must have the same origin as the start_url member.
+ManifestShouldBeObject=Manifest should be an object.
+ManifestScopeURLInvalid=The scope URL is invalid.
+ManifestScopeNotSameOrigin=The scope URL must be same origin as document.
+ManifestStartURLOutsideScope=The start URL is outside the scope, so the scope is invalid.
+ManifestStartURLInvalid=The start URL is invalid.
+ManifestStartURLShouldBeSameOrigin=The start URL must be same origin as document.
+# LOCALIZATION NOTE: %1$S is the name of the object whose property is invalid. %2$S is the name of the invalid property. %3$S is the expected type of the property value. E.g. "Expected the manifest's start_url member to be a string."
+ManifestInvalidType=Expected the %1$S’s %2$S member to be a %3$S.
+# LOCALIZATION NOTE: %1$S is the name of the property whose value is invalid. %2$S is the (invalid) value of the property. E.g. "theme_color: 42 is not a valid CSS color."
+ManifestInvalidCSSColor=%1$S: %2$S is not a valid CSS colour.
+# LOCALIZATION NOTE: %1$S is the name of the property whose value is invalid. %2$S is the (invalid) value of the property. E.g. "lang: 42 is not a valid language code."
+ManifestLangIsInvalid=%1$S: %2$S is not a valid language code.
+# LOCALIZATION NOTE: %1$S is the name of the parent property whose value is invalid (e.g., "icons"). %2$S is the index of the image object that is invalid (from 0). %3$S is the name of actual member that is invalid. %4$S is the invalid value. E.g. "icons item at index 2 is invalid. The src member is an invalid URL http://:Invalid"
+ManifestImageURLIsInvalid=%1$S item at index %2$S is invalid. The %3$S member is an invalid URL %4$S
+# LOCALIZATION NOTE: %1$S is the name of the parent property that that contains the unusable image object (e.g., "icons"). %2$S is the index of the image object that is unusable (from 0). E.g. "icons item at index 2 lacks a usable purpose. It will be ignored."
+ManifestImageUnusable=%1$S item at index %2$S lacks a usable purpose. It will be ignored.
+# LOCALIZATION NOTE: %1$S is the name of the parent property that contains the unsupported value (e.g., "icons"). %2$S is the index of the image object that has the unsupported value (from 0). %3$S are the unknown purposes. E.g. "icons item at index 2 includes unsupported purpose(s): a b."
+ManifestImageUnsupportedPurposes=%1$S item at index %2$S includes unsupported purpose(s): %3$S.
+# LOCALIZATION NOTE: %1$S is the name of the parent property that has a repeated purpose (e.g., "icons"). %2$S is the index of the image object that has the repeated purpose (from 0). %3$S is the repeated purposes. E.g. "icons item at index 2 includes repeated purpose(s): a b."
+ManifestImageRepeatedPurposes=%1$S item at index %2$S includes repeated purpose(s): %3$S.
+PatternAttributeCompileFailure=Unable to check <input pattern='%S'> because the pattern is not a valid regexp: %S
+# LOCALIZATION NOTE: Do not translate "postMessage" or DOMWindow. %S values are origins, like https://domain.com:port
+TargetPrincipalDoesNotMatch=Failed to execute “postMessage” on “DOMWindow”: The target origin provided (“%S”) does not match the recipient window’s origin (“%S”).
+# LOCALIZATION NOTE: Do not translate 'YouTube'. %S values are origins, like https://domain.com:port
+RewriteYouTubeEmbed=Rewriting old-style YouTube Flash embed (%S) to iframe embed (%S). Please update page to use iframe instead of embed/object, if possible.
+# LOCALIZATION NOTE: Do not translate 'YouTube'. %S values are origins, like https://domain.com:port
+RewriteYouTubeEmbedPathParams=Rewriting old-style YouTube Flash embed (%S) to iframe embed (%S). Params were unsupported by iframe embeds and converted. Please update page to use iframe instead of embed/object, if possible.
+# LOCALIZATION NOTE: This error is reported when the "Encryption" header for an
+# incoming push message is missing or invalid. Do not translate "ServiceWorker",
+# "Encryption", and "salt". %1$S is the ServiceWorker scope URL.
+PushMessageBadEncryptionHeader=The ServiceWorker for scope “%1$S” failed to decrypt a push message. The “Encryption” header must include a unique “salt” parameter for each message. See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-3.1 for more information.
+# LOCALIZATION NOTE: This error is reported when the "Crypto-Key" header for an
+# incoming push message is missing or invalid. Do not translate "ServiceWorker",
+# "Crypto-Key", and "dh". %1$S is the ServiceWorker scope URL.
+PushMessageBadCryptoKeyHeader=The ServiceWorker for scope “%1$S” failed to decrypt a push message. The “Crypto-Key” header must include a “dh” parameter containing the app server’s public key. See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-4 for more information.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt because the deprecated
+# "Encryption-Key" header for an incoming push message is missing or invalid.
+# Do not translate "ServiceWorker", "Encryption-Key", "dh", "Crypto-Key", and
+# "Content-Encoding: aesgcm". %1$S is the ServiceWorker scope URL.
+PushMessageBadEncryptionKeyHeader=The ServiceWorker for scope “%1$S” failed to decrypt a push message. The “Encryption-Key” header must include a “dh” parameter. This header is deprecated and will soon be removed. Please use “Crypto-Key” with “Content-Encoding: aesgcm” instead. See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-4 for more information.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because the "Content-Encoding" header is missing or contains an
+# unsupported encoding. Do not translate "ServiceWorker", "Content-Encoding",
+# "aesgcm", and "aesgcm128". %1$S is the ServiceWorker scope URL.
+PushMessageBadEncodingHeader=The ServiceWorker for scope “%1$S” failed to decrypt a push message. The “Content-Encoding” header must be “aesgcm”. “aesgcm128” is allowed, but deprecated and will soon be removed. See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-2 for more information.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because the "dh" parameter is not valid base64url. Do not translate
+# "ServiceWorker", "dh", "Crypto-Key", and "base64url". %1$S is the
+# ServiceWorker scope URL.
+PushMessageBadSenderKey=The ServiceWorker for scope “%1$S” failed to decrypt a push message. The “dh” parameter in the “Crypto-Key” header must be the app server’s Diffie-Hellman public key, base64url-encoded (https://tools.ietf.org/html/rfc7515#appendix-C) and in “uncompressed” or “raw” form (65 bytes before encoding. See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-4 for more information.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because the "salt" parameter is not valid base64url. Do not translate
+# "ServiceWorker", "salt", "Encryption", and "base64url". %1$S is the
+# ServiceWorker scope URL.
+PushMessageBadSalt=The ServiceWorker for scope “%1$S” failed to decrypt a push message. The “salt” parameter in the “Encryption” header must be base64url-encoded (https://tools.ietf.org/html/rfc7515#appendix-C), and be at least 16 bytes before encoding. See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-3.1 for more information.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because the "rs" parameter is not a number, or is less than the pad size.
+# Do not translate "ServiceWorker", "rs", or "Encryption". %1$S is the
+# ServiceWorker scope URL. %2$S is the minimum value (1 for aesgcm128, 2 for
+# aesgcm).
+PushMessageBadRecordSize=The ServiceWorker for scope “%1$S” failed to decrypt a push message. The “rs” parameter of the “Encryption” header must be between %2$S and 2^36-31, or omitted entirely. See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-3.1 for more information.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because an encrypted record is shorter than the pad size, the pad is larger
+# than the record, or any of the padding bytes are non-zero. Do not translate
+# "ServiceWorker". %1$S is the ServiceWorker scope URL. %2$S is the pad size
+# (1 for aesgcm128, 2 for aesgcm).
+PushMessageBadPaddingError=The ServiceWorker for scope “%1$S” failed to decrypt a push message. A record in the encrypted message was not padded correctly. See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-2 for more information.
+# LOCALIZATION NOTE: This error is reported when push message decryption fails
+# and no specific error info is available. Do not translate "ServiceWorker".
+# %1$S is the ServiceWorker scope URL.
+PushMessageBadCryptoError=The ServiceWorker for scope “%1$S” failed to decrypt a push message. For help with encryption, please see https://developer.mozilla.org/docs/Web/API/Push_API/Using_the_Push_API#Encryption
+# LOCALIZATION NOTE: %1$S is the type of a DOM event. 'passive' is a literal parameter from the DOM spec.
+PreventDefaultFromPassiveListenerWarning=Ignoring “preventDefault()” call on event of type “%1$S” from a listener registered as “passive”.
+# LOCALIZATION NOTE: 'ImageBitmapRenderingContext.transferImageBitmap' and 'ImageBitmapRenderingContext.transferFromImageBitmap' should not be translated
+ImageBitmapRenderingContext_TransferImageBitmapWarning=ImageBitmapRenderingContext.transferImageBitmap is deprecated and will be removed soon. Use ImageBitmapRenderingContext.transferFromImageBitmap instead.
+IIRFilterChannelCountChangeWarning=IIRFilterNode channel count changes may produce audio glitches.
+BiquadFilterChannelCountChangeWarning=BiquadFilterNode channel count changes may produce audio glitches.
+# LOCALIZATION NOTE: Do not translate ".png"
+GenericImageNamePNG=image.png
+GenericFileName=file
+GeolocationInsecureRequestIsForbidden=A Geolocation request can only be fulfilled in a secure context.
+NotificationsInsecureRequestIsForbidden=The Notification permission may only be requested in a secure context.
+NotificationsCrossOriginIframeRequestIsForbidden=The Notification permission may only be requested in a top-level document or same-origin iframe.
+NotificationsRequireUserGesture=The Notification permission may only be requested from inside a short running user-generated event handler.
+NotificationsRequireUserGestureDeprecationWarning=Requesting Notification permission outside a short running user-generated event handler is deprecated and will not be supported in the future.
+# LOCALIZATION NOTE: Do not translate "content", "Window", and "window.top"
+WindowContentUntrustedWarning=The “content” attribute of Window objects is deprecated. Please use “window.top” instead.
+# LOCALIZATION NOTE: The first %S is the tag name of the element that starts the loop, the second %S is the element's ID.
+SVGRefLoopWarning=The SVG <%S> with ID “%S” has a reference loop.
+# LOCALIZATION NOTE: The first %S is the tag name of the element in the chain where the chain was broken, the second %S is the element's ID.
+SVGRefChainLengthExceededWarning=An SVG <%S> reference chain which is too long was abandoned at the element with ID “%S”.
+# LOCALIZATION NOTE: Do not translate SVGGraphicsElement.nearestViewportElement or SVGElement.viewportElement.
+SVGNearestViewportElement=SVGGraphicsElement.nearestViewportElement is deprecated and will be removed at a future date. Use SVGElement.viewportElement instead.
+# LOCALIZATION NOTE: Do not translate SVGGraphicsElement.farthestViewportElement.
+SVGFarthestViewportElement=SVGGraphicsElement.farthestViewportElement is deprecated and will be removed at a future date.
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceEmpty=“%S” attribute of <script> element is empty.
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceInvalidUri=“%S” attribute of <script> element is not a valid URI: “%S”
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceLoadFailed=Loading failed for the <script> with source “%S”.
+ModuleSourceLoadFailed=Loading failed for the module with source “%S”.
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceMalformed=<script> source URI is malformed: “%S”.
+ModuleSourceMalformed=Module source URI is malformed: “%S”.
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceNotAllowed=<script> source URI is not allowed in this document: “%S”.
+ModuleSourceNotAllowed=Module source URI is not allowed in this document: “%S”.
+WebExtContentScriptModuleSourceNotAllowed=WebExtension content scripts may only load modules with moz-extension URLs and not: “%S”.
+ModuleResolveFailureNoWarn=Error resolving module specifier “%S”.
+ModuleResolveFailureWarnRelative=Error resolving module specifier “%S”. Relative module specifiers must start with “./”, “../” or “/”.
+ImportMapInvalidTopLevelKey=An invalid top-level key “%S” was present in the import map.
+ImportMapEmptySpecifierKeys=Specifier keys cannot be empty strings.
+ImportMapAddressesNotStrings=Addresses need to be strings.
+ImportMapInvalidAddress=Address “%S” was invalid.
+# %1$S is the specifier key, %2$S is the URL.
+ImportMapAddressNotEndsWithSlash=An invalid address was given for the specifier key “%1$S”; since “%1$S” ended in a slash, the address “%2$S” needs to as well.
+ImportMapScopePrefixNotParseable=The scope prefix URL “%S” was not parseable.
+ImportMapResolutionBlockedByNullEntry=Resolution of specifier “%S” was blocked by a null entry.
+ImportMapResolutionBlockedByAfterPrefix=Resolution of specifier “%S” was blocked since the substring after prefix could not be parsed as a URL relative to the address in the import map.
+ImportMapResolutionBlockedByBacktrackingPrefix=Resolution of specifier “%S” was blocked since the parsed URL does not start with the address in the import map.
+ImportMapResolveInvalidBareSpecifierWarnRelative=The specifier “%S” was a bare specifier, but was not remapped to anything. Relative module specifiers must start with “./”, “../” or “/”.
+# LOCALIZATION NOTE: Do not translate "<script type='importmap'>", "src".
+ImportMapExternalNotSupported=External import maps are not supported: <script type='importmap'> with a src attribute is currently not supported.
+ImportMapNotAllowedMultiple=Multiple import maps are not allowed.
+ImportMapNotAllowedAfterModuleLoad=Import maps are not allowed after a module load or preload has started.
+# LOCALIZATION NOTE: %1$S is the invalid property value and %2$S is the property name.
+InvalidKeyframePropertyValue=Keyframe property value “%1$S” is invalid according to the syntax for “%2$S”.
+# LOCALIZATION NOTE: Do not translate "ReadableStream".
+ReadableStreamReadingFailed=Failed to read data from the ReadableStream: “%S”.
+# LOCALIZATION NOTE: Do not translate "registerProtocolHandler"
+RegisterProtocolHandlerPrivateBrowsingWarning=Can’t use registerProtocolHandler inside private browsing mode.
+MotionEventWarning=Use of the motion sensor is deprecated.
+OrientationEventWarning=Use of the orientation sensor is deprecated.
+ProximityEventWarning=Use of the proximity sensor is deprecated.
+AmbientLightEventWarning=Use of the ambient light sensor is deprecated.
+UnsupportedEntryTypesIgnored=Ignoring unsupported entryTypes: %S.
+AllEntryTypesIgnored=No valid entryTypes; aborting registration.
+# LOCALIZATION NOTE: do not localize key=“%S” modifiers=“%S” id=“%S”
+GTK2Conflict2=Key event not available on GTK2: key=“%S” modifiers=“%S” id=“%S”
+WinConflict2=Key event not available on some keyboard layouts: key=“%S” modifiers=“%S” id=“%S”
+# LOCALIZATION NOTE: do not trnaslated "document.domain"
+DocumentSetDomainNotAllowedWarning=Setting document.domain in a cross-origin isolated environment is not allowed.
+
+#LOCALIZATION NOTE(DeprecatedTestingInterfaceWarning): Do not translate this message. It's just testing only.
+DeprecatedTestingInterfaceWarning=TestingDeprecatedInterface is a testing-only interface and this is its testing deprecation message.
+#LOCALIZATION NOTE(DeprecatedTestingMethodWarning): Do not translate this message. It's just testing only.
+DeprecatedTestingMethodWarning=TestingDeprecatedInterface.deprecatedMethod() is a testing-only method and this is its testing deprecation message.
+#LOCALIZATION NOTE(DeprecatedTestingAttributeWarning): Do not translate this message. It's just testing only.
+DeprecatedTestingAttributeWarning=TestingDeprecatedInterface.deprecatedAttribute is a testing-only attribute and this is its testing deprecation message.
+# LOCALIZATION NOTE (CreateImageBitmapCanvasRenderingContext2DWarning): Do not translate CanvasRenderingContext2D and createImageBitmap.
+CreateImageBitmapCanvasRenderingContext2DWarning=Use of CanvasRenderingContext2D in createImageBitmap is deprecated.
+
+# LOCALIZATION NOTE (DrawWindowCanvasRenderingContext2DWarning): Do not translate CanvasRenderingContext2D, drawWindow and tabs.captureTab.
+DrawWindowCanvasRenderingContext2DWarning=Use of drawWindow method from CanvasRenderingContext2D is deprecated. Use tabs.captureTab extensions API instead https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/tabs/captureTab
+
+# LOCALIZATION NOTE (MozRequestFullScreenDeprecatedPrefixWarning): Do not translate mozRequestFullScreen.
+MozRequestFullScreenDeprecatedPrefixWarning=mozRequestFullScreen() is deprecated.
+# LOCALIZATION NOTE (MozfullscreenchangeDeprecatedPrefixWarning): Do not translate onmozfullscreenchange.
+MozfullscreenchangeDeprecatedPrefixWarning=onmozfullscreenchange is deprecated.
+# LOCALIZATION NOTE (MozfullscreenerrorDeprecatedPrefixWarning): Do not translate onmozfullscreenerror.
+MozfullscreenerrorDeprecatedPrefixWarning=onmozfullscreenerror is deprecated.
+# LOCALIZATION NOTE(External_AddSearchProviderWarning): Do not translate AddSearchProvider.
+External_AddSearchProviderWarning=AddSearchProvider is deprecated.
+
+# LOCALIZATION NOTE: Do not translate "MouseEvent.mozPressure" and "PointerEvent.pressure".
+MouseEvent_MozPressureWarning=MouseEvent.mozPressure is deprecated. Use PointerEvent.pressure instead.
+# LOCALIZATION NOTE: Do not translate small, normal, big and mathsize.
+MathML_DeprecatedMathSizeValueWarning=“small”, “normal” and “big” are deprecated values for the mathsize attribute and will be removed at a future date.
+# LOCALIZATION NOTE: Do not translate "MouseEvent.mozInputSource" and "PointerEvent.pointerType".
+MozInputSourceWarning=MouseEvent.mozInputSource is deprecated. Use PointerEvent.pointerType instead.
+# LOCALIZATION NOTE: Do not translate "initMouseEvent()" and "MouseEvent()".
+InitMouseEventWarning=initMouseEvent() is deprecated. Use the MouseEvent() constructor instead.
+# LOCALIZATION NOTE: Do not translate "initNSMouseEvent()" and "MouseEvent()".
+InitNSMouseEventWarning=initNSMouseEvent() is deprecated. Use the MouseEvent() constructor instead.
+# LOCALIZATION NOTE: Do not translate veryverythinmathspace, verythinmathspace,
+# thinmathspace, mediummathspace, thickmathspace, verythickmathspace, veryverythickmathspace and MathML.
+MathML_DeprecatedMathSpaceValueWarning=“veryverythinmathspace”, “verythinmathspace”, “thinmathspace”, “mediummathspace”, “thickmathspace”, “verythickmathspace” and “veryverythickmathspace” are deprecated values for MathML lengths and will be removed at a future date.
+# LOCALIZATION NOTE: Do not translate MathML, background, color, fontfamily, fontsize, fontstyle and fontweight.
+MathML_DeprecatedStyleAttributeWarning=MathML attributes “background”, “color”, “fontfamily”, “fontsize”, “fontstyle” and “fontweight” are deprecated and will be removed at a future date.
+# LOCALIZATION NOTE: Do not translate MathML. %S is the deprecated length value.
+MathML_DeprecatedMathSpaceValue2Warning=MathML length value “%S” is deprecated and will be removed at a future date.
+# LOCALIZATION NOTE: Do not translate mathvariant or MathML. %S is the deprecated value of the mathvariant attribute.
+MathML_DeprecatedMathVariantWarning=“mathvariant='%S'” on MathML elements is deprecated and will be removed at a future date.
+# LOCALIZATION NOTE: Do not translate MathML and STIXGeneral. %S is a documentation URL.
+MathML_DeprecatedStixgeneralOperatorStretchingWarning=Support for rendering stretched MathML operators with STIXGeneral fonts is deprecated and may be removed at a future date. For details about newer fonts that will continue to be supported, see %S
+# LOCALIZATION NOTE: Do not translate MathML and scriptminsize.
+MathML_DeprecatedScriptminsizeAttributeWarning=MathML attribute “scriptminsize” is deprecated and will be removed at a future date.
+# LOCALIZATION NOTE: Do not translate MathML and scriptsizemultiplier.
+MathML_DeprecatedScriptsizemultiplierAttributeWarning=MathML attribute “scriptsizemultiplier” is deprecated and will be removed at a future date.
+FormSubmissionUntrustedEventWarning=Form submission via untrusted submit event is deprecated and will be removed at a future date.
+
+# LOCALIZATION NOTE: Do not translate "sizeToContent()".
+SizeToContentWarning=sizeToContent() is deprecated and will be removed in the future.
+
+WebShareAPI_Failed=The share operation has failed.
+WebShareAPI_Aborted=The share operation was aborted.
+# LOCALIZATION NOTE (UnknownProtocolNavigationPrevented): %1$S is the destination URL.
+UnknownProtocolNavigationPrevented=Prevented navigation to “%1$S” due to an unknown protocol.
+PostMessageSharedMemoryObjectToCrossOriginWarning=Cannot post message containing a shared memory object to a cross-origin window.
+# LOCALIZATION NOTE: %S is the URL of the resource in question
+UnusedLinkPreloadPending=The resource at “%S” preloaded with link preload was not used within a few seconds. Make sure all attributes of the preload tag are set correctly.
+
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(), iframe, allow-same-origin and sandbox (though you may translate "sandboxed").
+RequestStorageAccessNullPrincipal=document.requestStorageAccess() may not be called on a document with an opaque origin, such as a sandboxed iframe without allow-same-origin in its sandbox attribute.
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(), iframe, allow-storage-access-by-user-activation and sandbox (though you may translate "sandboxed").
+RequestStorageAccessSandboxed=document.requestStorageAccess() may not be called in a sandboxed iframe without allow-storage-access-by-user-activation in its sandbox attribute.
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess() and iframe.
+RequestStorageAccessNested=document.requestStorageAccess() may not be called in a nested iframe.
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(). In some locales it may be preferable to not translate "event handler", either.
+RequestStorageAccessUserGesture=document.requestStorageAccess() may only be requested from inside a short running user-generated event handler.
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(), Permissions Policy and storage-access.
+RequestStorageAccessPermissionsPolicy=document.requestStorageAccess() may not be called where the storage-access feature is blocked by the Permissions Policy.
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess()
+RequestStorageAccessNotSecureContext=document.requestStorageAccess() may only grant access to secure contexts.
+# LOCALIZATION NOTE: Do not translate "Location" and "History".
+LocChangeFloodingPrevented=Too many calls to Location or History APIs within a short timeframe.
+FolderUploadPrompt.title = Confirm Upload
+# LOCALIZATION NOTE: %S is the name of the folder the user selected in the file picker.
+FolderUploadPrompt.message = Are you sure you want to upload all files from “%S”? Only do this if you trust the site.
+FolderUploadPrompt.acceptButtonLabel = Upload
+InputPickerBlockedNoUserActivation=<input> picker was blocked due to lack of user activation.
+ExternalProtocolFrameBlockedNoUserActivation=Iframe with external protocol was blocked due to lack of user activation, or because not enough time has passed since the last such iframe was loaded.
+MultiplePopupsBlockedNoUserActivation=Opening multiple popups was blocked due to lack of user activation.
+# LOCALIZATION NOTE: %S is the URL of the preload that was ignored.
+PreloadIgnoredInvalidAttr=Preload of %S was ignored due to unknown “as” or “type” values, or non-matching “media” attribute.
+# LOCALIZATION NOTE: %S is the blob URL. Don't translate "agent cluster".
+BlobDifferentClusterError=Cannot access blob URL “%S” from a different agent cluster.
+# LOCALIZATION NOTE: %S is the blob URL. Don't translate "partition key".
+PartitionKeyDifferentError=Cannot access blob URL “%S” with a different partition key.
+# LOCALIZATION NOTE: Do not translate "Element.setCapture()" and "Element.setPointerCapture()"".
+ElementSetCaptureWarning=Element.setCapture() is deprecated. Use Element.setPointerCapture() instead. For more help https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture
+# LOCALIZATION NOTE: Do not translate "Element.releaseCapture()" and "Element.releasePointerCapture()".
+ElementReleaseCaptureWarning=Element.releaseCapture() is deprecated. Use Element.releasePointerCapture() instead. For more help https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture
+# LOCALIZATION NOTE: Do not translate "Document.releaseCapture()" and "Element.releasePointerCapture()".
+DocumentReleaseCaptureWarning=Document.releaseCapture() is deprecated. Use Element.releasePointerCapture() instead. For more help https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture
+
+# LOCALIZATION NOTE: Don't translate browser.runtime.lastError, %S is the error message from the unchecked value set on browser.runtime.lastError.
+WebExtensionUncheckedLastError=browser.runtime.lastError value was not checked: %S
+
+# LOCALIZATION NOTE: Do not translate "OffscreenCanvas.toBlob()" and "OffscreenCanvas.convertToBlob()".
+OffscreenCanvasToBlobWarning=OffscreenCanvas.toBlob() is deprecated. Use OffscreenCanvas.convertToBlob() instead.
+
+# LOCALIZATION NOTE: Do not translate "InstallTrigger"
+InstallTriggerDeprecatedWarning=InstallTrigger is deprecated and will be removed in the future.
+# LOCALIZATION NOTE: Do not translate "InstallTrigger.install()"
+InstallTriggerInstallDeprecatedWarning=InstallTrigger.install() is deprecated and will be removed in the future. For more help https://extensionworkshop.com/documentation/publish/self-distribution/
+
+# LOCALIZATION NOTE: Do not translate "HTMLOptionsCollection.length". %1$S is the invalid value, %2$S is the current limit.
+SelectOptionsLengthAssignmentWarning=Refused to expand <select> option list via assignment to HTMLOptionsCollection.length (value %1$S). The maximum supported size is %2$S.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/extensions.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/extensions.properties
new file mode 100644
index 0000000000..20344758f6
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/extensions.properties
@@ -0,0 +1,27 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+#LOCALIZATION NOTE (uninstall.confirmation.title) %S is the name of the extension which is about to be uninstalled.
+uninstall.confirmation.title = Uninstall %S
+
+#LOCALIZATION NOTE (uninstall.confirmation.message) %S is the name of the extension which is about to be uninstalled.
+uninstall.confirmation.message = The extension “%S” is requesting to be uninstalled. What would you like to do?
+
+uninstall.confirmation.button-0.label = Uninstall
+uninstall.confirmation.button-1.label = Keep Installed
+
+saveaspdf.saveasdialog.title = Save As
+
+#LOCALIZATION NOTE (newTabControlled.message2) %S is the icon and name of the extension which updated the New Tab page.
+newTabControlled.message2 = An extension, %S, changed the page you see when you open a new tab.
+newTabControlled.learnMore = Learn more
+
+#LOCALIZATION NOTE (homepageControlled.message) %S is the icon and name of the extension which updated the homepage.
+homepageControlled.message = An extension, %S, changed what you see when you open your homepage and new windows.
+homepageControlled.learnMore = Learn more
+
+#LOCALIZATION NOTE (tabHideControlled.message) %1$S is the icon and name of the extension which hid tabs, %2$S is the icon of the all tabs button.
+tabHideControlled.message = An extension, %1$S, is hiding some of your tabs. You can still access all of your tabs from %2$S.
+tabHideControlled.learnMore = Learn more
+
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/fallbackMenubar.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/fallbackMenubar.properties
new file mode 100644
index 0000000000..9765689ec2
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/fallbackMenubar.properties
@@ -0,0 +1,8 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# OSX only. Default menu label when there is no xul menubar.
+
+quitMenuitem.label=Quit
+quitMenuitem.key=q
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/filepicker.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/filepicker.properties
new file mode 100644
index 0000000000..184573b992
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/filepicker.properties
@@ -0,0 +1,20 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE: The extensions to which these descriptions refer
+# now live in toolkit/content/filepicker.properties
+allTitle=All Files
+htmlTitle=HTML Files
+textTitle=Text Files
+imageTitle=Image Files
+xmlTitle=XML Files
+xulTitle=XUL Files
+appsTitle=Applications
+audioTitle=Audio Files
+videoTitle=Video Files
+
+pdfTitle=PDF Files
+
+formatLabel=Format:
+selectedFileNotReadableError=Selected file does not have read permission
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/global-strres.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/global-strres.properties
new file mode 100644
index 0000000000..b63767e222
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/global-strres.properties
@@ -0,0 +1,5 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+16389=An unknown error has occurred (%1$S)
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/intl.css b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/intl.css
new file mode 100644
index 0000000000..2f54eb367d
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/intl.css
@@ -0,0 +1,11 @@
+/* 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 http://mozilla.org/MPL/2.0/. */
+
+/*
+ * This file contains all localizable skin settings such as
+ * font, layout, and geometry
+ */
+window {
+ font: 3mm tahoma,arial,helvetica,sans-serif;
+}
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/intl.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/intl.properties
new file mode 100644
index 0000000000..cdbb91baaf
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/intl.properties
@@ -0,0 +1,43 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (intl.accept_languages):
+# This is a comma-separated list of valid BCP 47 language tags.
+#
+# Begin with the language tag of your locale. Next, include language
+# tags for other languages that you expect most users of your locale to be
+# able to speak, so that their browsing experience degrades gracefully if
+# content is not available in their primary language.
+#
+# It is recommended that you include "en-US, en" at the end of the list as a
+# last resort. However, if you know that users of your locale would prefer a
+# different variety of English, or if they are not likely to understand
+# English at all, you may opt to include a different English language tag, or
+# to exclude English altogether.
+#
+# For example, the Breton [br] locale might consider including French and
+# British English in their list, since those languages are commonly spoken in
+# the same area as Breton:
+# intl.accept_languages=br, fr-FR, fr, en-GB, en
+intl.accept_languages=en-CA, en-US, en
+
+# LOCALIZATION NOTE (font.language.group):
+# This preference controls the initial setting of the language drop-down menu
+# in the Content > Fonts & Colors > Advanced preference panel.
+#
+# Set it to the value of one of the menuitems in the "selectLangs" menulist in
+# http://dxr.mozilla.org/mozilla-central/source/browser/components/preferences/fonts.xul
+font.language.group=x-western
+
+# LOCALIZATION NOTE (pluralRule): Pick the appropriate plural rule for your
+# language. This will determine how many plural forms of a word you will need
+# to provide and in what order.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+pluralRule=1
+
+# LOCALIZATION NOTE (intl.menuitems.alwaysappendaccesskeys, intl.menuitems.insertseparatorbeforeaccesskeys):
+# Valid values are: true, false, <empty string>
+# Missing preference or empty value equals false.
+intl.menuitems.alwaysappendaccesskeys=
+intl.menuitems.insertseparatorbeforeaccesskeys=true
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/keys.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/keys.properties
new file mode 100644
index 0000000000..9d036c0e6c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/keys.properties
@@ -0,0 +1,70 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE : FILE This file contains the application's labels for keys on the keyboard.
+# If you decide to translate this file, you should translate it based on
+# the prevalent kind of keyboard for your target user.
+# LOCALIZATION NOTE : There are two types of keys, those w/ text on their labels
+# and those w/ glyphs.
+# LOCALIZATION NOTE : VK_<…> represents a key on the keyboard.
+#
+# For more information please see bugzilla bug 90888.
+
+# F1..F10 should probably not be translated unless there are keyboards that actually have other labels
+# F11..F20 might be something else, but are really keyboard specific and not region/language specific
+# there are actually two different F11/F12 keys, I don't know which one these labels represent.
+# eg, F13..F20 on a sparc keyboard are labeled Props, Again .. Find, Cut
+# sparc also has Stop, Again and F11/F12. VK_F11/VK_F12 probably map to Stop/Again
+# LOCALIZATION NOTE : BLOCK Do not translate the next block
+VK_F1=F1
+VK_F2=F2
+VK_F3=F3
+VK_F4=F4
+VK_F5=F5
+VK_F6=F6
+VK_F7=F7
+VK_F8=F8
+VK_F9=F9
+VK_F10=F10
+
+VK_F11=F11
+VK_F12=F12
+VK_F13=F13
+VK_F14=F14
+VK_F15=F15
+VK_F16=F16
+VK_F17=F17
+VK_F18=F18
+VK_F19=F19
+VK_F20=F20
+# LOCALIZATION NOTE : BLOCK end do not translate block
+
+# LOCALIZATION NOTE : BLOCK GLYPHS, DO translate this block
+VK_UP=Up Arrow
+VK_DOWN=Down Arrow
+VK_LEFT=Left Arrow
+VK_RIGHT=Right Arrow
+VK_PAGE_UP=Page Up
+VK_PAGE_DOWN=Page Down
+# LOCALIZATION NOTE : BLOCK end GLYPHS
+
+# Enter, backspace, and Tab might have both glyphs and text
+# if the keyboards usually have a glyph,
+# if there is a meaningful translation,
+# or if keyboards are localized
+# then translate them or insert the appropriate glyph
+# otherwise you should probably just translate the glyph regions
+
+# LOCALIZATION NOTE : BLOCK maybe GLYPHS
+VK_TAB=Tab
+VK_BACK=Backspace
+VK_DELETE=Del
+# LOCALIZATION NOTE : BLOCK end maybe GLYPHS
+# LOCALIZATION NOTE : BLOCK typing state keys
+VK_HOME=Home
+VK_END=End
+
+VK_ESCAPE=Esc
+VK_INSERT=Ins
+# LOCALIZATION NOTE : BLOCK end
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout/HtmlForm.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout/HtmlForm.properties
new file mode 100644
index 0000000000..a1f12f66cd
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout/HtmlForm.properties
@@ -0,0 +1,35 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+Reset=Reset
+Submit=Submit Query
+Browse=Browse…
+FileUpload=File Upload
+DirectoryUpload=Select Folder to Upload
+DirectoryPickerOkButtonLabel=Upload
+ForgotPostWarning=Form contains enctype=%S, but does not contain method=post. Submitting normally with method=GET and no enctype instead.
+ForgotFileEnctypeWarning=Form contains a file input, but is missing method=POST and enctype=multipart/form-data on the form. The file will not be sent.
+# LOCALIZATION NOTE (DefaultFormSubject): %S will be replaced with brandShortName
+DefaultFormSubject=Form Post from %S
+CannotEncodeAllUnicode=A form was submitted in the %S encoding which cannot encode all Unicode characters, so user input may get corrupted. To avoid this problem, the page should be changed so that the form is submitted in the UTF-8 encoding either by changing the encoding of the page itself to UTF-8 or by specifying accept-charset=utf-8 on the form element.
+AllSupportedTypes=All Supported Types
+# LOCALIZATION NOTE (NoFileSelected): this string is shown on a
+# <input type='file'> when there is no file selected yet.
+NoFileSelected=No file selected.
+# LOCALIZATION NOTE (NoFilesSelected): this string is shown on a
+# <input type='file' multiple> when there is no file selected yet.
+NoFilesSelected=No files selected.
+# LOCALIZATION NOTE (NoDirSelected): this string is shown on a
+# <input type='file' directory/webkitdirectory> when there is no directory
+# selected yet.
+NoDirSelected=No directory selected.
+# LOCALIZATION NOTE (XFilesSelected): this string is shown on a
+# <input type='file' multiple> when there are more than one selected file.
+# %S will be a number greater or equal to 2.
+XFilesSelected=%S files selected.
+ColorPicker=Choose a colour
+# LOCALIZATION NOTE (DefaultSummary): this string is shown on a <details> when
+# it has no direct <summary> child. Google Chrome should already have this
+# string translated.
+DefaultSummary=Details
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout/MediaDocument.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout/MediaDocument.properties
new file mode 100644
index 0000000000..dabb0a35b6
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout/MediaDocument.properties
@@ -0,0 +1,22 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+#LOCALIZATION NOTE (ImageTitleWithDimensions2AndFile): first %S is filename, second %S is type, third %S is width and fourth %S is height
+#LOCALIZATION NOTE (ImageTitleWithoutDimensions): first %S is filename, second %S is type
+#LOCALIZATION NOTE (ImageTitleWithDimensions2): first %S is type, second %S is width and third %S is height
+#LOCALIZATION NOTE (ImageTitleWithNeitherDimensionsNorFile): first %S is type
+#LOCALIZATION NOTE (MediaTitleWithFile): first %S is filename, second %S is type
+#LOCALIZATION NOTE (MediaTitleWithNoInfo): first %S is type
+ImageTitleWithDimensions2AndFile=%S (%S Image, %S × %S pixels)
+ImageTitleWithoutDimensions=%S (%S Image)
+ImageTitleWithDimensions2=(%S Image, %S × %S pixels)
+ImageTitleWithNeitherDimensionsNorFile=(%S Image)
+MediaTitleWithFile=%S (%S Object)
+MediaTitleWithNoInfo=(%S Object)
+
+InvalidImage=The image “%S” cannot be displayed, because it contains errors.
+UnsupportedImage=The image “%S” cannot be displayed because it requires unsupported features.
+ScaledImage=Scaled (%S%%)
+
+TitleWithStatus=%S — %S
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout/htmlparser.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout/htmlparser.properties
new file mode 100644
index 0000000000..0f8915c5f4
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout/htmlparser.properties
@@ -0,0 +1,145 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Encoding warnings and errors
+EncNoDeclarationFrame=The character encoding of a framed document was not declared. The document may appear different if viewed without the document framing it.
+EncXmlDecl=The character encoding of an HTML document was declared using the XML declaration syntax. This is non-conforming, and declaring the encoding using a meta tag at the start of the head part is more efficient.
+EncMetaTooLate=A meta tag attempting to declare the character encoding declaration was found too late, and the encoding was guessed from content instead. The meta tag needs to be moved to the start of the head part of the document.
+EncMetaTooLateFrame=A meta tag attempting to declare the character encoding declaration was found too late, and the encoding of the parent document was used instead. The meta tag needs to be moved to the start of the head part of the document.
+EncMetaAfterHeadInKilobyte=The meta tag declaring the character encoding of the document should be moved to start of the head part of the document.
+EncNoDecl=The character encoding of the document was not declared, so the encoding was guessed from content. The character encoding needs to be declared in the Content-Type HTTP header, using a meta tag, or using a byte order mark.
+EncNoDeclPlain=The character encoding of the document was not declared, so the encoding was guessed from content. The character encoding needs to be declared in the Content-Type HTTP header or using a byte order mark.
+EncMetaUnsupported=An unsupported character encoding was declared for the HTML document using a meta tag. The declaration was ignored.
+EncProtocolUnsupported=An unsupported character encoding was declared on the transfer protocol level. The declaration was ignored.
+EncMetaUtf16=A meta tag was used to declare the character encoding as UTF-16. This was interpreted as an UTF-8 declaration instead.
+EncMetaUserDefined=A meta tag was used to declare the character encoding as x-user-defined. This was interpreted as a windows-1252 declaration instead for compatibility with intentionally mis-encoded legacy fonts. This site should migrate to Unicode.
+
+EncMetaReplacement=A meta tag was used to declare an encoding that is a cross-site scripting hazard. The replacement encoding was used instead.
+EncProtocolReplacement=An encoding that is a cross-site scripting hazard was declared on the transfer protocol level. The replacement encoding was used instead.
+EncDetectorReload=The character encoding of the document was not declared, and the encoding was guessable from content only late. This caused the document to be reloaded. The character encoding needs to be declared in the Content-Type HTTP header, using a meta tag, or using a byte order mark.
+EncDetectorReloadPlain=The character encoding of the document was not declared, and the encoding was guessable from content only late. This caused the document to be reloaded. The character encoding needs to be declared in the Content-Type HTTP header or using a byte order mark.
+EncError=The byte stream was erroneous according to the character encoding that was declared. The character encoding declaration may be incorrect.
+EncErrorFrame=The byte stream was erroneous according to the character encoding that was inherited from the parent document. The character encoding needs to be declared in the Content-Type HTTP header, using a meta tag, or using a byte order mark.
+EncErrorFramePlain=The byte stream was erroneous according to the character encoding that was inherited from the parent document. The character encoding needs to be declared in the Content-Type HTTP header or using a byte order mark.
+EncSpeculationFailMeta=The start of the document was reparsed, because there were non-ASCII characters before the meta tag that declared the encoding. The meta should be the first child of head without non-ASCII comments before.
+EncSpeculationFailXml=The start of the document was reparsed, because there were non-ASCII characters in the part of the document that was unsuccessfully searched for a meta tag before falling back to the XML declaration syntax. A meta tag at the start of the head part should be used instead of the XML declaration syntax.
+# The audience of the following message isn't the author of the document but other people debugging browser behavior.
+EncSpeculationFail2022=The start of the document was reparsed, because ISO-2022-JP is an ASCII-incompatible encoding.
+
+# The bulk of the messages below are derived from
+# https://hg.mozilla.org/projects/htmlparser/file/1f633cef7de7/src/nu/validator/htmlparser/impl/ErrorReportingTokenizer.java
+# which is available under the MIT license.
+
+# Tokenizer errors
+errGarbageAfterLtSlash=Garbage after “</”.
+errLtSlashGt=Saw “</>”. Probable causes: Unescaped “<” (escape as “&lt;”) or mistyped end tag.
+errCharRefLacksSemicolon=Character reference was not terminated by a semicolon.
+errNoDigitsInNCR=No digits in numeric character reference.
+errGtInSystemId=“>” in system identifier.
+errGtInPublicId=“>” in public identifier.
+errNamelessDoctype=Nameless doctype.
+errConsecutiveHyphens=Consecutive hyphens did not terminate a comment. “--” is not permitted inside a comment, but e.g. “- -” is.
+errPrematureEndOfComment=Premature end of comment. Use “-->” to end a comment properly.
+errBogusComment=Bogus comment.
+errUnquotedAttributeLt=“<” in an unquoted attribute value. Probable cause: Missing “>” immediately before.
+errUnquotedAttributeGrave=“`” in an unquoted attribute value. Probable cause: Using the wrong character as a quote.
+errUnquotedAttributeQuote=Quote in an unquoted attribute value. Probable causes: Attributes running together or a URL query string in an unquoted attribute value.
+errUnquotedAttributeEquals=“=” in an unquoted attribute value. Probable causes: Attributes running together or a URL query string in an unquoted attribute value.
+errSlashNotFollowedByGt=A slash was not immediately followed by “>”.
+errNoSpaceBetweenAttributes=No space between attributes.
+errUnquotedAttributeStartLt=“<” at the start of an unquoted attribute value. Probable cause: Missing “>” immediately before.
+errUnquotedAttributeStartGrave=“`” at the start of an unquoted attribute value. Probable cause: Using the wrong character as a quote.
+errUnquotedAttributeStartEquals=“=” at the start of an unquoted attribute value. Probable cause: Stray duplicate equals sign.
+errAttributeValueMissing=Attribute value missing.
+errBadCharBeforeAttributeNameLt=Saw “<” when expecting an attribute name. Probable cause: Missing “>” immediately before.
+errEqualsSignBeforeAttributeName=Saw “=” when expecting an attribute name. Probable cause: Attribute name missing.
+errBadCharAfterLt=Bad character after “<”. Probable cause: Unescaped “<”. Try escaping it as “&lt;”.
+errLtGt=Saw “<>”. Probable causes: Unescaped “<” (escape as “&lt;”) or mistyped start tag.
+errProcessingInstruction=Saw “<?”. Probable cause: Attempt to use an XML processing instruction in HTML. (XML processing instructions are not supported in HTML.)
+errUnescapedAmpersandInterpretedAsCharacterReference=The string following “&” was interpreted as a character reference. (“&” probably should have been escaped as “&amp;”.)
+errNotSemicolonTerminated=Named character reference was not terminated by a semicolon. (Or “&” should have been escaped as “&amp;”.)
+errNoNamedCharacterMatch=“&” did not start a character reference. (“&” probably should have been escaped as “&amp;”.)
+errQuoteBeforeAttributeName=Saw a quote when expecting an attribute name. Probable cause: “=” missing immediately before.
+errLtInAttributeName=“<” in attribute name. Probable cause: “>” missing immediately before.
+errQuoteInAttributeName=Quote in attribute name. Probable cause: Matching quote missing somewhere earlier.
+errExpectedPublicId=Expected a public identifier but the doctype ended.
+errBogusDoctype=Bogus doctype.
+maybeErrAttributesOnEndTag=End tag had attributes.
+maybeErrSlashInEndTag=Stray “/” at the end of an end tag.
+errNcrNonCharacter=Character reference expands to a non-character.
+errNcrSurrogate=Character reference expands to a surrogate.
+errNcrControlChar=Character reference expands to a control character.
+errNcrCr=A numeric character reference expanded to carriage return.
+errNcrInC1Range=A numeric character reference expanded to the C1 controls range.
+errEofInPublicId=End of file inside public identifier.
+errEofInComment=End of file inside comment.
+errEofInDoctype=End of file inside doctype.
+errEofInAttributeValue=End of file reached when inside an attribute value. Ignoring tag.
+errEofInAttributeName=End of file occurred in an attribute name. Ignoring tag.
+errEofWithoutGt=Saw end of file without the previous tag ending with “>”. Ignoring tag.
+errEofInTagName=End of file seen when looking for tag name. Ignoring tag.
+errEofInEndTag=End of file inside end tag. Ignoring tag.
+errEofAfterLt=End of file after “<”.
+errNcrOutOfRange=Character reference outside the permissible Unicode range.
+errNcrUnassigned=Character reference expands to a permanently unassigned code point.
+errDuplicateAttribute=Duplicate attribute.
+errEofInSystemId=End of file inside system identifier.
+errExpectedSystemId=Expected a system identifier but the doctype ended.
+errMissingSpaceBeforeDoctypeName=Missing space before doctype name.
+errNestedComment=Saw “<!--” within a comment. Probable cause: Nested comment (not allowed).
+errNcrZero=Character reference expands to zero.
+errNoSpaceBetweenDoctypeSystemKeywordAndQuote=No space between the doctype “SYSTEM” keyword and the quote.
+errNoSpaceBetweenPublicAndSystemIds=No space between the doctype public and system identifiers.
+errNoSpaceBetweenDoctypePublicKeywordAndQuote=No space between the doctype “PUBLIC” keyword and the quote.
+
+# Tree builder errors
+errDeepTree=The document tree is too deep. The tree will be flattened to be 513 elements deep.
+errStrayStartTag2=Stray start tag “%1$S”.
+errStrayEndTag=Stray end tag “%1$S”.
+errUnclosedElements=End tag “%1$S” seen, but there were open elements.
+errUnclosedElementsImplied=End tag “%1$S” implied, but there were open elements.
+errUnclosedElementsCell=A table cell was implicitly closed, but there were open elements.
+errStrayDoctype=Stray doctype.
+errAlmostStandardsDoctype=Almost standards mode doctype. Expected “<!DOCTYPE html>”.
+errQuirkyDoctype=Quirky doctype. Expected “<!DOCTYPE html>”.
+errAlmostStandardsDoctypeVerbose=This page is in Almost Standards Mode. Page layout may be impacted. For Standards Mode use “<!DOCTYPE html>”.
+errQuirkyDoctypeVerbose=This page is in Quirks Mode. Page layout may be impacted. For Standards Mode use “<!DOCTYPE html>”.
+errNonSpaceInTrailer=Non-space character in page trailer.
+errNonSpaceAfterFrameset=Non-space after “frameset”.
+errNonSpaceInFrameset=Non-space in “frameset”.
+errNonSpaceAfterBody=Non-space character after body.
+errNonSpaceInColgroupInFragment=Non-space in “colgroup” when parsing fragment.
+errNonSpaceInNoscriptInHead=Non-space character inside “noscript” inside “head”.
+errFooBetweenHeadAndBody=“%1$S” element between “head” and “body”.
+errStartTagWithoutDoctype=Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”.
+errNoSelectInTableScope=No “select” in table scope.
+errStartSelectWhereEndSelectExpected=“select” start tag where end tag expected.
+errStartTagWithSelectOpen=“%1$S” start tag with “select” open.
+errBadStartTagInNoscriptInHead=Bad start tag “%1$S” in “noscript” in “head”.
+errImage=Saw a start tag “image”.
+errFooSeenWhenFooOpen2=Start tag “%1$S” seen but an element of the same type was already open.
+errHeadingWhenHeadingOpen=Heading cannot be a child of another heading.
+errFramesetStart=“frameset” start tag seen.
+errNoCellToClose=No cell to close.
+errStartTagInTable=Start tag “%1$S” seen in “table”.
+errFormWhenFormOpen=Saw a “form” start tag, but there was already an active “form” element. Nested forms are not allowed. Ignoring the tag.
+errTableSeenWhileTableOpen=Start tag for “table” seen but the previous “table” is still open.
+errStartTagInTableBody=“%1$S” start tag in table body.
+errEndTagSeenWithoutDoctype=End tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”.
+errEndTagAfterBody=Saw an end tag after “body” had been closed.
+errEndTagSeenWithSelectOpen=“%1$S” end tag with “select” open.
+errGarbageInColgroup=Garbage in “colgroup” fragment.
+errEndTagBr=End tag “br”.
+errNoElementToCloseButEndTagSeen=No “%1$S” element in scope but a “%1$S” end tag seen.
+errHtmlStartTagInForeignContext=HTML start tag “%1$S” in a foreign namespace context.
+errNoTableRowToClose=No table row to close.
+errNonSpaceInTable=Misplaced non-space characters inside a table.
+errUnclosedChildrenInRuby=Unclosed children in “ruby”.
+errStartTagSeenWithoutRuby=Start tag “%1$S” seen without a “ruby” element being open.
+errSelfClosing=Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag.
+errNoCheckUnclosedElementsOnStack=Unclosed elements on stack.
+errEndTagDidNotMatchCurrentOpenElement=End tag “%1$S” did not match the name of the current open element (“%2$S”).
+errEndTagViolatesNestingRules=End tag “%1$S” violates nesting rules.
+errEndWithUnclosedElements=End tag for “%1$S” seen, but there were unclosed elements.
+errListUnclosedStartTags=Unclosed element or elements.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout/xmlparser.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout/xmlparser.properties
new file mode 100644
index 0000000000..e0206f0370
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout/xmlparser.properties
@@ -0,0 +1,48 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Map Expat error codes to error strings
+1 = out of memory
+2 = syntax error
+3 = no element found
+4 = not well-formed
+5 = unclosed token
+6 = partial character
+7 = mismatched tag
+8 = duplicate attribute
+9 = junk after document element
+10 = illegal parameter entity reference
+11 = undefined entity
+12 = recursive entity reference
+13 = asynchronous entity
+14 = reference to invalid character number
+15 = reference to binary entity
+16 = reference to external entity in attribute
+17 = XML or text declaration not at start of entity
+18 = unknown encoding
+19 = encoding specified in XML declaration is incorrect
+20 = unclosed CDATA section
+21 = error in processing external entity reference
+22 = document is not standalone
+23 = unexpected parser state
+24 = entity declared in parameter entity
+27 = prefix not bound to a namespace
+28 = must not undeclare prefix
+29 = incomplete markup in parameter entity
+30 = XML declaration not well-formed
+31 = text declaration not well-formed
+32 = illegal character(s) in public id
+38 = reserved prefix (xml) must not be undeclared or bound to another namespace name
+39 = reserved prefix (xmlns) must not be declared or undeclared
+40 = prefix must not be bound to one of the reserved namespace names
+
+# %1$S is replaced by the Expat error string, may be followed by Expected (see below)
+# %2$S is replaced by URL
+# %3$u is replaced by line number
+# %4$u is replaced by column number
+XMLParsingError = XML Parsing Error: %1$S\nLocation: %2$S\nLine Number %3$u, Column %4$u:
+
+# %S is replaced by a tag name.
+# This gets appended to the error string if the error is mismatched tag.
+Expected = . Expected: </%S>.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout_errors.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout_errors.properties
new file mode 100644
index 0000000000..aa4a1da8ba
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout_errors.properties
@@ -0,0 +1,53 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+ImageMapRectBoundsError=The “coords” attribute of the <area shape="rect"> tag is not in the ”left,top,right,bottom” format.
+ImageMapCircleWrongNumberOfCoords=The “coords” attribute of the <area shape="circle"> tag is not in the “center-x,center-y,radius” format.
+ImageMapCircleNegativeRadius=The “coords” attribute of the <area shape="circle"> tag has a negative radius.
+ImageMapPolyWrongNumberOfCoords=The “coords” attribute of the <area shape="poly"> tag is not in the “x1,y1,x2,y2 …” format.
+ImageMapPolyOddNumberOfCoords=The “coords” attribute of the <area shape="poly"> tag is missing the last “y” coordinate (the correct format is “x1,y1,x2,y2 …”).
+
+ScrollLinkedEffectFound3=This site appears to use a scroll-linked positioning effect. This may not work well with asynchronous panning; see https://firefox-source-docs.mozilla.org/performance/scroll-linked_effects.html for further details and to join the discussion on related tools and features!
+
+## LOCALIZATION NOTE(CompositorAnimationWarningContentTooLargeArea):
+## %1$S is an integer value of the area of the frame
+## %2$S is an integer value of the area of a limit based on the viewport size
+CompositorAnimationWarningContentTooLargeArea=Animation cannot be run on the compositor because the area of the frame (%1$S) is too large relative to the viewport (larger than %2$S)
+## LOCALIZATION NOTE(CompositorAnimationWarningContentTooLarge2):
+## (%1$S, %2$S) is a pair of integer values of the frame size
+## (%3$S, %4$S) is a pair of integer values of a limit based on the viewport size
+## (%5$S, %6$S) is a pair of integer values of an absolute limit
+CompositorAnimationWarningContentTooLarge2=Animation cannot be run on the compositor because the frame size (%1$S, %2$S) is too large relative to the viewport (larger than (%3$S, %4$S)) or larger than the maximum allowed value (%5$S, %6$S)
+## LOCALIZATION NOTE(CompositorAnimationWarningTransformBackfaceVisibilityHidden):
+## 'backface-visibility: hidden' is a CSS property, don't translate it.
+CompositorAnimationWarningTransformBackfaceVisibilityHidden=Animations of “backface-visibility: hidden” transforms cannot be run on the compositor
+## LOCALIZATION NOTE(CompositorAnimationWarningTransformSVG,
+## CompositorAnimationWarningTransformWithGeometricProperties,
+## CompositorAnimationWarningTransformWithSyncGeometricAnimations,
+## CompositorAnimationWarningTransformFrameInactive,
+## CompositorAnimationWarningOpacityFrameInactive):
+## 'transform' and 'opacity' mean CSS property names, don't translate it.
+CompositorAnimationWarningTransformSVG=Animations of “transform” on elements with SVG transforms cannot be run on the compositor
+CompositorAnimationWarningTransformWithGeometricProperties=Animations of ‘transform’ cannot be run on the compositor when geometric properties are animated on the same element at the same time
+CompositorAnimationWarningTransformWithSyncGeometricAnimations=Animation of ‘transform’ cannot be run on the compositor because it should be synchronized with animations of geometric properties that started at the same time
+CompositorAnimationWarningTransformFrameInactive=Animation cannot be run on the compositor because the frame was not marked active for ‘transform’ animation
+CompositorAnimationWarningTransformIsBlockedByImportantRules=Transform animation cannot be run on the compositor because transform-related properties are overridden by !important rules
+CompositorAnimationWarningOpacityFrameInactive=Animation cannot be run on the compositor because the frame was not marked active for ‘opacity’ animation
+CompositorAnimationWarningHasRenderingObserver=Animation cannot be run on the compositor because the element has rendering observers (-moz-element or SVG clipping/masking)
+CompositorAnimationWarningHasCurrentColor=Animations of ‘background-color’ cannot be run on the compositor with ‘current-color’ keyframe.
+
+## LOCALIZATION NOTE: Do not translate zoom, calc(), "transform", "transform-origin: 0 0"
+ZoomPropertyWarning=This page uses the non standard property “zoom”. Consider using calc() in the relevant property values, or using “transform” along with “transform-origin: 0 0”.
+
+## LOCALIZATION NOTE(PrincipalWritingModePropagationWarning):
+## Do not translate <html>, <body>, CSS, "writing-mode", "direction", "text-orientation", :root, and "The Principal Writing Mode" because they are technical terms.
+PrincipalWritingModePropagationWarning=When rendering the <html> element, the used values of CSS properties “writing-mode”, “direction”, and “text-orientation” on the <html> element are taken from the computed values of the <body> element, not from the <html> element’s own values. Consider setting these properties on the :root CSS pseudo-class. For more information see “The Principal Writing Mode” in https://www.w3.org/TR/css-writing-modes-3/#principal-flow
+
+## LOCALIZATION NOTE(ScrollAnchoringDisabledInContainer):
+## %1$S is an integer value with the total number of adjustments
+## %2$S is a floating point value with the average distance adjusted
+## %3$S is a floating point value with the total adjusted distance
+ScrollAnchoringDisabledInContainer=Scroll anchoring was disabled in a scroll container because of too many consecutive adjustments (%1$S) with too little total distance (%2$S px average, %3$S px total).
+
+ForcedLayoutStart=Layout was forced before the page was fully loaded. If stylesheets are not yet loaded this may cause a flash of unstyled content.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/mathml/mathml.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/mathml/mathml.properties
new file mode 100644
index 0000000000..8471fca490
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/mathml/mathml.properties
@@ -0,0 +1,15 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+InvalidChild=Invalid markup: <%1$S> is not allowed as a child of <%2$S>.
+ChildCountIncorrect=Invalid markup: Incorrect number of children for <%1$S/> tag.
+DuplicateMprescripts=Invalid markup: More than one <mprescripts/> in <mmultiscripts/>.
+# LOCALIZATION NOTE: The first child of <mmultiscript/> is the base, that is the element to which scripts are attached.
+NoBase=Invalid markup: Expected exactly one Base element in <mmultiscripts/>. Found none.
+SubSupMismatch=Invalid markup: Incomplete subscript/superscript pair in <mmultiscripts/>.
+
+# LOCALIZATION NOTE: When localizing the single quotes ('), follow the conventions in css.properties for your target locale.
+AttributeParsingError=Error in parsing the value ‘%1$S’ for ‘%2$S’ attribute of <%3$S/>. Attribute ignored.
+AttributeParsingErrorNoTag=Error in parsing the value ‘%1$S’ for ‘%2$S’ attribute. Attribute ignored.
+LengthParsingError=Error in parsing MathML attribute value ‘%1$S’ as length. Attribute ignored.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/narrate.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/narrate.properties
new file mode 100644
index 0000000000..712cbcde51
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/narrate.properties
@@ -0,0 +1,25 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# "Listen, which allows users to listen to Firefox reading the text,
+# instead of having to read it themselves." This is the name
+# of the feature and it is the label for the popup button.
+# %S is the keyboard shortcut for the listen command
+listen-label = Listen (%S)
+back = Back
+# %S is the keyboard shortcut for the start command
+start-label = Start (%S)
+# %S is the keyboard shortcut for the stop command
+stop-label = Stop (%S)
+# Keyboard shortcut to toggle the narrate feature
+narrate-key-shortcut = N
+forward = Forward
+speed = Speed
+selectvoicelabel = Voice:
+# Default voice is determined by the language of the document.
+defaultvoice = Default
+
+# Voice name and language.
+# eg. David (English)
+voiceLabel = %S (%S)
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/nsWebBrowserPersist.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/nsWebBrowserPersist.properties
new file mode 100644
index 0000000000..195376b4c7
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/nsWebBrowserPersist.properties
@@ -0,0 +1,17 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+readError=%S could not be saved, because the source file could not be read.\n\nTry again later, or contact the server administrator.
+writeError=%S could not be saved, because an unknown error occurred.\n\nTry saving to a different location.
+launchError=%S could not be opened, because an unknown error occurred.\n\nTry saving to disk first and then opening the file.
+diskFull=There is not enough room on the disk to save %S.\n\nRemove unnecessary files from the disk and try again, or try saving in a different location.
+readOnly=%S could not be saved, because the disk, folder, or file is write-protected.\n\nWrite-enable the disk and try again, or try saving in a different location.
+accessError=%S could not be saved, because you cannot change the contents of that folder.\n\nChange the folder properties and try again, or try saving in a different location.
+SDAccessErrorCardReadOnly=Cannot download file because the SD card is in use.
+SDAccessErrorCardMissing=Cannot download file because the SD card is missing.
+helperAppNotFound=%S could not be opened, because the associated helper application does not exist. Change the association in your preferences.
+noMemory=There is not sufficient memory to complete the action you requested.\n\nQuit some applications and try again.
+title=Downloading %S
+fileAlreadyExistsError=%S could not be saved, because a file already exists with the same name as the “_files” directory.\n\nTry saving to a different location.
+fileNameTooLongError=%S could not be saved, because the file name was too long.\n\nTry saving with a shorter file name.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/printdialog.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/printdialog.properties
new file mode 100644
index 0000000000..1ac671b037
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/printdialog.properties
@@ -0,0 +1,53 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# These strings are used in the native GTK, Mac and Windows print dialogs.
+
+# GTK titles:
+printTitleGTK=Print
+optionsTabLabelGTK=Options
+
+# Mac titles:
+optionsTitleMac=Options:
+appearanceTitleMac=Appearance:
+pageHeadersTitleMac=Page Headers:
+pageFootersTitleMac=Page Footers:
+
+# Windows titles:
+optionsTitleWindows=Options
+
+# TRANSLATOR NOTE: For radio button labels and check button labels, an underscore _
+# before a character will turn that character into an accesskey in the GTK dialog.
+# e.g. "_As laid out" will make A the accesskey.
+# In the Windows labels, use an ampersand (&).
+# On Mac, underscores will be stripped.
+
+shrinkToFit=Ignore Scaling and S_hrink To Fit Page Width
+selectionOnly=Print Selection _Only
+printBGOptions=Print Backgrounds
+printBGColors=Print Background _Colours
+printBGImages=Print Background I_mages
+headerFooter=Header and Footer
+left=Left
+center=Centre
+right=Right
+headerFooterBlank=--blank--
+headerFooterTitle=Title
+headerFooterURL=URL
+headerFooterDate=Date/Time
+headerFooterPage=Page #
+headerFooterPageTotal=Page # of #
+headerFooterCustom=Custom…
+customHeaderFooterPrompt=Please enter your custom header/footer text
+
+# These are for the summary view in the Mac dialog:
+summarySelectionOnlyTitle=Print Selection
+summaryShrinkToFitTitle=Shrink To Fit
+summaryPrintBGColorsTitle=Print BG Colours
+summaryPrintBGImagesTitle=Print BG Images
+summaryHeaderTitle=Page Headers
+summaryFooterTitle=Page Footers
+summaryNAValue=N/A
+summaryOnValue=On
+summaryOffValue=Off
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/printing.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/printing.properties
new file mode 100644
index 0000000000..479185a4f1
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/printing.properties
@@ -0,0 +1,56 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Page number formatting
+## @page_number The current page number
+#LOCALIZATION NOTE (pagenumber): Do not translate %ld in the following line.
+# Place the word %ld where the page number and number of pages should be
+# The first %ld will receive the the page number
+pagenumber=%1$d
+
+# Page number formatting
+## @page_number The current page number
+## @page_total The total number of pages
+#LOCALIZATION NOTE (pageofpages): Do not translate %ld in the following line.
+# Place the word %ld where the page number and number of pages should be
+# The first %ld will receive the the page number
+# the second %ld will receive the total number of pages
+pageofpages=%1$d of %2$d
+
+PrintToFile=Print To File
+print_error_dialog_title=Printer Error
+printpreview_error_dialog_title=Print Preview Error
+
+# Printing error messages.
+#LOCALIZATION NOTE: Some of these messages come in pairs, one
+# for printing and one for print previewing. You can remove that
+# distinction in your language by removing the entity with the _PP
+# suffix; then the entity without a suffix will be used for both.
+# You can also add that distinction to any of the messages that don't
+# already have it by adding a new entity with a _PP suffix.
+#
+# For instance, if you delete PERR_GFX_PRINTER_DOC_IS_BUSY_PP, then
+# the PERR_GFX_PRINTER_DOC_IS_BUSY message will be used for that error
+# condition when print previewing as well as when printing. If you
+# add PERR_FAILURE_PP, then PERR_FAILURE will only be used when
+# printing, and PERR_FAILURE_PP will be used under the same conditions
+# when print previewing.
+#
+PERR_FAILURE=An error occurred while printing.
+
+PERR_ABORT=The print job was aborted, or cancelled.
+PERR_NOT_AVAILABLE=Some printing functionality is not currently available.
+PERR_NOT_IMPLEMENTED=Some printing functionality is not implemented yet.
+PERR_OUT_OF_MEMORY=There is not enough free memory to print.
+PERR_UNEXPECTED=There was an unexpected problem while printing.
+
+PERR_GFX_PRINTER_NO_PRINTER_AVAILABLE=No printers available.
+PERR_GFX_PRINTER_NO_PRINTER_AVAILABLE_PP=No printers available, cannot show print preview.
+PERR_GFX_PRINTER_NAME_NOT_FOUND=The selected printer could not be found.
+PERR_GFX_PRINTER_COULD_NOT_OPEN_FILE=Failed to open output file for print to file.
+PERR_GFX_PRINTER_STARTDOC=Printing failed while starting the print job.
+PERR_GFX_PRINTER_ENDDOC=Printing failed while completing the print job.
+PERR_GFX_PRINTER_STARTPAGE=Printing failed while starting a new page.
+PERR_GFX_PRINTER_DOC_IS_BUSY=Cannot print this document yet, it is still being loaded.
+PERR_GFX_PRINTER_DOC_IS_BUSY_PP=Cannot print-preview this document yet, it is still being loaded.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/resetProfile.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/resetProfile.properties
new file mode 100644
index 0000000000..c060072990
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/resetProfile.properties
@@ -0,0 +1,14 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE: These strings are used for profile reset.
+
+# LOCALIZATION NOTE (resetUnusedProfile.message): %S is brandShortName.
+resetUnusedProfile.message=It looks like you haven’t started %S in a while. Do you want to clean it up for a fresh, like-new experience? And by the way, welcome back!
+# LOCALIZATION NOTE (resetUninstalled.message): %S is brandShortName.
+resetUninstalled.message=Looks like you’ve reinstalled %S. Want us to clean it up for a fresh, like-new experience?
+
+# LOCALIZATION NOTE (refreshProfile.resetButton.label): %S is brandShortName.
+refreshProfile.resetButton.label=Refresh %S…
+refreshProfile.resetButton.accesskey=e
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/security/caps.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/security/caps.properties
new file mode 100644
index 0000000000..6d30d79b82
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/security/caps.properties
@@ -0,0 +1,9 @@
+# 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 http://mozilla.org/MPL/2.0/.
+CheckLoadURIError = Security Error: Content at %S may not load or link to %S.
+CheckSameOriginError = Security Error: Content at %S may not load data from %S.
+ExternalDataError = Security Error: Content at %S attempted to load %S, but may not load external data when being used as an image.
+
+CreateWrapperDenied = Permission denied to create wrapper for object of class %S
+CreateWrapperDeniedForOrigin = Permission denied for <%2$S> to create wrapper for object of class %1$S
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/security/csp.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/security/csp.properties
new file mode 100644
index 0000000000..0333737e25
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/security/csp.properties
@@ -0,0 +1,125 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# CSP Warnings:
+# LOCALIZATION NOTE (CSPViolation):
+# %1$S is the reason why the resource has not been loaded.
+CSPViolation = The page’s settings blocked the loading of a resource: %1$S
+# LOCALIZATION NOTE (CSPViolationWithURI):
+# %1$S is the directive that has been violated.
+# %2$S is the URI of the resource which violated the directive.
+CSPViolationWithURI = The page’s settings blocked the loading of a resource at %2$S (“%1$S”).
+# LOCALIZATION NOTE (CSPROViolation):
+# %1$S is the reason why the resource has not been loaded.
+CSPROViolation = A violation occurred for a report-only CSP policy (“%1$S”). The behaviour was allowed, and a CSP report was sent.
+# LOCALIZATION NOTE (CSPROViolationWithURI):
+# %1$S is the directive that has been violated.
+# %2$S is the URI of the resource which violated the directive.
+CSPROViolationWithURI = The page’s settings observed the loading of a resource at %2$S (“%1$S”). A CSP report is being sent.
+# LOCALIZATION NOTE (triedToSendReport):
+# %1$S is the URI we attempted to send a report to.
+triedToSendReport = Tried to send report to invalid URI: “%1$S”
+tooManyReports = Prevented too many CSP reports from being sent within a short period of time.
+# LOCALIZATION NOTE (couldNotParseReportURI):
+# %1$S is the report URI that could not be parsed
+couldNotParseReportURI = couldn’t parse report URI: %1$S
+# LOCALIZATION NOTE (couldNotProcessUnknownDirective):
+# %1$S is the unknown directive
+couldNotProcessUnknownDirective = Couldn’t process unknown directive “%1$S”
+# LOCALIZATION NOTE (ignoringUnknownOption):
+# %1$S is the option that could not be understood
+ignoringUnknownOption = Ignoring unknown option %1$S
+# LOCALIZATION NOTE (ignoringDuplicateSrc):
+# %1$S defines the duplicate src
+ignoringDuplicateSrc = Ignoring duplicate source %1$S
+# LOCALIZATION NOTE (ignoringNonAsciiToken):
+# %1$S defines the name of the directive
+# %2$S is the token string containing non-ASCII characters.
+ignoringNonAsciiToken = Ignoring directive ‘%1$S’ with the non-ASCII token ‘%2$S’
+# LOCALIZATION NOTE (ignoringSrcFromMetaCSP):
+# %1$S defines the ignored src
+ignoringSrcFromMetaCSP = Ignoring source “%1$S” (Not supported when delivered via meta element).
+# LOCALIZATION NOTE (ignoringSrcWithinNonceOrHashDirective):
+# %1$S is the ignored src (e.g. "unsafe-inline")
+# %2$S is the directive (e.g. "script-src-elem")
+ignoringSrcWithinNonceOrHashDirective = Ignoring “%1$S” within %2$S: nonce-source or hash-source specified
+# LOCALIZATION NOTE (ignoringScriptSrcForStrictDynamic):
+# %1$S is the ignored src
+# %1$S is the directive src (e.g. "script-src-elem")
+# 'strict-dynamic' should not be localized
+ignoringScriptSrcForStrictDynamic = Ignoring “%1$S” within %2$S: ‘strict-dynamic’ specified
+# LOCALIZATION NOTE (ignoringStrictDynamic):
+# %1$S is the ignored src
+ignoringStrictDynamic = Ignoring source “%1$S” (Only supported within script-src).
+# LOCALIZATION NOTE (ignoringUnsafeEval):
+# %1$S is the csp directive (e.g. script-src-elem)
+# 'unsafe-eval' and 'wasm-unsafe-eval' should not be localized
+ignoringUnsafeEval = Ignoring ‘unsafe-eval’ or ‘wasm-unsafe-eval’ inside “%1$S”.
+# LOCALIZATION NOTE (strictDynamicButNoHashOrNonce):
+# %1$S is the csp directive that contains 'strict-dynamic'
+# 'strict-dynamic' should not be localized
+strictDynamicButNoHashOrNonce = Keyword “strict-dynamic” within “%1$S” with no valid nonce or hash might block all scripts from loading
+# LOCALIZATION NOTE (reportURInotHttpsOrHttp2):
+# %1$S is the ETLD of the report URI that is not HTTP or HTTPS
+reportURInotHttpsOrHttp2 = The report URI (%1$S) should be an HTTP or HTTPS URI.
+# LOCALIZATION NOTE (reportURInotInReportOnlyHeader):
+# %1$S is the ETLD of the page with the policy
+reportURInotInReportOnlyHeader = This site (%1$S) has a Report-Only policy without a report URI. CSP will not block and cannot report violations of this policy.
+# LOCALIZATION NOTE (failedToParseUnrecognizedSource):
+# %1$S is the CSP Source that could not be parsed
+failedToParseUnrecognizedSource = Failed to parse unrecognized source %1$S
+# LOCALIZATION NOTE (upgradeInsecureRequest):
+# %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
+upgradeInsecureRequest = Upgrading insecure request “%1$S” to use “%2$S”
+# LOCALIZATION NOTE (ignoreSrcForDirective):
+ignoreSrcForDirective = Ignoring srcs for directive “%1$S”
+# LOCALIZATION NOTE (hostNameMightBeKeyword):
+# %1$S is the hostname in question and %2$S is the keyword
+hostNameMightBeKeyword = Interpreting %1$S as a hostname, not a keyword. If you intended this to be a keyword, use ‘%2$S’ (wrapped in single quotes).
+# LOCALIZATION NOTE (notSupportingDirective):
+# directive is not supported (e.g. 'reflected-xss')
+notSupportingDirective = Not supporting directive “%1$S”. Directive and values will be ignored.
+# LOCALIZATION NOTE (blockAllMixedContent):
+# %1$S is the URL of the blocked resource load.
+blockAllMixedContent = Blocking insecure request “%1$S”.
+# LOCALIZATION NOTE (ignoringDirectiveWithNoValues):
+# %1$S is the name of a CSP directive that requires additional values
+ignoringDirectiveWithNoValues = Ignoring “%1$S” since it does not contain any parameters.
+# LOCALIZATION NOTE (ignoringReportOnlyDirective):
+# %1$S is the directive that is ignored in report-only mode.
+ignoringReportOnlyDirective = Ignoring sandbox directive when delivered in a report-only policy ‘%1$S’
+# LOCALIZATION NOTE (IgnoringSrcBecauseOfDirective):
+# %1$S is the name of the src that is ignored.
+# %2$S is the name of the directive that causes the src to be ignored.
+IgnoringSrcBecauseOfDirective=Ignoring ‘%1$S’ because of ‘%2$S’ directive.
+# LOCALIZATION NOTE (IgnoringSourceWithinDirective):
+# %1$S is the ignored src
+# %2$S is the directive which supports src
+IgnoringSourceWithinDirective = Ignoring source “%1$S” (Not supported within ‘%2$S’).
+# LOCALIZATION NOTE (IgnoringSourceWithinDirective):
+# %1$S is the ignored src
+obsoleteBlockAllMixedContent = Ignoring ‘%1$S’ because mixed content display upgrading makes block-all-mixed-content obsolete.
+
+
+# CSP Errors:
+# LOCALIZATION NOTE (couldntParseInvalidSource):
+# %1$S is the source that could not be parsed
+couldntParseInvalidSource = Couldn’t parse invalid source %1$S
+# LOCALIZATION NOTE (couldntParseInvalidHost):
+# %1$S is the host that's invalid
+couldntParseInvalidHost = Couldn’t parse invalid host %1$S
+# LOCALIZATION NOTE (couldntParsePort):
+# %1$S is the string source
+couldntParsePort = Couldn’t parse port in %1$S
+# LOCALIZATION NOTE (duplicateDirective):
+# %1$S is the name of the duplicate directive
+duplicateDirective = Duplicate %1$S directives detected. All but the first instance will be ignored.
+# LOCALIZATION NOTE (couldntParseInvalidSandboxFlag):
+# %1$S is the option that could not be understood
+couldntParseInvalidSandboxFlag = Couldn’t parse invalid sandbox flag ‘%1$S’
+
+# LOCALIZATION NOTE (CSPMessagePrefix):
+# Do not translate "Content-Security-Policy", only handle spacing for the colon.
+# %S is a console message that is being prefixed here.
+CSPMessagePrefix = Content-Security-Policy: %S
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/security/security.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/security/security.properties
new file mode 100644
index 0000000000..a45c39db31
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/security/security.properties
@@ -0,0 +1,165 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Mixed Content Blocker
+# LOCALIZATION NOTE: "%1$S" is the URI of the blocked mixed content resource
+BlockMixedDisplayContent = Blocked loading mixed display content “%1$S”
+BlockMixedActiveContent = Blocked loading mixed active content “%1$S”
+
+# CORS
+# LOCALIZATION NOTE: Do not translate "Access-Control-Allow-Origin", Access-Control-Allow-Credentials, Access-Control-Allow-Methods, Access-Control-Allow-Headers
+CORSDisabled=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS disabled).
+CORSDidNotSucceed2=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS request did not succeed). Status code: %2$S.
+CORSOriginHeaderNotAdded=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS header ‘Origin’ cannot be added).
+CORSExternalRedirectNotAllowed=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS request external redirect not allowed).
+CORSRequestNotHttp=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS request not http).
+CORSMissingAllowOrigin2=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing). Status code: %2$S.
+CORSMultipleAllowOriginNotAllowed=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: Multiple CORS header ‘Access-Control-Allow-Origin’ not allowed).
+CORSAllowOriginNotMatchingOrigin=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS header “Access-Control-Allow-Origin” does not match “%2$S”).
+CORSNotSupportingCredentials=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at ‘%1$S’. (Reason: Credential is not supported if the CORS header ‘Access-Control-Allow-Origin’ is ‘*’).
+CORSMethodNotFound=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: Did not find method in CORS header “Access-Control-Allow-Methods”).
+CORSMissingAllowCredentials=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: expected “true” in CORS header “Access-Control-Allow-Credentials”).
+CORSPreflightDidNotSucceed3=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS preflight response did not succeed). Status code: %2$S.
+CORSInvalidAllowMethod=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: invalid token “%2$S” in CORS header “Access-Control-Allow-Methods”).
+CORSInvalidAllowHeader=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: invalid token “%2$S” in CORS header “Access-Control-Allow-Headers”).
+CORSMissingAllowHeaderFromPreflight2=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: header ‘%2$S’ is not allowed according to header ‘Access-Control-Allow-Headers’ from CORS preflight response).
+CORSAllowHeaderFromPreflightDeprecation=Cross-Origin Request Warning: The Same Origin Policy will disallow reading the remote resource at %1$S soon. (Reason: When the `Access-Control-Allow-Headers` is `*`, the `Authorization` header is not covered. To include the `Authorization` header, it must be explicitly listed in CORS header `Access-Control-Allow-Headers`).
+
+# LOCALIZATION NOTE: Do not translate "Strict-Transport-Security", "HSTS", "max-age" or "includeSubDomains"
+STSUnknownError=Strict-Transport-Security: An unknown error occurred processing the header specified by the site.
+STSCouldNotParseHeader=Strict-Transport-Security: The site specified a header that could not be parsed successfully.
+STSNoMaxAge=Strict-Transport-Security: The site specified a header that did not include a “max-age” directive.
+STSMultipleMaxAges=Strict-Transport-Security: The site specified a header that included multiple “max-age” directives.
+STSInvalidMaxAge=Strict-Transport-Security: The site specified a header that included an invalid “max-age” directive.
+STSMultipleIncludeSubdomains=Strict-Transport-Security: The site specified a header that included multiple “includeSubDomains” directives.
+STSInvalidIncludeSubdomains=Strict-Transport-Security: The site specified a header that included an invalid “includeSubDomains” directive.
+STSCouldNotSaveState=Strict-Transport-Security: An error occurred noting the site as a Strict-Transport-Security host.
+
+InsecurePasswordsPresentOnPage=Password fields present on an insecure (http://) page. This is a security risk that allows user login credentials to be stolen.
+InsecureFormActionPasswordsPresent=Password fields present in a form with an insecure (http://) form action. This is a security risk that allows user login credentials to be stolen.
+InsecurePasswordsPresentOnIframe=Password fields present on an insecure (http://) iframe. This is a security risk that allows user login credentials to be stolen.
+# LOCALIZATION NOTE: "%1$S" is the URI of the insecure mixed content resource
+LoadingMixedActiveContent2=Loading mixed (insecure) active content “%1$S” on a secure page
+LoadingMixedDisplayContent2=Loading mixed (insecure) display content “%1$S” on a secure page
+LoadingMixedDisplayObjectSubrequestDeprecation=Loading mixed (insecure) content “%1$S” within a plugin on a secure page is discouraged and will be blocked soon.
+# LOCALIZATION NOTE: "%S" is the URI of the insecure mixed content download
+MixedContentBlockedDownload = Blocked downloading insecure content “%S”.
+
+# LOCALIZATION NOTE: Do not translate "allow-scripts", "allow-same-origin", "sandbox" or "iframe"
+BothAllowScriptsAndSameOriginPresent=An iframe which has both allow-scripts and allow-same-origin for its sandbox attribute can remove its sandboxing.
+# LOCALIZATION NOTE: Do not translate "allow-top-navigation-by-user-activation", "allow-top-navigation", "sandbox" or "iframe"
+BothAllowTopNavigationAndUserActivationPresent=An iframe which has both allow-top-navigation and allow-top-navigation-by-user-activation for its sandbox attribute will permit top navigations.
+
+# Sub-Resource Integrity
+# LOCALIZATION NOTE: Do not translate "script" or "integrity". "%1$S" is the invalid token found in the attribute.
+MalformedIntegrityHash=The script element has a malformed hash in its integrity attribute: “%1$S”. The correct format is “<hash algorithm>-<hash value>”.
+# LOCALIZATION NOTE: Do not translate "integrity"
+InvalidIntegrityLength=The hash contained in the integrity attribute has the wrong length.
+# LOCALIZATION NOTE: Do not translate "integrity"
+InvalidIntegrityBase64=The hash contained in the integrity attribute could not be decoded.
+# LOCALIZATION NOTE: Do not translate "integrity". "%1$S" is the type of hash algorithm in use (e.g. "sha256"). "%2$S" is the value we saw.
+IntegrityMismatch2=None of the “%1$S” hashes in the integrity attribute match the content of the subresource. The computed hash is “%2$S”.
+# LOCALIZATION NOTE: "%1$S" is the URI of the sub-resource that cannot be protected using SRI.
+IneligibleResource=“%1$S” is not eligible for integrity checks since it’s neither CORS-enabled nor same-origin.
+# LOCALIZATION NOTE: Do not translate "integrity". "%1$S" is the invalid hash algorithm found in the attribute.
+UnsupportedHashAlg=Unsupported hash algorithm in the integrity attribute: “%1$S”
+# LOCALIZATION NOTE: Do not translate "integrity"
+NoValidMetadata=The integrity attribute does not contain any valid metadata.
+
+# LOCALIZATION NOTE: Do not translate "RC4".
+WeakCipherSuiteWarning=This site uses the cipher RC4 for encryption, which is deprecated and insecure.
+
+DeprecatedTLSVersion2=This site uses a deprecated version of TLS. Please upgrade to TLS 1.2 or 1.3.
+
+#XCTO: nosniff
+# LOCALIZATION NOTE: Do not translate "X-Content-Type-Options: nosniff".
+MimeTypeMismatch2=The resource from “%1$S” was blocked due to MIME type (“%2$S”) mismatch (X-Content-Type-Options: nosniff).
+# LOCALIZATION NOTE: Do not translate "X-Content-Type-Options" and also do not translate "nosniff".
+XCTOHeaderValueMissing=X-Content-Type-Options header warning: value was “%1$S”; did you mean to send “nosniff”?
+# LOCALIZATION NOTE: Do not translate "X-Content-Type-Options" and also do not translate "nosniff".
+XTCOWithMIMEValueMissing=The resource from “%1$S” was not rendered due to an unknown, incorrect or missing MIME type (X-Content-Type-Options: nosniff).
+
+BlockScriptWithWrongMimeType2=Script from “%1$S” was blocked because of a disallowed MIME type (“%2$S”).
+WarnScriptWithWrongMimeType=The script from “%1$S” was loaded even though its MIME type (“%2$S”) is not a valid JavaScript MIME type.
+# LOCALIZATION NOTE: Do not translate "importScripts()"
+BlockImportScriptsWithWrongMimeType=Loading script from “%1$S” with importScripts() was blocked because of a disallowed MIME type (“%2$S”).
+BlockWorkerWithWrongMimeType=Loading Worker from “%1$S” was blocked because of a disallowed MIME type (“%2$S”).
+BlockModuleWithWrongMimeType=Loading module from “%1$S” was blocked because of a disallowed MIME type (“%2$S”).
+
+# LOCALIZATION NOTE: Do not translate "data: URI".
+BlockTopLevelDataURINavigation=Navigation to toplevel data: URI not allowed (Blocked loading of: “%1$S”)
+BlockRedirectToDataURI=Redirecting to data: URI not allowed (Blocked loading of: “%1$S”)
+
+# LOCALIZATION NOTE: Do not translate "file: URI". “%1$S” is the whole URI of the loaded file. “%2$S” is the MIME type e.g. "text/plain".
+BlockFileScriptWithWrongMimeType=Loading script from file: URI (“%1$S”) was blocked because its MIME type (“%2$S”) is not a valid JavaScript MIME type.
+
+# LOCALIZATION NOTE: “%S” is the whole URI of the loaded file.
+BlockExtensionScriptWithWrongExt=Loading script with URI “%S” was blocked because the file extension is not allowed.
+
+RestrictBrowserEvalUsage=eval() and eval-like uses are not allowed in the Parent Process or in System Contexts (Blocked usage in “%1$S”)
+
+# LOCALIZATION NOTE (MixedContentAutoUpgrade):
+# %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
+MixedContentAutoUpgrade=Upgrading insecure display request ‘%1$S’ to use ‘%2$S’
+# LOCALIZATION NOTE (RunningClearSiteDataValue):
+# %S is the URI of the resource whose data was cleaned up
+RunningClearSiteDataValue=Clear-Site-Data header forced the clean up of “%S” data.
+UnknownClearSiteDataValue=Clear-Site-Data header found. Unknown value “%S”.
+
+# Reporting API
+ReportingHeaderInvalidJSON=Reporting Header: invalid JSON value received.
+ReportingHeaderInvalidNameItem=Reporting Header: invalid name for group.
+ReportingHeaderDuplicateGroup=Reporting Header: ignoring duplicated group named “%S”.
+ReportingHeaderInvalidItem=Reporting Header: ignoring invalid item named “%S”.
+ReportingHeaderInvalidEndpoint=Reporting Header: ignoring invalid endpoint for item named “%S”.
+# LOCALIZATION NOTE(ReportingHeaderInvalidURLEndpoint): %1$S is the invalid URL, %2$S is the group name
+ReportingHeaderInvalidURLEndpoint=Reporting Header: ignoring invalid endpoint URL “%1$S” for item named “%2$S”.
+
+FeaturePolicyUnsupportedFeatureName=Feature Policy: Skipping unsupported feature name “%S”.
+# TODO: would be nice to add a link to the Feature-Policy MDN documentation here. See bug 1449501
+FeaturePolicyInvalidEmptyAllowValue= Feature Policy: Skipping empty allow list for feature: “%S”.
+# TODO: would be nice to add a link to the Feature-Policy MDN documentation here. See bug 1449501
+FeaturePolicyInvalidAllowValue=Feature Policy: Skipping unsupported allow value “%S”.
+
+# LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
+ReferrerLengthOverLimitation=HTTP Referrer header: Length is over “%1$S” bytes limit - stripping referrer header down to origin: “%2$S”
+# LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
+ReferrerOriginLengthOverLimitation=HTTP Referrer header: Length of origin within referrer is over “%1$S” bytes limit - removing referrer with origin “%2$S”.
+
+# LOCALIZATION NOTE: Do not translate "no-referrer-when-downgrade", "origin-when-cross-origin" and "unsafe-url". %S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingWarning=Referrer Policy: Less restricted policies, including ‘no-referrer-when-downgrade’, ‘origin-when-cross-origin’ and ‘unsafe-url’, will be ignored soon for the cross-site request: %S
+# LOCALIZATION NOTE: %1$S is the ignored referrer policy, %2$S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingMessage=Referrer Policy: Ignoring the less restricted referrer policy “%1$S” for the cross-site request: %2$S
+
+# X-Frame-Options
+# LOCALIZATION NOTE(XFrameOptionsInvalid): %1$S is the header value, %2$S is frame URI. Do not translate "X-Frame-Options".
+XFrameOptionsInvalid = Invalid X-Frame-Options header was found when loading “%2$S”: “%1$S” is not a valid directive.
+# LOCALIZATION NOTE(XFrameOptionsDeny): %1$S is the header value, %2$S is frame URI and %3$S is the parent document URI. Do not translate "X-Frame-Options".
+XFrameOptionsDeny=The loading of “%2$S” in a frame is denied by “X-Frame-Options“ directive set to “%1$S“.
+
+# HTTPS-Only Mode
+# LOCALIZATION NOTE: %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
+HTTPSOnlyUpgradeRequest = Upgrading insecure request “%1$S” to use “%2$S”.
+# LOCALIZATION NOTE: %1$S is the URL of request.
+HTTPSOnlyNoUpgradeException = Not upgrading insecure request “%1$S” because it is exempt.
+# LOCALIZATION NOTE: %1$S is the URL of the failed request; %2$S is an error-code.
+HTTPSOnlyFailedRequest = Upgrading insecure request “%1$S” failed. (%2$S)
+# LOCALIZATION NOTE: %S is the URL of the failed request;
+HTTPSOnlyFailedDowngradeAgain = Upgrading insecure request “%S” failed. Downgrading to “http” again.
+# LOCALIZATION NOTE: Hints or indicates a new transaction for a URL is likely coming soon. We use
+# a speculative connection to start a TCP connection so that the resource is immediately ready
+# when the transaction is actually submitted. HTTPS-Only and HTTPS-First will upgrade such
+# speculative TCP connections from http to https.
+# %1$S is the URL of the upgraded speculative TCP connection; %2$S is the upgraded scheme.
+HTTPSOnlyUpgradeSpeculativeConnection = Upgrading insecure speculative TCP connection “%1$S” to use “%2$S”.
+
+# LOCALIZATION NOTE: %S is the URL of the blocked request;
+IframeSandboxBlockedDownload = Download of “%S” was blocked because the triggering iframe has the sandbox flag set.
+
+# LOCALIZATION NOTE: %S is the URL of the blocked request;
+SandboxBlockedCustomProtocols = Blocked navigation to custom protocol “%S” from a sandboxed context.
+
+# Sanitizer API
+# LOCALIZATION NOTE: Please do not localize "DocumentFragment". It's the name of an API.
+SanitizerRcvdNoInput = Received empty or no input. Returning an empty DocumentFragment.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/svg/svg.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/svg/svg.properties
new file mode 100644
index 0000000000..7012ec4d3c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/svg/svg.properties
@@ -0,0 +1,5 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+AttributeParseWarning=Unexpected value %2$S parsing %1$S attribute.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/viewSource.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/viewSource.properties
new file mode 100644
index 0000000000..93ed26b640
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/viewSource.properties
@@ -0,0 +1,16 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+goToLineTitle = Go to line
+goToLineText = Enter line number
+invalidInputTitle = Invalid input
+invalidInputText = The line number entered is invalid.
+outOfRangeTitle = Line not found
+outOfRangeText = The specified line was not found.
+viewSelectionSourceTitle = DOM Source of Selection
+
+context_goToLine_label = Go to Line…
+context_goToLine_accesskey = L
+context_wrapLongLines_label = Wrap Long Lines
+context_highlightSyntax_label = Syntax Highlighting
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/wizard.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/wizard.properties
new file mode 100644
index 0000000000..99cc332e7e
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/wizard.properties
@@ -0,0 +1,8 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+default-first-title=Welcome to the %S
+default-last-title=Completing the %S
+default-first-title-mac=Introduction
+default-last-title-mac=Conclusion
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/xslt/xslt.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/xslt/xslt.properties
new file mode 100644
index 0000000000..1b27c33577
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/xslt/xslt.properties
@@ -0,0 +1,39 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+1 = Parsing an XSLT stylesheet failed.
+2 = Parsing an XPath expression failed.
+3 =
+4 = XSLT transformation failed.
+5 = Invalid XSLT/XPath function.
+6 = XSLT Stylesheet (possibly) contains a recursion.
+7 = Attribute value illegal in XSLT 1.0.
+8 = An XPath expression was expected to return a NodeSet.
+9 = XSLT transformation was terminated by <xsl:message>.
+10 = A network error occurred loading an XSLT stylesheet:
+11 = An XSLT stylesheet does not have an XML mimetype:
+12 = An XSLT stylesheet directly or indirectly imports or includes itself:
+13 = An XPath function was called with the wrong number of arguments.
+14 = An unknown XPath extension function was called.
+15 = XPath parse failure: “)” expected:
+16 = XPath parse failure: invalid axis:
+17 = XPath parse failure: Name or Nodetype test expected:
+18 = XPath parse failure: “]” expected:
+19 = XPath parse failure: invalid variable name:
+20 = XPath parse failure: unexpected end of expression:
+21 = XPath parse failure: operator expected:
+22 = XPath parse failure: unclosed literal:
+23 = XPath parse failure: “:” unexpected:
+24 = XPath parse failure: “!“ unexpected, negation is not():
+25 = XPath parse failure: illegal character found:
+26 = XPath parse failure: binary operator expected:
+27 = An XSLT stylesheet load was blocked for security reasons.
+28 = Evaluating an invalid expression.
+29 = Unbalanced curly brace.
+30 = Creating an element with an invalid QName.
+31 = Variable binding shadows variable binding within the same template.
+32 = Call to the key function not allowed.
+
+LoadingError = Error loading stylesheet: %S
+TransformError = Error during XSLT transformation: %S
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/xul.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/xul.properties
new file mode 100644
index 0000000000..5637658237
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/xul.properties
@@ -0,0 +1,5 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+PINotInProlog=<?%1$S?> processing instruction does not have any effect outside the prologue any longer (see bug 360119).
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/lightning/lightning-toolbar.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/lightning/lightning-toolbar.dtd
new file mode 100644
index 0000000000..958040d102
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/lightning/lightning-toolbar.dtd
@@ -0,0 +1,51 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY lightning.toolbar.calendar.name "Calendar Toolbar">
+<!ENTITY lightning.toolbar.calendar.name.accesskey "C">
+<!ENTITY lightning.toolbar.task.name "Task Toolbar">
+<!ENTITY lightning.toolbar.task.name.accesskey "T">
+
+<!ENTITY lightning.toolbar.sync.label "Synchronize">
+<!ENTITY lightning.toolbar.sync.tooltip "Reload calendars and synchronize changes">
+<!ENTITY lightning.toolbar.delete.label "Delete">
+<!ENTITY lightning.toolbar.delete.tooltip "Delete selected events or tasks">
+<!ENTITY lightning.toolbar.edit.label "Edit">
+<!ENTITY lightning.toolbar.edit.tooltip "Edit selected event or task">
+<!ENTITY lightning.toolbar.gototoday.label "Go to Today">
+<!ENTITY lightning.toolbar.gototoday.tooltip "Go to Today">
+<!ENTITY lightning.toolbar.print.label "Print">
+<!ENTITY lightning.toolbar.print.tooltip "Print events or tasks">
+
+<!-- Mode Toolbar -->
+<!ENTITY lightning.toolbar.calendar.label "Calendar">
+<!ENTITY lightning.toolbar.calendar.tooltip "Switch to the calendar tab">
+<!ENTITY lightning.toolbar.calendar.accesskey "C">
+<!ENTITY lightning.toolbar.task.label "Tasks">
+<!ENTITY lightning.toolbar.task.tooltip "Switch to the tasks tab">
+<!ENTITY lightning.toolbar.task.accesskey "T">
+
+<!-- Toolbar write button -->
+<!ENTITY lightning.toolbar.newevent.label "Event">
+<!ENTITY lightning.toolbar.newevent.tooltip "Create a new event">
+<!ENTITY lightning.toolbar.newtask.label "Task">
+<!ENTITY lightning.toolbar.newtask.tooltip "Create a new task">
+
+<!-- Calendar and Task Mode Toolbar -->
+<!ENTITY lightning.toolbar.day.label "Day">
+<!ENTITY lightning.toolbar.day.accesskey "D">
+<!ENTITY lightning.toolbar.week.label "Week">
+<!ENTITY lightning.toolbar.week.accesskey "W">
+<!ENTITY lightning.toolbar.multiweek.label "Multiweek">
+<!ENTITY lightning.toolbar.multiweek.accesskey "u">
+<!ENTITY lightning.toolbar.month.label "Month">
+<!ENTITY lightning.toolbar.month.accesskey "M">
+<!-- LOCALIZATION NOTE: the same as appmenuButton.label and appmenuButton1.tooltip
+ from messenger.dtd -->
+<!ENTITY lightning.toolbar.appmenuButton.label "AppMenu">
+<!ENTITY lightning.toolbar.appmenuButton1.tooltip "Display the &brandShortName; Menu">
+<!ENTITY lightning.toolbar.calendarmenu.label "Calendar Pane">
+<!ENTITY lightning.toolbar.calendarmenu.accesskey "P">
+<!ENTITY lightning.toolbar.calendarpane.label "Show Calendar Pane">
+<!ENTITY lightning.toolbar.calendarpane.accesskey "P">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/lightning/lightning.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/lightning/lightning.dtd
new file mode 100644
index 0000000000..4d823302ae
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/lightning/lightning.dtd
@@ -0,0 +1,114 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- WARNING! This file contains UTF-8 encoded characters!
+ - If this ==> … <== doesn't look like an ellipsis (three dots in a row),
+ - your editor isn't using UTF-8 encoding and may munge up the document!
+ -->
+
+<!-- Tools menu -->
+<!ENTITY lightning.preferencesLabel "Calendar">
+
+<!-- New menu popup in File menu -->
+<!ENTITY lightning.menupopup.new.event.label "Event…">
+<!ENTITY lightning.menupopup.new.event.accesskey "E">
+<!ENTITY lightning.menupopup.new.task.label "Task…">
+<!ENTITY lightning.menupopup.new.task.accesskey "T">
+<!ENTITY lightning.menupopup.new.calendar.label "Calendar…">
+<!ENTITY lightning.menupopup.new.calendar.accesskey "n">
+
+<!-- Open menu popup in File menu -->
+<!ENTITY lightning.menupopup.open.calendar.label "Calendar File…">
+<!ENTITY lightning.menupopup.open.calendar.accesskey "C">
+
+<!-- View Menu -->
+<!ENTITY lightning.menu.view.calendar.label "Calendar">
+<!ENTITY lightning.menu.view.calendar.accesskey "n">
+<!ENTITY lightning.menu.view.tasks.label "Tasks">
+<!ENTITY lightning.menu.view.tasks.accesskey "k">
+
+<!-- Events and Tasks menu -->
+<!ENTITY lightning.menu.eventtask.label "Events and Tasks">
+<!ENTITY lightning.menu.eventtask.accesskey "n">
+
+<!-- properties dialog, calendar creation wizard -->
+<!-- LOCALIZATON NOTE(lightning.calendarproperties.email.label,
+ lightning.calendarproperties.forceEmailScheduling.label)
+ These strings are used in the calendar wizard and the calendar properties dialog, but are only
+ displayed when setting/using a caldav calendar -->
+<!ENTITY lightning.calendarproperties.email.label "Email:">
+<!ENTITY lightning.calendarproperties.forceEmailScheduling.label "Prefer client-side email scheduling">
+<!-- LOCALIZATON NOTE(lightning.calendarproperties.forceEmailScheduling.tooltiptext1,
+ lightning.calendarproperties.forceEmailScheduling.tooltiptext2)
+ - tooltiptext1 is used in the calendar wizard when setting a new caldav calendar
+ - tooltiptext2 is used in the calendar properties dialog for caldav calendars -->
+<!ENTITY lightning.calendarproperties.forceEmailScheduling.tooltiptext1 "For now, you can only enable this after setting up this calendar in its property dialog if the calendar server takes care of scheduling.">
+<!ENTITY lightning.calendarproperties.forceEmailScheduling.tooltiptext2 "This option is only available if the calendar server handles scheduling. Enabling will allow to fall back to the standard email based scheduling instead of leaving it to the server.">
+
+<!-- The notifications settings in the properties dialog -->
+<!ENTITY lightning.calendarproperties.notifications.label "Notifications">
+<!ENTITY lightning.calendarproperties.globalNotifications.label "Global Notification Preferences…">
+
+<!-- iMIP Bar (meeting support) -->
+<!ENTITY lightning.imipbar.btnAccept.label "Accept">
+<!ENTITY lightning.imipbar.btnAccept2.tooltiptext "Accept event invitation">
+<!ENTITY lightning.imipbar.btnAcceptRecurrences.label "Accept all">
+<!ENTITY lightning.imipbar.btnAcceptRecurrences2.tooltiptext "Accept event invitation for all occurrences of the event">
+<!ENTITY lightning.imipbar.btnAdd.label "Add">
+<!ENTITY lightning.imipbar.btnAdd.tooltiptext "Add the event to the calendar">
+<!ENTITY lightning.imipbar.btnDecline.label "Decline">
+<!ENTITY lightning.imipbar.btnDecline2.tooltiptext "Decline event invitation">
+<!ENTITY lightning.imipbar.btnDeclineRecurrences.label "Decline all">
+<!ENTITY lightning.imipbar.btnDeclineRecurrences2.tooltiptext "Decline event invitation for all occurrences of the event">
+<!ENTITY lightning.imipbar.btnDeclineCounter.label "Decline">
+<!ENTITY lightning.imipbar.btnDeclineCounter.tooltiptext "Decline the counter proposal">
+<!ENTITY lightning.imipbar.btnDelete.label "Delete">
+<!ENTITY lightning.imipbar.btnDelete.tooltiptext "Delete from calendar">
+<!ENTITY lightning.imipbar.btnDetails.label "Details…">
+<!ENTITY lightning.imipbar.btnDetails.tooltiptext "Show event details">
+<!ENTITY lightning.imipbar.btnDoNotShowImipBar.label "Don’t show me these messages">
+<!ENTITY lightning.imipbar.btnGoToCalendar.label "Calendar">
+<!ENTITY lightning.imipbar.btnGoToCalendar.tooltiptext "Go to the calendar tab">
+<!ENTITY lightning.imipbar.btnMore.label "More">
+<!ENTITY lightning.imipbar.btnMore.tooltiptext "Click to show more options">
+<!ENTITY lightning.imipbar.btnReconfirm2.label "Reconfirm">
+<!ENTITY lightning.imipbar.btnReconfirm.tooltiptext "Sends a reconfirmation to the organizer">
+<!ENTITY lightning.imipbar.btnReschedule.label "Reschedule">
+<!ENTITY lightning.imipbar.btnReschedule.tooltiptext "Reschedule the event">
+<!ENTITY lightning.imipbar.btnSaveCopy.label "Save a copy">
+<!ENTITY lightning.imipbar.btnSaveCopy.tooltiptext "Save a copy of the event to the calendar independently of replying to the organizer. The list of attendees will be cleared.">
+<!ENTITY lightning.imipbar.btnTentative.label "Tentative">
+<!ENTITY lightning.imipbar.btnTentative2.tooltiptext "Accept event invitation tentatively">
+<!ENTITY lightning.imipbar.btnTentativeRecurrences.label "Tentative all">
+<!ENTITY lightning.imipbar.btnTentativeRecurrences2.tooltiptext "Accept event invitation tentatively for all occurrences of the event">
+<!ENTITY lightning.imipbar.btnUpdate.label "Update">
+<!ENTITY lightning.imipbar.btnUpdate.tooltiptext "Update event in calendar">
+<!ENTITY lightning.imipbar.description "This message contains an invitation to an event.">
+
+<!ENTITY lightning.imipbar.btnSend.label "Send a response now">
+<!ENTITY lightning.imipbar.btnSend.tooltiptext "Send a response to the organizer">
+<!ENTITY lightning.imipbar.btnSendSeries.tooltiptext "Send a response for the entire series to the organizer">
+<!ENTITY lightning.imipbar.btnDontSend.label "Do not send a response">
+<!ENTITY lightning.imipbar.btnDontSend.tooltiptext "Change your participation status without sending a response to the organizer">
+<!ENTITY lightning.imipbar.btnDontSendSeries.tooltiptext "Change your participation status for the series without sending a response to the organizer">
+
+<!-- Lightning specific keybindings -->
+<!ENTITY lightning.keys.event.showCalendar.key "C">
+<!ENTITY lightning.keys.event.showTasks.key "D">
+<!ENTITY lightning.keys.event.new "I">
+<!ENTITY lightning.keys.todo.new "D">
+
+<!-- Account Central page -->
+<!ENTITY lightning.acctCentral.newCalendar.label "Create a new calendar">
+
+<!-- today-pane-specific -->
+<!ENTITY todaypane.showMinimonth.label "Show Mini-Month">
+<!ENTITY todaypane.showMinimonth.accesskey "M">
+<!ENTITY todaypane.showMiniday.label "Show Mini-Day">
+<!ENTITY todaypane.showMiniday.accesskey "d">
+<!ENTITY todaypane.showNone.label "Show None">
+<!ENTITY todaypane.showNone.accesskey "N">
+<!ENTITY todaypane.showTodayPane.label "Show Today Pane">
+<!ENTITY todaypane.showTodayPane.accesskey "o">
+<!ENTITY todaypane.statusButton.label "Today Pane">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/lightning/lightning.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/lightning/lightning.properties
new file mode 100644
index 0000000000..e80bef5865
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/lightning/lightning.properties
@@ -0,0 +1,201 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# addon description:
+extensions.{e2fda1a4-762b-4020-b5ad-a41df1933103}.name=Lightning
+extensions.{e2fda1a4-762b-4020-b5ad-a41df1933103}.description=Integrated Calendaring & Scheduling for your Email client
+extensions.{e2fda1a4-762b-4020-b5ad-a41df1933103}.creator=Mozilla Calendar Project
+
+# Lightning branding
+brandShortName=Lightning
+
+# Task mode title
+taskModeApplicationTitle=Tasks
+
+# Tab titles
+tabTitleCalendar=Calendar
+tabTitleTasks=Tasks
+
+# Html event display in message
+imipHtml.header=Event Invitation
+imipHtml.summary=Title:
+imipHtml.location=Location:
+imipHtml.when=When:
+imipHtml.organizer=Organizer:
+imipHtml.description=Description:
+# LOCALIZATION_NOTE(imipHtml.attachments): This is a label for one or more (additional) links to
+# documents or websites attached to this event.
+imipHtml.attachments=Attachments:
+imipHtml.comment=Comment:
+imipHtml.attendees=Attendees:
+# LOCALIZATION_NOTE(imipHtml.url): This is a label for a reference to an (alternate) online
+# representation of the event (either directly human readable or not).
+imipHtml.url=Related Link:
+imipHtml.canceledOccurrences=Cancelled Occurrences:
+imipHtml.modifiedOccurrences=Modified Occurrences:
+imipHtml.newLocation=New Location: %1$S
+# LOCALIZATION_NOTE(imipHtml.attendeeDelegatedFrom): this is appended behind an attendee name in the
+# email invitation preview - don't add leading/trailing whitespaces here
+# %1$S - a single delegator or a comma separated list of delegators
+imipHtml.attendeeDelegatedFrom=(delegated from %1$S)
+# LOCALIZATION_NOTE(imipHtml.attendeeDelegatedTo): this is appended behind an attendee name in the
+# email invitation preview - don't add leading/trailing whitespaces here
+# %1$S - a single delegatee or a comma separated list of delegatees
+imipHtml.attendeeDelegatedTo=(delegated to %1$S)
+
+# LOCALIZATION_NOTE(imipHtml.attendee.combined): tooltip for itip icon in email invitation preview.
+# Given an attendee loungeexample.org of type room is a mandatory participant and has accepted the
+# invitation, the tooltip would be:
+# lounge@example.org (room) is a required participant. lounge@example.org has confirmed attendance.
+# %1$S - value of imipHtml.attendeeRole2.*
+# %2$S - value of imipHtml.attendeePartStat2.*
+imipHtml.attendee.combined=%1$S %2$S
+
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.CHAIR): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+imipHtml.attendeeRole2.CHAIR=%1$S chairs the event.
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.NON-PARTICIPANT): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+imipHtml.attendeeRole2.NON-PARTICIPANT=%1$S is a non-participant.
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.OPT-PARTICIPANT): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+imipHtml.attendeeRole2.OPT-PARTICIPANT=%1$S is an optional participant.
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.REQ-PARTICIPANT): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+imipHtml.attendeeRole2.REQ-PARTICIPANT=%1$S is a required participant.
+
+# LOCALIZATION_NOTE(imipHtml.attendeePartStat2.ACCEPTED): used to compose
+# imipHtml.attendee.combined
+# %1$S - common name or email address of the attendee
+imipHtml.attendeePartStat2.ACCEPTED=%1$S has confirmed attendance.
+# LOCALIZATION_NOTE(imipHtml.attendeePartStat2.DECLINED): used to compose
+# imipHtml.attendee.combined
+# %1$S - common name or email address of the attendee
+imipHtml.attendeePartStat2.DECLINED=%1$S has declined attendance.
+# LOCALIZATION_NOTE(imipHtml.attendeePartStat2.DELEGATED): used to compose
+# imipHtml.attendee.combined
+# %1$S - common name or email address of the attendee
+# %2$S - single delegatee or comma separated list of delegatees
+# delegation is different from invitation forwarding - in case of the former the original attendee
+# is replaced, while on the latter the receiver may take part additionally
+imipHtml.attendeePartStat2.DELEGATED=%1$S has delegated attendance to %2$S.
+# LOCALIZATION_NOTE(imipHtml.attendeePartStat2.NEEDS-ACTION): used to compose
+# imipHtml.attendee.combined
+# %1$S - common name or email address of the attendee
+imipHtml.attendeePartStat2.NEEDS-ACTION=%1$S still needs to reply.
+# LOCALIZATION_NOTE(imipHtml.attendeePartStat2.TENTATIVE): used to compose
+# imipHtml.attendee.combined
+# %1$S - common name or email address of the attendee
+imipHtml.attendeePartStat2.TENTATIVE=%1$S has confirmed attendance tentatively.
+
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.INDIVIDUAL): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name <email address> representing an individual attendee
+imipHtml.attendeeUserType2.INDIVIDUAL=%1$S
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.GROUP): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name <email address> representing a group (e.g. a distribution list)
+imipHtml.attendeeUserType2.GROUP=%1$S (group)
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.RESOURCE): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name <email address> representing a resource (e.g. projector)
+imipHtml.attendeeUserType2.RESOURCE=%1$S (resource)
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.ROOM): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name <email address> representing a room
+imipHtml.attendeeUserType2.ROOM=%1$S (room)
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.UNKNOWN): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name <email address> representing an attendee of unknown type
+imipHtml.attendeeUserType2.UNKNOWN=%1$S
+
+imipAddedItemToCal2=The event has been added to your calendar.
+imipCanceledItem2=The event has been deleted from your calendar.
+imipUpdatedItem2=The event has been updated.
+imipBarCancelText=This message contains an event cancellation.
+imipBarCounterErrorText=This message contains a counterproposal to an invitation that cannot be processed.
+imipBarCounterPreviousVersionText=This message contains a counterproposal to a previous version of an invitation.
+imipBarCounterText=This message contains a counterproposal to an invitation.
+imipBarDisallowedCounterText=This message contains a counterproposal although you disallowed countering for this event.
+imipBarDeclineCounterText=This message contains a reply to your counterproposal.
+imipBarRefreshText=This message asks for an event update.
+imipBarPublishText=This message contains an event.
+imipBarRequestText=This message contains an invitation to an event.
+imipBarSentText=This message contains a sent event.
+imipBarSentButRemovedText=This message contains a sent out event that is not in your calendar anymore.
+imipBarUpdateText=This message contains an update to an existing event.
+imipBarUpdateMultipleText=This message contains updates to multiple existing events.
+imipBarUpdateSeriesText=This message contains an update to an existing series of events.
+imipBarAlreadyProcessedText=This message contains an event that has already been processed.
+imipBarProcessedNeedsAction=This message contains an event that you have not yet responded to.
+imipBarProcessedMultipleNeedsAction=This message contains multiple events that you have not yet responded to.
+imipBarProcessedSeriesNeedsAction=This message contains an event series that you have not yet responded to.
+imipBarReplyText=This message contains a reply to an invitation.
+imipBarReplyToNotExistingItem=This message contains a reply referring to an event that is not in your calendar.
+# LOCALIZATION_NOTE(imipBarReplyToRecentlyRemovedItem):
+# %1$S - datetime of deletion
+imipBarReplyToRecentlyRemovedItem=This message contains a reply referring to an event that was removed from your calendar at %1$S.
+imipBarUnsupportedText=This message contains an event that this version of Lightning cannot process.
+imipBarUnsupportedText2=This message contains an event that this version of %1$S cannot process.
+imipBarProcessingFailed=Processing message failed. Status: %1$S.
+imipBarCalendarDeactivated=This message contains event information. Enable a calendar to handle it.
+imipBarNotWritable=No writable calendars are configured for invitations, please check the calendar properties.
+imipSendMail.title=E-Mail Notification
+imipSendMail.text=Would you like to send out notification E-Mail now?
+imipNoIdentity=None
+imipNoCalendarAvailable=There are no writable calendars available.
+
+itipReplySubject2=Invitation Reply: %1$S
+itipReplyBodyAccept=%1$S has accepted your event invitation.
+itipReplyBodyDecline=%1$S has declined your event invitation.
+itipReplySubjectAccept2=Accepted: %1$S
+itipReplySubjectDecline2=Invitation Declined: %1$S
+itipReplySubjectTentative2=Tentative: %1$S
+itipRequestSubject2=Invitation: %1$S
+itipRequestUpdatedSubject2=Updated: %1$S
+itipRequestBody=%1$S has invited you to %2$S
+itipCancelSubject2=Cancelled: %1$S
+itipCancelBody=%1$S has cancelled this event: %2$S
+itipCounterBody=%1$S has made a counterproposal for “%2$S”:
+itipDeclineCounterBody=%1$S has declined your counterproposal for “%2$S”.
+itipDeclineCounterSubject=Counterproposal Declined: %1$S
+
+confirmProcessInvitation=You have recently deleted this item, are you sure you want to process this invitation?
+confirmProcessInvitationTitle=Process Invitation?
+
+invitationsLink.label=Invitations: %1$S
+
+# LOCALIZATION_NOTE(binaryComponentKnown): This is shown when Lightning is
+# missing the binary component and knows how to calculate the expected version
+# number. To test, remove the binary component from the components/
+# subdirectory and start Lightning, or force install into a different
+# Thunderbird version. In the last part of the sentence it should be made clear
+# that the user can install e.g. 3.7, 3.7.1 or anything other 3.7.x version
+# %1$S - The Lightning brand name, from the brandShortName string above.
+# %2$S - The current Lightning version
+# %3$S - The expected Lightning version
+binaryComponentKnown=The binary component required for %1$S could not be loaded, likely because the wrong version combination is being used. You currently have %1$S %2$S installed, but should be using a version from the %3$S series.
+
+# LOCALIZATION_NOTE(binaryComponentUnknown): This is shown when Lightning is
+# missing the binary component but can't calculate the expected version. This
+# happens in the rare case that Lightning is installed into something other
+# than Thunderbird or Seamonkey. You may link to a different page if you can
+# commit to keeping it up to date, I'd recommend staying with the English page.
+# %1$S - The Lightning brand name, from the brandShortName string above.
+# %2$S - The application brand name, e.g. Postbox
+# %3$S - The application version
+# %3$S - The current Lightning version
+binaryComponentUnknown=The binary component required for %1$S could not be loaded, likely because the wrong version combination is being used. You are using %2$S %3$S together with %1$S %4$S. Please check https://developer.mozilla.org/en/Calendar/Calendar_Versions for details.
+
+# LOCALIZATION_NOTE(binaryComponentTitle): The title for the dialog that
+# notifies about a version mismatch.
+# %1$S - The Lightning brand name, from the brandShortName string above.
+binaryComponentTitle=Mismatching %1$S Version
+
+# LOCALIZATION NOTE(noIdentitySelectedNotification):
+noIdentitySelectedNotification=If you want to use this calendar to store invitations to or from other people you should assign an email identity below.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-mapi/mapi.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-mapi/mapi.properties
new file mode 100644
index 0000000000..17a8a731e6
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-mapi/mapi.properties
@@ -0,0 +1,35 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Mail Integration Dialog
+dialogTitle=%S
+dialogText=Do you want to use %S as the default mail application?
+newsDialogText=Do you want to use %S as the default news application?
+feedDialogText=Do you want to use %S as the default feed aggregator?
+checkboxText=Do not display this dialog again
+setDefaultMail=%S is not currently set as your default mail application. Would you like to make it your default mail application?
+setDefaultNews=%S is not currently set as your default news application. Would you like to make it your default news application?
+setDefaultFeed=%S is not currently set as your default feed aggregator. Would you like to make it your default feed aggregator?
+alreadyDefaultMail=%S is already set as your default mail application.
+alreadyDefaultNews=%S is already set as your default news application.
+alreadyDefaultFeed=%S is already set as your default feed aggregator.
+
+# MAPI Messages
+loginText=Please enter your password for %S:
+loginTextwithName=Please enter your username and password
+loginTitle=%S
+PasswordTitle=%S
+
+# MAPI Error Messages
+errorMessage=%S could not be set as the default mail application because a registry key could not be updated. Verify with your system administrator that you have write access to your system registry, and then try again.
+errorMessageNews=%S could not be set as the default news application because a registry key could not be updated. Verify with your system administrator that you have write access to your system registry, and then try again.
+errorMessageTitle=%S
+
+# MAPI Security Messages
+mapiBlindSendWarning=Another application is attempting to send mail using your user profile. Are you sure you want to send mail?
+mapiBlindSendDontShowAgain=Warn me whenever other applications try to send mail from me
+
+#Default Mail Display String
+# localization note, %S is the vendor name
+defaultMailDisplayTitle=%S
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-newsblog/am-newsblog.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-newsblog/am-newsblog.dtd
new file mode 100644
index 0000000000..d7a6851bef
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-newsblog/am-newsblog.dtd
@@ -0,0 +1,14 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY biffAll.label "Enable updates for all feeds">
+<!ENTITY biffAll.accesskey "E">
+
+<!ENTITY newFeedSettings.label "Default Settings for New Feeds">
+
+<!ENTITY manageSubscriptions.label "Manage Subscriptions…">
+<!ENTITY manageSubscriptions.accesskey "M">
+
+<!ENTITY feedWindowTitle.label "Feed Account Wizard">
+<!ENTITY feeds.accountName "Blogs &amp; News Feeds">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-newsblog/feed-subscriptions.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-newsblog/feed-subscriptions.dtd
new file mode 100644
index 0000000000..0df7f953aa
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-newsblog/feed-subscriptions.dtd
@@ -0,0 +1,55 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- Subscription Dialog -->
+<!ENTITY feedSubscriptions.label "Feed Subscriptions">
+<!ENTITY learnMore.label "Learn more about Feeds">
+
+<!ENTITY feedTitle.label "Title:">
+<!ENTITY feedTitle.accesskey "T">
+
+<!ENTITY feedLocation.label "Feed URL:">
+<!ENTITY feedLocation.accesskey "F">
+<!ENTITY feedLocation2.placeholder "Enter a valid feed url">
+<!ENTITY locationValidate.label "Validate">
+<!ENTITY validateText.label "Check validation and retrieve a valid url.">
+
+<!ENTITY feedFolder.label "Store Articles in:">
+<!ENTITY feedFolder.accesskey "S">
+
+<!-- Account Settings and Subscription Dialog -->
+<!ENTITY biffStart.label "Check for new articles every ">
+<!ENTITY biffStart.accesskey "k">
+<!ENTITY biffMinutes.label "minutes">
+<!ENTITY biffMinutes.accesskey "n">
+<!ENTITY biffDays.label "days">
+<!ENTITY biffDays.accesskey "d">
+<!ENTITY recommendedUnits.label "Publisher recommends:">
+
+<!ENTITY quickMode.label "Show the article summary instead of loading the web page">
+<!ENTITY quickMode.accesskey "h">
+
+<!ENTITY autotagEnable.label "Automatically create tags from feed &lt;category&gt; names">
+<!ENTITY autotagEnable.accesskey "o">
+<!ENTITY autotagUsePrefix.label "Prefix tags with:">
+<!ENTITY autotagUsePrefix.accesskey "P">
+<!ENTITY autoTagPrefix.placeholder "Enter a tag prefix">
+
+<!-- Subscription Dialog -->
+<!ENTITY button.addFeed.label "Add">
+<!ENTITY button.addFeed.accesskey "A">
+<!ENTITY button.verifyFeed.label "Verify">
+<!ENTITY button.verifyFeed.accesskey "V">
+<!ENTITY button.updateFeed.label "Update">
+<!ENTITY button.updateFeed.accesskey "U">
+<!ENTITY button.removeFeed.label "Remove">
+<!ENTITY button.removeFeed.accesskey "R">
+<!ENTITY button.importOPML.label "Import">
+<!ENTITY button.importOPML.accesskey "I">
+<!ENTITY button.exportOPML.label "Export">
+<!ENTITY button.exportOPML.accesskey "X">
+<!ENTITY button.exportOPML.tooltip "Export Feeds with folder structure; ctrl click or ctrl enter to export Feeds as a list">
+
+<!ENTITY cmd.close.commandKey "w">
+<!ENTITY button.close.label "Close">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-newsblog/newsblog.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-newsblog/newsblog.properties
new file mode 100644
index 0000000000..14b129e889
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-newsblog/newsblog.properties
@@ -0,0 +1,93 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+subscribe-validating-feed=Verifying the feed…
+subscribe-cancelSubscription=Are you sure you wish to cancel subscribing to the current feed?
+subscribe-cancelSubscriptionTitle=Subscribing to a Feed…
+subscribe-feedAlreadySubscribed=You already have a subscription for this feed.
+subscribe-errorOpeningFile=Could not open the file.
+subscribe-feedAdded=Feed added.
+subscribe-feedUpdated=Feed updated.
+subscribe-feedMoved=Feed subscription moved.
+subscribe-feedCopied=Feed subscription copied.
+subscribe-feedRemoved=Feed unsubscribed.
+subscribe-feedNotValid=The Feed URL is not a valid feed.
+subscribe-feedVerified=The Feed URL has been verified.
+subscribe-networkError=The Feed URL could not be found. Please check the name and try again.
+subscribe-noAuthError=The Feed URL is not authorized.
+subscribe-loading=Loading, please wait…
+
+subscribe-OPMLImportTitle=Select OPML file to import
+## LOCALIZATION NOTE(subscribe-OPMLExportTitleList):
+## %S is the name of the feed account folder name.
+subscribe-OPMLExportTitleList=Export %S as an OPML file - Feeds list
+## LOCALIZATION NOTE(subscribe-OPMLExportTitleStruct):
+## %S is the name of the feed account folder name.
+subscribe-OPMLExportTitleStruct=Export %S as an OPML file - Feeds with folder structure
+## LOCALIZATION NOTE(subscribe-OPMLExportFileDialogTitle):
+## %1$S is the brandShortName, %2$S is the name of the feed account folder name.
+subscribe-OPMLExportFileDialogTitle=%1$S OPML Export - %2$S
+## LOCALIZATION NOTE(subscribe-OPMLExportDefaultFileName):
+## %1$S is the brandShortName (Thunderbird for example), %2$S is the account name.
+## The default extension (.opml) is added here as it is not automatically appended in the file picker on MacOS.
+subscribe-OPMLExportDefaultFileName=My%1$SFeeds-%2$S.opml
+## LOCALIZATION NOTE(subscribe-OPMLImportInvalidFile): %S is the name of the OPML file the user tried to import.
+subscribe-OPMLImportInvalidFile=The file %S does not seem to be a valid OPML file.
+## LOCALIZATION NOTE(subscribe-OPMLImportFeedCount): Semi-colon list of plural forms.
+## See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+## #1 is the count of new imported entries.
+subscribe-OPMLImportFeedCount=Imported #1 new feed.;Imported #1 new feeds.
+## LOCALIZATION NOTE(subscribe-OPMLImportUniqueFeeds): Semi-colon list of plural forms.
+## #1 is the count of new imported entries
+subscribe-OPMLImportUniqueFeeds=Imported #1 new feed to which you aren’t already subscribed;Imported #1 new feeds to which you aren’t already subscribed
+## LOCALIZATION NOTE(subscribe-OPMLImportFoundFeeds):
+## #1 is total number of elements found in the file
+subscribe-OPMLImportFoundFeeds=(out of #1 entry found);(out of #1 total entries found)
+## LOCALIZATION NOTE(subscribe-OPMLImportStatus):
+## This is the concatenation of the two strings defined above to compose 1 sentence.
+## %1$S = subscribe-OPMLImportUniqueFeeds
+## %2$S = subscribe-OPMLImportFoundFeeds
+subscribe-OPMLImportStatus=%1$S %2$S.
+
+subscribe-OPMLExportOPMLFilesFilterText=OPML Files
+## LOCALIZATION NOTE(subscribe-OPMLExportDone): %S is the export file name.
+subscribe-OPMLExportDone=Feeds in this account have been exported to %S.
+
+subscribe-confirmFeedDeletionTitle=Remove Feed
+## LOCALIZATION NOTE(subscribe-confirmFeedDeletion): %S is the name of the feed the user wants to unsubscribe from.
+subscribe-confirmFeedDeletion=Are you sure you want to unsubscribe from the feed: \n %S?
+
+## LOCALIZATION NOTE(subscribe-gettingFeedItems):
+## - The first %S is the number of articles processed so far;
+## - The second %S is the total number of items
+subscribe-gettingFeedItems=Downloading feed articles (%S of %S)…
+
+newsblog-noNewArticlesForFeed=There are no new articles for this feed.
+## LOCALIZATION NOTE(newsblog-networkError): %S is the feed URL
+newsblog-networkError=%S could not be found. Please check the name and try again.
+## LOCALIZATION NOTE(newsblog-feedNotValid): %S is the feed URL
+newsblog-feedNotValid=%S is not a valid feed.
+## LOCALIZATION NOTE(newsblog-badCertError): %S is the feed URL host
+newsblog-badCertError=%S uses an invalid security certificate.
+## LOCALIZATION NOTE(newsblog-noAuthError): %S is the feed URL
+newsblog-noAuthError=%S is not authorized.
+newsblog-getNewMsgsCheck=Checking feeds for new items…
+
+## LOCALIZATION NOTE(feeds-accountname): This string should be the same as feeds.accountName in am-newsblog.dtd
+feeds-accountname=Blogs & News Feeds
+
+## LOCALIZATION NOTE(externalAttachmentMsg): Content in the MIME part for external link attachments.
+externalAttachmentMsg=This MIME attachment is stored separately from the message.
+
+## Import wizard.
+ImportFeedsCreateNewListItem=* New Account *
+ImportFeedsNewAccount=Create and import into a new Feeds account
+ImportFeedsExistingAccount=Import into an existing Feeds account
+## LOCALIZATION NOTE(ImportFeedsDone):
+## - The first %S is the import file name;
+## - The second %S is the value of either ImportFeedsNew or ImportFeedsExisting;
+## - The third %S is the feed account name.
+ImportFeedsNew=new
+ImportFeedsExisting=existing
+ImportFeedsDone=The feed subscriptions import from file %1$S into %2$S account ‘%3$S’ has finished.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-region/region.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-region/region.properties
new file mode 100644
index 0000000000..c9c68838bb
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-region/region.properties
@@ -0,0 +1,29 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# To make mapit buttons to disappear in the addressbook, specify empty string. For example:
+# mail.addr_book.mapit_url.format=
+# The mail.addr_book.mapit_url.format should start with the URL of the mapping
+# service and then the query part with placeholders to be subsituted from values
+# from the addressbook contact's address.
+# Available placeholders are:
+# @A1 == address, part 1
+# @A2 == address, part 2
+# @CI == city
+# @ST == state
+# @ZI == zip code
+# @CO == country
+# Default map service:
+mail.addr_book.mapit_url.format=https://maps.google.com/maps?q=@A1%20@A2%20@CI%20@ST%20@ZI%20@CO
+# List of available map services (up to 5 can be defined here):
+mail.addr_book.mapit_url.1.name=Google Maps
+mail.addr_book.mapit_url.1.format=https://maps.google.com/maps?q=@A1%20@A2%20@CI%20@ST%20@ZI%20@CO
+mail.addr_book.mapit_url.2.name=OpenStreetMap
+mail.addr_book.mapit_url.2.format=https://nominatim.openstreetmap.org/search.php?polygon=1&q=@A1%2C@A2%2C@CI%2C@ST%2C@ZI%2C@CO
+
+mailnews.messageid_browser.url=https://groups.google.com/search?as_umsgid=%mid
+
+# Recognize non-standard versions of "Re:" in subjects from localized versions of MS Outlook et al.
+# Specify a comma-separated list without spaces. For example: mailnews.localizedRe=AW,SV
+mailnews.localizedRe=
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/certFetchingStatus.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/certFetchingStatus.dtd
new file mode 100644
index 0000000000..d9c1118498
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/certFetchingStatus.dtd
@@ -0,0 +1,9 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE shown while obtaining certificates from a directory -->
+
+<!ENTITY title.label "Downloading Certificates">
+<!ENTITY info.message "Searching the directory for recipients’ certificates. This may take a few minutes.">
+<!ENTITY stop.label "Stop Searching">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/msgCompSMIMEOverlay.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/msgCompSMIMEOverlay.dtd
new file mode 100644
index 0000000000..020a713182
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/msgCompSMIMEOverlay.dtd
@@ -0,0 +1,16 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE msgCompSMIMEOverlay.dtd UI for s/mime hooks in message composition -->
+
+<!-- not yet used
+<!ENTITY menu_securityEncryptOptional.label "Allow Encryption">
+<!ENTITY menu_securityEncryptOptional.accesskey "w">
+-->
+
+<!ENTITY menu_techPGP.label "OpenPGP">
+<!ENTITY menu_techPGP.accesskey "O">
+<!ENTITY menu_techSMIME.label "S/MIME">
+<!ENTITY menu_techSMIME.accesskey "S">
+
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/msgCompSecurityInfo.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/msgCompSecurityInfo.dtd
new file mode 100644
index 0000000000..d8dbe6df27
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/msgCompSecurityInfo.dtd
@@ -0,0 +1,18 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE msgCompSecurityInfo.dtd UI for viewing security status when composing a message -->
+
+<!ENTITY title.label "Message Security">
+<!ENTITY subject.plaintextWarning "Please note: Subject lines of email messages are never encrypted.">
+<!ENTITY status.heading "The contents of your message will be sent as follows:">
+<!ENTITY status.signed "Digitally signed:">
+<!ENTITY status.encrypted "Encrypted:">
+<!ENTITY status.certificates "Certificates:">
+<!ENTITY view.label "View">
+<!ENTITY view.accesskey "V">
+<!ENTITY tree.recipient "Recipient">
+<!ENTITY tree.status "Status">
+<!ENTITY tree.issuedDate "Issued">
+<!ENTITY tree.expiresDate "Expires">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/msgCompSecurityInfo.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/msgCompSecurityInfo.properties
new file mode 100644
index 0000000000..bf8ca06592
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/msgCompSecurityInfo.properties
@@ -0,0 +1,13 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+StatusNotFound=Not Found
+StatusValid=Valid
+StatusExpired=Expired
+StatusUntrusted=Not Trusted
+StatusRevoked=Revoked
+StatusInvalid=Invalid
+StatusYes=Yes
+StatusNo=No
+StatusNotPossible=Not possible
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/msgReadSMIMEOverlay.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/msgReadSMIMEOverlay.properties
new file mode 100644
index 0000000000..a3a5d62f7a
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/msgReadSMIMEOverlay.properties
@@ -0,0 +1,11 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+ImapOnDemand=The displayed message has been digitally signed, but not all its attachments have been downloaded yet. Therefore, the signature cannot be validated. Click OK to download the complete message and validate the signature.
+#
+#NOTE To translator, anything between %..% and <..> should not be translated.
+# the former will be replaced by java script, and the latter is HTML formatting.
+#
+CantDecryptTitle=%brand% cannot decrypt this message
+CantDecryptBody=The sender encrypted this message to you using one of your digital certificates, however %brand% was not able to find this certificate and corresponding private key. <br> Possible solutions: <br><ul><li>If you have a smartcard, please insert it now. <li>If you are using a new machine, or if you are using a new %brand% profile, you will need to restore your certificate and private key from a backup. Certificate backups usually end in “.p12”.</ul>
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/msgReadSecurityInfo.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/msgReadSecurityInfo.dtd
new file mode 100644
index 0000000000..8ce7ec95f1
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/msgReadSecurityInfo.dtd
@@ -0,0 +1,17 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE msgReadSecurityInfo.dtd UI for viewing security status when reading a received message -->
+
+<!ENTITY status.label "Message Security">
+<!ENTITY signatureCert.label "View Signature Certificate">
+<!ENTITY encryptionCert.label "View Encryption Certificate">
+
+<!ENTITY signer.name "Signed by:">
+<!ENTITY recipient.name "Encrypted for:">
+<!ENTITY email.address "Email address:">
+<!ENTITY issuer.name "Certificate issued by:">
+
+<!-- LOCALIZATION NOTE(SMIME.label): This a name for a technical standard. You should not translate it, but if applicable, you may write it using localized characters. -->
+<!ENTITY SMIME.label "S/MIME">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/msgSecurityInfo.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/msgSecurityInfo.properties
new file mode 100644
index 0000000000..641844d803
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger-smime/msgSecurityInfo.properties
@@ -0,0 +1,36 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+## Signature Information strings
+SINoneLabel=Message Has No Digital Signature
+SINone=This message does not include the sender’s digital signature. The absence of a digital signature means that the message could have been sent by someone pretending to have this email address. It is also possible that the message has been altered while in transit over the network. However, it is unlikely that either event has occurred.
+SIValidLabel=Message Is Signed
+SIValid=This message includes a valid digital signature. The message has not been altered since it was sent.
+SIInvalidLabel=Digital Signature Is Not Valid
+SIInvalidHeader=This message includes a digital signature, but the signature is invalid.
+SIContentAltered=The signature does not match the message content correctly. The message appears to have been altered after the sender signed it. You should not trust the validity of this message until you verify its contents with the sender.
+SIExpired=The certificate used to sign the message appears to have expired. Make sure your computer’s clock is set correctly.
+SIRevoked=The certificate used to sign the message has been revoked. You should not trust the validity of this message until you verify its contents with the sender.
+SINotYetValid=The certificate used to sign the message appears not to be valid yet. Make sure your computer’s clock is set correctly.
+SIUnknownCA=The certificate used to sign the message was issued by an unknown certificate authority.
+SIUntrustedCA=The certificate used to sign the message was issued by a certificate authority that you do not trust for issuing this kind of certificate.
+SIExpiredCA=The certificate used to sign the message was issued by a certificate authority whose own certificate has expired. Make sure your computer’s clock is set correctly.
+SIRevokedCA=The certificate used to sign the message was issued by a certificate authority whose own certificate has been revoked. You should not trust the validity of this message until you verify its contents with the sender.
+SINotYetValidCA=The certificate used to sign the message was issued by a certificate authority whose own certificate is not yet valid. Make sure your computer’s clock is set correctly.
+SIInvalidCipher=The message was signed using an encryption strength that this version of your software does not support.
+SIClueless=There are unknown problems with this digital signature. You should not trust the validity of this message until you verify its contents with the sender.
+SIPartiallyValidLabel=Message is signed
+SIPartiallyValidHeader=Although the digital signature is valid, it is unknown whether sender and signer are the same person.
+SIHeaderMismatch=The email address listed in the signer’s certificate is different from the email address that was used to send this message. Please look at the details of the signature certificate to learn who signed the message.
+SICertWithoutAddress=The certificate used to sign the message does not contain an email address. Please look at the details of the signature certificate to learn who signed the message.
+
+## Encryption Information strings
+EINoneLabel2=Message Is Not Encrypted
+EINone=This message was not encrypted before it was sent. Information sent over the Internet without encryption can be seen by other people while in transit.
+EIValidLabel=Message Is Encrypted
+EIValid=This message was encrypted before it was sent to you. Encryption makes it very difficult for other people to view information while it is travelling over the network.
+EIInvalidLabel=Message Cannot Be Decrypted
+EIInvalidHeader=This message was encrypted before it was sent to you, but it cannot be decrypted.
+EIContentAltered=The message contents appear to have been altered during transmission.
+EIClueless=There are unknown problems with this encrypted message.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/AccountManager.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/AccountManager.dtd
new file mode 100644
index 0000000000..e25dd92eb0
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/AccountManager.dtd
@@ -0,0 +1,25 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from AccountManager.xhtml -->
+
+<!ENTITY accountManagerTitle.label "Account Settings">
+<!ENTITY accountManagerCloseButton.label "Close">
+
+<!ENTITY accountActionsButton.label "Account Actions">
+<!ENTITY accountActionsButton.accesskey "A">
+<!ENTITY addMailAccountButton.label "Add Mail Account…">
+<!ENTITY addMailAccountButton.accesskey "A">
+<!ENTITY addIMAccountButton.label "Add Chat Account…">
+<!ENTITY addIMAccountButton.accesskey "C">
+<!ENTITY addFeedAccountButton.label "Add Feed Account…">
+<!ENTITY addFeedAccountButton.accesskey "F">
+<!ENTITY setDefaultButton.label "Set as Default">
+<!ENTITY setDefaultButton.accesskey "D">
+<!ENTITY removeButton.label "Remove Account">
+<!ENTITY removeButton.accesskey "R">
+
+<!ENTITY addonsButton.label "Extensions &amp; Themes">
+
+<!-- AccountManager.xhtml -->
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/AccountWizard.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/AccountWizard.dtd
new file mode 100644
index 0000000000..91c13cbc4e
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/AccountWizard.dtd
@@ -0,0 +1,55 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- Entities for AccountWizard -->
+
+<!ENTITY windowTitle.label "Account Wizard">
+<!ENTITY accountWizard.size "width: 40em; height: 38em;">
+
+<!-- Entities for Account Type page -->
+
+<!-- Entities for Identity page -->
+
+<!ENTITY identityTitle.label "Identity">
+<!ENTITY identityDesc.label "Each account has an identity, which is the information that identifies you to others when they receive your messages.">
+
+<!-- LOCALIZATION NOTE (fullnameDesc.label) : do not translate two of "&quot;" in below line -->
+<!ENTITY fullnameDesc.label "Enter the name you would like to appear in the &quot;From&quot; field of your outgoing messages">
+<!-- LOCALIZATION NOTE (fullnameExample.label) : use following directions for below line
+ 1, do not translate two of "&quot;"
+ 2, Use localized full name instead of "John Smith"
+-->
+<!ENTITY fullnameExample.label "(for example, &quot;John Smith&quot;).">
+<!ENTITY fullnameLabel.label "Your Name:">
+<!ENTITY fullnameLabel.accesskey "Y">
+
+<!ENTITY emailLabel.label "Email Address:">
+<!ENTITY emailLabel.accesskey "E">
+
+<!-- Entities for Incoming Server page -->
+
+<!ENTITY incomingTitle.label "Incoming Server Information">
+<!ENTITY incomingUsername.label "User Name:">
+<!-- LOCALIZATION NOTE (newsServerNameDesc.label) : Do not translate "NNTP" or the "&quot;" entities in below line -->
+<!ENTITY newsServerNameDesc.label "Enter the name of your news server (NNTP) (for example, &quot;news.example.net&quot;).">
+<!ENTITY newsServerLabel.label "Newsgroup Server:">
+<!ENTITY newsServerLabel.accesskey "S">
+
+<!-- Entities for Outgoing Server page -->
+
+<!-- Entities for Account name page -->
+
+<!ENTITY accnameTitle.label "Account Name">
+<!-- LOCALIZATION NOTE (accnameDesc.label) : do not translate any "&quot;" in below line -->
+<!ENTITY accnameDesc.label "Enter the name by which you would like to refer to this account (for example, &quot;Work Account&quot;, &quot;Home Account&quot; or &quot;News Account&quot;).">
+<!ENTITY accnameLabel.label "Account Name:">
+<!ENTITY accnameLabel.accesskey "A">
+
+<!-- Entities for Done (Congratulations) page -->
+
+<!ENTITY completionTitle.label "Congratulations!">
+<!ENTITY completionText.label "Please verify that the information below is correct.">
+<!ENTITY newsServerNamePrefix.label "News Server Name (NNTP):">
+<!ENTITY clickFinish.label "Click Finish to save these settings and exit the Account Wizard.">
+<!ENTITY clickFinish.labelMac "Click Done to save these settings and exit the Account Wizard.">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/CustomHeaders.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/CustomHeaders.dtd
new file mode 100644
index 0000000000..0f0858c0ae
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/CustomHeaders.dtd
@@ -0,0 +1,11 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY window.title "Customize Headers">
+<!ENTITY addButton.label "Add">
+<!ENTITY addButton.accesskey "A">
+<!ENTITY removeButton.label "Remove">
+<!ENTITY removeButton.accesskey "R">
+<!ENTITY newMsgHeader.label "New message header:">
+<!ENTITY newMsgHeader.accesskey "N">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/FilterEditor.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/FilterEditor.dtd
new file mode 100644
index 0000000000..21146c5cff
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/FilterEditor.dtd
@@ -0,0 +1,66 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY window.title "Filter Rules">
+<!ENTITY filterName.label "Filter name:">
+<!ENTITY filterName.accesskey "i">
+
+<!ENTITY junk.label "Junk">
+<!ENTITY notJunk.label "Not Junk">
+
+<!ENTITY lowestPriorityCmd.label "Lowest">
+<!ENTITY lowPriorityCmd.label "Low">
+<!ENTITY normalPriorityCmd.label "Normal">
+<!ENTITY highPriorityCmd.label "High">
+<!ENTITY highestPriorityCmd.label "Highest">
+
+<!ENTITY contextDesc.label "Apply filter when:">
+<!ENTITY contextIncomingMail.label "Getting New Mail:">
+<!ENTITY contextIncomingMail.accesskey "G">
+<!ENTITY contextManual.label "Manually Run">
+<!ENTITY contextManual.accesskey "R">
+<!ENTITY contextBeforeCls.label "Filter before Junk Classification">
+<!ENTITY contextAfterCls.label "Filter after Junk Classification">
+<!ENTITY contextOutgoing.label "After Sending">
+<!ENTITY contextOutgoing.accesskey "S">
+<!ENTITY contextArchive.label "Archiving">
+<!ENTITY contextArchive.accesskey "A">
+<!ENTITY contextPeriodic.accesskey "e">
+
+<!ENTITY filterActionDesc.label "Perform these actions:">
+<!ENTITY filterActionDesc.accesskey "P">
+
+<!ENTITY filterActionOrderWarning.label "Note: Filter actions will be run in a different order.">
+<!ENTITY filterActionOrder.label "See execution order">
+
+<!-- New Style Filter Rule Actions -->
+<!ENTITY moveMessage.label "Move Message to">
+<!ENTITY copyMessage.label "Copy Message to">
+<!ENTITY forwardTo.label "Forward Message to">
+<!ENTITY replyWithTemplate.label "Reply with Template">
+<!ENTITY markMessageRead.label "Mark As Read">
+<!ENTITY markMessageUnread.label "Mark As Unread">
+<!ENTITY markMessageStarred.label "Add Star">
+<!ENTITY setPriority.label "Set Priority to">
+<!ENTITY addTag.label "Tag Message">
+<!ENTITY setJunkScore.label "Set Junk Status to">
+<!ENTITY deleteMessage.label "Delete Message">
+<!ENTITY deleteFromPOP.label "Delete From POP Server">
+<!ENTITY fetchFromPOP.label "Fetch From POP Server">
+<!ENTITY ignoreThread.label "Ignore Thread">
+<!ENTITY ignoreSubthread.label "Ignore Subthread">
+<!ENTITY watchThread.label "Watch Thread">
+<!ENTITY stopExecution.label "Stop Filter Execution">
+
+<!ENTITY addAction.tooltip "Add a new action">
+<!ENTITY removeAction.tooltip "Remove this action">
+
+<!-- LOCALIZATION NOTE
+ The values below are used to control the widths of the filter action widgets.
+ Change the values only when the localized strings in the popup menus
+ are truncated in the widgets.
+ -->
+<!-- Flex Attribute: https://developer.mozilla.org/docs/XUL/Attribute/flex -->
+<!ENTITY filterActionTypeFlexValue "1">
+<!ENTITY filterActionTargetFlexValue "4">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/FilterListDialog.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/FilterListDialog.dtd
new file mode 100644
index 0000000000..0d41269eea
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/FilterListDialog.dtd
@@ -0,0 +1,40 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY window.title "Message Filters">
+<!ENTITY nameColumn.label "Filter Name">
+<!ENTITY activeColumn.label "Enabled">
+<!ENTITY newButton.label "New…">
+<!ENTITY newButton.accesskey "N">
+<!ENTITY newButton.popupCopy.label "Copy…">
+<!ENTITY newButton.popupCopy.accesskey "C">
+<!ENTITY editButton.label "Edit…">
+<!ENTITY editButton.accesskey "E">
+<!ENTITY deleteButton.label "Delete">
+<!ENTITY deleteButton.accesskey "t">
+<!ENTITY reorderTopButton "Move to Top">
+<!ENTITY reorderTopButton.accessKey "o">
+<!ENTITY reorderTopButton.toolTip "Rearrange filter so it executes before all others">
+<!ENTITY reorderUpButton.label "Move Up">
+<!ENTITY reorderUpButton.accesskey "U">
+<!ENTITY reorderDownButton.label "Move Down">
+<!ENTITY reorderDownButton.accesskey "D">
+<!ENTITY reorderBottomButton "Move to Bottom">
+<!ENTITY reorderBottomButton.accessKey "B">
+<!ENTITY reorderBottomButton.toolTip "Rearrange filter so it executes after all others">
+<!ENTITY filterHeader.label "Enabled filters are run automatically in the order shown below.">
+<!ENTITY filtersForPrefix.label "Filters for:">
+<!ENTITY filtersForPrefix.accesskey "F">
+<!ENTITY viewLogButton.label "Filter Log">
+<!ENTITY viewLogButton.accesskey "L">
+<!ENTITY runFilters.label "Run Now">
+<!ENTITY runFilters.accesskey "R">
+<!ENTITY stopFilters.label "Stop">
+<!ENTITY stopFilters.accesskey "S">
+<!ENTITY folderPickerPrefix.label "Run selected filter(s) on:">
+<!ENTITY folderPickerPrefix.accesskey "c">
+<!ENTITY helpButton.label "Help">
+<!ENTITY helpButton.accesskey "H">
+<!ENTITY closeCmd.key "W">
+<!ENTITY searchBox.emptyText "Search filters by name…">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/SearchDialog.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/SearchDialog.dtd
new file mode 100644
index 0000000000..c460698a72
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/SearchDialog.dtd
@@ -0,0 +1,37 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- for SearchDialog.xul -->
+<!ENTITY searchHeading.label "Search for messages in:">
+<!ENTITY searchHeading.accesskey "h">
+<!ENTITY searchSubfolders.label "Search subfolders">
+<!ENTITY searchSubfolders.accesskey "e">
+<!ENTITY searchOnServer.label "Run search on server">
+<!ENTITY searchOnServer.accesskey "u">
+<!ENTITY resetButton.label "Clear">
+<!ENTITY resetButton.accesskey "C">
+<!ENTITY openButton.label "Open">
+<!ENTITY openButton.accesskey "n">
+<!ENTITY deleteButton.label "Delete">
+<!ENTITY deleteButton.accesskey "D">
+<!ENTITY searchDialogTitle.label "Search Messages">
+<!ENTITY results.label "Results">
+<!ENTITY moveButton.label "Move To">
+<!ENTITY moveButton.accesskey "T">
+<!ENTITY closeCmd.key "W">
+<!ENTITY openInFolder.label "Open in Folder">
+<!ENTITY openInFolder.accesskey "r">
+<!ENTITY saveAsVFButton.label "Save as Search Folder">
+<!ENTITY saveAsVFButton.accesskey "v">
+
+<!-- for ABSearchDialog.xul -->
+<!ENTITY abSearchHeading.label "Search in:">
+<!ENTITY abSearchHeading.accesskey "h">
+<!ENTITY propertiesButton.label "Properties">
+<!ENTITY propertiesButton.accesskey "P">
+<!ENTITY composeButton.label "Write">
+<!ENTITY composeButton.accesskey "W">
+<!ENTITY deleteCardButton.label "Delete">
+<!ENTITY deleteCardButton.accesskey "D">
+<!ENTITY abSearchDialogTitle.label "Advanced Address Book Search">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/aboutDownloads.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/aboutDownloads.dtd
new file mode 100644
index 0000000000..48cc0c01a5
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/aboutDownloads.dtd
@@ -0,0 +1,23 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY aboutDownloads.title "Saved Files">
+<!-- LOCALIZATION NOTE (cmd.show.label, cmd.show.accesskey, cmd.showMac.label,
+ cmd.showMac.accesskey):
+ The show and showMac commands are never shown together, thus they can share
+ the same access key (though the two access keys can also be different).
+ -->
+<!ENTITY cmd.show.label "Open Containing Folder">
+<!ENTITY cmd.show.accesskey "F">
+<!ENTITY cmd.showMac.label "Show In Finder">
+<!ENTITY cmd.showMac.accesskey "F">
+<!ENTITY cmd.open.label "Open">
+<!ENTITY cmd.open.accesskey "O">
+<!ENTITY cmd.removeFromHistory.label "Remove From History">
+<!ENTITY cmd.removeFromHistory.accesskey "e">
+<!ENTITY cmd.clearList.label "Clear List">
+<!ENTITY cmd.clearList.accesskey "C">
+<!ENTITY cmd.clearList.tooltip "Remove all entries from the list of saved files, except ongoing downloads.">
+<!ENTITY cmd.searchDownloads.label "Search…">
+<!ENTITY cmd.searchDownloads.key "F">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/aboutRights.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/aboutRights.properties
new file mode 100644
index 0000000000..4a305cdf51
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/aboutRights.properties
@@ -0,0 +1,6 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+buttonLabel=Know your rights…
+buttonAccessKey=K
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/aboutSupportMail.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/aboutSupportMail.properties
new file mode 100644
index 0000000000..1dad124488
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/aboutSupportMail.properties
@@ -0,0 +1,15 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (warningLabel): Label for warning text that shows up when private data is included
+warningLabel=WARNING:
+# LOCALIZATION NOTE (warningText): Warning text that shows up when private data is included
+warningText=This contains sensitive information which shouldn’t be forwarded or published without permission.
+
+# LOCALIZATION NOTE (fsType.local): Indicator that the displayed directory is on a local drive
+fsType.local = (Local drive)
+# LOCALIZATION NOTE (fsType.network): Indicator that the displayed directory is on the network
+fsType.network = (Network drive)
+# LOCALIZATION NOTE (fsType.unknown): Indicator that we couldn't figure out whether the directory is local or on a network
+fsType.unknown = (Unknown location)
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/accountCreationModel.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/accountCreationModel.properties
new file mode 100644
index 0000000000..cd7e76506a
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/accountCreationModel.properties
@@ -0,0 +1,20 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# This file has the strings, mostly error strings, for the logic / JS backend / model
+# files: fetchConfig.js, readFromXML.js, guessConfig.js, verifyConfig.js, createInBackend.js
+
+
+# readFromXML.js
+no_emailProvider.error=The config file XML does not contain an email account configuration.
+outgoing_not_smtp.error=The outgoing server must be of type SMTP
+
+# verifyConfig.js
+cannot_login.error=Unable to log in at server. Probably wrong configuration, username or password.
+
+# guessConfig.js
+cannot_find_server.error=Can’t find a server
+
+# exchangeAutoDiscover.js
+no_autodiscover.error=The Exchange AutoDiscover XML is invalid.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/accountCreationUtil.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/accountCreationUtil.properties
new file mode 100644
index 0000000000..0d47935d49
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/accountCreationUtil.properties
@@ -0,0 +1,34 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# This file has the strings, mostly error strings, for the logic / JS backend / model
+# files: sanitizeDatatypes.js, fetchhttp.js, util.js
+
+
+# sanitizeDatatypes.js
+hostname_syntax.error=Hostname is empty or contains forbidden characters. Only letters, numbers, - and . are allowed.
+alphanumdash.error=String contains unsupported characters. Only letters, numbers, - and _ are allowed.
+allowed_value.error=Supplied value not in allowed list
+url_scheme.error=URL scheme not allowed
+url_parsing.error=URL not recognized
+string_empty.error=You must supply a value for this string
+boolean.error=Not a boolean
+no_number.error=Not a number
+number_too_large.error=Number too large
+number_too_small.error=Number too small
+
+
+# fetchhttp.js
+cannot_contact_server.error=Cannot contact server
+bad_response_content.error=Bad response content
+
+# verifyConfig.js
+# LOCALIZATION NOTE(auth_failed_generic.error): The login failed (server refused to allow the user in), but the server did not give any meaningful error message. This is a common case when the user entered a wrong password or is otherwise not allowed.
+auth_failed_generic.error=Login failed. Are username/email address and password correct?
+# LOCALIZATION NOTE(auth_failed_with_reason.error): The login failed (server refused to allow the user in), and the server gave an error message which we can present to the user. This is a common case when the user entered a wrong password or is otherwise not allowed. %1$S will be the IMAP/POP3/SMTP server hostname. %2$S will be the error message from the server (usually in the local language where the server is or in English).
+auth_failed_with_reason.error=Login failed. The server %1$S said: %2$S
+# LOCALIZATION NOTE(verification_failed.error): We had some other error, not during authentication with the server, but at earlier points, e.g. locally or we entirely failed to contact the given server, and we unfortunately have no detailed error message.
+verification_failed.error=Login verification failed for an unknown reason.
+# LOCALIZATION NOTE(verification_failed_with_exception.error): We had some other error, not during authentication with the server, but at earlier points, e.g. locally or we entirely failed to contact the given server, and we have an error message. %1$S will be an error message, possibly in English
+verification_failed_with_exception.error=Login verification failed with message: %1$S
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/activity.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/activity.dtd
new file mode 100644
index 0000000000..d30ca92f40
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/activity.dtd
@@ -0,0 +1,19 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- LOCALIZATION NOTE (window.width2, window.height): These values should be
+close to the golden ratio (1.618:1) while making sure it's wide enough for long
+file names and tall enough to hint that there are more activities in the list -->
+<!ENTITY window.width2 "485">
+<!ENTITY window.height "300">
+
+<!ENTITY activity.title "Activity Manager">
+
+<!ENTITY cmd.close.commandkey "w">
+<!ENTITY cmd.close2.commandkey "j">
+<!ENTITY cmd.close2Unix.commandkey "y">
+<!ENTITY cmd.clearList.label "Clear List">
+<!ENTITY cmd.clearList.tooltip "Removes completed, cancelled, and failed items from the list">
+<!ENTITY cmd.clearList.accesskey "C">
+
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/activity.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/activity.properties
new file mode 100644
index 0000000000..e12998e55b
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/activity.properties
@@ -0,0 +1,99 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Status Text
+paused2=Paused
+processing=Processing
+notStarted=Not Started
+failed=Failed
+waitingForInput=Waiting for input
+waitingForRetry=Waiting for retry
+completed=Completed
+canceled=Cancelled
+
+# LOCALIZATION NOTE (sendingMessages): this is used as a title for grouping processes in the activity manager when sending email.
+sendingMessages=Sending Messages
+sendingMessage=Sending Message
+# LOCALIZATION NOTE (sendingMessageWithSubject): %S will be replaced by the subject of the message being sent.
+sendingMessageWithSubject=Sending Message: %S
+copyMessage=Copying message to sent folder
+sentMessage=Sent Message
+# LOCALIZATION NOTE (sentMessageWithSubject): %S will be replaced by the subject of the message being sent.
+sentMessageWithSubject=Sent Message: %S
+failedToSendMessage=Failed to send message
+failedToCopyMessage=Failed to copy message
+# LOCALIZATION NOTE (failedToSendMessageWithSubject): %S will be replaced by the subject of the message being sent.
+failedToSendMessageWithSubject=Failed to send message: %S
+# LOCALIZATION NOTE (failedToCopyMessageWithSubject): %S will be replaced by the subject of the message being sent.
+failedToCopyMessageWithSubject=Failed to copy message: %S
+
+# LOCALIZATION NOTE (autosyncProcessProgress2): Do not translate the words "%1$S", "%2$S", "%3$S" and "%4$S" below.
+# Place the word %1$S in your translation where the number of the message being downloaded should appear.
+# Place the word %2$S in your translation where the total number of messages to be downloaded should appear.
+# Place the word %3$S in your translation where the name of the folder being processed should appear.
+# Place the word %4$S in your translation where the name of account being processed should appear.
+# EXAMPLE: Ted's account: Downloading message 334 of 1008 in Inbox…
+autosyncProcessProgress2=%4$S: Downloading message %1$S of %2$S in %3$S…
+# LOCALIZATION NOTE (autosyncProcessDisplayText): %S will be replaced by the folder name
+autosyncProcessDisplayText=Bringing folder %S up to date
+# LOCALIZATION NOTE (autosyncEventDisplayText): %S will be replaced by the account name
+autosyncEventDisplayText=%S is up to date
+# LOCALIZATION NOTE (autosyncEventStatusText): %S will be replaced by total number of downloaded messages
+autosyncEventStatusText=Total number of messages downloaded: %S
+autosyncEventStatusTextNoMsgs=No messages downloaded
+# LOCALIZATION NOTE (autosyncContextDisplayText): %S will be replaced by the account name
+autosyncContextDisplayText=Synchronizing: %S
+
+# LOCALIZATION NOTE (pop3EventStartDisplayText2): Do not translate the words "%1$S" and "%2$S" below.
+# Place the word %1$S in your translation where the name of the account being checked for new messages should appear.
+# Place the word %2$S in your translation where the name of the folder being checked for new messages should appear.
+# EXAMPLE: George's account: Checking Inbox for new messages…
+pop3EventStartDisplayText2=%1$S: Checking %2$S for new messages…
+# LOCALIZATION NOTE (pop3EventDisplayText): %S will be replaced by the account name
+pop3EventDisplayText=%S is up to date
+# LOCALIZATION NOTE (pop3EventStatusText): #1 will be replaced by total number of downloaded messages
+pop3EventStatusText=#1 message downloaded;#1 messages downloaded
+pop3EventStatusTextNoMsgs=No messages to download
+
+# Message actions that show up in activity manager
+# LOCALIZATION NOTE (deletedMessages2): #1 number of messages, #2 folder name
+deletedMessages2=Deleted #1 message from #2;Deleted #1 messages from #2
+# LOCALIZATION NOTE (movedMessages): #1 number of messages, #2 and #3: folder names
+movedMessages=Moved #1 message from #2 to #3;Moved #1 messages from #2 to #3
+# LOCALIZATION NOTE (copiedMessages): #1 number of messages, #2 and #3: folder names
+copiedMessages=Copied #1 message from #2 to #3;Copied #1 messages from #2 to #3
+# LOCALIZATION NOTE (fromServerToServer): #1 source server, #2 destination server
+fromServerToServer=from #1 to #2
+# LOCALIZATION NOTE (deletedFolder): #1 folder name
+deletedFolder=Deleted folder #1
+emptiedTrash=Emptied Trash
+# LOCALIZATION NOTE (movedFolder): #1 and #2 are folder names
+movedFolder=Moved folder #1 into folder #2
+# LOCALIZATION NOTE (movedFolderToTrash): #1 is the folder name
+movedFolderToTrash=Moved folder #1 to Trash
+# LOCALIZATION NOTE (copiedFolder): #1 and #2 are folder names
+copiedFolder=Copied folder #1 into folder #2
+# LOCALIZATION NOTE (renamedFolder): #1 and #2 are folder names
+renamedFolder=Renamed folder #1 to #2
+indexing=Indexing messages
+# LOCALIZATION NOTE (indexingFolder): #1 is a folder name
+indexingFolder=Indexing messages in #1
+indexingStatusVague=Determining which messages to index
+# LOCALIZATION NOTE (indexingFolderStatusVague): #1 is a folder name
+indexingFolderStatusVague=Determining which messages to index in #1
+# LOCALIZATION NOTE (indexingStatusExact):
+# #1 is the number of the message currently being indexed
+# #2 is the total number of messages being indexed
+# #3 is the percentage of indexing that is complete
+indexingStatusExact=Indexing #1 of #2 message;Indexing #1 of #2 messages (#3% complete)
+# LOCALIZATION NOTE (indexingFolderStatusExact):
+# #1 is the number of the message currently being indexed
+# #2 is the total number of messages being indexed
+# #3 is the percentage of indexing that is complete
+# #4 is a folder name
+indexingFolderStatusExact=Indexing #1 of #2 message in #4;Indexing #1 of #2 messages in #4 (#3% complete)
+# LOCALIZATION NOTE (indexedFolder): #1 number of messages; #2 folder name
+indexedFolder=Indexed #1 message in #2;Indexed #1 messages in #2
+# LOCALIZATION NOTE (indexedFolderStatus): #1 number of seconds spent indexing
+indexedFolderStatus=#1 second elapsed;#1 seconds elapsed
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addbuddy.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addbuddy.dtd
new file mode 100644
index 0000000000..9c6d5c4d40
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addbuddy.dtd
@@ -0,0 +1,7 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY addBuddyWindow.title "Add contact">
+<!ENTITY name.label "Username">
+<!ENTITY account.label "Account">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/abAddressBookNameDialog.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/abAddressBookNameDialog.dtd
new file mode 100644
index 0000000000..37e5ac4f43
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/abAddressBookNameDialog.dtd
@@ -0,0 +1,7 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- Labels -->
+<!ENTITY name.label "Address Book Name:">
+<!ENTITY name.accesskey "A">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/abContactsPanel.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/abContactsPanel.dtd
new file mode 100644
index 0000000000..76ff38fe42
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/abContactsPanel.dtd
@@ -0,0 +1,49 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY propertiesMenu.label "Properties">
+<!ENTITY propertiesMenu.accesskey "i">
+<!ENTITY propertiesCmd.key "i">
+<!ENTITY abPropertiesMenu.label "Address Book Properties">
+<!ENTITY abPropertiesMenu.accesskey "i">
+<!ENTITY contactPropertiesMenu.label "Contact Properties">
+<!ENTITY contactPropertiesMenu.accesskey "i">
+<!ENTITY mailingListPropertiesMenu.label "Mailing List Properties">
+<!ENTITY mailingListPropertiesMenu.accesskey "i">
+
+<!ENTITY abContextMenuButton.tooltip "Display Address Book Context Menu">
+<!ENTITY addressbookPicker.label "Address Book:">
+<!ENTITY addressbookPicker.accesskey "k">
+<!ENTITY searchContacts.label "Search Contacts:">
+<!ENTITY searchContacts.accesskey "n">
+<!ENTITY SearchNameOrEmail.label "Name or Email">
+
+<!ENTITY addtoToFieldMenu.label "Add to To field">
+<!ENTITY addtoToFieldMenu.accesskey "A">
+<!ENTITY addtoCcFieldMenu.label "Add to Cc field">
+<!ENTITY addtoCcFieldMenu.accesskey "C">
+<!ENTITY addtoBccFieldMenu.label "Add to Bcc field">
+<!ENTITY addtoBccFieldMenu.accesskey "B">
+<!ENTITY deleteAddrBookCard.label "Delete">
+<!ENTITY deleteAddrBookCard.accesskey "D">
+<!ENTITY propertiesContext.label "Properties">
+<!ENTITY propertiesContext.accesskey "i">
+<!ENTITY abPropertiesContext.label "Properties">
+<!ENTITY abPropertiesContext.accesskey "i">
+<!ENTITY editContactContext.label "Edit Contact">
+<!ENTITY editContactContext.accesskey "E">
+<!ENTITY editMailingListContext.label "Edit List">
+<!ENTITY editMailingListContext.accesskey "E">
+
+<!ENTITY newContactAbContext.label "New Contact">
+<!ENTITY newContactAbContext.accesskey "C">
+<!ENTITY newListAbContext.label "New List">
+<!ENTITY newListAbContext.accesskey "L">
+
+<!ENTITY toButton.label "Add to To:">
+<!ENTITY toButton.accesskey "A">
+<!ENTITY ccButton.label "Add to Cc:">
+<!ENTITY ccButton.accesskey "C">
+<!ENTITY bccButton.label "Add to Bcc:">
+<!ENTITY bccButton.accesskey "B">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/abMailListDialog.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/abMailListDialog.dtd
new file mode 100644
index 0000000000..dafa97c116
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/abMailListDialog.dtd
@@ -0,0 +1,21 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- Title -->
+<!ENTITY mailListWindowAdd.title "New Mailing List">
+
+<!-- Labels and Access Keys -->
+<!ENTITY addToAddressBook.label "Add to: ">
+<!ENTITY addToAddressBook.accesskey "A">
+<!ENTITY ListName.label "List Name: ">
+<!ENTITY ListName.accesskey "L">
+<!ENTITY ListNickName.label "List Nickname: ">
+<!ENTITY ListNickName.accesskey "N">
+<!ENTITY ListDescription.label "Description: ">
+<!ENTITY ListDescription.accesskey "D">
+<!-- See bug 58485, when we implement drag and drop, add 'or drag addresses' back in -->
+<!ENTITY AddressTitle.label "Type email addresses to add them to the mailing list:">
+<!ENTITY AddressTitle.accesskey "m">
+<!ENTITY UpButton.label "Move Up">
+<!ENTITY DownButton.label "Move Down">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/abMainWindow.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/abMainWindow.dtd
new file mode 100644
index 0000000000..5a3563d215
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/abMainWindow.dtd
@@ -0,0 +1,17 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY showAsDefault.label "Default startup directory">
+<!ENTITY showAsDefault.accesskey "S">
+
+<!-- Search Bar -->
+<!ENTITY SearchNameOrEmail.label "Name or Email">
+
+<!-- Results Pane -->
+<!ENTITY Addrbook.label "Address Book">
+<!ENTITY GeneratedName.label "Name">
+<!ENTITY PrimaryEmail.label "Email">
+
+<!-- Card Summary Pane -->
+
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/abResultsPane.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/abResultsPane.dtd
new file mode 100644
index 0000000000..29044874fc
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/abResultsPane.dtd
@@ -0,0 +1,38 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY Addrbook.label "Address Book">
+<!ENTITY Addrbook.accesskey "B">
+<!ENTITY GeneratedName.label "Name">
+<!ENTITY GeneratedName.accesskey "N">
+<!ENTITY PrimaryEmail.label "Email">
+<!ENTITY PrimaryEmail.accesskey "E">
+<!ENTITY Company.label "Organization">
+<!ENTITY Company.accesskey "z">
+<!ENTITY _PhoneticName.label "Phonetic Name">
+<!ENTITY _PhoneticName.accesskey "o">
+<!ENTITY NickName.label "Nickname">
+<!ENTITY NickName.accesskey "i">
+<!ENTITY SecondEmail.label "Additional Email">
+<!ENTITY SecondEmail.accesskey "l">
+<!ENTITY Department.label "Department">
+<!ENTITY Department.accesskey "r">
+<!ENTITY JobTitle.label "Title">
+<!ENTITY JobTitle.accesskey "T">
+<!ENTITY CellularNumber.label "Mobile">
+<!ENTITY CellularNumber.accesskey "M">
+<!ENTITY PagerNumber.label "Pager">
+<!ENTITY PagerNumber.accesskey "P">
+<!ENTITY FaxNumber.label "Fax">
+<!ENTITY FaxNumber.accesskey "F">
+<!ENTITY HomePhone.label "Home Phone">
+<!ENTITY HomePhone.accesskey "H">
+<!ENTITY WorkPhone.label "Work Phone">
+<!ENTITY WorkPhone.accesskey "W">
+<!ENTITY ChatName.label "Chat Name">
+<!ENTITY ChatName.accesskey "C">
+<!ENTITY sortAscending.label "Ascending">
+<!ENTITY sortAscending.accesskey "A">
+<!ENTITY sortDescending.label "Descending">
+<!ENTITY sortDescending.accesskey "D">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/addressBook.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/addressBook.properties
new file mode 100644
index 0000000000..250ed08227
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/addressBook.properties
@@ -0,0 +1,179 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# The following are used by the Mailing list dialog.
+# LOCALIZATION NOTE (mailingListTitleEdit): %S will be replaced by the Mailing List's display name.
+mailingListTitleEdit=Edit %S
+emptyListName=You must enter a list name.
+badListNameCharacters=A list name cannot contain any of the following characters: < > ; , "
+badListNameSpaces=A list name cannot contain multiple adjacent spaces.
+lastFirstFormat=%S, %S
+firstLastFormat=%S %S
+
+allAddressBooks=All Address Books
+
+newContactTitle=New Contact
+# %S will be the contact's display name
+newContactTitleWithDisplayName=New Contact for %S
+editContactTitle=Edit Contact
+# %S will be the contact's display name
+editContactTitleWithDisplayName=Edit Contact for %S
+# don't translate vCard
+editVCardTitle=Edit vCard
+# %S will be the card's display name, don't translate vCard
+editVCardTitleWithDisplayName=Edit vCard for %S
+
+## LOCALIZATION NOTE (cardRequiredDataMissingMessage): do not localize \n
+cardRequiredDataMissingMessage=You must enter at least one of the following items:\nEmail Address, First Name, Last Name, Display Name, Organization.
+cardRequiredDataMissingTitle=Required Information Missing
+incorrectEmailAddressFormatMessage=The primary e-mail address must be of the form user@host.
+incorrectEmailAddressFormatTitle=Incorrect Email Address Format
+
+viewListTitle=Mailing List: %S
+mailListNameExistsTitle=Mailing List Already Exists
+mailListNameExistsMessage=A Mailing List with that name already exists. Please choose a different name.
+
+propertyPrimaryEmail=Email
+propertyListName=List Name
+propertySecondaryEmail=Additional Email
+propertyNickname=Nickname
+propertyDisplayName=Display Name
+propertyWork=Work
+propertyHome=Home
+propertyFax=Fax
+propertyCellular=Mobile
+propertyPager=Pager
+propertyBirthday=Birthday
+propertyCustom1=Custom 1
+propertyCustom2=Custom 2
+propertyCustom3=Custom 3
+propertyCustom4=Custom 4
+
+propertyGtalk=Google Talk
+propertyAIM=AIM
+propertyYahoo=Yahoo!
+propertySkype=Skype
+propertyQQ=QQ
+propertyMSN=MSN
+propertyICQ=ICQ
+propertyXMPP=Jabber ID
+propertyIRC=IRC Nick
+
+## LOCALIZATION NOTE (cityAndStateAndZip):
+## %1$S is city, %2$S is state, %3$S is zip
+cityAndStateAndZip=%1$S, %2$S %3$S
+## LOCALIZATION NOTE (cityAndStateNoZip):
+## %1$S is city, %2$S is state
+cityAndStateNoZip=%1$S, %2$S
+## LOCALIZATION NOTE (cityOrStateAndZip):
+## %1$S is city or state, %2$S is zip
+cityOrStateAndZip=%1$S %2$S
+
+stateZipSeparator=
+
+prefixTo=To
+prefixCc=Cc
+prefixBcc=Bcc
+addressBook=Address Book
+
+# Contact photo management
+browsePhoto=Contact Photo
+stateImageSave=Saving the image…
+errorInvalidUri=Error: Invalid source image.
+errorNotAvailable=Error: The file is not accessible.
+errorInvalidImage=Error: Only JPG, PNG and GIF image types are supported.
+errorSaveOperation=Error: Could not save the image.
+
+# mailnews.js
+ldap_2.servers.pab.description=Personal Address Book
+ldap_2.servers.history.description=Collected Addresses
+## LOCALIZATION NOTE (ldap_2.servers.osx.description is only used on Mac OS X)
+ldap_2.servers.osx.description=macOS Address Book
+
+## LOCALIZATION NOTE (ldap_2.servers.outlook.description is only used on Windows)
+ldap_2.servers.outlook.description=Outlook Address Book
+
+# status bar stuff
+## LOCALIZATION NOTE (totalContactStatus):
+## %1$S is address book name, %2$S is contact count
+totalContactStatus=Total contacts in %1$S: %2$S
+noMatchFound=No matches found
+## LOCALIZATION NOTE (matchesFound1):
+## Semicolon-separated list of singular and plural forms.
+## See: https://developer.mozilla.org/docs/Mozilla/Localization/Localization_and_Plurals
+## #1 is the number of matching contacts found
+matchesFound1=#1 match found;#1 matches found
+
+## LOCALIZATION NOTE (contactsCopied): Semi-colon list of plural forms
+## %1$S is the number of contacts that were copied. This should be used multiple
+## times wherever you need it. Do not replace by %S.
+contactsCopied=%1$S contact copied;%1$S contacts copied
+
+## LOCALIZATION NOTE (contactsMoved): Semi-colon list of plural forms
+## %1$S is the number of contacts that were moved. This should be used multiple
+## times wherever you need it. Do not replace by %S.
+contactsMoved=%1$S contact moved;%1$S contacts moved
+
+# LDAP directory stuff
+invalidName=Please enter a valid Name.
+invalidHostname=Please enter a valid Hostname.
+invalidPortNumber=Please enter a valid Port Number.
+invalidResults=Please enter a valid number in the results field.
+abReplicationOfflineWarning=You must be online to perform LDAP replication.
+abReplicationSaveSettings=Settings must be saved before a directory may be downloaded.
+
+# For importing / exporting
+## LOCALIZATION NOTE (ExportAddressBookNameTitle): %S is the name of exported addressbook
+ExportAddressBookNameTitle=Export Address Book - %S
+LDIFFiles=LDIF
+CSVFiles=Comma Separated
+CSVFilesSysCharset=Comma Separated (System Charset)
+CSVFilesUTF8=Comma Separated (UTF-8)
+TABFiles=Tab Delimited
+TABFilesSysCharset=Tab Delimited (System Charset)
+TABFilesUTF8=Tab Delimited (UTF-8)
+VCFFiles=vCard
+SupportedABFiles=Supported Address Book Files
+failedToExportTitle=Export Failed
+failedToExportMessageNoDeviceSpace=Failed to export addressbook, no space left on device.
+failedToExportMessageFileAccessDenied=Failed to export addressbook, file access denied.
+
+# For getting authDN for replication using dlg box
+AuthDlgTitle=Address Book LDAP Replication
+AuthDlgDesc=To access the directory server, enter your user name and password.
+
+# LOCALIZATION NOTE(joinMeInThisChat)
+# use + for spaces
+joinMeInThisChat=Join+me+in+this+Chat.
+
+# For printing
+headingHome=Home
+headingWork=Work
+headingOther=Other
+headingChat=Chat
+headingPhone=Phone
+headingDescription=Description
+headingAddresses=Addresses
+
+## For address books
+addressBookTitleNew=New Address Book
+# LOCALIZATION NOTE (addressBookTitleEdit):
+# %S is the current name of the address book.
+# Example: My Custom AB Properties
+addressBookTitleEdit=%S Properties
+duplicateNameTitle=Duplicate Address Book Name
+# LOCALIZATION NOTE (duplicateNameText):
+# Don't localize "\n• %S" unless your local layout comes out wrong.
+# %S is the name of the existing address book.
+# Example: An address book with this name already exists:
+# • My Custom AB
+duplicateNameText=An address book with this name already exists:\n• %S
+
+# For corrupt .mab files
+corruptMabFileTitle=Corrupt Address Book File
+corruptMabFileAlert=One of your address book files (%1$S file) could not be read. A new %2$S file will be created and a backup of the old file, called %3$S, will be created in the same directory.
+
+# For locked .mab files
+lockedMabFileTitle=Unable to Load Address Book File
+lockedMabFileAlert=Unable to load address book file %S. It may be read-only, or locked by another application. Please try again later.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/ldapAutoCompErrs.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/ldapAutoCompErrs.properties
new file mode 100644
index 0000000000..4bb5b401fd
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/ldapAutoCompErrs.properties
@@ -0,0 +1,104 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# These are error strings for problems that happen while in the
+# various states declared in nsILDAPAutoCompFormatter.idl. Note that
+# the number that indexes each error state is the same as the number
+# corresponding to that state in nsILDAPAutoCompFormatter.idl.
+
+## @name ERR_STATE_UNBOUND
+## @loc none
+0=LDAP initialization problem
+
+## @name ERR_STATE_INITIALIZING
+## @loc none
+1=LDAP server connection failed
+
+## @name ERR_STATE_BINDING
+## @loc none
+2=LDAP server connection failed
+
+## @name ERR_STATE_BOUND
+## @loc none
+3=LDAP server communications problem
+
+## @name ERR_STATE_SEARCHING
+## @loc none
+4=LDAP server search problem
+
+
+# The format of the alert dialog itself
+#
+## @name ALERT_FORMAT
+## @loc None of %1$S, %2$S and %3$S should be localized.
+## %1$S is the error code itself, %2$S is an LDAP SDK error message from
+## chrome://mozldap/locale/ldap.properties, and %3$S is a hint relating
+## to that specific error, found in this file.
+errorAlertFormat=Error code %1$S: %2$S\n\n %3$S
+
+## The following errors are for error codes other than LDAP-specific ones.
+## Someday mozilla will actually have a system for mapping nsresults to
+## error strings that's actually widely used, unlike nsIErrorService. But
+## until it does, these strings live here...
+
+## @name HOST_NOT_FOUND
+## @loc none
+5000=Host not found
+
+## @name GENERIC_ERROR
+## @loc none
+9999=Unknown error
+
+
+# Hints to for the user, associated with specific error codes (ie error code
+# + 10000)
+
+
+## @name TIMELIMIT_EXCEEDED_HINT
+## @loc none
+10003=Please try again later, or else contact your System Administrator.
+
+## @name STRONGAUTH_REQUIRED_HINT
+## @loc none
+10008=Strong authentication is not currently supported.
+
+## @name INVALID_SYNTAX_HINT
+## @loc none
+10021=Verify that the search filter is correct, and then try again, or else contact your System Administrator. To verify that the search filter is correct, from the Edit menu, choose Preferences, then choose Mail & Newsgroups, and then choose Addressing. Click Edit Directories, and select the LDAP server being used. Click Edit, and then click Advanced to display the Search Filter.
+
+## @name NO_SUCH_OBJECT_HINT
+## @loc none
+10032=Verify that the Base DN is correct, and then try again, or else contact your System Administrator. To verify that the Base DN is correct, from the Edit menu, choose Preferences, then choose Mail & Newsgroups, and then choose Addressing. Click Edit Directories, and select the LDAP server being used. Click Edit to display the Base DN.
+
+## @name BUSY_HINT
+## @loc none
+10051=Please try again later.
+
+## @name SERVER_DOWN_HINT
+## @loc none
+10081=Verify that the Hostname and Port Number are correct, and then try again, or else contact your System Administrator. To verify that the Hostname and Port Number are correct, from the Edit menu, choose Preferences, then choose Mail & Newsgroups, and then choose Addressing. Click Edit Directories, and select the LDAP server being used. Click Edit to display the Hostname. Click Advanced to display the Port Number.
+
+## @name TIMEOUT_HINT
+## @loc none
+10085=Please try again later.
+
+## @name FILTER_ERROR_HINT
+## @loc none
+10087=Verify that the search filter is correct, and then try again, or else contact your System Administrator. To verify that the search filter is correct, from the Edit menu, choose Preferences, then choose Mail & Newsgroups, and then choose Addressing. Click Edit Directories, and select the LDAP server being used. Click Edit, and then click Advanced to display the Search Filter.
+
+## @name NO_MEMORY_HINT
+## @loc none
+10090=Please close some other windows and/or applications and try again.
+
+## @name CONNECT_ERROR_HINT
+## @loc none
+10091=Verify that the Hostname and Port Number are correct, and then try again, or else contact your System Administrator. To verify that the Hostname and Port Number are correct, from the Edit menu, choose Preferences, then choose Mail & Newsgroups, and then choose Addressing. Click Edit Directories, and select the LDAP server being used. Click Edit to display the Hostname. Click Advanced to display the Port Number.
+
+## @name HOST_NOT_FOUND_HINT
+## @loc none
+15000=Verify that the Hostname is correct, and then try again, or else contact your System Administrator. To verify that the Hostname is correct, from the Edit menu, choose Preferences, then choose Mail & Newsgroups, and then choose Addressing. Click Edit Directories, and select the LDAP server being used. Click Edit to display the Hostname.
+
+## @name GENERIC_HINT
+## @loc none
+19999=Please contact your System Administrator.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/pref-directory-add.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/pref-directory-add.dtd
new file mode 100644
index 0000000000..6193076b10
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/pref-directory-add.dtd
@@ -0,0 +1,45 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY directoryName.label "Name: ">
+<!ENTITY directoryName.accesskey "n">
+<!ENTITY directoryHostname.label "Hostname: ">
+<!ENTITY directoryHostname.accesskey "o">
+<!ENTITY directoryBaseDN.label "Base DN: ">
+<!ENTITY directoryBaseDN.accesskey "b">
+<!ENTITY findButton.label "Find">
+<!ENTITY findButton.accesskey "f">
+<!ENTITY directorySecure.label "Use secure connection (SSL)">
+<!ENTITY directorySecure.accesskey "U">
+<!ENTITY directoryLogin.label "Bind DN: ">
+<!ENTITY directoryLogin.accesskey "i">
+<!ENTITY General.tab "General">
+<!ENTITY Offline.tab "Offline">
+<!ENTITY Advanced.tab "Advanced">
+<!ENTITY portNumber.label "Port number: ">
+<!ENTITY portNumber.accesskey "p">
+<!ENTITY searchFilter.label "Search filter: ">
+<!ENTITY searchFilter.accesskey "f">
+<!ENTITY scope.label "Scope: ">
+<!ENTITY scope.accesskey "c">
+<!ENTITY scopeOneLevel.label "One Level">
+<!ENTITY scopeOneLevel.accesskey "L">
+<!ENTITY scopeSubtree.label "Subtree">
+<!ENTITY scopeSubtree.accesskey "S">
+<!ENTITY return.label "Don’t return more than">
+<!ENTITY return.accesskey "r">
+<!ENTITY results.label "results">
+<!ENTITY offlineText.label "You can download a local copy of this directory so that it is available for use when you are working offline.">
+<!ENTITY saslMechanism.label "Login method: ">
+<!ENTITY saslMechanism.accesskey "m">
+<!ENTITY saslOff.label "Simple">
+<!ENTITY saslOff.accesskey "l">
+<!ENTITY saslGSSAPI.label "Kerberos (GSSAPI)">
+<!ENTITY saslGSSAPI.accesskey "K">
+
+<!-- Localization note: this is here because the width of the dialog
+ is determined by the width of the base DN box; and that is likely
+ to vary somewhat with the language.
+-->
+<!ENTITY newDirectoryWidth "36em">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/pref-directory.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/pref-directory.dtd
new file mode 100644
index 0000000000..874cfe4749
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/pref-directory.dtd
@@ -0,0 +1,17 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- LOCALIZATION NOTE (window.title) : do not translate "LDAP" in below line -->
+<!ENTITY pref.ldap.window.title "LDAP Directory Servers">
+<!-- LOCALIZATION NOTE (directories.label) : do not translate "LDAP" in below line -->
+<!ENTITY directories.label "LDAP Directory Server:">
+<!-- LOCALIZATION NOTE (directoriesText.label) : do not translate "LDAP" in below line -->
+<!ENTITY directoriesText.label "Select an LDAP Directory Server:">
+<!ENTITY directoriesText.accesskey "S">
+<!ENTITY addDirectory.label "Add">
+<!ENTITY addDirectory.accesskey "a">
+<!ENTITY editDirectory.label "Edit">
+<!ENTITY editDirectory.accesskey "e">
+<!ENTITY deleteDirectory.label "Delete">
+<!ENTITY deleteDirectory.accesskey "d">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/replicationProgress.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/replicationProgress.properties
new file mode 100644
index 0000000000..9acf606463
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/addressbook/replicationProgress.properties
@@ -0,0 +1,20 @@
+# 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 http://mozilla.org/MPL/2.0/.
+replicationStarted=Replication started…
+changesStarted=Started finding changes to replicate…
+replicationSucceeded=Replication succeeded
+replicationFailed=Replication failed
+replicationCancelled=Replication cancelled
+# LOCALIZATION NOTE
+# do not localize %S. %S is the current entry number (an integer)
+currentCount=Replicating directory entry: %S
+
+downloadButton=Download Now
+downloadButton.accesskey=D
+cancelDownloadButton=Cancel Download
+cancelDownloadButton.accesskey=C
+
+directoryTitleNew=New LDAP Directory
+## LOCALIZATION NOTE (directoryTitleEdit): %S will be replaced by the LDAP directory's display name
+directoryTitleEdit=%S Properties
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-addressing.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-addressing.dtd
new file mode 100644
index 0000000000..793aa3a983
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-addressing.dtd
@@ -0,0 +1,51 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from am-addressing.xul -->
+
+<!-- extracted from am-addressing.xhtml -->
+
+<!ENTITY addressing.label "Composition &amp; Addressing">
+<!ENTITY addressingGroupTitle.label "Addressing">
+<!ENTITY addressingText.label "When looking up addresses:">
+<!-- LOCALIZATION NOTE (override.label) : do not translate "LDAP" in below line -->
+<!ENTITY useGlobal.label "Use my global LDAP server preferences for this account">
+<!ENTITY useGlobal.accesskey "U">
+<!ENTITY editDirectories.label "Edit Directories…">
+<!ENTITY editDirectories.accesskey "E">
+<!-- LOCALIZATION NOTE (directories.label) : do not translate "LDAP" in below line -->
+<!ENTITY directories.label "Use a different LDAP server:">
+<!ENTITY directories.accesskey "d">
+<!ENTITY directoriesNone.label "None">
+
+<!-- am-addressing.xul -->
+
+<!-- am-addressing.xhtml -->
+
+<!ENTITY compositionGroupTitle.label "Composition">
+<!-- LOCALIZATION NOTE (useHtml.label) : do not translate "html" in below line -->
+<!ENTITY useHtml.label "Compose messages in HTML format">
+<!ENTITY useHtml.accesskey "C">
+<!ENTITY autoQuote.label "Automatically quote the original message when replying">
+<!ENTITY autoQuote.accesskey "m">
+<!-- LOCALIZATION NOTE (quoting.label): This will concatenate with the 4 strings that follow. -->
+<!ENTITY quoting.label "When quoting,">
+<!ENTITY quoting.accesskey "q">
+<!ENTITY aboveQuote.label "start my reply above the quote">
+<!ENTITY belowQuote.label "start my reply below the quote">
+<!ENTITY selectAndQuote.label "select the quote">
+<!ENTITY place.label "and place my signature">
+<!ENTITY place.accesskey "s">
+<!ENTITY belowText.label "below the quote (recommended)">
+<!ENTITY aboveText.label "below my reply (above the quote)">
+<!ENTITY includeSigOnReply.label "Include signature for replies">
+<!ENTITY includeSigOnReply.accesskey "I">
+<!ENTITY includeSigOnForward.label "Include signature for forwards">
+<!ENTITY includeSigOnForward.accesskey "w">
+
+<!ENTITY globalComposingPrefs.label "Global Composing Preferences…">
+<!ENTITY globalComposingPrefs.accesskey "G">
+
+<!ENTITY globalAddressingPrefs.label "Global Addressing Preferences…">
+<!ENTITY globalAddressingPrefs.accesskey "P">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-advanced.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-advanced.dtd
new file mode 100644
index 0000000000..112aa7e205
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-advanced.dtd
@@ -0,0 +1,30 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from am-advanced.xul -->
+
+<!-- extracted from am-advanced.xhtml -->
+
+<!-- LOCALIZATION NOTE (smtpServer.label): do not translate "SMTP" in below line -->
+<!ENTITY smtpServer.label "Outgoing Server (SMTP) Settings">
+
+<!-- LOCALIZATION NOTE (smtpDescription.label): do not translate "SMTP" in below line -->
+<!ENTITY smtpDescription.label "When managing your identities you can use a server from this list by selecting it as the Outgoing Server (SMTP), or you can use the default server from this list by selecting &quot;Use Default Server&quot;.">
+
+<!ENTITY smtpListAdd.label "Add…">
+<!ENTITY smtpListAdd.accesskey "d">
+<!ENTITY smtpListEdit.label "Edit…">
+<!ENTITY smtpListEdit.accesskey "E">
+<!ENTITY smtpListDelete.label "Remove">
+<!ENTITY smtpListDelete.accesskey "m">
+<!ENTITY smtpListSetDefault.label "Set Default">
+<!ENTITY smtpListSetDefault.accesskey "t">
+
+<!ENTITY serverDetails.label "Details of selected server:">
+<!ENTITY serverDescription.label "Description: ">
+<!ENTITY serverName.label "Server Name: ">
+<!ENTITY serverPort.label "Port: ">
+<!ENTITY userName.label "User Name: ">
+<!ENTITY connectionSecurity.label "Connection Security: ">
+<!ENTITY authMethod.label "Authentication method: ">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-archiveoptions.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-archiveoptions.dtd
new file mode 100644
index 0000000000..90f808de6a
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-archiveoptions.dtd
@@ -0,0 +1,25 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from am-archiveoptions.xul -->
+
+<!-- extracted from am-archiveoptions.xhtml -->
+
+<!ENTITY dialogTitle.label "Archive Options">
+<!ENTITY archiveGranularityPrefix.label "When archiving messages, place them in:">
+<!ENTITY archiveFlat.label "A single folder">
+<!ENTITY archiveFlat.accesskey "s">
+<!ENTITY archiveYearly.label "Yearly archived folders">
+<!ENTITY archiveYearly.accesskey "Y">
+<!ENTITY archiveMonthly.label "Monthly archived folders">
+<!ENTITY archiveMonthly.accesskey "M">
+<!ENTITY keepFolderStructure.label "Keep existing folder structure of archived messages">
+<!ENTITY keepFolderStructure.accesskey "K">
+<!ENTITY archiveExample.label "Example">
+<!-- LOCALIZATION NOTE (archiveFolderName.label): this should match the default
+ name for the "Archives" folder -->
+<!ENTITY archiveFolderName.label "Archives">
+<!-- LOCALIZATION NOTE (inboxFolderName.label): this should match the default
+ name for the "Inbox" folder -->
+<!ENTITY inboxFolderName.label "Inbox">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-copies.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-copies.dtd
new file mode 100644
index 0000000000..13194e9695
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-copies.dtd
@@ -0,0 +1,52 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from am-copies.xul -->
+
+<!-- extracted from am-copies.xhtml -->
+
+<!ENTITY copyAndFolderTitle.label "Copies &amp; Folders">
+<!ENTITY sendingPrefix.label "When sending messages, automatically: ">
+<!ENTITY fccMailFolder.label "Place a copy in:">
+<!ENTITY fccMailFolder.accesskey "P">
+<!ENTITY fccReplyFollowsParent.label "Place replies in the folder of the message being replied to">
+<!ENTITY fccReplyFollowsParent.accesskey "R">
+<!-- LOCALIZATION NOTE (ccAddress.label): do not translate "Cc" in below line -->
+<!ENTITY ccAddress.label "Cc these email addresses:">
+<!ENTITY ccAddress.accesskey "C">
+<!ENTITY ccAddressList.placeholder "Separate addresses with commas">
+<!-- LOCALIZATION NOTE (bccAddress.label): do not translate "Bcc" in below line -->
+<!ENTITY bccAddress.label "Bcc these email addresses:">
+<!ENTITY bccAddress.accesskey "B">
+<!ENTITY bccAddressList.placeholder "Separate addresses with commas">
+<!ENTITY saveMessageDlg.label "Show confirmation dialog when messages are saved">
+<!ENTITY saveMessageDlg.accesskey "w">
+<!-- LOCALIZATION NOTE (sentFolderOn.label): OK to translate this, bug #57440 -->
+<!ENTITY sentFolderOn.label "&quot;Sent&quot; Folder on:">
+<!ENTITY sentFolderOn.accesskey "S">
+<!ENTITY sentInOtherFolder.label "Other:">
+<!ENTITY sentInOtherFolder.accesskey "O">
+<!-- LOCALIZATION NOTE (archivesFolderOn.label): OK to translate this, bug #57440 -->
+<!ENTITY archivesTitle.label "Message Archives">
+<!ENTITY keepArchives.label "Keep message archives in:">
+<!ENTITY keepArchives.accesskey "K">
+<!ENTITY archiveHierarchyButton.label "Archive options…">
+<!ENTITY archiveHierarchyButton.accesskey "A">
+<!ENTITY archivesFolderOn.label "&quot;Archives&quot; Folder on:">
+<!ENTITY archivesFolderOn.accesskey "n">
+<!ENTITY archiveInOtherFolder.label "Other:">
+<!ENTITY archiveInOtherFolder.accesskey "h">
+<!ENTITY specialFolders.label "Drafts and Templates">
+<!ENTITY keepDrafts2.label "Keep draft messages in:">
+<!-- LOCALIZATION NOTE (draftsFolderOn.label): OK to translate this, bug #57440 -->
+<!ENTITY draftsFolderOn.label "&quot;Drafts&quot; Folder on:">
+<!ENTITY draftsFolderOn.accesskey "D">
+<!ENTITY draftInOtherFolder.label "Other:">
+<!ENTITY draftInOtherFolder.accesskey "t">
+<!ENTITY keepTemplates.label "Keep message templates in:">
+<!-- LOCALIZATION NOTE (templatesFolderOn.label): OK to translate this, bug #57440 -->
+<!ENTITY templatesFolderOn.label "&quot;Templates&quot; Folder on:">
+<!ENTITY templatesFolderOn.accesskey "m">
+<!ENTITY templateInOtherFolder.label "Other:">
+<!ENTITY templateInOtherFolder.accesskey "e">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-e2e.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-e2e.properties
new file mode 100644
index 0000000000..9d42cb9257
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-e2e.properties
@@ -0,0 +1,5 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+prefPanel-e2e=End-To-End Encryption
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-identities-list.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-identities-list.dtd
new file mode 100644
index 0000000000..1935a37ba1
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-identities-list.dtd
@@ -0,0 +1,15 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY identitiesListManageDesc.label "Manage the identities for this account. The first identity is used by default.">
+<!ENTITY identitiesListAdd.label "Add…">
+<!ENTITY identitiesListAdd.accesskey "A">
+<!ENTITY identitiesListEdit.label "Edit…">
+<!ENTITY identitiesListEdit.accesskey "E">
+<!ENTITY identitiesListDefault.label "Set Default">
+<!ENTITY identitiesListDefault.accesskey "S">
+<!ENTITY identitiesListDelete.label "Delete">
+<!ENTITY identitiesListDelete.accesskey "D">
+<!ENTITY identitiesListClose.label "Close">
+<!ENTITY identitiesListClose.accesskey "C">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-identity-edit.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-identity-edit.dtd
new file mode 100644
index 0000000000..dc942d99e6
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-identity-edit.dtd
@@ -0,0 +1,14 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY identityListDesc.label "Configure the settings for this identity:">
+
+<!ENTITY settingsTab.label "Settings">
+<!ENTITY copiesFoldersTab.label "Copies &amp; Folders">
+<!ENTITY addressingTab.label "Composition &amp; Addressing">
+
+<!ENTITY publicData.label "Public Data">
+<!ENTITY privateData.label "Private Data">
+<!ENTITY identityAlias.label "Identity Label:">
+<!ENTITY identityAlias.accesskey "b">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-im.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-im.dtd
new file mode 100644
index 0000000000..2703b5ff38
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-im.dtd
@@ -0,0 +1,16 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY accountWindow.title "Account properties">
+<!ENTITY accountWindow.width "300">
+<!ENTITY account.general "General">
+<!ENTITY account.advanced "Advanced Options">
+<!ENTITY account.name "Username:">
+<!ENTITY account.password "Password:">
+<!ENTITY account.alias "Alias:">
+<!ENTITY account.newMailNotification "Notify on new Mail">
+<!ENTITY account.autojoin "Auto-Joined Channels:">
+<!ENTITY account.proxySettings.caption "Proxy Settings:">
+<!ENTITY account.proxySettings.change.label "Change…">
+<!ENTITY account.proxySettings.change.accessKey "C">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-junk.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-junk.dtd
new file mode 100644
index 0000000000..0f9c55d881
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-junk.dtd
@@ -0,0 +1,31 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY junkSettings.label "Junk Settings">
+<!ENTITY trainingDescription.label "If enabled, you must first train &brandShortName; to identify junk mail by using the Junk toolbar button to mark messages as junk or not. You need to identify both junk and non junk messages. After that &brandShortName; will be able to mark junk automatically.">
+<!ENTITY level.label "Enable adaptive junk mail controls for this account">
+<!ENTITY level.accesskey "E">
+
+<!ENTITY move.label "Move new junk messages to:">
+<!ENTITY move.accesskey "M">
+<!ENTITY junkFolderOn.label "&quot;Junk&quot; folder on:">
+<!ENTITY junkFolderOn.accesskey "J">
+<!ENTITY otherFolder.label "Other:">
+<!ENTITY otherFolder.accesskey "O">
+<!ENTITY purge1.label "Automatically delete junk mail older than">
+<!ENTITY purge1.accesskey "u">
+<!ENTITY purge2.label "days">
+
+<!ENTITY whitelistHeader.label "Do not automatically mark mail as junk if the sender is in: ">
+<!ENTITY whitelistHeader.accesskey "D">
+
+<!ENTITY ispHeadersWarning.label "If enabled, &brandShortName; will automatically consider messages marked by this external classifier as junk.">
+<!ENTITY ispHeaders.label "Trust junk mail headers set by: ">
+<!ENTITY ispHeaders.accesskey "T">
+
+<!ENTITY junkClassification.label "Selection">
+<!ENTITY junkActions.label "Destination and Retention">
+
+<!ENTITY globalJunkPrefs.label "Global Junk Preferences…">
+<!ENTITY globalJunkPrefs.accesskey "G">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-main.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-main.dtd
new file mode 100644
index 0000000000..e0a37e43f8
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-main.dtd
@@ -0,0 +1,49 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from am-main.xul -->
+
+<!-- extracted from am-main.xhtml -->
+
+<!ENTITY accountTitle.label "Account Settings">
+<!ENTITY accountName.label "Account Name:">
+<!ENTITY accountName.accesskey "N">
+<!ENTITY identityTitle.label "Default Identity">
+<!ENTITY identityDesc.label "Each account has an identity, which is the information that other people see when they read your messages.">
+<!ENTITY name.label "Your Name:">
+<!ENTITY name.accesskey "Y">
+<!ENTITY email.label "Email Address:">
+<!ENTITY email.accesskey "E">
+<!ENTITY catchAll.label "Reply from this identity when delivery headers match:">
+<!ENTITY catchAll.accesskey "d">
+<!ENTITY replyTo.label "Reply-to Address:">
+<!ENTITY replyTo.accesskey "s">
+<!ENTITY replyTo.placeholder "Recipients will reply to this other address">
+<!ENTITY organization.label "Organization:">
+<!ENTITY organization.accesskey "O">
+<!ENTITY signatureText.label "Signature text:">
+<!ENTITY signatureText.accesskey "x">
+<!ENTITY signatureHtml.label "Use HTML (e.g., &lt;b&gt;bold&lt;/b&gt;)">
+<!ENTITY signatureHtml.accesskey "L">
+<!ENTITY signatureFile.label "Attach the signature from a file instead (text, HTML, or image):">
+<!ENTITY signatureFile.accesskey "t">
+<!ENTITY edit.label "Edit…">
+<!ENTITY choose.label "Choose…">
+<!ENTITY choose.accesskey "C">
+<!ENTITY editVCard.label "Edit Card…">
+<!ENTITY editVCard.accesskey "d">
+<!-- LOCALIZATION NOTE (attachVCard.label) : do not translate "vCard" in below line -->
+<!ENTITY attachVCard.label "Attach my vCard to messages">
+<!ENTITY attachVCard.accesskey "v">
+
+<!ENTITY manageIdentities.label "Manage Identities…">
+<!ENTITY manageIdentities.accesskey "M">
+
+<!-- LOCALIZATION NOTE (smtpName.label) : do not translate "SMTP" in below line -->
+<!ENTITY smtpName.label "Outgoing Server (SMTP):">
+<!ENTITY smtpName.accesskey "u">
+<!ENTITY smtpDefaultServer.label "Use Default Server">
+
+<!ENTITY smtpServerEdit.label "Edit SMTP server…">
+<!ENTITY smtpServerEdit.accesskey "P">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-mdn.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-mdn.dtd
new file mode 100644
index 0000000000..479338fc0c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-mdn.dtd
@@ -0,0 +1,33 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY pane.title "Return Receipts">
+<!ENTITY useGlobalPrefs.label "Use my global return receipt preferences for this account">
+<!ENTITY useGlobalPrefs.accesskey "U">
+<!ENTITY globalReceipts.label "Global Preferences…">
+<!ENTITY globalReceipts.accesskey "G">
+<!ENTITY useCustomPrefs.label "Customize return receipts for this account">
+<!ENTITY useCustomPrefs.accesskey "C">
+<!ENTITY requestReceipt.label "When sending messages, always request a return receipt">
+<!ENTITY requestReceipt.accesskey "W">
+<!ENTITY receiptArrive.label "When a receipt arrives:">
+<!ENTITY leaveIt.label "Leave it in my Inbox">
+<!ENTITY leaveIt.accesskey "I">
+<!-- LOCALIZATION NOTE moveToSent.label Translate: 'Sent' according to Netscape glossary -->
+<!ENTITY moveToSent.label "Move it to my &quot;Sent&quot; folder">
+<!ENTITY moveToSent.accesskey "M">
+<!ENTITY requestMDN.label "When I receive a request for a return receipt:">
+<!ENTITY returnSome.label "Allow return receipts for some messages">
+<!ENTITY returnSome.accesskey "e">
+<!ENTITY never.label "Never send a return receipt">
+<!ENTITY never.accesskey "N">
+<!ENTITY notInToCc.label "If I’m not in the To or Cc of the message:">
+<!ENTITY notInToCc.accesskey "T">
+<!ENTITY outsideDomain.label "If the sender is outside my domain:">
+<!ENTITY outsideDomain.accesskey "s">
+<!ENTITY otherCases.label "In all other cases:">
+<!ENTITY otherCases.accesskey "o">
+<!ENTITY askMe.label "Ask me">
+<!ENTITY alwaysSend.label "Always send">
+<!ENTITY neverSend.label "Never send">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-mdn.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-mdn.properties
new file mode 100644
index 0000000000..90dd7bcc4d
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-mdn.properties
@@ -0,0 +1,6 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+## Strings used in prefs.
+prefPanel-mdn=Return Receipts
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-offline.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-offline.dtd
new file mode 100644
index 0000000000..8f74bd9240
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-offline.dtd
@@ -0,0 +1,57 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY doNotDownloadPop3Movemail.label "To save disk space, do not download:">
+<!ENTITY doNotDownloadNntp.label "To save disk space, do not download for offline use:">
+<!ENTITY doNotDownloadImap.label "To save disk space, downloading messages from the server and keeping local copies for offline use can be restricted by age or size.">
+<!ENTITY allFoldersOffline2.label "Keep messages in all folders for this account on this computer">
+<!ENTITY allFoldersOffline2.accesskey "o">
+<!ENTITY allFoldersOfflineNote.label "Note: Changing this affects all folders in this account. To set individual folders, use the Advanced… button.">
+<!ENTITY offlineNotDownload.label "Messages larger than">
+<!ENTITY offlineNotDownload.accesskey "M">
+<!ENTITY autosyncNotDownload.label "Don’t download messages larger than">
+<!ENTITY autosyncNotDownload.accesskey "m">
+<!ENTITY kb.label "KB">
+<!ENTITY daysOld.label "days old">
+<!ENTITY message.label "messages">
+<!ENTITY nntpNotDownloadRead.label "Read messages">
+<!ENTITY nntpNotDownloadRead.accesskey "d">
+<!ENTITY nntpDownloadMsg.label "Messages more than">
+<!ENTITY nntpDownloadMsg.accesskey "e">
+<!ENTITY retentionCleanup.label "To recover disk space, old messages can be permanently deleted.">
+<!ENTITY retentionCleanupImap.label "To recover disk space, old messages can be permanently deleted, both local copies and originals on the remote server.">
+<!ENTITY retentionCleanupPop.label "To recover disk space, old messages can be permanently deleted, including originals on the remote server.">
+<!ENTITY retentionKeepMsg.label "Delete messages more than">
+<!ENTITY retentionKeepMsg.accesskey "t">
+<!ENTITY retentionKeepAll.label "Don’t delete any messages">
+<!ENTITY retentionKeepAll.accesskey "n">
+<!ENTITY retentionKeepRecent.label "Delete all but the most recent">
+<!ENTITY retentionKeepRecent.accesskey "b">
+<!ENTITY retentionApplyToFlagged.label "Always keep starred messages">
+<!ENTITY retentionApplyToFlagged.accesskey "k">
+<!ENTITY nntpRemoveMsgBody.label "Remove bodies from messages more than">
+<!ENTITY nntpRemoveMsgBody.accesskey "o">
+<!ENTITY offlineSelectNntp.label "Select newsgroups for offline use…">
+<!ENTITY offlineSelectNntp.accesskey "S">
+<!ENTITY offlineImapAdvancedOffline.label "Advanced…">
+<!ENTITY offlineImapAdvancedOffline.accesskey "v">
+<!ENTITY syncGroupTitle.label "Message Synchronizing">
+<!ENTITY diskspaceGroupTitle.label "Disk Space">
+
+<!-- LOCALIZATION NOTE: (ageAutosyncBefore.label, ageAutosyncMiddle.label, ageAutosyncAfter.label):
+ The entities ageAutosyncBefore.label, ageAutosyncMiddle.label, and ageAutosyncAfter.label appear
+ on a single line within the scope of useAutosync.ByAge as follows:
+
+ &ageAutosyncBefore.label [textbox for autosync value] &ageAutosyncMiddle.label; [dropdown for autosync interval] &ageAutosyncAfter.label;
+-->
+<!ENTITY allAutosync.label "Synchronize all messages locally regardless of age">
+<!ENTITY allAutosync.accesskey "c">
+<!ENTITY ageAutosyncBefore.label "Synchronize the most recent">
+<!ENTITY ageAutosync.accesskey "z">
+<!ENTITY ageAutosyncMiddle.label "">
+<!ENTITY dayAgeInterval.label "Days">
+<!ENTITY weekAgeInterval.label "Weeks">
+<!ENTITY monthAgeInterval.label "Months">
+<!ENTITY yearAgeInterval.label "Years">
+<!ENTITY ageAutosyncAfter.label "">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-server-advanced.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-server-advanced.dtd
new file mode 100644
index 0000000000..f9511dc323
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-server-advanced.dtd
@@ -0,0 +1,31 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY serverAdvanced.label "Advanced Account Settings">
+<!-- LOCALIZATION NOTE (serverDirectory.label): Do not translate "IMAP" -->
+<!ENTITY serverDirectory.label "IMAP server directory:">
+<!ENTITY serverDirectory.accesskey "d">
+<!ENTITY usingSubscription.label "Show only subscribed folders">
+<!ENTITY usingSubscription.accesskey "w">
+<!ENTITY dualUseFolders.label "Server supports folders that contain sub-folders and messages">
+<!ENTITY dualUseFolders.accesskey "f">
+<!ENTITY maximumConnectionsNumber.label "Maximum number of server connections to cache">
+<!ENTITY maximumConnectionsNumber.accesskey "M">
+<!-- LOCALIZATION NOTE (namespaceDesc.label): Do not translate "IMAP" -->
+<!ENTITY namespaceDesc.label "These preferences specify the namespaces on your IMAP server">
+<!ENTITY personalNamespace.label "Personal namespace:">
+<!ENTITY personalNamespace.accesskey "P">
+<!ENTITY publicNamespace.label "Public (shared):">
+<!ENTITY publicNamespace.accesskey "u">
+<!ENTITY otherUsersNamespace.label "Other Users:">
+<!ENTITY otherUsersNamespace.accesskey "O">
+<!ENTITY overrideNamespaces.label "Allow server to override these namespaces">
+<!ENTITY overrideNamespaces.accesskey "A">
+<!ENTITY pop3DeferringDesc.label "When downloading mail from this account’s server, use the following folder to store new messages:">
+<!ENTITY accountInbox.label "Inbox for this account">
+<!ENTITY accountInbox.accesskey "s">
+<!ENTITY deferToServer.label "Inbox for different account">
+<!ENTITY deferToServer.accesskey "d">
+<!ENTITY deferGetNewMail.label "Include this server when getting new mail">
+<!ENTITY deferGetNewMail.accesskey "I">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-server-top.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-server-top.dtd
new file mode 100644
index 0000000000..18012b14ec
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-server-top.dtd
@@ -0,0 +1,89 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY messageStorage.label "Message Storage">
+<!ENTITY securitySettings.label "Security Settings">
+<!ENTITY serverSettings.label "Server Settings">
+<!ENTITY serverType.label "Server Type:">
+<!ENTITY serverName.label "Server Name:">
+<!ENTITY serverName.accesskey "S">
+<!ENTITY userName.label "User Name:">
+<!ENTITY userName.accesskey "N">
+<!ENTITY port.label "Port:">
+<!ENTITY port.accesskey "P">
+<!ENTITY serverPortDefault.label "Default:">
+<!-- LOCALIZATION NOTE (biffStart.label) : translate below 2 line with grammar dependency
+ For example, in Japanese cases:
+ biffStart.label "every"
+ biffEnd.label "minutes for new messages Check"
+-->
+<!ENTITY biffStart.label "Check for new messages every ">
+<!ENTITY biffStart.accesskey "y">
+<!ENTITY biffEnd.label "minutes">
+<!ENTITY useIdleNotifications.label "Allow immediate server notifications when new messages arrive">
+<!ENTITY useIdleNotifications.accesskey "w">
+<!ENTITY connectionSecurity.label "Connection security:">
+<!ENTITY connectionSecurity.accesskey "u">
+<!ENTITY connectionSecurityType-0.label "None">
+<!ENTITY connectionSecurityType-1.label "STARTTLS, if available">
+<!ENTITY connectionSecurityType-2.label "STARTTLS">
+<!ENTITY connectionSecurityType-3.label "SSL/TLS">
+<!ENTITY authMethod.label "Authentication method:">
+<!ENTITY authMethod.accesskey "i">
+<!ENTITY leaveOnServer.label "Leave messages on server">
+<!ENTITY leaveOnServer.accesskey "g">
+<!ENTITY headersOnly.label "Fetch headers only">
+<!ENTITY headersOnly.accesskey "e">
+<!ENTITY deleteByAgeFromServer.label "For at most">
+<!ENTITY deleteByAgeFromServer.accesskey "o">
+<!ENTITY daysEnd.label "days">
+<!ENTITY deleteOnServer2.label "Until I delete them">
+<!ENTITY deleteOnServer2.accesskey "d">
+<!ENTITY downloadOnBiff.label "Automatically download new messages">
+<!ENTITY downloadOnBiff.accesskey "m">
+<!ENTITY deleteMessagePrefix.label "When I delete a message:">
+<!ENTITY modelMoveToTrash.label "Move it to this folder:">
+<!ENTITY modelMoveToTrash.accesskey "o">
+<!ENTITY modelMarkDeleted.label "Just mark it as deleted">
+<!ENTITY modelMarkDeleted.accesskey "k">
+<!ENTITY modelDeleteImmediately.label "Remove it immediately">
+<!ENTITY modelDeleteImmediately.accesskey "d">
+<!-- LOCALIZATION NOTE (expungeOnExit.label) : do not translate two of "&quot;" in below line -->
+<!ENTITY expungeOnExit.label "Clean up (&quot;Expunge&quot;) Inbox on Exit">
+<!ENTITY expungeOnExit.accesskey "E">
+<!ENTITY emptyTrashOnExit.label "Empty Trash on Exit">
+<!ENTITY emptyTrashOnExit.accesskey "x">
+<!ENTITY loginAtStartup.label "Check for new messages at startup">
+<!ENTITY loginAtStartup.accesskey "C">
+<!-- LOCALIZATION NOTE (maxMessagesStart.label) : translate below 2 lines with grammar dependency
+ maxMessengerStart.label will be followed by maxMessagesEnd.label with the number
+ of messages between them
+-->
+<!ENTITY maxMessagesStart.label "Ask me before downloading more than">
+<!ENTITY maxMessagesStart.accesskey "m">
+<!-- LOCALIZATION NOTE (maxMessagesEnd.label) : see note for maxMessagesStart.label -->
+<!ENTITY maxMessagesEnd.label "messages">
+<!ENTITY alwaysAuthenticate.label "Always request authentication when connecting to this server">
+<!ENTITY alwaysAuthenticate.accesskey "w">
+<!ENTITY newsrcFilePath1.label "News.rc File:">
+<!ENTITY newsrcPicker1.label "Select News.rc File">
+<!ENTITY abbreviate.label "Show newsgroup names in the Mail Folder pane as:">
+<!ENTITY abbreviateOn.label "Full names (For example, ‘netscape.public.mozilla.mail-news’)">
+<!ENTITY abbreviateOff.label "Abbreviate names (For example, ’n.p.m.mail-news’)">
+<!ENTITY advancedButton.label "Advanced…">
+<!ENTITY advancedButton.accesskey "v">
+<!ENTITY serverDefaultCharset2.label "Default Text Encoding:">
+<!ENTITY localPath1.label "Local Directory:">
+<!ENTITY localFolderPicker.label "Select Local Directory">
+<!ENTITY browseFolder.label "Browse…">
+<!ENTITY browseFolder.accesskey "B">
+<!ENTITY browseNewsrc.label "Browse…">
+<!ENTITY browseNewsrc.accesskey "e">
+
+<!ENTITY accountTitle.label "Account Settings">
+<!ENTITY accountSettingsDesc.label "The following is a special account. There are no identities associated with it.">
+<!ENTITY storeType.label "Message Store Type:">
+<!ENTITY storeType.accesskey "T">
+<!ENTITY mboxStore2.label "File per folder (mbox)">
+<!ENTITY maildirStore.label "File per message (maildir)">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-serverwithnoidentities.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-serverwithnoidentities.dtd
new file mode 100644
index 0000000000..f568613a16
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-serverwithnoidentities.dtd
@@ -0,0 +1,6 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY accountName.label "Account Name:">
+<!ENTITY accountName.accesskey "N">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-smime.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-smime.dtd
new file mode 100644
index 0000000000..a6f2055a5d
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-smime.dtd
@@ -0,0 +1,47 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY e2eTitle.label "End-To-End Encryption">
+<!ENTITY e2eLearnMore.label "Learn more">
+
+<!ENTITY e2eEnc.description "Without end-to-end encryption the contents of messages are easily exposed to your email provider and to mass surveillance.">
+
+<!ENTITY e2eTechPref.description "Preferred encryption technology:">
+
+<!ENTITY encryptionCert2.message "Personal certificate for encryption:">
+<!ENTITY digitalSign.certificate.button "Select…">
+<!ENTITY digitalSign.certificate.accesskey "S">
+<!ENTITY digitalSign.certificate_clear.button "Clear">
+<!ENTITY digitalSign.certificate_clear.accesskey "C">
+<!ENTITY encryption.certificate.button "Select…">
+<!ENTITY encryption.certificate.accesskey "t">
+<!ENTITY encryption.certificate_clear.button "Clear">
+<!ENTITY encryption.certificate_clear.accesskey "e">
+<!ENTITY signingGroupTitle.label "Digital Signing">
+
+<!ENTITY signingCert2.message "Personal certificate for digital signing:">
+
+<!ENTITY sendingDefaults.label "Default settings for sending messages">
+
+<!ENTITY technologyAutomatic.label "Select automatically based on available keys or certificates">
+
+<!ENTITY certificates2.label "S/MIME">
+<!ENTITY manageCerts3.label "Manage S/MIME Certificates">
+<!ENTITY manageCerts3.accesskey "M">
+<!ENTITY manageDevices2.label "S/MIME Security Devices">
+<!ENTITY manageDevices2.accesskey "y">
+
+<!ENTITY technologySMIME.label "Prefer S/MIME">
+<!ENTITY technologyOpenPGP.label "Prefer OpenPGP">
+
+<!ENTITY openpgpKeys.label "OpenPGP">
+
+<!-- Strings for the cert picker dialog -->
+<!ENTITY certPicker.title "Select Certificate">
+<!ENTITY certPicker.info "Certificate:">
+<!ENTITY certPicker.detailsLabel "Details of selected certificate:">
+
+<!ENTITY openpgpKey.message "Personal key for encryption and digital signing:">
+<!ENTITY openpgpKey.button "Set Personal Key…">
+<!ENTITY openpgpKey.accesskey "o">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-smime.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-smime.properties
new file mode 100644
index 0000000000..512ca46f6b
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/am-smime.properties
@@ -0,0 +1,39 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+## S/MIME error strings.
+## Note to localization: %S is a placeholder
+NoSenderSigningCert=You specified that this message should be digitally signed, but the application either failed to find the signing certificate specified in your Mail & Newsgroup Account Settings, or the certificate has expired.
+NoSenderEncryptionCert=You specified encryption for this message, but the application either failed to find the encryption certificate specified in your Mail & Newsgroup Account Settings, or the certificate has expired.
+MissingRecipientEncryptionCert=You specified encryption for this message, but the application failed to find an encryption certificate for %S.
+ErrorEncryptMail=Unable to encrypt message. Please check that you have a valid email certificate for each recipient. Please check that the certificates specified in Mail & Newsgroups Account Settings for this mail account are valid and trusted for mail.
+ErrorCanNotSignMail=Unable to sign message. Please check that the certificates specified in Mail & Newsgroups Account Settings for this mail account are valid and trusted for mail.
+
+NoSigningCert=Certificate Manager can’t locate a valid certificate that can be used to digitally sign your messages.
+NoSigningCertForThisAddress=Certificate Manager can’t locate a valid certificate that can be used to digitally sign your messages with an address of <%S>.
+NoEncryptionCert=Certificate Manager can’t locate a valid certificate that other people can use to send you encrypted email messages.
+NoEncryptionCertForThisAddress=Certificate Manager can’t locate a valid certificate that other people can use to send you encrypted email messages to the address <%S>.
+
+encryption_needCertWantSame=You should also specify a certificate for other people to use when they send you encrypted messages. Do you want to use the same certificate to encrypt & decrypt messages sent to you?
+encryption_wantSame=Do you want to use the same certificate to encrypt & decrypt messages sent to you?
+encryption_needCertWantToSelect=You should also specify a certificate for other people to use when they send you encrypted messages. Do you want to configure an encryption certificate now?
+signing_needCertWantSame=You should also specify a certificate to use for digitally signing your messages. Do you want to use the same certificate to digitally sign your messages?
+signing_wantSame=Do you want to use the same certificate to digitally sign your messages?
+signing_needCertWantToSelect=You should also specify a certificate to use for digitally signing your messages. Do you want to configure a certificate for digitally signing messages now?
+
+## Strings used by nsMsgComposeSecure
+mime_smimeEncryptedContentDesc=S/MIME Encrypted Message
+mime_smimeSignatureContentDesc=S/MIME Cryptographic Signature
+
+## Strings used by the cert picker.
+CertInfoIssuedFor=Issued to:
+CertInfoIssuedBy=Issued by:
+CertInfoValid=Valid
+CertInfoFrom=from
+CertInfoTo=to
+CertInfoPurposes=Purposes
+CertInfoEmail=Email
+CertInfoStoredIn=Stored in:
+NicknameExpired=(expired)
+NicknameNotYetValid=(not yet valid)
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/appUpdate.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/appUpdate.properties
new file mode 100644
index 0000000000..0a423d55d0
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/appUpdate.properties
@@ -0,0 +1,40 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (updateAvailableTitle): %S will be replaced with brandShortName
+updateAvailableTitle=A new %S update is available.
+# LOCALIZATION NOTE (updateAvailableMessage): %S will be replaced with brandShortName
+updateAvailableMessage=Update your %S for the latest in speed and privacy.
+updateAvailablePrimaryButtonLabel=Download Update
+updateAvailablePrimaryButtonAccessKey=D
+updateAvailableSecondaryButtonLabel=Not Now
+updateAvailableSecondaryButtonAccessKey=N
+
+# LOCALIZATION NOTE (updateManualTitle): %S will be replaced with brandShortName
+updateManualTitle=%S can’t update to the latest version.
+# LOCALIZATION NOTE (updateManualMessage): %S will be replaced with brandShortName
+updateManualMessage=Download a fresh copy of %S and we’ll help you to install it.
+# LOCALIZATION NOTE (updateManualPrimaryButtonLabel): %S will be replaced with brandShortName
+updateManualPrimaryButtonLabel=Download %S
+updateManualPrimaryButtonAccessKey=D
+updateManualSecondaryButtonLabel=Not Now
+updateManualSecondaryButtonAccessKey=N
+
+# LOCALIZATION NOTE (updateUnsupportedTitle): %S will be replaced with brandShortName
+updateUnsupportedTitle=%S is unable to update to the latest version.
+# LOCALIZATION NOTE (updateUnsupportedMessage): %S will be replaced with brandShortName
+updateUnsupportedMessage=The latest version of %S is not supported on your system.
+updateUnsupportedPrimaryButtonLabel=Learn more
+updateUnsupportedPrimaryButtonAccessKey=L
+updateUnsupportedSecondaryButtonLabel=Close
+updateUnsupportedSecondaryButtonAccessKey=C
+
+# LOCALIZATION NOTE (updateRestartTitle): %S will be replaced with brandShortName
+updateRestartTitle=Restart to update %S.
+# LOCALIZATION NOTE (updateRestartMessage): %S will be replaced with brandShortName
+updateRestartMessage=After a quick restart, %S will restore all your open tabs and windows.
+updateRestartPrimaryButtonLabel=Restart
+updateRestartPrimaryButtonAccessKey=R
+updateRestartSecondaryButtonLabel=Not Now
+updateRestartSecondaryButtonAccessKey=N
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/appleMailImportMsgs.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/appleMailImportMsgs.properties
new file mode 100644
index 0000000000..aa0cc04b37
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/appleMailImportMsgs.properties
@@ -0,0 +1,20 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Short name of import module
+ApplemailImportName=Apple Mail
+
+# Description of import module
+ApplemailImportDescription=Import Local Mail from macOS Mail
+
+# Success Message
+# LOCALIZATION NOTE(ApplemailImportMailboxSuccess): Do not translate the word "%S" below.
+ApplemailImportMailboxSuccess=Local messages were successfully imported from %S
+
+# Error Message
+ApplemailImportMailboxBadparam=An internal error occurred. Importing failed. Try importing again.
+
+# Error message
+# LOCALIZATION NOTE(ApplemailImportMailboxConverterror): Do not translate the word "%S" below.
+ApplemailImportMailboxConverterror=An error occurred while importing messages from %S. Messages were not imported.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/baseMenuOverlay.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/baseMenuOverlay.dtd
new file mode 100644
index 0000000000..21f2c317d6
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/baseMenuOverlay.dtd
@@ -0,0 +1,34 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- Help Menu -->
+<!ENTITY helpMenu.label "Help">
+<!ENTITY helpMenu.accesskey "H">
+<!-- LOCALIZATION NOTE some localizations of Windows use "?"
+ for the help button in the menubar but Gnome does not. -->
+<!ENTITY helpMenuWin.label "Help">
+<!ENTITY helpMenuWin.accesskey "H">
+<!ENTITY aboutProduct2.label "About &brandShorterName;">
+<!ENTITY aboutProduct2.accesskey "A">
+<!ENTITY productHelp.label "&brandShortName; Help">
+<!ENTITY productHelp.accesskey "H">
+
+<!ENTITY productHelp.commandkey "VK_F1">
+<!ENTITY productHelpMac.commandkey "?">
+<!ENTITY productHelpMac.modifiers "accel">
+
+<!ENTITY helpKeyboardShortcuts.label "Keyboard Shortcuts">
+<!ENTITY helpKeyboardShortcuts.accesskey "K">
+
+<!ENTITY helpFeedbackPage.label "Submit Feedback…">
+<!ENTITY helpFeedbackPage.accesskey "S">
+
+<!ENTITY helpShowTour2.label "&brandShorterName; Tour">
+<!ENTITY helpShowTour2.accesskey "o">
+
+<!ENTITY helpGetInvolvedPage.label "Get Involved">
+<!ENTITY helpGetInvolvedPage.accesskey "I">
+
+<!ENTITY helpDonationsPage.label "Make a Donation">
+<!ENTITY helpDonationsPage.accesskey "M">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/beckyImportMsgs.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/beckyImportMsgs.properties
new file mode 100644
index 0000000000..97aa769651
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/beckyImportMsgs.properties
@@ -0,0 +1,19 @@
+# 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 http://mozilla.org/MPL/2.0/.
+#
+# The following are used by the becky import code to display status/error
+# and informational messages
+
+# Short name of import module
+BeckyImportName=Becky! Internet Mail
+
+# Description of import module
+BeckyImportDescription=Import Local Mail from Becky! Internet Mail
+
+# Success Message
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+# The variable %S will contain the name of the Mailbox
+BeckyImportMailboxSuccess=Local messages were successfully imported from %S.
+
+BeckyImportAddressSuccess=Address book imported
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/charsetTitles.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/charsetTitles.properties
new file mode 100644
index 0000000000..4200239d2b
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/charsetTitles.properties
@@ -0,0 +1,80 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+## Rule of this file:
+## 1. key should always be in lower case ascii so we can do case insensitive
+## comparison in the code faster.
+
+## Format of this file:
+## charset_name.title = a_title - specifies the human readable title for
+## this charset
+
+iso-8859-1.title = Western (ISO-8859-1)
+iso-8859-2.title = Central European (ISO-8859-2)
+iso-8859-3.title = South European (ISO-8859-3)
+iso-8859-4.title = Baltic (ISO-8859-4)
+iso-8859-10.title = Nordic (ISO-8859-10)
+iso-8859-13.title = Baltic (ISO-8859-13)
+iso-8859-14.title = Celtic (ISO-8859-14)
+iso-8859-15.title = Western (ISO-8859-15)
+iso-8859-16.title = Romanian (ISO-8859-16)
+windows-1250.title = Central European (Windows-1250)
+windows-1252.title = Western (Windows-1252)
+windows-1254.title = Turkish (Windows-1254)
+windows-1257.title = Baltic (Windows-1257)
+macintosh.title = Western (MacRoman)
+x-mac-ce.title = Central European (MacCE)
+x-mac-turkish.title = Turkish (MacTurkish)
+x-mac-croatian.title = Croatian (MacCroatian)
+x-mac-romanian.title = Romanian (MacRomanian)
+x-mac-icelandic.title = Icelandic (MacIcelandic)
+iso-2022-jp.title = Japanese (ISO-2022-JP)
+shift_jis.title = Japanese (Shift_JIS)
+euc-jp.title = Japanese (EUC-JP)
+big5.title = Chinese Traditional (Big5)
+big5-hkscs.title = Chinese Traditional (Big5-HKSCS)
+gb2312.title = Chinese Simplified (GB2312)
+gbk.title = Chinese Simplified (GBK)
+euc-kr.title = Korean (EUC-KR)
+utf-7.title = Unicode (UTF-7)
+utf-8.title = Unicode (UTF-8)
+utf-16.title = Unicode (UTF-16)
+utf-16le.title = Unicode (UTF-16LE)
+utf-16be.title = Unicode (UTF-16BE)
+iso-8859-5.title = Cyrillic (ISO-8859-5)
+windows-1251.title = Cyrillic (Windows-1251)
+x-mac-cyrillic.title = Cyrillic (MacCyrillic)
+x-mac-ukrainian.title = Cyrillic/Ukrainian (MacUkrainian)
+koi8-r.title = Cyrillic (KOI8-R)
+koi8-u.title = Cyrillic/Ukrainian (KOI8-U)
+iso-8859-7.title = Greek (ISO-8859-7)
+windows-1253.title = Greek (Windows-1253)
+x-mac-greek.title = Greek (MacGreek)
+windows-1258.title = Vietnamese (Windows-1258)
+windows-874.title = Thai (Windows-874)
+iso-8859-6.title = Arabic (ISO-8859-6)
+iso-8859-8.title = Hebrew Visual (ISO-8859-8)
+iso-8859-8-i.title = Hebrew (ISO-8859-8-I)
+windows-1255.title = Hebrew (Windows-1255)
+windows-1256.title = Arabic (Windows-1256)
+x-user-defined.title = User Defined
+ibm866.title = Cyrillic/Russian (CP-866)
+gb18030.title = Chinese Simplified (GB18030)
+x-mac-arabic.title = Arabic (MacArabic)
+x-mac-farsi.title = Farsi (MacFarsi)
+x-mac-hebrew.title = Hebrew (MacHebrew)
+x-mac-devanagari.title = Hindi (MacDevanagari)
+x-mac-gujarati.title = Gujarati (MacGujarati)
+x-mac-gurmukhi.title = Gurmukhi (MacGurmukhi)
+
+chardet.off.title = (Off)
+chardet.universal_charset_detector.title = Universal
+chardet.ja_parallel_state_machine.title = Japanese
+chardet.ko_parallel_state_machine.title = Korean
+chardet.zhtw_parallel_state_machine.title = Traditional Chinese
+chardet.zhcn_parallel_state_machine.title = Simplified Chinese
+chardet.zh_parallel_state_machine.title = Chinese
+chardet.cjk_parallel_state_machine.title = East Asian
+chardet.ruprob.title = Russian
+chardet.ukprob.title = Ukrainian
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/chat.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/chat.dtd
new file mode 100644
index 0000000000..e37655e6af
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/chat.dtd
@@ -0,0 +1,44 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY onlineContactsHeader.label "Online Contacts">
+<!ENTITY offlineContactsHeader.label "Offline Contacts">
+<!ENTITY conversationsHeader.label "Conversations">
+<!ENTITY searchResultConversation.label "Search result">
+<!ENTITY chat.noConv.title "Conversations will be displayed here.">
+<!ENTITY chat.noConv.description "Use the contact list in the left panel to start a conversation.">
+<!ENTITY chat.noPreviousConv.description "&brandShortName; currently doesn’t have any previous conversations stored for this contact.">
+<!ENTITY chat.noAccount.title "You haven’t set up a chat account yet.">
+<!ENTITY chat.noAccount.description "Let &brandShortName; guide you through the process of setting up your chat account.">
+<!ENTITY chat.accountWizard.button "Get started">
+<!ENTITY chat.noConnectedAccount.title "Your chat accounts are not connected.">
+<!ENTITY chat.noConnectedAccount.description "You can connect them from the ‘Chat status’ dialog:">
+<!ENTITY chat.showAccountManager.button "Show chat status">
+
+<!ENTITY chat.participants "Participants:">
+<!ENTITY chat.previousConversations "Previous Conversations:">
+<!ENTITY chat.ongoingConversation "Ongoing conversation">
+
+<!ENTITY openConversationCmd.label "Start a Conversation">
+<!ENTITY openConversationCmd.accesskey "c">
+<!ENTITY closeConversationCmd.label "Close Conversation">
+<!ENTITY closeConversationCmd.accesskey "C">
+<!ENTITY aliasCmd.label "Rename">
+<!ENTITY aliasCmd.accesskey "R">
+<!ENTITY deleteCmd.label "Remove Contact">
+<!ENTITY deleteCmd.accesskey "v">
+
+<!ENTITY openConversationButton.tooltip "Start a conversation">
+<!ENTITY closeConversationButton.tooltip "Close conversation">
+
+<!ENTITY addBuddyButton.label "Add Contact">
+<!ENTITY joinChatButton.label "Join Chat">
+<!ENTITY chatAccountsButton.label "Show Accounts">
+
+<!ENTITY status.available "Available">
+<!ENTITY status.unavailable "Unavailable">
+<!ENTITY status.offline "Offline">
+
+<!ENTITY openLinkCmd.label "Open Link…">
+<!ENTITY openLinkCmd.accesskey "O">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/chat.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/chat.properties
new file mode 100644
index 0000000000..f971e5353a
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/chat.properties
@@ -0,0 +1,110 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+chatTabTitle=Chat
+goBackToCurrentConversation.button=Back to current conversation
+# LOCALIZATION NOTE (startAConversationWith.button):
+# %S is replaced with the display name of a contact.
+startAConversationWith.button=Start a conversation with %S
+
+# LOCALIZATION NOTE (defaultGroup):
+# this is used in the addBuddies dialog if the list of existing groups is empty
+defaultGroup=Contacts
+
+# LOCALIZATION NOTE (buddy.authRequest.label):
+# This string appears in a notification bar at the
+# top of the Contacts window when someone added the user to his/her
+# contact list, to request the permission from the user to share
+# status information with this potential new contact.
+# %S is replaced with the user name of the potential new contact.
+buddy.authRequest.label=%S wants to chat with you
+buddy.authRequest.allow.label=Allow
+buddy.authRequest.allow.accesskey=A
+buddy.authRequest.deny.label=Deny
+buddy.authRequest.deny.accesskey=D
+
+## LOCALIZATION NOTE (buddy.verificationRequest):
+# Strings used in a notification bar at the top of the chat tab when someone
+# sends a verification request for end-to-end encryption keys.
+# %S is replaced with the display name of the user or, if this is to verify a
+# session of yourself, a string that identifies the session.
+buddy.verificationRequest.label=%S wants to verify each other’s identities
+buddy.verificationRequest.allow.label=Start Verification
+buddy.verificationRequest.allow.accesskey=S
+buddy.verificationRequest.deny.label=Deny
+buddy.verificationRequest.deny.accesskey=D
+
+# LOCALIZATION NOTE (buddy.deletePrompt.title):
+# %S here will be replaced by the alias (or username) of a buddy about
+# to be removed from the buddy list.
+buddy.deletePrompt.title=Delete %S?
+
+# LOCALIZATION NOTE (buddy.deletePrompt.message):
+# %1$S will be replaced by the name of a buddy (either the alias
+# followed by the username between parenthesis if an alias is set, or
+# only the username otherwise).
+# %2$S will be the name of the protocol on which this buddy is removed
+# (for example: AIM, MSN, Google Talk).
+#
+# Please find a wording that will keep the username as close as
+# possible to the beginning of the string, because this is the
+# important information that an user should see when looking quickly
+# at this prompt.
+buddy.deletePrompt.message=%1$S will be permanently removed from your %2$S buddy list if you continue.
+
+# LOCALIZATION NOTE (buddy.deletePrompt.displayName):
+# This is used to format the display name inserted in buddy.deletePrompt.message
+# %1$S is the alias, %2$S is the username.
+buddy.deletePrompt.displayName=%1$S (%2$S)
+
+# LOCALIZATION NOTE (buddy.deletePrompt.button):
+# the & symbol indicates the position of the character that should be
+# used as the accesskey for this button.
+buddy.deletePrompt.button=&Delete
+
+displayNameEmptyText=Display Name
+userIconFilePickerTitle=Select the new icon…
+
+# LOCALIZATION NOTE (chat.isTyping, chat.hasStoppedTyping):
+# The contact display name is displayed with a big font on a first
+# line and these two strings are displayed on a second line with a
+# smaller font. Please try to find a wording that make this look
+# almost like a sentence.
+chat.isTyping=is typing…
+chat.hasStoppedTyping=has stopped typing.
+# LOCALIZATION NOTE (chat.contactIsTyping, chat.contactHasStoppedTyping):
+# These strings are displayed in a tooltip when hovering the status type icon.
+# %S is replaced with the display name of the contact.
+chat.contactIsTyping=%S is typing.
+chat.contactHasStoppedTyping=%S has stopped typing.
+
+# LOCALIZATION NOTE (unknownCommand):
+# This is shown when an unknown command (/foo) is attempted. %S is the command.
+unknownCommand=%S is not a supported command. Type /help to see the list of commands.
+
+#LOCALIZATION NOTE
+# These are special entries in the log tree for the corresponding days.
+log.today=Today
+log.yesterday=Yesterday
+
+#LOCALIZATION NOTE
+# These are special groups in the log tree for the last 3-7 days and
+# the last 8-14 days.
+log.currentWeek=This Week
+log.previousWeek=Last Week
+
+# LOCALIZATION NOTE (messagePreview):
+# This is the default message preview to be shown
+# when the user has chosen not to show any info in the notification about the
+# incoming message being notified.
+messagePreview=New Chat Message
+
+#LOCALIZATION NOTE (bundledMessagePreview): Semi-colon list of plural forms.
+# Used when multiple incoming messages from the same sender are bundled
+# into a single notification.
+# #1 is the number of incoming messages the user is being notified about. When #1
+# is greater than one, the plural form after the semicolon is used.
+# Do not translate %1$S, it is the message preview to be shown in the
+# notification, i.e. the first incoming message.
+bundledMessagePreview=%1$S… (and #1 more message);%1$S… (and #1 more messages)
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/configEditorOverlay.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/configEditorOverlay.dtd
new file mode 100644
index 0000000000..3d78799d68
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/configEditorOverlay.dtd
@@ -0,0 +1,5 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY closeCmd.key "W">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/converterDialog.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/converterDialog.dtd
new file mode 100644
index 0000000000..fa468ee80f
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/converterDialog.dtd
@@ -0,0 +1,11 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY converterDialog.title "Message Store Type Converter">
+<!ENTITY converterDialog.continueButton "Continue">
+<!ENTITY converterDialog.cancelButton "Cancel">
+<!ENTITY converterDialog.finishButton "Finish">
+<!ENTITY converterDialog.complete "The conversion is complete. &brandShortName; will now restart.">
+<!ENTITY converterDialog.error "Conversion failed.">
+
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/converterDialog.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/converterDialog.properties
new file mode 100644
index 0000000000..d808be0319
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/converterDialog.properties
@@ -0,0 +1,41 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (converterDialog.warning):
+# %1$S will be replaced by the name of the account which is going to be converted.
+# %2$S will be replaced by the format into which the account will be converted.
+# %3$S will be replaced by $BrandShortName.
+converterDialog.warning=The messages in the account %1$S will now be converted to the %2$S format. %3$S will restart after the conversion is complete.
+
+# LOCALIZATION NOTE (converterDialog.message):
+# %1$S will be replaced by the name of the account which is being converted.
+# %2$S will be replaced by the format into which the account will be converted.
+converterDialog.message=Converting the account %1$S to %2$S…
+
+# LOCALIZATION NOTE (converterDialog.warningForDeferredAccount):
+# %1$S will be replaced by the name of the deferred account for which migration is initiated by the user.
+# %2$S will be replaced by the name of the account to which the deferred account is deferred ie the name of the deferred-to account.
+# %3$S will be replaced by the name of the deferred-to account.
+# %4$S will be replaced by a comma separated list of names of accounts which are deferred to the deferred-to account.
+# %5$S will be replaced by a comma separated list of names of accounts which are going to get converted.
+# %6$S will be replaced by the format into which the accounts will be converted.
+# %7$S will be replaced by $BrandShortName.
+converterDialog.warningForDeferredAccount=%1$S is deferred to %2$S. Accounts deferred to %3$S: %4$S. The messages in the accounts %5$S will now be converted to the %6$S format. %7$S will restart after the conversion is complete.
+
+# LOCALIZATION NOTE (converterDialog.warningForDeferredToAccount):
+# %1$S will be replaced by the name of the deferred-to account for which migration is initiated by the user and to which other accounts are deferred.
+# %2$S will be replaced by a comma separated list of names of accounts which are deferred to the deferred-to account.
+# %3$S will be replaced by a comma separated list of names of accounts which are going to get converted.
+# %4$S will be replaced by the format into which the accounts will be converted.
+# %5$S will be replaced by $BrandShortName.
+converterDialog.warningForDeferredToAccount=Accounts deferred to %1$S: %2$S. The messages in the accounts %3$S will now be converted to the %4$S format. %5$S will restart after the conversion is complete.
+
+# LOCALIZATION NOTE (converterDialog.messageForDeferredAccount):
+# %1$S will be replaced by a comma separated list of names of accounts which are being converted.
+# %2$S will be replaced by the format into which the accounts will be converted.
+converterDialog.messageForDeferredAccount=Converting the accounts %1$S to %2$S…
+
+# LOCALIZATION NOTE (converterDialog.percentDone):
+# %1$S will be replaced by the percentage of conversion that is complete.
+converterDialog.percentDone=%1$S%% done
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/custom.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/custom.properties
new file mode 100644
index 0000000000..c3c9274761
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/custom.properties
@@ -0,0 +1,5 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+colonInHeaderName=The header you entered contains an invalid character, such as ‘:’, a non-printable character, a non-ASCII character, or an eight bit ASCII character. Please remove the invalid character and try again.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/customizeToolbar.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/customizeToolbar.dtd
new file mode 100644
index 0000000000..c2dbdf98e7
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/customizeToolbar.dtd
@@ -0,0 +1,18 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY dialog.title "Customize Toolbar">
+<!ENTITY dialog.dimensions "width: 92ch; height: 36em;">
+<!ENTITY instructions.description "You can add or remove items by dragging to or from the toolbars.">
+<!ENTITY show.label "Show:">
+<!ENTITY iconsAndText.label "Icons and Text">
+<!ENTITY icons.label "Icons">
+<!ENTITY text.label "Text">
+<!ENTITY iconsBesideText.label "Icons beside Text">
+<!ENTITY useSmallIcons.label "Use Small Icons">
+<!ENTITY restoreDefaultSet.label "Restore Default Set">
+<!ENTITY showTitlebar2.label "Title Bar">
+<!ENTITY extraDragSpace2.label "Drag Space">
+<!ENTITY saveChanges.label "Done">
+<!ENTITY undoChanges.label "Undo Changes">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/customizeToolbar.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/customizeToolbar.properties
new file mode 100644
index 0000000000..0ec6d2c1db
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/customizeToolbar.properties
@@ -0,0 +1,11 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+enterToolbarTitle=New Toolbar
+enterToolbarName=Enter a name for this toolbar:
+enterToolbarDup=There is already a toolbar with the name “%S”. Please enter a different name.
+enterToolbarBlank=You must enter a name to create a new toolbar.
+separatorTitle=Separator
+springTitle=Flexible Space
+spacerTitle=Space
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/downloadheaders.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/downloadheaders.dtd
new file mode 100644
index 0000000000..405c2950bb
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/downloadheaders.dtd
@@ -0,0 +1,20 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY all.label "Download all headers">
+<!ENTITY all.accesskey "D">
+<!--LOCALIZATION NOTE (download.label):
+ consider the download.label and headers.label as a single sentence
+ with the number of headers to be downloaded inserted between them:
+ EXAMPLE: "Download" <some number> "headers"
+ Either label could be set to null ("") if required grammatically.
+-->
+
+<!ENTITY download.label "Download">
+<!ENTITY download.accesskey "o">
+<!--LOCALIZATION NOTE (headers.label): see note for download.label -->
+<!ENTITY headers.label "headers">
+<!ENTITY headers.accesskey "h">
+<!ENTITY mark.label "Mark remaining headers as read">
+<!ENTITY mark.accesskey "M">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/editContactOverlay.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/editContactOverlay.dtd
new file mode 100644
index 0000000000..2c821dee7e
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/editContactOverlay.dtd
@@ -0,0 +1,20 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY editContactPanelDeleteContact.label "Delete">
+<!ENTITY editContactPanelDeleteContact.accesskey "l">
+
+<!ENTITY editContactName.label "Name:">
+<!ENTITY editContactName.accesskey "N">
+
+<!ENTITY editContactEmail.label "Email:">
+<!ENTITY editContactEmail.accesskey "E">
+
+<!ENTITY editContactAddressBook.label "Address Book:">
+<!ENTITY editContactAddressBook.accesskey "A">
+
+<!ENTITY editContactPanelDone.label "Done">
+<!ENTITY editContactPanelDone.accesskey "D">
+
+<!ENTITY contactMoveDisabledWarning.description "You can’t change the address book because the contact is in a mailing list.">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/editContactOverlay.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/editContactOverlay.properties
new file mode 100644
index 0000000000..76908410bd
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/editContactOverlay.properties
@@ -0,0 +1,14 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+editTitle=Edit Contact
+viewTitle=View Contact
+
+editDetailsLabel=Edit Details
+editDetailsAccessKey=t
+viewDetailsLabel=View Details
+viewDetailsAccessKey=t
+
+deleteContactTitle=Delete Contact
+deleteContactMessage=Are you sure you want to delete this Contact?
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/fieldMapImport.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/fieldMapImport.dtd
new file mode 100644
index 0000000000..e9d06a1b7e
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/fieldMapImport.dtd
@@ -0,0 +1,17 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY fieldMapImport.next.label "Next">
+<!ENTITY fieldMapImport.next.accesskey "N">
+<!ENTITY fieldMapImport.previous.label "Previous">
+<!ENTITY fieldMapImport.previous.accesskey "P">
+<!ENTITY fieldMapImport.text "Use Move Up and Move Down to match the address book fields on the left to the correct data for import on the right. Uncheck items you do not want to import.">
+<!ENTITY fieldMapImport.up.label "Move Up">
+<!ENTITY fieldMapImport.up.accesskey "U">
+<!ENTITY fieldMapImport.down.label "Move Down">
+<!ENTITY fieldMapImport.down.accesskey "D">
+<!ENTITY fieldMapImport.fieldListTitle "Address Book fields">
+<!ENTITY fieldMapImport.dataTitle "Record data to import">
+<!ENTITY fieldMapImport.skipFirstRecord.label "First record contains field names">
+<!ENTITY fieldMapImport.skipFirstRecord.accessKey "F">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/filter.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/filter.properties
new file mode 100644
index 0000000000..66fe5b78bf
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/filter.properties
@@ -0,0 +1,109 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+mustSelectFolder=You must select a target folder.
+enterValidEmailAddress=Enter a valid e-mail address to forward to.
+pickTemplateToReplyWith=Choose a template to reply with.
+mustEnterName=You must give this filter a name.
+cannotHaveDuplicateFilterTitle=Duplicate Filter Name
+cannotHaveDuplicateFilterMessage=The filter name you entered already exists. Please enter a different filter name.
+mustHaveFilterTypeTitle=No filter event selected
+mustHaveFilterTypeMessage=You must select at least one event when this filter is applied. If you temporarily do not wish the filter to run at any event, uncheck its enabled state from the Message Filters dialog.
+deleteFilterConfirmation=Are you sure you want to delete the selected filter(s)?
+matchAllFilterName=Match All Messages
+filterListBackUpMsg=Your filters do not work because the msgFilterRules.dat file, which contains your filters, could not be read. A new msgFilterRules.dat file will be created and a backup of the old file, called rulesbackup.dat, will be created in the same directory.
+customHeaderOverflow=You’ve exceeded the limit of 50 custom headers. Please remove one or more custom headers and try again.
+filterCustomHeaderOverflow=Your filters have exceeded the limit of 50 custom headers. Please edit the msgFilterRules.dat file, which contains your filters, to use fewer custom headers.
+invalidCustomHeader=One of your filters uses a custom header that contains an invalid character, such as ‘:’, a non-printable character, a non-ASCII character, or an eight-bit ASCII character. Please edit the msgFilterRules.dat file, which contains your filters, to remove invalid characters from your custom headers.
+continueFilterExecution=Applying filter %S failed. Would you like to continue applying filters?
+promptTitle=Running Filters
+promptMsg=You are currently in the process of filtering messages.\nWould you like to continue applying filters?
+stopButtonLabel=Stop
+continueButtonLabel=Continue
+# LOCALIZATION NOTE(cannotEnableIncompatFilter)
+# %S=the name of the application
+cannotEnableIncompatFilter=This filter was probably created by a newer or incompatible version of %S. You cannot enable this filter because we don’t know how to apply it.
+dontWarnAboutDeleteCheckbox=Don’t ask me again
+# LOCALIZATION NOTE(copyToNewFilterName)
+# %S=the name of the filter that is being copied
+copyToNewFilterName=Copy of %S
+# LOCALIZATION NOTE(contextPeriodic.label): Semi-colon list of plural forms.
+# #1=the number of minutes
+contextPeriodic.label=Periodically, every minute;Periodically, every #1 minutes
+
+# LOCALIZATION NOTE(filterFailureWarningPrefix)
+# %1$S=filter error action
+# %2$S=error code as hexadecimal string.
+filterFailureWarningPrefix=Filter action failed: “%1$S” with error code=%2$S while attempting:
+filterFailureSendingReplyError=Error sending reply
+filterFailureSendingReplyAborted=Sending reply aborted
+filterFailureMoveFailed=Move failed
+filterFailureCopyFailed=Copy failed
+
+filterFailureAction=Failed applying the filter action
+
+searchTermsInvalidTitle=Search Terms Invalid
+# LOCALIZATION NOTE(searchTermsInvalidRule)
+# %1$S=search attribute name from the invalid rule
+# %2$S=search operator from the bad rule
+searchTermsInvalidRule=This filter cannot be saved because the search term “%1$S %2$S” is invalid in the current context.
+# LOCALIZATION NOTE(filterActionOrderExplanation)
+# Keep the \n\n that mean 2 linebreaks.
+filterActionOrderExplanation=When a message matches this filter the actions will be run in this order:\n\n
+filterActionOrderTitle=Real action order
+## LOCALIZATION NOTE(filterActionItem):
+# %1$S=sequence number of the action, %2$S=action text, %3$S=action argument
+filterActionItem=%1$S. %2$S %3$S\n
+
+## LOCALIZATION NOTE(filterCountVisibleOfTotal):
+# %1$S=number of matching filters, %2$S=total number of filters
+filterCountVisibleOfTotal=%1$S of %2$S
+## LOCALIZATION NOTE(filterCountItems):
+## Semicolon-separated list of singular and plural forms.
+## See: https://developer.mozilla.org/en/docs/Localization_and_Plurals
+## #1 is the count of items in the list.
+filterCountItems=#1 item; #1 items
+# for junk mail logging / mail filter logging
+# LOCALIZATION NOTE(junkLogDetectStr)
+# %1$S=author, %2$S=subject, %3$S=date
+junkLogDetectStr=Detected junk message from %1$S - %2$S at %3$S
+# LOCALIZATION NOTE(logMoveStr)
+# %1$S=message id, %2$S=folder URI
+logMoveStr=moved message id = %1$S to %2$S
+# LOCALIZATION NOTE(logCopyStr)
+# %1$S=message id, %2$S=folder URI
+logCopyStr=copied message id = %1$S to %2$S
+# LOCALIZATION NOTE(filterLogLine):
+# %1$S=timestamp, %2$S=log message
+filterLogLine=[%1$S] %2$S
+# LOCALIZATION NOTE(filterMessage):
+# %1$S=filter name, %1$S=log message
+filterMessage=Message from filter “%1$S”: %2$S
+# LOCALIZATION NOTE(filterLogDetectStr)
+# %1$S=filter name %2$S=author, %3$S=subject, %4$S=date
+filterLogDetectStr=Applied filter “%1$S” to message from %2$S - %3$S at %4$S
+filterMissingCustomAction=Missing Custom Action
+filterAction2=priority changed
+filterAction3=deleted
+filterAction4=marked as read
+filterAction5=thread killed
+filterAction6=thread watched
+filterAction7=starred
+filterAction8=tagged
+filterAction9=replied
+filterAction10=forwarded
+filterAction11=execution stopped
+filterAction12=deleted from POP3 server
+filterAction13=left on POP3 server
+filterAction14=junk score
+filterAction15=body fetched from POP3 server
+filterAction16=copied to folder
+filterAction17=tagged
+filterAction18=ignored subthread
+filterAction19=marked as unread
+# LOCALIZATION NOTE(filterAutoNameStr)
+# %1$S=Header or item to match, e.g. "From", "Tag", "Age in days", etc.
+# %2$S=Operator, e.g. "Contains", "is", "is greater than", etc.
+# %3$S=Value, e.g. "Steve Jobs", "Important", "42", etc.
+filterAutoNameStr=%1$S %2$S: %3$S
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/folderProps.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/folderProps.dtd
new file mode 100644
index 0000000000..61e8b4e9a7
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/folderProps.dtd
@@ -0,0 +1,70 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY folderProps.windowtitle.label "Properties">
+
+<!ENTITY generalInfo.label "General Information">
+<!ENTITY folderRebuildSummaryFileTip2.label "Rebuild Summary File Index">
+<!ENTITY folderRebuildSummaryFile2.label "Repair Folder">
+<!ENTITY folderRebuildSummaryFile2.accesskey "R">
+<!ENTITY folderRebuildSummaryFile.explanation "Sometimes the folder index (.msf) file becomes damaged and messages may appear missing or deleted messages continue showing; repairing the folder may fix these issues.">
+<!ENTITY folderIncludeInGlobalSearch.label "Include messages in this folder in Global Search results">
+<!ENTITY folderIncludeInGlobalSearch.accesskey "G">
+
+<!ENTITY retention.label "Retention Policy">
+<!ENTITY retentionUseAccount.label "Use my account settings">
+<!ENTITY retentionUseAccount.accesskey "U">
+<!ENTITY daysOld.label "days old">
+<!ENTITY message.label "messages">
+<!ENTITY retentionCleanup.label "To recover disk space, old messages can be permanently deleted.">
+<!ENTITY retentionCleanupImap.label "To recover disk space, old messages can be permanently deleted, both local copies and originals on the remote server.">
+<!ENTITY retentionCleanupPop.label "To recover disk space, old messages can be permanently deleted, including originals on the remote server.">
+<!ENTITY retentionDeleteMsg.label "Delete messages more than">
+<!ENTITY retentionDeleteMsg.accesskey "m">
+<!ENTITY retentionKeepAll.label "Don’t delete any messages">
+<!ENTITY retentionKeepAll.accesskey "A">
+<!ENTITY retentionKeepRecent.label "Delete all but the most recent">
+<!ENTITY retentionKeepRecent.accesskey "l">
+<!ENTITY retentionApplyToFlagged.label "Always keep starred messages">
+<!ENTITY retentionApplyToFlagged.accesskey "e">
+
+<!ENTITY folderSynchronizationTab.label "Synchronization">
+<!ENTITY folderCheckForNewMessages2.label "When getting new messages for this account, always check this folder">
+<!ENTITY folderCheckForNewMessages2.accesskey "c">
+
+<!ENTITY offlineFolder.check.label "Select this folder for offline use">
+<!ENTITY offlineFolder.check.accesskey "S">
+<!ENTITY offlineFolder.button.label "Download Now">
+<!ENTITY offlineFolder.button.accesskey "D">
+
+<!ENTITY selectofflineNewsgroup.check.label "Select this newsgroup for offline use">
+<!ENTITY selectofflineNewsgroup.check.accesskey "o">
+<!ENTITY offlineNewsgroup.button.label "Download Now">
+<!ENTITY offlineNewsgroup.button.accesskey "D">
+
+<!ENTITY folderProps.name.label "Name:">
+<!ENTITY folderProps.name.accesskey "N">
+<!ENTITY folderProps.color.label "Icon Colour:">
+<!ENTITY folderProps.color.accesskey "I">
+<!ENTITY folderProps.reset.tooltip "Restore default colour">
+<!ENTITY folderProps.location.label "Location:">
+<!ENTITY folderProps.location.accesskey "L">
+
+<!ENTITY folderSharingTab.label "Sharing">
+<!ENTITY privileges.button.label "Privileges…">
+<!ENTITY privileges.button.accesskey "P">
+<!ENTITY permissionsDesc.label "You have the following permissions:">
+<!ENTITY folderOtherUsers.label "Others with access to this folder:">
+<!ENTITY folderType.label "Folder Type:">
+
+<!ENTITY folderQuotaTab.label "Quota">
+<!ENTITY folderQuotaUsage.label "Usage:">
+<!ENTITY folderQuotaStatus.label "Status:">
+
+<!ENTITY numberOfMessages.label "Number of messages:">
+<!-- LOCALIZATION NOTE: When the number of messages can't be determined, this string is displayed as the number -->
+<!ENTITY numberUnknown.label "unknown">
+<!ENTITY sizeOnDisk.label "Size on disk:">
+<!-- LOCALIZATION NOTE: When the size can't be determined, this string is displayed as the size -->
+<!ENTITY sizeUnknown.label "unknown">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/folderWidgets.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/folderWidgets.properties
new file mode 100644
index 0000000000..82465951dd
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/folderWidgets.properties
@@ -0,0 +1,12 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE(globalInbox)
+# %S=name of the Local folders account
+globalInbox=Global Inbox (%S)
+# LOCALIZATION NOTE(verboseFolderFormat): %1$S is folder name, %2$S is server name
+verboseFolderFormat=%1$S on %2$S
+chooseFolder=Choose Folder…
+chooseAccount=Choose Account…
+noFolders=No available folders
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/folderpane.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/folderpane.dtd
new file mode 100644
index 0000000000..047c50079d
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/folderpane.dtd
@@ -0,0 +1,7 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+<!ENTITY nameColumn.label "Name">
+<!ENTITY unreadColumn.label "Unread">
+<!ENTITY totalColumn.label "Total">
+<!ENTITY folderSizeColumn.label "Size">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/gloda.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/gloda.properties
new file mode 100644
index 0000000000..d769750fc8
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/gloda.properties
@@ -0,0 +1,175 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (*.facetNameLabel): These are the labels used to label the facet
+# displays in the global search facet display mechanism. They should be
+# compact descriptions of the facet type (e.g. "Folder", and don't need to
+# refer to the objects being faceted (e.g. "Message" or "Mail").
+
+# LOCALIZATION NOTE (*.includeLabel): The label to use for the included group
+# in the facet display. If not provided, we will fall back to
+# "glodaFacetView.facets.included.fallbackLabel".
+
+# LOCALIZATION NOTE (*.excludeLabel): The label to use for the excluded group
+# in the facet display. If not provided, we will fall back to
+# "glodaFacetView.facets.excluded.fallbackLabel".
+
+# LOCALIZATION NOTE (*.remainderLabel): The label to use for the remaining items
+# that are neither part of the included group or the excluded group in the
+# facet display. If not provided, we will fall back to
+# "glodaFacetView.facets.remainder.fallbackLabel".
+
+# LOCALIZATION NOTE (*.mustMatchLabel): The label to use for the popup menu
+# to indicate that the results should be restricted to messages which match
+# a particular value. If not provided, we will fall back to
+# "glodaFacetView.facets.mustMatch.fallbackLabel". #1, if present, is
+# replaced by the value of the facet (name, folder, mailing list, etc.)
+
+# LOCALIZATION NOTE (*.cantMatchLabel): The label to use for the popup menu
+# to indicate that the results should be restricted to messages which match
+# a particular value. If not provided, we will fall back to
+# "glodaFacetView.facets.cantMatch.fallbackLabel". #1, if present, is
+# replaced by the value of the facet (name, folder, mailing list, etc.)
+
+# LOCALIZATION NOTE (*.mayMatchLabel): The label to use for the popup menu
+# to indicate that the results should no longer be restricted relative to
+# this particular facet value. If not provided, we will fall back to
+# "glodaFacetView.facets.mayMatch.fallbackLabel". #1, if present, is
+# replaced by the value of the facet (name, folder, mailing list, etc.)
+
+# LOCALIZATION NOTE (*.mustMatchSomeLabel): The label to use for the popup menu
+# to indicate that the results should be restricted to messages which have
+# _some_ value (e.g. at least one tag is set). If not provided, we will fall
+# back to "glodaFacetView.facets.mustMatchSome.fallbackLabel". #1, if present,
+# is replaced by the value of the facet (name, folder, mailing list, etc.)
+
+# LOCALIZATION NOTE (*.mustMatchNoneLabel): The label to use for the popup menu
+# to indicate that the results should be restricted to messages which have _no_
+# value (e.g. no tags are set). If not provided, we will fall back to
+# "glodaFacetView.facets.mustMatchNoneLabel.fallbackLabel". #1, if present, is
+# replaced by the value of the facet (name, folder, mailing list, etc.)
+
+# LOCALIZATION NOTE (*.mayMatchAnyLabel): The label to use for the popup menu
+# to indicate that the results should not be restricted to messages which have
+# any or no value (e.g. no requirements on any tags are set). If not provided,
+# we will fall back to "glodaFacetView.facets.mayMatchAnyLabel.fallbackLabel".
+# #1, if present, is replaced by the value of the facet (name, folder, mailing
+# list, etc.)
+
+# LOCALIZATION NOTE (gloda.message.attr.account.*): Stores the account in which
+# a message's folder is located.
+gloda.message.attr.account.facetNameLabel=Account
+gloda.message.attr.account.includeLabel=stored in any of:
+gloda.message.attr.account.excludeLabel=not stored in:
+gloda.message.attr.account.remainderLabel=other accounts:
+gloda.message.attr.account.mustMatchLabel=must be in #1
+gloda.message.attr.account.cantMatchLabel=can’t be in #1
+
+# LOCALIZATION NOTE (gloda.message.attr.folder.*): Stores the message folder in
+# which the message is stored.
+gloda.message.attr.folder.facetNameLabel=Folder
+gloda.message.attr.folder.includeLabel=stored in any of:
+gloda.message.attr.folder.excludeLabel=not stored in:
+gloda.message.attr.folder.remainderLabel=other folders:
+gloda.message.attr.folder.mustMatchLabel=must be in #1
+gloda.message.attr.folder.cantMatchLabel=can’t be in #1
+
+# LOCALIZATION NOTE (gloda.message.attr.fromMe.*): Stores everyone involved
+# with the message. This means from/to/cc/bcc.
+gloda.message.attr.fromMe.facetNameLabel=From Me
+
+# LOCALIZATION NOTE (gloda.message.attr.toMe.*): Stores everyone involved
+# with the message. This means from/to/cc/bcc.
+gloda.message.attr.toMe.facetNameLabel=To Me
+
+# LOCALIZATION NOTE (gloda.message.attr.involves.*): Stores everyone involved
+# with the message. This means from/to/cc/bcc.
+gloda.message.attr.involves.facetNameLabel=People
+gloda.message.attr.involves.includeLabel=involving any of:
+gloda.message.attr.involves.excludeLabel=not involving:
+gloda.message.attr.involves.remainderLabel=other participants:
+gloda.message.attr.involves.mustMatchLabel=must involve #1
+gloda.message.attr.involves.cantMatchLabel=can’t involve #1
+
+# LOCALIZATION NOTE (gloda.message.attr.date.*): Stores the date of the message.
+# Thunderbird normally stores the date the message claims it was composed
+# according to the "Date" header. This is not the same as when the message
+# was sent or when it was eventually received by the user. In the future we
+# may change this to be one of the other dates, but not anytime soon.
+gloda.message.attr.date.facetNameLabel=Date
+
+# LOCALIZATION NOTE (gloda.message.attr.attachmentTypes.*): Stores the list of
+# MIME types (ex: image/png, text/plain) of real attachments (not just part of
+# the message content but explicitly named attachments) on the message.
+# Although we hope to be able to provide localized human-readable explanations
+# of the MIME type (ex: "PowerPoint document"), I don't know if that is going
+# to happen.
+gloda.message.attr.attachmentTypes.facetNameLabel=Attachments
+
+# LOCALIZATION NOTE (gloda.message.attr.mailing-list.*): Stores the mailing
+# lists detected in the message. This will normally be the e-mail address of
+# the mailing list and only be detected in messages received from the mailing
+# list. Extensions may contribute additional detected mailing-list-like
+# things.
+gloda.message.attr.mailing-list.facetNameLabel=Mailing List
+gloda.message.attr.mailing-list.noneLabel=None
+gloda.message.attr.mailing-list.includeLabel=received on any of:
+gloda.message.attr.mailing-list.excludeLabel=not received on any of:
+gloda.message.attr.mailing-list.remainderLabel=other mailing lists:
+gloda.message.attr.mailing-list.mustMatchLabel=must be in #1
+gloda.message.attr.mailing-list.cantMatchLabel=can’t be in #1
+gloda.message.attr.mailing-list.mustMatchSomeLabel=must be in a mailing list
+gloda.message.attr.mailing-list.mustMatchNoneLabel=can’t be in a mailing list
+
+# LOCALIZATION NOTE (gloda.message.attr.tag.*): Stores the tags applied to the
+# message. Notably, gmail's labels are not currently exposed via IMAP and we
+# do not do anything clever with gmail, so this is independent of gmail labels
+# This may change in the future, but it's a safe bet it's not happening on
+# Thunderbird's side prior to 3.0.
+gloda.message.attr.tag.facetNameLabel=Tags
+gloda.message.attr.tag.noneLabel=None
+gloda.message.attr.tag.includeLabel=tagged any of:
+gloda.message.attr.tag.excludeLabel=not tagged:
+gloda.message.attr.tag.remainderLabel=other tags:
+gloda.message.attr.tag.mustMatchLabel=must be tagged #1
+gloda.message.attr.tag.cantMatchLabel=can’t be tagged #1
+gloda.message.attr.tag.mustMatchSomeLabel=must be tagged
+gloda.message.attr.tag.mustMatchNoneLabel=can’t be tagged
+
+# LOCALIZATION NOTE (gloda.message.attr.star.*): Stores whether the message is
+# starred or not, as indicated by a pretty star icon. In the past, the icon
+# used to be a flag. The IMAP terminology continues to be "flagged".
+gloda.message.attr.star.facetNameLabel=Starred
+
+# LOCALIZATION NOTE (gloda.message.attr.read.*): Stores whether the user has
+# read the message or not.
+gloda.message.attr.read.facetNameLabel=Read
+
+# LOCALIZATION NOTE (gloda.message.attr.repliedTo.*): Stores whether we believe
+# the user has ever replied to the message. We normally show a little icon in
+# the thread pane when this is the case.
+gloda.message.attr.repliedTo.facetNameLabel=Replied To
+
+# LOCALIZATION NOTE (gloda.message.attr.forwarded.*): Stores whether we believe
+# the user has ever forwarded the message. We normally show a little icon in
+# the thread pane when this is the case.
+gloda.message.attr.forwarded.facetNameLabel=Forwarded
+
+# LOCALIZATION NOTE (gloda.mimetype.category.*.label): Map categories of MIME
+# types defined in MimeTypeCategories.jsm to labels.
+# LOCALIZATION NOTE (gloda.mimetype.category.archives.label): Archive is
+# referring to things like zip files, tar files, tar.gz files, etc.
+gloda.mimetype.category.archives.label=Archives
+gloda.mimetype.category.documents.label=Documents
+gloda.mimetype.category.images.label=Images
+# LOCALIZATION NOTE (gloda.mimetype.category.media.label): Media is meant to
+# encompass both audio and video. This is because video and audio streams are
+# frequently stored in the same type of container and we cannot rely on the
+# sending e-mail client to have been clever enough to figure out what was
+# really in the file. So we group them together.
+gloda.mimetype.category.media.label=Media (Audio, Video)
+gloda.mimetype.category.pdf.label=PDF Files
+# LOCALIZATION NOTE (gloda.mimetype.category.other.label): Other is the category
+# for MIME types that we don't really know what it is.
+gloda.mimetype.category.other.label=Other
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/glodaComplete.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/glodaComplete.properties
new file mode 100644
index 0000000000..fec860fec6
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/glodaComplete.properties
@@ -0,0 +1,19 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (glodaComplete.messagesTagged.label): The label used
+# in the autocomplete widget to refer to a query for all messages tagged
+# by a particular tag (replacing #1).
+glodaComplete.messagesTagged.label=Messages tagged: #1
+
+# LOCALIZATION NOTE (glodaComplete.messagesMentioning.label): The label used
+# in the autocomplete widget to refer to a search for all messages mentioning
+# a particular word (replacing #1).
+glodaComplete.messagesMentioning.label=Messages mentioning: #1
+
+# LOCALIZATION NOTE (glodaComplete.messagesWithMany.label): The label used
+# in the autocomplete widget to refer to a search for all messages mentioning
+# a set of words, or a phrase containing multiple words (e.g. "red pepper")
+# We use the same words in en-US, but maybe that's not always true.
+glodaComplete.messagesMentioningMany.label=Messages mentioning: #1
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/glodaFacetView.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/glodaFacetView.dtd
new file mode 100644
index 0000000000..af3ff4a8b7
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/glodaFacetView.dtd
@@ -0,0 +1,29 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- LOCALIZATION NOTE (glodaFacetView.filters.label): Label at the top of the
+ faceting sidebar. Serves as a header both for the checkboxes under it as
+ well for labeled facets with multiple options. -->
+<!ENTITY glodaFacetView.filters.label "Filters">
+
+<!-- LOCALIZATION NOTE (glodaFacetView.loading.label): Label that appears when
+ the search results take a long time to appear. -->
+<!ENTITY glodaFacetView.loading.label "Searching&#8230;">
+
+<!-- LOCALIZATION NOTE (glodaFacetView.empty.label): Label that appears when
+ there are no results that match the search query. -->
+<!ENTITY glodaFacetView.empty.label "No messages match your search">
+
+<!-- LOCALIZATION NOTE (glodaFacetView.pageMore.label): Label at the bottom
+ of the results list to show more hits. -->
+<!ENTITY glodaFacetView.pageMore.label "More &#187;">
+
+<!-- LOCALIZATION NOTE(glodaFacetView.results.message.openEmailAsList.label2): The
+ label for the button/link that causes us to display all of the emails in
+ the active set in a new thread pane display tab. -->
+<!ENTITY glodaFacetView.openEmailAsList.label "Show results as list">
+
+<!-- LOCALIZATION NOTE(glodaFacetView.results.message.openEmailAsList.tooltip):
+ The tooltip to display when hovering over the openEmailAsList label. -->
+<!ENTITY glodaFacetView.openEmailAsList.tooltip "Show all of the email messages in the active set in a new tab">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/glodaFacetView.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/glodaFacetView.properties
new file mode 100644
index 0000000000..504d5af5c8
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/glodaFacetView.properties
@@ -0,0 +1,171 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (glodaFacetView.tab.query.label):
+# The tab title to display for tabs that are based on a gloda (global database)
+# query or collection rather than a user search. At some point we might try
+# and explain what the query/collection is in automatic fashion, but not today.
+glodaFacetView.tab.query.label=Search
+
+# LOCALIZATION NOTE (glodaFacetView.tab.search.label):
+# The tab title to display for tabs with a new gloda (global database)
+# user search (rather than a query or collection) without a search string.
+# After the search has been started, we just display the search string entered
+# by the user.
+glodaFacetView.tab.search.label=Search
+
+# LOCALIZATION NOTE(glodaFacetView.search.label2):
+# The heading for the search page.
+# A short description of user's search query will be appended.
+glodaFacetView.search.label2=Results for:
+
+# LOCALIZATION NOTE(glodaFacetView.constraints.query.fulltext.label):
+# The label to display to describe when our base query was a fulltext search
+# across messages. The value is displayed following the label.
+glodaFacetView.constraints.query.fulltext.label=Searching for #1
+glodaFacetView.constraints.query.fulltext.andJoinWord=and
+glodaFacetView.constraints.query.fulltext.orJoinWord=or
+
+# LOCALIZATION NOTE(glodaFacetView.constraints.query.initial):
+# The label to display to describe when our base query is not a full-text
+# search. Additional labels are appended describing each constraint.
+glodaFacetView.constraints.query.initial=Searching for messages
+
+# LOCALIZATION NOTE(glodaFacetView.constraints.query.involves.label):
+# The label to display to describe when our base query was on messages
+# involving a given contact from the address book. The value is displayed
+# where the #1 is.
+glodaFacetView.constraints.query.involves.label=involving #1
+
+# LOCALIZATION NOTE(glodaFacetView.constraints.query.contact.label):
+# The label to display to describe when our base query was on messages
+# tagged with a specific tag. The tag is displayed following the label.
+glodaFacetView.constraints.query.tagged.label=tagged:
+
+
+# LOCALIZATION NOTE (glodaFacetView.facets.mode.top.listAllLabel): The label to
+# use when we are only displaying the top entries for a facet. When the
+# label is clicked on, it results in us displaying all of the values for that
+# facet. The value "#1" (if present) is replaced with the total number of
+# values that will be displayed (rather than the number currently hidden).
+# This string supports pluralization. See
+# https://developer.mozilla.org/en/Localization_and_Plurals for details on
+# how this stuff works.
+glodaFacetView.facets.mode.top.listAllLabel=List all #1;List all #1
+
+# LOCALIZATION NOTE (glodaFacetView.facets.included.fallbackLabel): The label to
+# use for groups in a facet that have been explicitly included by the user if
+# there is no explicit attribute "includeLabel" defined. (The explicit label
+# would be named "gloda.message.attr.ATTRIBUTE.includeLabel".)
+glodaFacetView.facets.included.fallbackLabel=including any of:
+# LOCALIZATION NOTE (glodaFacetView.facets.excluded.fallbackLabel): The label to
+# use for groups in a facet that have been explicitly excluded by the user if
+# there is no explicit attribute "excludeLabel" defined. (The explicit label
+# would be named "gloda.message.attr.ATTRIBUTE.excludeLabel".)
+glodaFacetView.facets.excluded.fallbackLabel=excluding:
+# LOCALIZATION NOTE (glodaFacetView.facets.remainder.fallbackLabel): The label
+# to use for groups in a facet that are neither part of the included group or
+# the excluded group if there is no explicit attribute "remainderLabel"
+# defined. (The explicit label would be named
+# "gloda.message.attr.ATTRIBUTE.remainderLabel".)
+glodaFacetView.facets.remainder.fallbackLabel=other:
+
+# LOCALIZATION NOTE (glodaFacetView.facets.mustMatchLabel.fallbackLabel): The label
+# to use to restrict a facet by a particular value if there is no explicit
+# attribute "mustMatchLabel" defined. (The explicit label would be named
+# "gloda.message.attr.ATTRIBUTE.mustMatchLabel".)
+glodaFacetView.facets.mustMatchLabel.fallbackLabel=must match #1
+glodaFacetView.facets.mustMatchNoneLabel.fallbackLabel=can’t have a value
+
+# LOCALIZATION NOTE (glodaFacetView.facets.cantMatchLabel.fallbackLabel): The label
+# to use to restrict a facet by the absence of a particular value if there is
+# no explicit attribute "cantMatchLabel" defined. (The explicit label would be
+# named "gloda.message.attr.ATTRIBUTE.cantMatchLabel".)
+glodaFacetView.facets.cantMatchLabel.fallbackLabel=can’t match #1
+glodaFacetView.facets.mustMatchSomeLabel.fallbackLabel=must have a value
+
+# LOCALIZATION NOTE (glodaFacetView.facets.mayMatchLabel.fallbackLabel): The label
+# to use to undo the restriction of a facet by a particular value if there is
+# no explicit attribute "mayMatchLabel" defined. (The explicit label would be
+# named "gloda.message.attr.ATTRIBUTE.mayMatchLabel".)
+glodaFacetView.facets.mayMatchLabel.fallbackLabel=remove constraint
+glodaFacetView.facets.mayMatchAnyLabel.fallbackLabel=remove constraint
+
+# LOCALIZATION NOTE (glodaFacetView.facets.noneLabel): The text to display when
+# a facet needs to indicate that an attribute omitted a value or was otherwise
+# empty.
+glodaFacetView.facets.noneLabel=None
+
+# LOCALIZATION NOTE (glodaFacetView.facets.filter.attachmentTypes.allLabel):
+# The label to use when all types of attachments are being displayed.
+glodaFacetView.facets.filter.attachmentTypes.allLabel=Any Kind
+
+# LOCALIZATION NOTE (glodaFacetView.result.message.fromLabel): Used in the
+# faceted search message display to indicate the author of a message.
+# An example usage is "from: Bob".
+glodaFacetView.result.message.fromLabel=from:
+
+# LOCALIZATION NOTE (glodaFacetView.result.message.toLabel): Used in the
+# faceted search message display to indicate the recipients of a message.
+# An example usage is "to: Bob, Chuck, Don".
+glodaFacetView.result.message.toLabel=to:
+
+# LOCALIZATION NOTE (glodaFacetView.result.message.noSubject): Used in the
+# faceted search message display to act as a click target for messages with
+# no subject.
+glodaFacetView.result.message.noSubject=(no subject)
+
+# LOCALIZATION NOTE(glodaFacetView.results.header.countLabel):
+# This label is displayed above the list of result messages; it tells the user
+# how many messages we are displaying in the list out of the total number of
+# messages in the active set (the set of messages remaining after the
+# application of the facet constraints.)
+# The goal of the various sub-parts here is to make a label along the lines of
+# "M of N". Because there are two numbers, this is split into two parts,
+# 'NMessages' for what in English is just the first number and 'ofN' for the
+# "of N" part. We then use 'grouping' to decide how to combine the two. This
+# was suggested by Rimas Kudelis.
+# LOCALIZATION NOTE(glodaFacetView.results.header.countLabel.NMessages):
+# The first part of the countLabel string (although you can change the order
+# in 'grouping'). This is pluralized using the mechanism described at
+# https://developer.mozilla.org/en/Localization_and_Plurals. We replace
+# "#1" with the number of messages being shown in the result list.
+glodaFacetView.results.header.countLabel.NMessages=#1;#1
+# LOCALIZATION NOTE(glodaFacetView.results.header.countLabel.ofN):
+# The second part of the countLabel string (although you can change the order
+# in 'grouping'). This is pluralized using the mechanism described at
+# https://developer.mozilla.org/en/Localization_and_Plurals. We replace
+# "#1" with the total number of messagse in the active set.
+glodaFacetView.results.header.countLabel.ofN=of #1;of #1
+# LOCALIZATION NOTE(glodaFacetView.results.header.countLabel.grouping):
+# Combines the pluralized
+# "glodaFacetView.results.header.countLabel.NMessages" string (as #1) with
+# the pluralized "glodaFacetView.results.header.countLabel.ofN" (as #2)
+# to make a single label.
+glodaFacetView.results.header.countLabel.grouping=#1 #2
+
+glodaFacetView.results.message.timeline.label=Toggle timeline
+# LOCALIZATION NOTE(glodaFacetView.results.message.sort.relevance2):
+# a clickable label causing the sort to be done by most relevant messages first.
+glodaFacetView.results.message.sort.relevance2=Sort by Relevance
+# LOCALIZATION NOTE(glodaFacetView.results.message.sort.date2):
+# a clickable label causing the sort to be done by most recent messages first.
+glodaFacetView.results.message.sort.date2=Sort by Date
+
+# LOCALIZATION NOTE(glodaFacetView.results.message.recipientSeparator): This is
+# the string in between the names of recipients (see
+# glodaFacetView.results.message.andOthers for more information). The \u0020
+# character is a Unicode space character, which is needed as otherwise the
+# trailing whitespace is trimmed before it gets to the code.
+glodaFacetView.results.message.recipientSeparator=,\u0020
+
+# LOCALIZATION NOTE(glodaFacetView.results.message.andOthers):
+# When a message has too many recipients, we only show the first few and then
+# display this label to express how many are not displayed. So if a message
+# has 5 recipients, we might only show the first 3, and then use this label
+# to indicate that there are 2 that are not displayed. This string can be
+# pluralized; see https://developer.mozilla.org/en/Localization_and_Plurals
+# for details on how to do that. Note that in English, we use the "serial
+# comma", but other languages may not need a leading separator there.
+glodaFacetView.results.message.andOthers=, and #1 other;, and #1 others
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/imAccountWizard.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/imAccountWizard.dtd
new file mode 100644
index 0000000000..a7d269a981
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/imAccountWizard.dtd
@@ -0,0 +1,32 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY windowTitle.label "Chat Account Wizard">
+
+<!ENTITY accountProtocolTitle.label "Chat network">
+<!ENTITY accountProtocolInfo.label "Please choose the network of your chat account.">
+<!ENTITY accountProtocolField.label "Network:">
+<!ENTITY accountProtocolGetMore.label "Get more…">
+
+<!ENTITY accountUsernameTitle.label "Username">
+<!ENTITY accountUsernameDuplicate.label "This account is already configured!">
+
+<!ENTITY accountPasswordTitle.label "Password">
+<!ENTITY accountPasswordInfo.label "Please enter your password in the box below.">
+<!ENTITY accountPasswordField.label "Password:">
+<!ENTITY accountPasswordManager.label "The password entered here will be stored in the Password Manager. Leave this box empty if you want to be prompted for your password each time this account is connected.">
+
+<!ENTITY accountAdvancedTitle.label "Advanced Options">
+<!ENTITY accountAdvancedInfo.label "Feel free to skip this step if you want to.">
+<!ENTITY accountAdvanced.newMailNotification.label "Notify on new Mail">
+<!ENTITY accountAliasGroupbox.caption "Local Alias">
+<!ENTITY accountAliasField.label "Alias:">
+<!ENTITY accountAliasInfo.label "This will only be displayed in your conversations when you talk, remote contacts won’t see it.">
+<!ENTITY accountProxySettings.caption "Proxy Settings">
+<!ENTITY accountProxySettings.change.label "Change…">
+<!ENTITY accountProxySettings.change.accessKey "C">
+
+<!ENTITY accountSummaryTitle.label "Summary">
+<!ENTITY accountSummaryInfo.label "A summary of the information you entered is displayed below. Please check it before the account is created.">
+<!ENTITY accountSummary.connectNow.label "Connect this account now.">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/imAccounts.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/imAccounts.properties
new file mode 100644
index 0000000000..d97b530006
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/imAccounts.properties
@@ -0,0 +1,63 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (protoOptions):
+# %S is replaced by the name of a protocol
+protoOptions=%S Options
+accountUsername=Username:
+# LOCALIZATION NOTE (accountColon):
+# This string is used to append a colon after the label of each
+# option. It's localizable so that the typography can be adapted.
+accountColon=%S:
+# LOCALIZATION NOTE (accountUsernameInfo):
+# %S is replaced by the name of a protocol
+accountUsernameInfo=Please enter the username for your %S account.
+# LOCALIZATION NOTE (accountUsernameInfoWithDescription):
+# %1$S is a hint for the expected format of the username
+# %2$S is the name of a protocol
+accountUsernameInfoWithDescription=Please enter the username (%1$S) for your %2$S account.
+
+# LOCALIZATION NOTE (account.connection.error):
+# %S is the error message.
+account.connection.error=Error: %S
+# LOCALIZATION NOTE (account.connection.errorUnknownPrpl)
+# %S is the id (not very user friendly; hence the quotes) of the missing plugin.
+account.connection.errorUnknownPrpl=No ‘%S’ protocol plugin.
+account.connection.errorEnteringPasswordRequired=Entering a password is required to connect this account.
+account.connection.errorCrashedAccount=A crash occurred while connecting this account.
+# LOCALIZATION NOTE (account.connection.progress):
+# %S is a message indicating progress of the connection process
+account.connection.progress=Connecting: %S…
+account.connecting=Connecting…
+account.connectedForSeconds=Connected for a few seconds.
+# LOCALIZATION NOTE (account.connectedFor{Double,Single},
+# account.reconnectIn{Double,Single}):
+# Each pair of %S is a number followed by a unit. The units are
+# already localized in a downloads.properties file of the toolkit.
+account.connectedForDouble=Connected for %1$S %2$S and %3$S %4$S.
+account.connectedForSingle=Connected for about %1$S %2$S.
+account.reconnectInDouble=Reconnection in %1$S %2$S and %3$S %4$S.
+account.reconnectInSingle=Reconnection in %1$S %2$S.
+
+requestAuthorizeTitle=Authorization request
+# LOCALIZATION NOTE (requestAuthorizeAllow, requestAuthorizeDeny):
+# the & symbol indicates the position of the character that should be
+# used as the accesskey for this button.
+requestAuthorizeAllow=&Allow
+requestAuthorizeDeny=&Deny
+# LOCALIZATION NOTE (requestAuthorizeText):
+# %S is a contact username.
+requestAuthorizeText=%S added you to his/her buddy list, do you want to allow him/her to see you?
+
+accountsManager.notification.button.accessKey=C
+accountsManager.notification.button.label=Connect Now
+accountsManager.notification.userDisabled.label=You have disabled automatic connections.
+accountsManager.notification.safeMode.label=Automatic Connection Settings have been ignored because the application is currently running in Safe-Mode.
+accountsManager.notification.startOffline.label=Automatic Connection Settings have been ignored because the application was started in Offline Mode.
+accountsManager.notification.crash.label=The last run exited unexpectedly while connecting. Automatic Connections have been disabled to give you an opportunity to Edit your Settings.
+# LOCALIZATION NOTE (accountsManager.notification.singleCrash.label): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of accounts that are suspected to have caused a crash.
+accountsManager.notification.singleCrash.label=A previous run exited unexpectedly while connecting a new or edited account. It has not been connected so that you can Edit its Settings.;A previous run exited unexpectedly while connecting #1 new or edited accounts. They have not been connected so that you can Edit their Settings.
+accountsManager.notification.other.label=Automatic connection has been disabled.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/imapMsgs.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/imapMsgs.properties
new file mode 100644
index 0000000000..5304a7f5b4
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/imapMsgs.properties
@@ -0,0 +1,268 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the imap code to display progress/status/error messages
+#
+
+#LOCALIZATION NOTE(imapAlertDialogTile): Do not translate the word "%S"
+# below. Place the word %S where the account name should appear.
+imapAlertDialogTitle=Alert for account %S
+
+# Status - opening folder
+imapStatusSelectingMailbox=Opening folder %S…
+
+# Status - create folder
+imapStatusCreatingMailbox=Creating folder…
+
+# Status - deleting a folder
+# LOCALIZATION NOTE (imapStatusDeletingMailbox): The "%S" below should not be translated.
+# Instead, insert "%S" in your translation where you wish to display the name
+# of the folder being deleted.
+imapStatusDeletingMailbox=Deleting folder %S…
+
+# Status - renaming mailbox
+# LOCALIZATION NOTE (imapStatusRenamingMailbox): The "%S" below should not be translated.
+# Instead, insert "%S" in your translation where you wish to display the name
+# of the folder being renamed.
+imapStatusRenamingMailbox=Renaming folder %S…
+
+# Status - looking for mailboxes
+imapStatusLookingForMailbox=Looking for folders…
+
+# Status - subscribing to mailbox
+# LOCALIZATION NOTE (imapStatusSubscribeToMailbox): The "%S" below should not be translated.
+# Instead, insert "%S" in your translation where you wish to display the name
+# of the folder being subscribed to.
+imapStatusSubscribeToMailbox=Subscribing to folder %S…
+
+# Status - unsubscribing from mailbox
+# LOCALIZATION NOTE (imapStatusUnsubscribeMailbox): The "%S" below should not be translated.
+# Instead, insert "%S" in your translation where you wish to display the name
+# of the folder being unsubscribed from.
+imapStatusUnsubscribeMailbox=Unsubscribing from folder %S…
+
+# Status - searching imap folder
+imapStatusSearchMailbox=Searching folder…
+
+# Status - closing a folder
+imapStatusCloseMailbox=Closing folder…
+
+# Status - compacting a folder
+imapStatusExpungingMailbox=Compacting folder…
+
+# Status - logging out
+imapStatusLoggingOut=Logging out…
+
+# Status - checking server capabilities
+imapStatusCheckCompat=Checking mail server capabilities…
+
+# Status - logging on
+imapStatusSendingLogin=Sending login information…
+
+# Status - auth logon
+imapStatusSendingAuthLogin=Sending login information…
+
+imapDownloadingMessage=Downloading message…
+
+# LOCALIZATION NOTE (imapGettingACLForFolder): Do not translate the word "ACL" below.
+imapGettingACLForFolder=Getting folder ACL…
+
+imapGettingServerInfo=Getting Server Configuration Info…
+
+imapGettingMailboxInfo=Getting Mailbox Configuration Info…
+
+imapEmptyMimePart=This body part will be downloaded on demand.
+
+# LOCALIZATION NOTE (imapReceivingMessageHeaders3): Do not translate the words "%1$S", "%2$S", and "%3$S" below.
+# Place the word %1$S in your translation where the number of the header being downloaded should appear.
+# Place the word %2$S in your translation where the total number of headers to be downloaded should appear.
+# Place the word %3$S in your translation where the name of the folder being processed should appear.
+# Note: The account name and separators (e.g. colon, space) are automatically added to the status message.
+# Example: "Joe's Account: Downloading message header 100 of 1000 in Drafts…"
+imapReceivingMessageHeaders3=Downloading message header %1$S of %2$S in %3$S…
+
+# LOCALIZATION NOTE (imapReceivingMessageFlags3): Do not translate the words "%1$S", "%2$S", and "%3$S" below.
+# Place the word %1$S in your translation where the number of the flag being downloaded should appear.
+# Place the word %2$S in your translation where the total number of flags to be downloaded should appear.
+# Place the word %3$S in your translation where the name of the folder being processed should appear.
+# Note: The account name and separators (e.g. colon, space) are automatically added to the status message.
+# Example: "Jim's Account: Downloading message flag 100 of 1000 in INBOX…"
+imapReceivingMessageFlags3=Downloading message flag %1$S of %2$S in %3$S…
+
+imapDeletingMessages=Deleting messages…
+
+imapDeletingMessage=Deleting message…
+
+# LOCALIZATION NOTE (imapMovingMessages): Do not translate the word "%S" below.
+# Place the word %S in your translation where the name of the folder should appear.
+imapMovingMessages=Moving messages to %S…
+
+# LOCALIZATION NOTE (imapMovingMessage): Do not translate the word "%S" below.
+# Place the word %S in your translation where the name of the folder should appear.
+imapMovingMessage=Moving message to %S…
+
+# LOCALIZATION NOTE (imapCopyingMessages): Do not translate the word "%S" below.
+# Place the word %S in your translation where the name of the folder should appear.
+imapCopyingMessages=Copying messages to %S…
+
+# LOCALIZATION NOTE (imapCopyingMessage): Do not translate the word "%S" below.
+# Place the word %S in your translation where the name of the folder should appear.
+imapCopyingMessage=Copying message to %S…
+
+# LOCALIZATION NOTE (imapFolderReceivingMessageOf3): Do not translate the words "%1$S", "%2$S", and "%3$S" below.
+# Place the word %1$S in your translation where the number of the message being downloaded should appear.
+# Place the word %2$S in your translation where the total number of messages to be downloaded should appear.
+# Place the word %3$S in your translation where the name of the folder being processed should appear.
+# Note: The account name and separators (e.g. colon, space) are automatically added to the status message.
+# Example: "Juan's Account: Downloading message 100 of 1000 in Sent…"
+imapFolderReceivingMessageOf3=Downloading message %1$S of %2$S in %3$S…
+
+# LOCALIZATION NOTE (imapDiscoveringMailbox): Do not translate the word "%S" below.
+# Place the word %S in your translation where the name of the folder should appear.
+imapDiscoveringMailbox=Found folder: %S
+
+# LOCALIZATION NOTE (imapEnterServerPasswordPrompt): Do not translate the words %1$S and %2$S below.
+# Place the word %1$S in your translation where the username should appear.
+# Place the word %2$S in your translation where the servername should appear.
+imapEnterServerPasswordPrompt=Enter your password for %1$S on %2$S:
+
+# LOCALIZATION NOTE (imapServerNotImap4): Do not translate the word "IMAP4" below.
+imapServerNotImap4=Mail server %S is not an IMAP4 mail server.
+
+# This is intentionally left blank.
+imapDone=
+
+# LOCALIZATION NOTE (imapEnterPasswordPromptTitleWithUsername): Do not translate the
+# word %1$S. Place the word %1$S where the user name should appear.
+imapEnterPasswordPromptTitleWithUsername=Enter your password for %1$S
+
+imapUnknownHostError=Failed to connect to server %S.
+imapOAuth2Error=Authentication failure while connecting to server %S.
+
+imapConnectionRefusedError=Could not connect to mail server %S; the connection was refused.
+
+imapNetTimeoutError=Connection to server %S timed out.
+
+imapTlsError=Non-overridable TLS error occurred. Handshake error or probably the TLS version or certificate used by server %S is incompatible.
+
+# Status - no messages to download
+imapNoNewMessages=There are no new messages on the server.
+
+imapDefaultAccountName=Mail for %S
+
+imapSpecialChar2=The %S character is reserved on this IMAP server. Please choose another name.
+
+imapPersonalSharedFolderTypeName=Personal Folder
+
+imapPublicFolderTypeName=Public Folder
+
+imapOtherUsersFolderTypeName=Other User’s Folder
+
+imapPersonalFolderTypeDescription=This is a personal mail folder. It is not shared.
+
+imapPersonalSharedFolderTypeDescription=This is a personal mail folder. It has been shared.
+
+imapPublicFolderTypeDescription=This is a public folder.
+
+imapOtherUsersFolderTypeDescription=This is a mail folder shared by the user ‘%S’.
+
+imapAclFullRights=Full Control
+
+imapAclLookupRight=Lookup
+
+imapAclReadRight=Read
+
+imapAclSeenRight=Set Read/Unread State
+
+imapAclWriteRight=Write
+
+imapAclInsertRight=Insert (Copy Into)
+
+imapAclPostRight=Post
+
+imapAclCreateRight=Create Subfolder
+
+imapAclDeleteRight=Delete Messages
+
+imapAclAdministerRight=Administer Folder
+
+imapServerDoesntSupportAcl=This server does not support shared folders.
+
+imapAclExpungeRight=Expunge
+
+imapServerDisconnected= Server %S has disconnected. The server may have gone down or there may be a network problem.
+
+# LOCALIZATION NOTE (autoSubscribeText): %1$S is the imap folder.
+imapSubscribePrompt=Would you like to subscribe to %1$S?
+
+imapServerDroppedConnection=Unable to connect to your IMAP server. You may have exceeded the maximum number \
+of connections to this server. If so, use the Advanced IMAP Server Settings dialog to \
+reduce the number of cached connections.
+
+# This will occur when a folder that has never been imap selected or opened
+# (left-clicked) is first right-clicked to access quota properties.
+imapQuotaStatusFolderNotOpen=Quota information is not available because the folder is not open.
+
+# The imap capability response reports that QUOTA is not supported.
+imapQuotaStatusNotSupported=This server does not support quotas.
+
+# The getqutaroot command succeeded but reported no quota information.
+imapQuotaStatusNoQuota2=This folder reports no quota information.
+
+# Folder properties were requested by the user (right-click) before the getquotaroot
+# command was sent.
+imapQuotaStatusInProgress=Quota information not yet available.
+
+# Out of memory
+imapOutOfMemory=Application is out of memory.
+
+# LOCALIZATION NOTE (imapCopyingMessageOf2): Do not translate the word "%S" below.
+# Place the word %3$S in your translation where the name of the destination folder should appear.
+# Place the word %1$S where the currently copying message should appear.
+# Place the word %2$S where the total number of messages should appear.
+imapCopyingMessageOf2=Copying message %1$S of %2$S to %3$S…
+
+# LOCALIZATION NOTE (imapMoveFolderToTrash): Do not translate the word %S below.
+# "%S" is the the name of the folder.
+imapMoveFolderToTrash=Are you sure you want to delete the folder ‘%S’?
+
+# LOCALIZATION NOTE (imapDeleteNoTrash): Do not translate the word %S below.
+# "%S" is the the name of the folder.
+imapDeleteNoTrash=Deleting this folder is not undoable and will delete all of the messages it contains, and its sub-folders. Are you sure you still want to delete the folder ‘%S’?
+
+imapDeleteFolderDialogTitle=Delete Folder
+
+imapDeleteFolderButtonLabel=&Delete Folder
+
+# LOCALIZATION NOTE (imapAuthChangeEncryptToPlainSSL): %S is the server hostname
+imapAuthChangeEncryptToPlainSSL=The IMAP 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 (imapAuthChangePlainToEncrypt): %S is the server hostname
+imapAuthChangePlainToEncrypt=The IMAP 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 (imapAuthChangeEncryptToPlainNoSSL): %S is the server hostname
+imapAuthChangeEncryptToPlainNoSSL=The IMAP 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 (imapAuthMechNotSupported): %S is the server hostname
+imapAuthMechNotSupported=The IMAP server %S does not support the selected authentication method. Please change the ‘Authentication method’ in the ‘Account Settings | Server settings’.
+
+# LOCALIZATION NOTE (imapAuthGssapiFailed): %S is the server hostname
+imapAuthGssapiFailed=The Kerberos/GSSAPI ticket was not accepted by the IMAP server %S. Please check that you are logged in to the Kerberos/GSSAPI realm.
+
+# LOCALIZATION NOTE (imapServerCommandFailed):
+# Place the word %1$S in your translation where the name of the account name should appear.
+# Place the word %2$S in your translation where the server response should appear.
+imapServerCommandFailed=The current command did not succeed. The mail server for account %1$S responded: %2$S
+
+# LOCALIZATION NOTE (imapFolderCommandFailed): Do not translate the word %S below.
+# Place the word %1$S in your translation where the name of the account should appear.
+# Place the word %2$S in your translation where the name of the folder should appear.
+# Place the word %3$S in your translation where the server response should appear.
+imapFolderCommandFailed=The current operation on ‘%2$S’ did not succeed. The mail server for account %1$S responded: %3$S
+
+# LOCALIZATION NOTE (imapServerAlert):
+# Place the word %1$S in your translation where the name of the account should appear.
+# Place the word %2$S in your translation where the alert from the server should appear.
+imapServerAlert=Alert from account %1$S: %2$S
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/importDialog.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/importDialog.dtd
new file mode 100644
index 0000000000..edc5167e6e
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/importDialog.dtd
@@ -0,0 +1,48 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!--
+LOCALIZATION NOTE : 'Communicator 4.x' is the used for previous versions of
+Netscape Communicator, Please translate using the brandname in respective
+languages for Netscape Communicator 4 releases.
+LOCALIZATION NOTE : Do not translate any of the occurrences of the word
+"&brandShortName;" below.
+-->
+
+<!ENTITY importDialog.windowTitle "Import">
+<!ENTITY importAll.label "Import Everything">
+<!ENTITY importAll.accesskey "E">
+<!ENTITY importMail.label "Mail">
+<!ENTITY importMail.accesskey "M">
+<!ENTITY importFeeds.label "Feed Subscriptions">
+<!ENTITY importFeeds.accesskey "d">
+<!ENTITY importAddressbook.label "Address Books">
+<!ENTITY importAddressbook.accesskey "A">
+<!ENTITY importSettings.label "Settings">
+<!ENTITY importSettings.accesskey "S">
+<!ENTITY importFilters.label "Filters">
+<!ENTITY importFilters.accesskey "F">
+
+<!ENTITY importTitle.label "&brandShortName; Import Wizard">
+<!ENTITY importShortDesc.label "Import Mail, Address Books, Settings, and Filters from other programs">
+
+<!ENTITY importDescription1.label "This wizard will import mail messages, address book entries, feed subscriptions, preferences, and/or filters from other mail programs and common address book formats into &brandShortName;.">
+<!ENTITY importDescription2.label "Once they have been imported, you will be able to access them from within &brandShortName;.">
+
+<!ENTITY selectDescription.label "Please select the type of file that you would like to import:">
+<!ENTITY selectDescriptionB.label "Please select an existing account or create a new account:">
+<!ENTITY selectDescription.accesskey "P">
+<!ENTITY acctName.label "Name:">
+<!ENTITY acctName.accesskey "N">
+<!ENTITY noModulesFound.label "No application or file to import data from was found.">
+
+<!ENTITY back.label "&lt; Back">
+<!ENTITY forward.label "Next &gt;">
+<!ENTITY finish.label "Finish">
+<!ENTITY cancel.label "Cancel">
+
+<!ENTITY select.label "or select the type of material to import:">
+
+<!ENTITY title.label "Title">
+<!ENTITY processing.label "Importing…">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/importMsgs.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/importMsgs.properties
new file mode 100644
index 0000000000..74cb329abf
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/importMsgs.properties
@@ -0,0 +1,304 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# The following are used by the import code to display status/error
+# and informational messages
+
+# Success message when no address books are found to import
+## @name IMPORT_NO_ADDRBOOKS
+## @loc None
+2000=No address books were found to import.
+
+# Error: Address book import not initialized
+## @name IMPORT_ERROR_AB_NOTINITIALIZED
+## @loc None
+2001=Unable to import address books: initialization error.
+
+# Error: Unable to create the import thread
+## @name IMPORT_ERROR_AB_NOTHREAD
+## @loc None
+2002=Unable to import address books: cannot create import thread.
+
+# Error: Unable to create the import thread
+## @name IMPORT_ERROR_GETABOOK
+## @loc None
+# LOCALIZATION NOTE (Error 2003): Do not translate the word "%S" below.
+2003=Error importing %S: unable to create address book.
+
+# Success message when no mailboxes are found to import
+## @name IMPORT_NO_MAILBOXES
+## @loc None
+2004=No mailboxes were found to import
+
+# Error: Mailbox import not initialized
+## @name IMPORT_ERROR_MB_NOTINITIALIZED
+## @loc None
+2005=Unable to import mailboxes, initialization error
+
+# Error: Unable to create the import thread
+## @name IMPORT_ERROR_MB_NOTHREAD
+## @loc None
+2006=Unable to import mailboxes, cannot create import thread
+
+# Error: Unable to create the proxy object for importing mailboxes
+## @name IMPORT_ERROR_MB_NOPROXY
+## @loc None
+2007=Unable to import mailboxes, cannot create proxy object for destination mailboxes
+
+# Error: Error creating destination mailboxes
+## @name IMPORT_ERROR_MB_FINDCHILD
+## @loc None
+# LOCALIZATION NOTE (Error 2008): Do not translate the word "%S" below.
+# Place %S in your translation where the name of the mailbox should appear.
+2008=Error creating destination mailboxes, cannot find mailbox %S
+
+# Error: Error creating destination mailboxes
+## @name IMPORT_ERROR_MB_CREATE
+## @loc None
+# LOCALIZATION NOTE (Error 2009): Do not translate the word "%S" below.
+# Place %S in your translation where the name of the mailbox should appear.
+2009=Error importing mailbox %S, unable to create destination mailbox
+
+# Error: No destination folder to import mailboxes
+## @name IMPORT_ERROR_MB_NODESTFOLDER
+## @loc None
+2010=Unable to create folder to import mail into
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC_START
+## @loc None
+2100=First Name
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2101=Last Name
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2102=Display Name
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2103=Nickname
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2104=Primary Email
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2105=Secondary Email
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2106=Work Phone
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2107=Home Phone
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2108=Fax Number
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2109=Pager Number
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2110=Mobile Number
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2111=Home Address
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2112=Home Address 2
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2113=Home City
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2114=Home State
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2115=Home Postal Code
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2116=Home Country
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2117=Work Address
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2118=Work Address 2
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2119=Work City
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2120=Work State
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2121=Work Postal Code
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2122=Work Country
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2123=Job Title
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2124=Department
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2125=Organization
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2126=Web Page 1
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2127=Web Page 2
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2128=Birth Year
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2129=Birth Month
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2130=Birth Day
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2131=Custom 1
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2132=Custom 2
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2133=Custom 3
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2134=Custom 4
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2135=Notes
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC_END
+## @loc None
+2136=Screen Name
+
+#Error strings
+ImportAlreadyInProgress=An import operation is currently in progress. Try again when the current import has finished.
+
+#Error strings for settings import
+ImportSettingsBadModule=Unable to load settings module
+ImportSettingsNotFound=Unable to find settings. Check to make sure the application is installed on this machine.
+ImportSettingsFailed=An error occurred while importing settings. Some, or all, of the settings may not have been imported.
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+ImportSettingsSuccess=Settings were imported from %S
+
+#Error string for mail import
+ImportMailBadModule=Unable to load mail import module
+ImportMailNotFound=Unable to find mail to import. Check to make sure the mail application is correctly installed on this machine.
+ImportEmptyAddressBook=Can’t import empty address book %S.
+# LOCALIZATION NOTE: Do not translate the word "%S" below.
+ImportMailFailed=An error occurred importing mail from %S
+# LOCALIZATION NOTE: Do not translate the word "%S" below.
+ImportMailSuccess=Mail was successfully imported from %S
+
+# Error string for address import
+ImportAddressBadModule=Unable to load address book import module.
+ImportAddressNotFound=Unable to find any address books to import. Check to make sure the selected application or format is correctly installed on this machine.
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+ImportAddressFailed=An error occurred importing addresses from %S.
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+ImportAddressSuccess=Addresses successfully imported from %S.
+
+# Error string for filters import
+ImportFiltersBadModule=Unable to load filters import module.
+# LOCALIZATION NOTE : The %S will get replaced by the name of the import module.
+ImportFiltersFailed=An error occurred importing filters from %S.
+# LOCALIZATION NOTE : The %S will get replaced by the name of the import module.
+ImportFiltersSuccess=Filters successfully imported from %S.
+# LOCALIZATION NOTE : The %S will get replaced by the name of the import module.
+ImportFiltersPartial=Filters partially imported from %S. Warnings below:
+
+#Progress strings
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+MailProgressMeterText=Converting mailboxes from %S
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+AddrProgressMeterText=Converting address books from %S
+
+#Import file dialog strings
+ImportSelectSettings=Select settings file
+ImportSelectMailDir=Select mail directory
+ImportSelectAddrDir=Select address book directory
+ImportSelectAddrFile=Select address book file
+
+# Folder Names for imported Mail
+DefaultFolderName=Imported Mail
+# LOCALIZATION NOTE: Do not translate the word "%S" below.
+ImportModuleFolderName=%S Import
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/joinChat.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/joinChat.dtd
new file mode 100644
index 0000000000..4b830142a5
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/joinChat.dtd
@@ -0,0 +1,10 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY joinChatWindow.title "Join chat">
+<!ENTITY name.label "Room">
+<!ENTITY optional.label "(optional)">
+<!ENTITY account.label "Account">
+<!ENTITY autojoin.label "Auto-join this Chat Room">
+<!ENTITY autojoin.accesskey "A">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/junkLog.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/junkLog.dtd
new file mode 100644
index 0000000000..dba7e67dbc
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/junkLog.dtd
@@ -0,0 +1,10 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY adaptiveJunkLog.title "Adaptive Junk Mail Log">
+<!ENTITY adaptiveJunkLogInfo.label "Log of adaptive junk mail control activity.">
+<!ENTITY clearLog.label "Clear Log">
+<!ENTITY clearLog.accesskey "C">
+<!ENTITY closeLog.label "Close">
+<!ENTITY closeLog.accesskey "o">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/localMsgs.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/localMsgs.properties
new file mode 100644
index 0000000000..29d7b7dcf1
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/localMsgs.properties
@@ -0,0 +1,140 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the local mail code to display progress/status/error messages
+#
+
+# LOCALIZATION NOTE(pop3ErrorDialogTitle): Do not translate the word "%S"
+# below. Place the word %S where the account name should appear.
+pop3ErrorDialogTitle=Error with account %S
+
+# LOCALIZATION NOTE (pop3EnterPasswordPromptTitleWithUsername): Do not translate the
+# word %1$S. Place the word %1$S where the user name should appear.
+pop3EnterPasswordPromptTitleWithUsername=Enter your password for %1$S
+
+# LOCALIZATION NOTE(pop3EnterPasswordPrompt): Do not translate the words "%1$S"
+# and "%2$S" below. Place the word %1$S where the user name should appear, and
+# %2$S where the host name should appear.
+pop3EnterPasswordPrompt=Enter your password for %1$S on %2$S:
+
+# LOCALIZATION NOTE(pop3PreviouslyEnteredPasswordIsInvalidPrompt): Do not
+# translate the words "%1$S" and "%2$S" below. Place the word %1$S where the
+# user name should appear, and %2$S where the host name should appear.
+pop3PreviouslyEnteredPasswordIsInvalidPrompt=Please enter a new password for user %1$S on %2$S:
+
+# Status - Downloading message n of m
+# LOCALIZATION NOTE (receivingMessages): Do not translate %1$S or %2$S in the following lines.
+# Place the word %1$S where the number of messages downloaded so far should appear.
+# Place the word %2$S where the total number of messages to receive should appear;
+receivingMessages=Downloading message %1$S of %2$S…
+
+# Status - connecting to host
+hostContact=Host contacted, sending login information…
+
+# Status - no messages to download
+noNewMessages=There are no new messages.
+
+# Status - messages received after the download
+#LOCALIZATION NOTE : Do not translate %1$S or %2$S in the following line.
+# %1$S will receive the number of messages received
+# %2$S will receive the total number of messages
+receivedMsgs=Received %1$S of %2$S messages
+
+# Status - parsing folder
+#LOCALIZATION NOTE (buildingSummary): Do not translate %S in the following line.
+# Place the word %S where the name of the mailbox should appear
+buildingSummary=Building summary file for %S…
+
+# Status - parsing folder
+localStatusDocumentDone=Done
+
+# Status - pop3 server error
+#LOCALIZATION NOTE (pop3ServerError): Do not translate POP3 in the following line.
+pop3ServerError=An error occurred with the POP3 mail server.
+
+# Status - pop3 user name failed
+pop3UsernameFailure=Sending of username did not succeed.
+
+# Status - password failed
+#LOCALIZATION NOTE (pop3PasswordFailed): Do not translate "%1$S" below.
+# Place the word %1$S where the user name should appear.
+pop3PasswordFailed=Sending of password for user %1$S did not succeed.
+
+# Status - write error occurred
+pop3MessageWriteError=Unable to write the email to the mailbox. Make sure the file system allows you write privileges, and you have enough disk space to copy the mailbox.
+
+# Status - retr failure from the server
+pop3RetrFailure=The RETR command did not succeed. Error retrieving a message.
+
+# Status - password undefined
+pop3PasswordUndefined=Error getting mail password.
+
+# Status - username undefined
+pop3UsernameUndefined=You have not supplied a username for this server. Please provide one in the account setup menu and try again.
+
+# Status - list failure
+pop3ListFailure=The LIST command did not succeed. Error getting the ID and size of a message.
+
+# Status - delete error
+pop3DeleFailure=The DELE command did not succeed. Error marking a message as deleted.
+
+# Status - stat failed
+pop3StatFail=The STAT command did not succeed. Error getting message number and sizes.
+
+#LOCALIZATION NOTE (pop3ServerSaid): Do not remove the leading space during translation.
+pop3ServerSaid= Mail server %S responded:
+
+#LOCALIZATION NOTE (pop3TempServerError): %S is where the POP3 server name will appear.
+pop3TempServerError=Temporary error from %S while retrieving new messages. \
+The operation will be retried at the next check for new messages.
+
+copyingMessagesStatus=Copying %S of %S messages to %S
+
+movingMessagesStatus=Moving %S of %S messages to %S
+
+# Status - pop3 server or folder busy
+# LOCALIZATION NOTE (pop3ServerBusy): Do not translate the word "%S" below.
+# Place %S where the account name should appear.
+pop3ServerBusy=The account %S is being processed. Please wait until processing is complete to get messages.
+
+pop3TmpDownloadError=There was an error downloading the following message: \nFrom: %S\n Subject: %S\n This message may contain a virus or there is not enough disk space. Skip this message?
+
+# Status - the server doesn't support UIDL…
+# LOCALIZATION NOTE(pop3ServerDoesNotSupportUidlEtc): The following sentence should be translated in this way:
+# Do not translate "POP3"
+# Do not translate "%S". Place %S in your translation where the name of the server should appear.
+# Do not translate "UIDL"
+pop3ServerDoesNotSupportUidlEtc=The POP3 mail server (%S) does not support UIDL or XTND XLST, which are required to implement the “Leave on Server”, “Maximum Message Size” or “Fetch Headers Only” options. To download your mail, turn off these options in the Server Settings for your mail server in the Account Settings window.
+
+# Status - the server doesn't support the top command
+# LOCALIZATION NOTE(pop3ServerDoesNotSupportTopCommand): The following sentence should be translated in this way:
+# Do not translate "POP3"
+# Do not translate "%S". Place %S in your translation where the name of the server should appear.
+# Do not translate "TOP"
+pop3ServerDoesNotSupportTopCommand=The POP3 mail server (%S) does not support the TOP command. Without server support for this, we cannot implement the “Maximum Message Size” or “Fetch Headers Only” preference. This option has been disabled, and messages will be downloaded regardless of their size.
+
+nsErrorCouldNotConnectViaTls=Unable to establish TLS connection to POP3 server. The server may be down or may be incorrectly configured. Please verify the correct configuration in the Server Settings for your mail server in the Account Settings window and try again.
+
+# LOCALIZATION NOTE (pop3MoveFolderToTrash): Do not translate the word %S below.
+# "%S" is the the name of the folder.
+pop3MoveFolderToTrash=Are you sure you want to delete the folder ‘%S’?
+
+pop3DeleteFolderDialogTitle=Delete Folder
+
+pop3DeleteFolderButtonLabel=&Delete Folder
+
+pop3AuthInternalError=Internal state error during POP3 server authentication. This is an internal, unexpected error in the application, please report it as bug.
+
+pop3AuthChangeEncryptToPlainNoSSL=This POP3 server 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.
+
+pop3AuthChangeEncryptToPlainSSL=This POP3 server 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.
+
+pop3AuthChangePlainToEncrypt=This POP3 server does not allow plaintext passwords. Please try changing to ‘Encrypted password’ as the ‘Authentication method’ in the ‘Account Settings | Server settings’.
+
+# Authentication server caps and pref don't match
+pop3AuthMechNotSupported=The server does not support the selected authentication method. Please change the ‘Authentication method’ in the ‘Account Settings | Server settings’.
+
+# Status - Could not log in to GSSAPI, and it was the only method
+pop3GssapiFailure=The Kerberos/GSSAPI ticket was not accepted by the POP server. Please check that you are logged in to the Kerberos/GSSAPI realm.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mailEditorOverlay.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mailEditorOverlay.dtd
new file mode 100644
index 0000000000..d0f65354ac
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mailEditorOverlay.dtd
@@ -0,0 +1,6 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY sendPage.label "Send Page…">
+<!ENTITY sendPage.accesskey "g">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mailOverlay.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mailOverlay.dtd
new file mode 100644
index 0000000000..727849c052
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mailOverlay.dtd
@@ -0,0 +1,11 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY newMessageCmd2.key "N">
+<!ENTITY newMessageCmd.key "M">
+<!ENTITY newMessageCmd.label "Message">
+<!ENTITY newMessageCmd.accesskey "m">
+
+<!ENTITY newContactCmd.label "Address Book Contact…">
+<!ENTITY newContactCmd.accesskey "C">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mailViewList.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mailViewList.dtd
new file mode 100644
index 0000000000..4b828983cd
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mailViewList.dtd
@@ -0,0 +1,7 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE msgViewPickerOverlay.dtd UI for showing various views on a folder -->
+
+<!ENTITY mailViewListTitle.label "Customize Message Views">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mailViewSetup.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mailViewSetup.dtd
new file mode 100644
index 0000000000..3ebe7246b6
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mailViewSetup.dtd
@@ -0,0 +1,10 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE msgViewPickerOverlay.dtd UI for showing various views on a folder -->
+
+<!ENTITY mailViewSetupTitle.label "Message View Setup">
+<!ENTITY mailViewHeading.label "Message view name:">
+<!ENTITY mailViewHeading.accesskey "e">
+<!ENTITY searchTermCaption.label "When this view is selected, display only messages that:">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mailviews.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mailviews.properties
new file mode 100644
index 0000000000..0257ac6d5d
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mailviews.properties
@@ -0,0 +1,13 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+#
+# Mail Views
+#
+
+mailViewPeopleIKnow=People I Know
+mailViewRecentMail=Recent Mail
+mailViewLastFiveDays=Last 5 Days
+mailViewNotJunk=Not Junk
+mailViewHasAttachments=Has Attachments
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/markByDate.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/markByDate.dtd
new file mode 100644
index 0000000000..e8158142bb
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/markByDate.dtd
@@ -0,0 +1,9 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY messageMarkByDate.label "Mark Messages as Read by Date">
+<!ENTITY markByDateLower.label "Mark messages as read from:">
+<!ENTITY markByDateLower.accesskey "F">
+<!ENTITY markByDateUpper.label "To:">
+<!ENTITY markByDateUpper.accesskey "T">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messenger.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messenger.dtd
new file mode 100644
index 0000000000..64bc663985
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messenger.dtd
@@ -0,0 +1,945 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY titledefault.label "&brandFullName;">
+<!ENTITY titleSeparator.label " - ">
+
+<!-- File Menu -->
+<!ENTITY newFolderCmd.label "Folder…">
+<!ENTITY newFolderCmd.accesskey "F">
+<!ENTITY closeTabCmd2.label "Close Tab">
+<!ENTITY closeTabCmd2.accesskey "C">
+<!ENTITY closeOtherTabsCmd2.label "Close Other Tabs">
+<!ENTITY closeOtherTabsCmd2.accesskey "o">
+<!ENTITY recentlyClosedTabsCmd.label "Recently Closed Tabs">
+<!ENTITY recentlyClosedTabsCmd.accesskey "R">
+
+<!ENTITY undoCloseTabCmd.commandkey "T">
+<!-- LOCALIZATION NOTE (moveToNewWindow.label):
+ Menu option to cause the current tab to be migrated to a new Thunderbird
+ window.
+ -->
+<!ENTITY moveToNewWindow.label "Move to New Window">
+<!ENTITY moveToNewWindow.accesskey "W">
+<!ENTITY newVirtualFolderCmd.label "Saved Search…">
+<!ENTITY newVirtualFolderCmd.accesskey "S">
+<!ENTITY newCreateEmailAccountCmd.label "Get a New Mail Account…">
+<!ENTITY newCreateEmailAccountCmd.accesskey "G">
+<!ENTITY newExistingEmailAccountCmd.label "Existing Mail Account…">
+<!ENTITY newExistingEmailAccountCmd.accesskey "E">
+<!ENTITY newIMAccountCmd.label "Chat Account…">
+<!ENTITY newIMAccountCmd.accesskey "C">
+<!ENTITY newFeedAccountCmd.label "Feed Account…">
+<!ENTITY newFeedAccountCmd.accesskey "d">
+<!ENTITY newIMContactCmd.label "Chat Contact…">
+<!ENTITY newIMContactCmd.accesskey "h">
+<!ENTITY newMessageCmd2.key "N">
+<!ENTITY newMessageCmd.key "M">
+<!ENTITY newMessageCmd.label "Message">
+<!ENTITY newMessageCmd.accesskey "m">
+<!ENTITY newContactCmd.label "Address Book Contact…">
+<!ENTITY newContactCmd.accesskey "C">
+<!ENTITY openMenuCmd.label "Open">
+<!ENTITY openMenuCmd.accesskey "O">
+<!ENTITY openMessageFileCmd.label "Open Saved Message…">
+<!ENTITY openMessageFileCmd.accesskey "O">
+<!ENTITY saveAsMenu.label "Save As">
+<!ENTITY saveAsMenu.accesskey "S">
+<!ENTITY saveAsFileCmd.key "s">
+<!ENTITY saveAsTemplateCmd.label "Template">
+<!ENTITY saveAsTemplateCmd.accesskey "T">
+<!ENTITY getNewMsgForCmd.label "Get New Messages for">
+<!ENTITY getNewMsgForCmd.accesskey "w">
+<!ENTITY getAllNewMsgCmdPopupMenu.label "All Accounts">
+<!ENTITY getAllNewMsgCmdPopupMenu.accesskey "A">
+<!ENTITY getNewMsgCurrentAccountCmdPopupMenu.label "Current Account">
+<!ENTITY getNewMsgCurrentAccountCmdPopupMenu.accesskey "C">
+<!ENTITY getNextNMsgCmd2.label "Get Next News Messages">
+<!ENTITY getNextNMsgCmd2.accesskey "t">
+<!ENTITY sendUnsentCmd.label "Send Unsent Messages">
+<!ENTITY sendUnsentCmd.accesskey "d">
+<!ENTITY subscribeCmd.label "Subscribe…">
+<!ENTITY subscribeCmd.accesskey "b">
+<!ENTITY deleteFolder.label "Delete Folder">
+<!ENTITY deleteFolder.accesskey "e">
+<!ENTITY renameFolder.label "Rename Folder…">
+<!ENTITY renameFolder.accesskey "R">
+<!ENTITY renameFolder.key "VK_F2">
+<!ENTITY compactFolders.label "Compact Folders">
+<!ENTITY compactFolders.accesskey "F">
+<!ENTITY emptyTrashCmd.label "Empty Trash">
+<!ENTITY emptyTrashCmd.accesskey "y">
+<!ENTITY offlineMenu.label "Offline">
+<!ENTITY offlineMenu.accesskey "l">
+<!ENTITY offlineGoOfflineCmd.label "Work Offline">
+<!ENTITY offlineGoOfflineCmd.accesskey "w">
+<!ENTITY synchronizeOfflineCmd.label "Download/Sync Now…">
+<!ENTITY synchronizeOfflineCmd.accesskey "S">
+<!ENTITY settingsOfflineCmd2.label "Offline Settings">
+<!ENTITY settingsOfflineCmd2.accesskey "e">
+<!ENTITY downloadSelectedCmd.label "Get Selected Messages">
+<!ENTITY downloadSelectedCmd.accesskey "l">
+<!ENTITY downloadStarredCmd.label "Get Starred Messages">
+<!ENTITY downloadStarredCmd.accesskey "a">
+<!ENTITY printCmd.label "Print…">
+<!ENTITY printCmd.accesskey "P">
+<!ENTITY printCmd.key "p">
+
+<!-- Edit Menu -->
+<!ENTITY deleteMsgCmd.label "Delete Message">
+<!ENTITY deleteMsgCmd.accesskey "D">
+<!ENTITY undeleteMsgCmd.label "Undelete Message">
+<!ENTITY undeleteMsgCmd.accesskey "d">
+<!ENTITY deleteMsgsCmd.label "Delete Selected Messages">
+<!ENTITY deleteMsgsCmd.accesskey "D">
+<!ENTITY undeleteMsgsCmd.label "Undelete Selected Messages">
+<!ENTITY undeleteMsgsCmd.accesskey "d">
+<!ENTITY deleteFolderCmd.label "Delete Folder">
+<!ENTITY deleteFolderCmd.accesskey "D">
+<!ENTITY unsubscribeNewsgroupCmd.label "Unsubscribe">
+<!ENTITY unsubscribeNewsgroupCmd.accesskey "b">
+<!ENTITY selectMenu.label "Select">
+<!ENTITY selectMenu.accesskey "S">
+<!ENTITY all.label "All">
+<!ENTITY all.accesskey "A">
+<!ENTITY selectThreadCmd.label "Thread">
+<!ENTITY selectThreadCmd.accesskey "T">
+<!ENTITY selectThreadCmd.key "a">
+<!ENTITY selectFlaggedCmd.label "Starred Messages">
+<!ENTITY selectFlaggedCmd.accesskey "S">
+<!ENTITY menuFavoriteFolder.label "Favourite Folder">
+<!ENTITY menuFavoriteFolder.accesskey "v">
+<!ENTITY folderPropsCmd2.label "Properties">
+<!ENTITY folderPropsFolderCmd2.label "Folder Properties">
+<!ENTITY folderPropsNewsgroupCmd2.label "Newsgroup Properties">
+<!ENTITY folderPropsCmd.accesskey "o">
+<!ENTITY undoDeleteMsgCmd.label "Undo Delete Message">
+<!ENTITY redoDeleteMsgCmd.label "Redo Delete Message">
+<!ENTITY undoMoveMsgCmd.label "Undo Move Message">
+<!ENTITY redoMoveMsgCmd.label "Redo Move Message">
+<!ENTITY undoCopyMsgCmd.label "Undo Copy Message">
+<!ENTITY redoCopyMsgCmd.label "Redo Copy Message">
+<!ENTITY undoMarkAllCmd.label "Undo Mark All Read">
+<!ENTITY redoMarkAllCmd.label "Redo Mark All Read">
+<!ENTITY undoDefaultCmd.label "Undo">
+<!ENTITY undoDefaultCmd.accesskey "U">
+<!ENTITY redoDefaultCmd.label "Redo">
+<!ENTITY redoDefaultCmd.accesskey "R">
+
+<!-- View Menu -->
+<!ENTITY menubarCmd.label "Menu Bar">
+<!ENTITY menubarCmd.accesskey "M">
+<!ENTITY showMessengerToolbarCmd.label "Mail Toolbar">
+<!ENTITY showMessengerToolbarCmd.accesskey "o">
+<!ENTITY customizeToolbar.label "Customize…">
+<!ENTITY customizeToolbar.accesskey "C">
+
+<!ENTITY messagePaneLayoutStyle.label "Layout">
+<!ENTITY messagePaneLayoutStyle.accesskey "L">
+<!ENTITY messagePaneClassic.label "Classic View">
+<!ENTITY messagePaneClassic.accesskey "C">
+<!ENTITY messagePaneWide.label "Wide View">
+<!ENTITY messagePaneWide.accesskey "W">
+<!ENTITY messagePaneVertical.label "Vertical View">
+<!ENTITY messagePaneVertical.accesskey "V">
+<!ENTITY showFolderPaneCmd.label "Folder Pane">
+<!ENTITY showFolderPaneCmd.accesskey "F">
+<!ENTITY showFolderPaneColsCmd.label "Folder Pane Columns">
+<!ENTITY showFolderPaneColsCmd.accesskey "P">
+<!ENTITY showMessageCmd.label "Message Pane">
+<!ENTITY showMessageCmd.accesskey "M">
+
+<!ENTITY folderView.label "Folders">
+<!ENTITY folderView.accesskey "F">
+<!ENTITY unifiedFolders.label "Unified">
+<!ENTITY unifiedFolders.accesskey "n">
+<!ENTITY allFolders.label "All">
+<!ENTITY allFolders.accesskey "A">
+<!ENTITY unreadFolders.label "Unread">
+<!ENTITY unreadFolders.accesskey "U">
+<!ENTITY favoriteFolders.label "Favourite">
+<!ENTITY favoriteFolders.accesskey "F">
+<!ENTITY recentFolders.label "Recent">
+<!ENTITY recentFolders.accesskey "R">
+<!ENTITY compactVersion.label "Compact View">
+<!ENTITY compactVersion.accesskey "C">
+
+<!-- Sort Menu -->
+<!ENTITY sortMenu.label "Sort by">
+<!ENTITY sortMenu.accesskey "S">
+<!ENTITY sortByDateCmd.label "Date">
+<!ENTITY sortByDateCmd.accesskey "e">
+<!ENTITY sortByReceivedCmd.label "Received">
+<!ENTITY sortByReceivedCmd.accesskey "v">
+<!ENTITY sortByStarCmd.label "Star">
+<!ENTITY sortByStarCmd.accesskey "S">
+<!ENTITY sortByAttachmentsCmd.label "Attachments">
+<!ENTITY sortByAttachmentsCmd.accesskey "m">
+<!ENTITY sortByPriorityCmd.label "Priority">
+<!ENTITY sortByPriorityCmd.accesskey "P">
+<!ENTITY sortBySizeCmd.label "Size">
+<!ENTITY sortBySizeCmd.accesskey "z">
+<!ENTITY sortByStatusCmd.label "Status">
+<!ENTITY sortByStatusCmd.accesskey "u">
+<!ENTITY sortByTagsCmd.label "Tags">
+<!ENTITY sortByTagsCmd.accesskey "g">
+<!ENTITY sortByJunkStatusCmd.label "Junk Status">
+<!ENTITY sortByJunkStatusCmd.accesskey "J">
+<!ENTITY sortBySubjectCmd.label "Subject">
+<!ENTITY sortBySubjectCmd.accesskey "b">
+<!ENTITY sortByFromCmd.label "From">
+<!ENTITY sortByFromCmd.accesskey "F">
+<!ENTITY sortByRecipientCmd.label "Recipient">
+<!ENTITY sortByRecipientCmd.accesskey "c">
+<!ENTITY sortByCorrespondentCmd.label "Correspondents">
+<!ENTITY sortByCorrespondentCmd.accesskey "n">
+<!ENTITY sortByUnreadCmd.label "Read">
+<!ENTITY sortByUnreadCmd.accesskey "R">
+<!ENTITY sortByOrderReceivedCmd.label "Order Received">
+<!ENTITY sortByOrderReceivedCmd.accesskey "O">
+<!ENTITY sortAscending.label "Ascending">
+<!ENTITY sortAscending.accesskey "A">
+<!ENTITY sortDescending.label "Descending">
+<!ENTITY sortDescending.accesskey "D">
+<!ENTITY sortThreaded.label "Threaded">
+<!ENTITY sortThreaded.accesskey "T">
+<!ENTITY sortUnthreaded.label "Unthreaded">
+<!ENTITY sortUnthreaded.accesskey "h">
+<!ENTITY groupBySort.label "Grouped By Sort">
+<!ENTITY groupBySort.accesskey "G">
+<!ENTITY msgsMenu.label "Messages">
+<!ENTITY msgsMenu.accesskey "M">
+<!ENTITY threads.label "Threads">
+<!ENTITY threads.accesskey "e">
+<!ENTITY allMsgsCmd.label "All">
+<!ENTITY allMsgsCmd.accesskey "A">
+<!ENTITY expandAllThreadsCmd.label "Expand All Threads">
+<!ENTITY expandAllThreadsCmd.accesskey "E">
+<!ENTITY expandAllThreadsCmd.key "*">
+<!ENTITY collapseAllThreadsCmd.label "Collapse All Threads">
+<!ENTITY collapseAllThreadsCmd.accesskey "C">
+<!ENTITY collapseAllThreadsCmd.key "\">
+<!ENTITY unreadMsgsCmd.label "Unread">
+<!ENTITY unreadMsgsCmd.accesskey "U">
+<!ENTITY threadsWithUnreadCmd.label "Threads with Unread">
+<!ENTITY threadsWithUnreadCmd.accesskey "T">
+<!ENTITY watchedThreadsWithUnreadCmd.label "Watched Threads with Unread">
+<!ENTITY watchedThreadsWithUnreadCmd.accesskey "W">
+<!ENTITY ignoredThreadsCmd.label "Ignored Threads">
+<!ENTITY ignoredThreadsCmd.accesskey "i">
+
+<!ENTITY headersMenu.label "Headers">
+<!ENTITY headersMenu.accesskey "H">
+<!ENTITY headersAllCmd.label "All">
+<!ENTITY headersAllCmd.accesskey "A">
+<!ENTITY headersNormalCmd.label "Normal">
+<!ENTITY headersNormalCmd.accesskey "N">
+<!ENTITY bodyMenu.label "Message Body As">
+<!ENTITY bodyMenu.accesskey "B">
+<!ENTITY bodyAllowHTML.label "Original HTML">
+<!ENTITY bodyAllowHTML.accesskey "H">
+<!ENTITY bodySanitized.label "Simple HTML">
+<!ENTITY bodySanitized.accesskey "S">
+<!ENTITY bodyAsPlaintext.label "Plain Text">
+<!ENTITY bodyAsPlaintext.accesskey "P">
+<!ENTITY bodyAllParts.label "All Body Parts">
+<!ENTITY bodyAllParts.accesskey "A">
+
+<!ENTITY bodyMenuFeed.label "Feed Message Body As">
+<!ENTITY bodyMenuFeed.accesskey "B">
+<!ENTITY viewFeedWebPage.label "Web Page">
+<!ENTITY viewFeedWebPage.accesskey "W">
+<!ENTITY viewFeedSummary.label "Summary">
+<!ENTITY viewFeedSummary.accesskey "m">
+<!ENTITY viewFeedSummaryFeedPropsPref.label "Default Format">
+<!ENTITY viewFeedSummaryFeedPropsPref.accesskey "D">
+
+<!ENTITY viewAttachmentsInlineCmd.label "Display Attachments Inline">
+<!ENTITY viewAttachmentsInlineCmd.accesskey "A">
+
+<!ENTITY pageSourceCmd.label "Message Source">
+<!ENTITY pageSourceCmd.accesskey "o">
+<!ENTITY pageSourceCmd.key "u">
+<!ENTITY getNewMessagesCmd.key "y">
+<!ENTITY getAllNewMessagesCmd.key "Y">
+
+<!-- Search Menu -->
+<!ENTITY findMenu.label "Find">
+<!ENTITY findMenu.accesskey "F">
+<!ENTITY findCmd.label "Find in This Message…">
+<!ENTITY findCmd.accesskey "F">
+<!ENTITY findCmd.key "f">
+<!ENTITY findAgainCmd.label "Find Again">
+<!ENTITY findAgainCmd.accesskey "g">
+<!ENTITY findAgainCmd.key "g">
+<!ENTITY findAgainCmd.key2 "VK_F3">
+<!ENTITY findPrevCmd.key "g">
+<!ENTITY findPrevCmd.key2 "VK_F3">
+<!ENTITY searchMailCmd.label "Search Messages…">
+<!ENTITY searchMailCmd.accesskey "M">
+<!ENTITY searchMailCmd.key "f">
+<!ENTITY glodaSearchCmd.label "Global Search…">
+<!ENTITY glodaSearchCmd.accesskey "G">
+<!ENTITY searchAddressesCmd.label "Search Addresses…">
+<!ENTITY searchAddressesCmd.accesskey "S">
+
+<!-- Go Menu -->
+<!ENTITY goMenu.label "Go">
+<!ENTITY goMenu.accesskey "G">
+<!ENTITY nextMenu.label "Next">
+<!ENTITY nextMenu.accesskey "N">
+<!ENTITY nextMsgCmd.label "Message">
+<!ENTITY nextMsgCmd.accesskey "M">
+<!ENTITY nextMsgCmd.key "f">
+<!ENTITY nextUnreadMsgCmd.label "Unread Message">
+<!ENTITY nextUnreadMsgCmd.accesskey "U">
+<!ENTITY nextUnreadMsgCmd.key "n">
+<!ENTITY nextStarredMsgCmd.label "Starred Message">
+<!ENTITY nextStarredMsgCmd.accesskey "S">
+<!ENTITY nextUnreadThread.label "Unread Thread">
+<!ENTITY nextUnreadThread.accesskey "T">
+<!ENTITY nextUnreadThread.key "t">
+<!ENTITY prevMenu.label "Previous">
+<!ENTITY prevMenu.accesskey "P">
+<!ENTITY prevMsgCmd.label "Message">
+<!ENTITY prevMsgCmd.accesskey "M">
+<!ENTITY prevMsgCmd.key "b">
+<!ENTITY prevUnreadMsgCmd.label "Unread Message">
+<!ENTITY prevUnreadMsgCmd.accesskey "U">
+<!ENTITY prevUnreadMsgCmd.key "p">
+<!ENTITY goForwardCmd.label "Forward">
+<!ENTITY goForwardCmd.accesskey "F">
+<!ENTITY goForwardCmd.commandKey "]">
+<!ENTITY goBackCmd.label "Back">
+<!ENTITY goBackCmd.accesskey "B">
+<!ENTITY goBackCmd.commandKey "[">
+<!ENTITY goChatCmd.label "Chat">
+<!ENTITY goChatCmd.accesskey "c">
+<!ENTITY prevStarredMsgCmd.label "Starred Message">
+<!ENTITY prevStarredMsgCmd.accesskey "S">
+<!ENTITY folderMenu.label "Folder">
+<!ENTITY folderMenu.accesskey "O">
+<!ENTITY goRecentlyClosedTabs.label "Recently Closed Tabs">
+<!ENTITY goRecentlyClosedTabs.accesskey "R">
+<!ENTITY startPageCmd.label "Mail Start Page">
+<!ENTITY startPageCmd.accesskey "S">
+
+<!-- Message Menu -->
+<!ENTITY msgMenu.label "Message">
+<!ENTITY msgMenu.accesskey "M">
+<!ENTITY newMsgCmd.label "New Message">
+<!ENTITY newMsgCmd.accesskey "N">
+<!ENTITY newNewMsgCmd.label "Message">
+<!ENTITY newNewMsgCmd.accesskey "M">
+<!ENTITY archiveMsgCmd.label "Archive">
+<!ENTITY archiveMsgCmd.accesskey "A">
+<!ENTITY archiveMsgCmd.key "a">
+<!ENTITY cancelNewsMsgCmd.label "Cancel Message">
+<!ENTITY cancelNewsMsgCmd.accesskey "C">
+<!ENTITY replyMsgCmd.label "Reply">
+<!ENTITY replyMsgCmd.accesskey "R">
+<!ENTITY replyMsgCmd.key "r">
+<!ENTITY replySenderCmd.label "Reply to Sender Only">
+<!ENTITY replySenderCmd.accesskey "R">
+<!ENTITY replyNewsgroupCmd2.label "Followup to Newsgroup">
+<!ENTITY replyNewsgroupCmd2.accesskey "u">
+<!ENTITY replyToAllMsgCmd.label "Reply to All">
+<!ENTITY replyToAllMsgCmd.accesskey "p">
+<!ENTITY replyToAllMsgCmd.key "r">
+<!ENTITY replyToListMsgCmd.label "Reply to List">
+<!ENTITY replyToListMsgCmd.accesskey "L">
+<!ENTITY replyToListMsgCmd.key "l">
+<!ENTITY forwardMsgCmd.label "Forward">
+<!ENTITY forwardMsgCmd.accesskey "F">
+<!ENTITY forwardMsgCmd.key "l">
+<!ENTITY forwardAsMenu.label "Forward As">
+<!ENTITY forwardAsMenu.accesskey "w">
+<!ENTITY forwardAsInline.label "Inline">
+<!ENTITY forwardAsInline.accesskey "I">
+<!ENTITY forwardAsAttachmentCmd.label "Attachment">
+<!ENTITY forwardAsAttachmentCmd.accesskey "A">
+<!ENTITY editAsNewMsgCmd.label "Edit As New Message">
+<!ENTITY editAsNewMsgCmd.accesskey "E">
+<!ENTITY editAsNewMsgCmd.key "e">
+<!ENTITY editDraftMsgCmd.label "Edit Draft Message">
+<!ENTITY editDraftMsgCmd.accesskey "D">
+<!ENTITY editTemplateMsgCmd.label "Edit Template">
+<!ENTITY editTemplateMsgCmd.accesskey "T">
+<!ENTITY newMsgFromTemplateCmd.label "New Message from Template">
+<!ENTITY newMsgFromTemplateCmd.keycode "VK_RETURN"><!-- do not change "VK_RETURN" -->
+<!ENTITY createFilter.label "Create Filter From Message…">
+<!ENTITY createFilter.accesskey "a">
+<!ENTITY moveMsgToMenu.label "Move To">
+<!ENTITY moveMsgToMenu.accesskey "M">
+<!ENTITY moveCopyMsgRecentMenu.label "Recent">
+<!ENTITY moveCopyMsgRecentMenu.accesskey "R">
+<!ENTITY copyMessageLocation.label "Copy Message Location">
+<!ENTITY copyMessageLocation.accesskey "M">
+<!ENTITY copyMsgToMenu.label "Copy To">
+<!ENTITY copyMsgToMenu.accesskey "C">
+<!ENTITY moveToFolderAgain.label "Move Again">
+<!ENTITY moveToFolderAgain.accesskey "i">
+<!ENTITY moveToFolderAgainCmd.key "m">
+<!ENTITY killThreadMenu.label "Ignore Thread">
+<!ENTITY killThreadMenu.accesskey "I">
+<!ENTITY killThreadMenu.key "k">
+<!ENTITY killSubthreadMenu.label "Ignore Subthread">
+<!ENTITY killSubthreadMenu.accesskey "S">
+<!ENTITY killSubthreadMenu.key "k">
+<!ENTITY watchThreadMenu.label "Watch Thread">
+<!ENTITY watchThreadMenu.accesskey "W">
+<!ENTITY watchThreadMenu.key "w">
+<!ENTITY tagMenu.label "Tag">
+<!ENTITY tagMenu.accesskey "g">
+<!ENTITY tagCmd0.key "0">
+<!ENTITY tagCmd1.key "1">
+<!ENTITY tagCmd2.key "2">
+<!ENTITY tagCmd3.key "3">
+<!ENTITY tagCmd4.key "4">
+<!ENTITY tagCmd5.key "5">
+<!ENTITY tagCmd6.key "6">
+<!ENTITY tagCmd7.key "7">
+<!ENTITY tagCmd8.key "8">
+<!ENTITY tagCmd9.key "9">
+<!ENTITY markMenu.label "Mark">
+<!ENTITY markMenu.accesskey "k">
+<!ENTITY toggleReadCmd.key "m">
+<!ENTITY markAsReadCmd.label "As Read">
+<!ENTITY markAsReadCmd.accesskey "R">
+<!ENTITY markAsUnreadCmd.label "As Unread">
+<!ENTITY markAsUnreadCmd.accesskey "U">
+<!ENTITY markThreadAsReadCmd.label "Thread As Read">
+<!ENTITY markThreadAsReadCmd.accesskey "T">
+<!ENTITY markThreadAsReadCmd.key "r">
+<!ENTITY markReadByDateCmd.label "As Read by Date…">
+<!ENTITY markReadByDateCmd.accesskey "D">
+<!ENTITY markReadByDateCmd.key "c">
+<!ENTITY markAllReadCmd.label "All Read">
+<!ENTITY markAllReadCmd.accesskey "A">
+<!ENTITY markAllReadCmd.key "c">
+<!ENTITY markStarredCmd.label "Add Star">
+<!ENTITY markStarredCmd.accesskey "S">
+<!ENTITY markStarredCmd.key "S">
+<!ENTITY markAsJunkCmd.label "As Junk">
+<!ENTITY markAsJunkCmd.accesskey "J">
+<!ENTITY markAsJunkCmd.key "j">
+<!ENTITY markAsNotJunkCmd.label "As Not Junk">
+<!ENTITY markAsNotJunkCmd.accesskey "N">
+<!ENTITY markAsNotJunkCmd.key "j">
+<!ENTITY recalculateJunkScoreCmd.label "Run Junk Mail Controls">
+<!ENTITY recalculateJunkScoreCmd.accesskey "C">
+<!ENTITY openMessageWindowCmd.label "Open Message">
+<!ENTITY openMessageWindowCmd.accesskey "O">
+<!ENTITY openMessageWindowCmd.key "o">
+<!ENTITY openInConversationCmd.label "Open in Conversation">
+<!ENTITY openInConversationCmd.accesskey "s">
+<!ENTITY openInConversationCmd.key "o">
+<!ENTITY openAttachmentListCmd.label "Attachments">
+<!ENTITY openAttachmentListCmd.accesskey "h">
+<!ENTITY openFeedMessage1.label "When Opening Feed Messages">
+<!ENTITY openFeedMessage1.accesskey "O">
+<!ENTITY openFeedWebPage.label "Open as Web Page">
+<!ENTITY openFeedWebPage.accesskey "W">
+<!ENTITY openFeedSummary.label "Open as Summary">
+<!ENTITY openFeedSummary.accesskey "S">
+<!ENTITY openFeedWebPageInMP.label "Toggle Web Page and Summary in Message Pane">
+<!ENTITY openFeedWebPageInMP.accesskey "T">
+
+<!-- Windows Menu -->
+<!ENTITY windowMenu.label "Window">
+
+<!-- Tools Menu -->
+<!ENTITY tasksMenu.label "Tools">
+<!ENTITY tasksMenu.accesskey "T">
+<!ENTITY messengerCmd.label "Mail &amp; Newsgroups">
+<!ENTITY messengerCmd.accesskey "N">
+<!ENTITY addressBookCmd.label "Address Book">
+<!ENTITY addressBookCmd.accesskey "B">
+<!ENTITY addressBookCmd.key "B">
+<!ENTITY addonNoPrefs.label "No Add-on settings found.">
+<!ENTITY activitymanager.label "Activity Manager">
+<!ENTITY activitymanager.accesskey "v">
+<!ENTITY imAccountsStatus.label "Chat status">
+<!ENTITY imAccountsStatus.accesskey "C">
+<!ENTITY imStatus.available "Available">
+<!ENTITY imStatus.unavailable "Unavailable">
+<!ENTITY imStatus.offline "Offline">
+<!ENTITY imStatus.showAccounts "Show Accounts…">
+<!ENTITY joinChatCmd.label "Join Chat…">
+<!ENTITY joinChatCmd.accesskey "t">
+<!ENTITY savedFiles.label "Saved Files">
+<!ENTITY savedFiles.accesskey "l">
+<!ENTITY savedFiles.key "j">
+<!ENTITY filtersCmd2.label "Message Filters">
+<!ENTITY filtersCmd2.accesskey "F">
+<!ENTITY filtersApply.label "Run Filters on Folder">
+<!ENTITY filtersApply.accesskey "R">
+<!ENTITY filtersApplyToSelection.label "Run Filters on Selected Messages">
+<!ENTITY filtersApplyToSelection.accesskey "u">
+<!ENTITY filtersApplyToMessage.label "Run Filters on Message">
+<!ENTITY filtersApplyToMessage.accesskey "u">
+<!ENTITY runJunkControls.label "Run Junk Mail Controls on Folder">
+<!ENTITY runJunkControls.accesskey "C">
+<!ENTITY deleteJunk.label "Delete Mail Marked as Junk in Folder">
+<!ENTITY deleteJunk.accesskey "D">
+<!ENTITY importCmd.label "Import…">
+<!ENTITY importCmd.accesskey "m">
+<!ENTITY exportCmd.label "Export…">
+<!ENTITY exportCmd.accesskey "x">
+<!ENTITY clearRecentHistory.label "Clear Recent History…">
+<!ENTITY clearRecentHistory.accesskey "H">
+<!ENTITY accountManagerCmd2.label "Account Settings">
+<!ENTITY accountManagerCmd2.accesskey "S">
+<!-- LOCALIZATION NOTE (accountManagerCmdUnix.accesskey):
+ Belongs to accountManagerCmd.label, which is placed under the Edit menu
+ on Unix systems
+ -->
+<!ENTITY accountManagerCmdUnix2.accesskey "A">
+
+<!-- Developer Tools Submenu -->
+<!ENTITY devtoolsMenu.label "Developer Tools">
+<!ENTITY devtoolsMenu.accesskey "e">
+<!ENTITY devToolboxCmd.label "Developer Toolbox">
+<!ENTITY devToolboxCmd.accesskey "T">
+<!ENTITY devToolboxCmd.commandkey "i">
+<!ENTITY debugAddonsCmd.label "Debug Add-ons">
+<!ENTITY debugAddonsCmd.accesskey "A">
+<!ENTITY errorConsoleCmd.label "Error Console">
+<!ENTITY errorConsoleCmd.accesskey "E">
+<!ENTITY errorConsoleCmd.commandkey "j">
+
+<!-- Mail Toolbar -->
+<!ENTITY getMsgButton1.label "Get Messages">
+<!ENTITY newMsgButton.label "Write">
+<!ENTITY replyButton.label "Reply">
+<!ENTITY replyAllButton.label "Reply All">
+<!ENTITY replyListButton.label "Reply to List">
+<!ENTITY forwardButton.label "Forward">
+<!ENTITY fileButton.label "File">
+<!ENTITY archiveButton.label "Archive">
+<!ENTITY openConversationButton.label "Conversation">
+<!ENTITY nextButton.label "Next">
+<!ENTITY nextButtonToolbarItem.label "Next Unread">
+<!ENTITY nextMsgButton.label "Next">
+<!ENTITY previousButton.label "Previous">
+<!ENTITY previousButtonToolbarItem.label "Previous Unread">
+<!ENTITY previousMsgButton.label "Previous">
+<!ENTITY backButton1.label "Back">
+<!ENTITY goForwardButton1.label "Forward">
+<!ENTITY deleteItem.title "Delete">
+<!ENTITY markButton.label "Mark">
+<!ENTITY printButton.label "Print">
+<!ENTITY stopButton.label "Stop">
+<!ENTITY throbberItem.title "Activity Indicator">
+<!ENTITY junkItem.title "Junk">
+<!ENTITY addressBookButton.label "Address Book">
+<!ENTITY chatButton.label "Chat">
+<!ENTITY glodaSearch.title "Global Search">
+<!ENTITY searchItem.title "Quick Search">
+<!ENTITY mailViewsToolbarItem.title "Mail Views">
+<!ENTITY folderLocationToolbarItem.title "Folder Location">
+<!ENTITY tagButton.label "Tag">
+<!ENTITY compactButton.label "Compact">
+<!ENTITY appmenuButton.label "AppMenu">
+
+<!-- Mail Toolbar Tooltips-->
+<!ENTITY advancedButton.tooltip "Advanced message search">
+<!ENTITY getMsgButton.tooltip "Get new messages">
+<!ENTITY getAllNewMsgCmd.label "Get All New Messages">
+<!ENTITY getAllNewMsgCmd.accesskey "G">
+<!ENTITY newMsgButton.tooltip "Create a new message">
+<!ENTITY replyButton.tooltip "Reply to the message">
+<!ENTITY replyAllButton.tooltip "Reply to sender and all recipients">
+<!ENTITY replyListButton.tooltip "Reply to mailing list">
+<!ENTITY forwardButton.tooltip "Forward selected message">
+<!ENTITY forwardAsInline.tooltip "Forward selected message as inline text">
+<!ENTITY forwardAsAttachment.tooltip "Forward selected message as an attachment">
+<!ENTITY fileButton.tooltip "File selected message">
+<!ENTITY archiveButton.tooltip "Archive selected messages">
+<!ENTITY openMsgConversationButton.tooltip "Show conversation of selected message">
+<!ENTITY nextButton.tooltip "Move to the next unread message">
+<!ENTITY nextMsgButton.tooltip "Move to the next message">
+<!ENTITY previousButton.tooltip "Move to the previous unread message">
+<!ENTITY previousMsgButton.tooltip "Move to the previous message">
+<!ENTITY goForwardButton.tooltip "Go forward one message">
+<!ENTITY goBackButton.tooltip "Go back one message">
+<!ENTITY markButton.tooltip "Mark messages">
+<!ENTITY printButton.tooltip "Print this message">
+<!ENTITY stopButton.tooltip "Stop the current transfer">
+<!ENTITY addressBookButton.tooltip "Go to the address book">
+<!ENTITY chatButton.tooltip "Show the Chat tab">
+<!ENTITY tagButton.tooltip "Tag messages">
+<!ENTITY compactButton.tooltip "Remove deleted messages from selected folder">
+<!ENTITY appmenuButton1.tooltip "Display the &brandShortName; Menu">
+
+<!-- Toolbar Button Popup -->
+<!ENTITY buttonMenuForwardAsInline.label "Forward Inline">
+<!ENTITY buttonMenuForwardAsAttachment.label "Forward As Attachment">
+
+<!-- Remote Content Button Popup -->
+<!ENTITY remoteContentOptionsAllowForMsg.label "Show remote content in this message">
+<!ENTITY remoteContentOptionsAllowForMsg.accesskey "S">
+<!ENTITY editRemoteContentSettings.label "Edit remote content options…">
+<!ENTITY editRemoteContentSettings.accesskey "E">
+<!ENTITY editRemoteContentSettingsUnix.label "Edit remote content preferences…">
+<!ENTITY editRemoteContentSettingsUnix.accesskey "E">
+
+<!-- Phishing Button Popup -->
+<!ENTITY phishingOptionIgnore.label "Ignore warning for this message">
+<!ENTITY phishingOptionIgnore.accesskey "n">
+<!ENTITY phishingOptionSettings.label "Edit scam detection options…">
+<!ENTITY phishingOptionSettings.accesskey "d">
+<!ENTITY phishingOptionSettingsUnix.label "Edit scam detection preferences…">
+<!ENTITY phishingOptionSettingsUnix.accesskey "d">
+
+<!-- AppMenu Popup -->
+<!ENTITY appmenuNewMsgCmd.label "New Message">
+<!ENTITY appmenuNewContactCmd.label "Address Book Contact…">
+<!ENTITY appmenuEditMenu.label "Edit">
+<!ENTITY appmenuToolbarLayout.label "Toolbar Layout…">
+<!ENTITY appmenuSelectThread.label "Select Thread">
+<!ENTITY appmenuSelectFlagged.label "Select Starred Messages">
+
+<!-- Tags Menu Popup -->
+<!ENTITY addNewTag.label "New Tag…">
+<!ENTITY addNewTag.accesskey "N">
+<!ENTITY manageTags.label "Manage Tags…">
+<!ENTITY manageTags.accesskey "M">
+
+<!-- Folder Pane -->
+<!ENTITY folderNameColumn.label "Name">
+<!ENTITY folderUnreadColumn.label "Unread">
+<!ENTITY folderTotalColumn.label "Total">
+<!ENTITY folderSizeColumn.label "Size">
+
+<!-- Folder Pane Context Menu -->
+<!ENTITY folderContextGetMessages.label "Get Messages">
+<!ENTITY folderContextGetMessages.accesskey "G">
+<!ENTITY folderContextMarkAllFoldersRead.label "Mark All Folders Read">
+<!ENTITY folderContextPauseAllUpdates.label "Pause All Updates">
+<!ENTITY folderContextPauseUpdates.label "Pause Updates">
+<!ENTITY folderContextPauseUpdates.accesskey "U">
+<!ENTITY folderContextOpenInNewWindow.label "Open in New Window">
+<!ENTITY folderContextOpenInNewWindow.accesskey "O">
+<!ENTITY folderContextOpenNewTab.label "Open in New Tab">
+<!ENTITY folderContextOpenNewTab.accesskey "T">
+<!ENTITY folderContextNew.label "New Subfolder…">
+<!ENTITY folderContextNew.accesskey "N">
+<!ENTITY folderContextRename.label "Rename">
+<!ENTITY folderContextRename.accesskey "R">
+<!ENTITY folderContextRemove.label "Delete">
+<!ENTITY folderContextRemove.accesskey "D">
+<!ENTITY folderContextCompact.label "Compact">
+<!ENTITY folderContextCompact.accesskey "C">
+<!ENTITY folderContextEmptyTrash.label "Empty Trash">
+<!ENTITY folderContextEmptyTrash.accesskey "y">
+<!ENTITY folderContextEmptyJunk.label "Empty Junk">
+<!ENTITY folderContextEmptyJunk.accesskey "J">
+<!ENTITY folderContextSendUnsentMessages.label "Send Unsent Messages">
+<!ENTITY folderContextSendUnsentMessages.accesskey "d">
+<!ENTITY folderContextUnsubscribe.label "Unsubscribe">
+<!ENTITY folderContextUnsubscribe.accesskey "U">
+<!ENTITY folderContextMarkNewsgroupRead.label "Mark Newsgroup Read">
+<!ENTITY folderContextMarkNewsgroupRead.accesskey "k">
+<!ENTITY folderContextMarkMailFolderRead.label "Mark Folder Read">
+<!ENTITY folderContextMarkMailFolderRead.accesskey "k">
+<!ENTITY folderContextSubscribe.label "Subscribe…">
+<!ENTITY folderContextSubscribe.accesskey "b">
+<!ENTITY folderContextSearchForMessages.label "Search Messages…">
+<!ENTITY folderContextSearchForMessages.accesskey "S">
+<!ENTITY folderContextProperties2.label "Properties">
+<!ENTITY folderContextProperties2.accesskey "P">
+<!ENTITY folderContextFavoriteFolder.label "Favourite Folder">
+<!ENTITY folderContextFavoriteFolder.accesskey "a">
+<!ENTITY folderContextSettings2.label "Settings">
+<!ENTITY folderContextSettings2.accesskey "e">
+
+<!-- Search Bar -->
+<!ENTITY SearchNameOrEmail.label "Name or Email contains:">
+<!ENTITY SearchNameOrEmail.accesskey "N">
+
+<!-- Gloda Search Bar -->
+<!ENTITY glodaSearchBar.placeholder "Search messages…">
+
+<!-- Quick Search Menu Bar -->
+<!ENTITY searchSubjectMenu.label "Subject">
+<!ENTITY searchFromMenu.label "From">
+<!ENTITY searchSubjectOrFromMenu.label "Subject or From">
+<!ENTITY searchRecipient.label "To or Cc">
+<!ENTITY searchSubjectOrRecipientMenu.label "Subject, To or Cc">
+<!ENTITY searchMessageBody.label "Entire Message">
+<!ENTITY saveAsVirtualFolderMenu.label "Save Search as a Folder…">
+
+<!-- Thread Pane -->
+<!ENTITY selectColumn.label "Select Messages">
+<!ENTITY threadColumn.label "Thread">
+<!ENTITY fromColumn.label "From">
+<!ENTITY recipientColumn.label "Recipient">
+<!ENTITY correspondentColumn.label "Correspondents">
+<!ENTITY subjectColumn.label "Subject">
+<!ENTITY dateColumn.label "Date">
+<!ENTITY priorityColumn.label "Priority">
+<!ENTITY tagsColumn.label "Tag">
+<!ENTITY accountColumn.label "Account">
+<!ENTITY statusColumn.label "Status">
+<!ENTITY sizeColumn.label "Size">
+<!ENTITY junkStatusColumn.label "Junk Status">
+<!ENTITY unreadColumn.label "Unread">
+<!ENTITY totalColumn.label "Total">
+<!ENTITY readColumn.label "Read">
+<!ENTITY receivedColumn.label "Received">
+<!ENTITY starredColumn.label "Starred">
+<!ENTITY locationColumn.label "Location">
+<!ENTITY idColumn.label "Order Received">
+<!ENTITY attachmentColumn.label "Attachments">
+<!ENTITY deleteColumn.label "Delete">
+
+<!-- Thread Pane Tooltips -->
+<!ENTITY columnChooser2.tooltip "Select columns to display">
+<!ENTITY selectColumn.tooltip "Toggle select all messages">
+<!ENTITY threadColumn2.tooltip "Display message threads">
+<!ENTITY fromColumn2.tooltip "Sort by from">
+<!ENTITY recipientColumn2.tooltip "Sort by recipient">
+<!ENTITY correspondentColumn2.tooltip "Sort by correspondents">
+<!ENTITY subjectColumn2.tooltip "Sort by subject">
+<!ENTITY dateColumn2.tooltip "Sort by date">
+<!ENTITY priorityColumn2.tooltip "Sort by priority">
+<!ENTITY tagsColumn2.tooltip "Sort by tags">
+<!ENTITY accountColumn2.tooltip "Sort by account">
+<!ENTITY statusColumn2.tooltip "Sort by status">
+<!ENTITY sizeColumn2.tooltip "Sort by size">
+<!ENTITY junkStatusColumn2.tooltip "Sort by junk status">
+<!ENTITY unreadColumn2.tooltip "Number of unread messages in thread">
+<!ENTITY totalColumn2.tooltip "Total number of messages in thread">
+<!ENTITY readColumn2.tooltip "Sort by read">
+<!ENTITY receivedColumn2.tooltip "Sort by date received">
+<!ENTITY starredColumn2.tooltip "Sort by star">
+<!ENTITY locationColumn2.tooltip "Sort by location">
+<!ENTITY idColumn2.tooltip "Sort by order received">
+<!ENTITY attachmentColumn2.tooltip "Sort by attachments">
+<!ENTITY deleteColumn.tooltip "Delete a message">
+
+<!-- Thread Pane Context Menu -->
+<!ENTITY contextNewMsgFromTemplate.label "New Message from Template">
+<!ENTITY contextOpenNewWindow.label "Open Message in New Window">
+<!ENTITY contextOpenNewWindow.accesskey "W">
+<!-- The contextOpenNewTab.accesskey ("T") potentially conflicts with
+ cutCmd.accessKey which is defined in textcontext.dtd from toolkit. Right
+ now, both menu items can't be visible at the same time, but should someone
+ enable copy/paste of message, this key would probably need to be changed. -->
+<!ENTITY contextOpenNewTab.label "Open Message in New Tab">
+<!ENTITY contextOpenNewTab.accesskey "T">
+<!ENTITY contextOpenConversation.label "Open Message in Conversation">
+<!ENTITY contextOpenConversation.accesskey "n">
+<!ENTITY contextOpenContainingFolder.label "Open Message in Containing Folder">
+<!ENTITY contextOpenContainingFolder.accesskey "n">
+<!ENTITY contextEditMsgAsNew.label "Edit As New Message">
+<!ENTITY contextEditMsgAsNew.accesskey "E">
+<!ENTITY contextEditDraftMsg.label "Edit Draft Message">
+<!ENTITY contextEditTemplate.label "Edit Template">
+<!ENTITY contextEditTemplate.accesskey "T">
+<!ENTITY contextArchive.label "Archive">
+<!ENTITY contextArchive.accesskey "h">
+<!ENTITY contextReplySender.label "Reply to Sender Only">
+<!ENTITY contextReplySender.accesskey "R">
+<!ENTITY contextReplyNewsgroup2.label "Followup to Newsgroup">
+<!ENTITY contextReplyNewsgroup2.accesskey "u">
+<!ENTITY contextReplyAll.label "Reply to All">
+<!ENTITY contextReplyAll.accesskey "A">
+<!ENTITY contextReplyList.label "Reply to List">
+<!ENTITY contextReplyList.accesskey "L">
+<!ENTITY contextForward.label "Forward">
+<!ENTITY contextForward.accesskey "F">
+<!ENTITY contextForwardAsMenu.label "Forward As">
+<!ENTITY contextForwardAsMenu.accesskey "o">
+<!ENTITY contextForwardAsInline.label "Inline">
+<!ENTITY contextForwardAsInline.accesskey "I">
+<!ENTITY contextForwardAsAttachmentItem.label "Attachment">
+<!ENTITY contextForwardAsAttachmentItem.accesskey "A">
+<!ENTITY contextMultiForwardAsAttachment.label "Forward as Attachments">
+<!ENTITY contextMultiForwardAsAttachment.accesskey "o">
+<!ENTITY contextMoveMsgMenu.label "Move To">
+<!ENTITY contextMoveMsgMenu.accesskey "M">
+<!ENTITY contextMoveCopyMsgRecentMenu.label "Recent">
+<!ENTITY contextMoveCopyMsgRecentMenu.accesskey "R">
+<!ENTITY contextMoveCopyMsgFavoritesMenu.label "Favourites">
+<!ENTITY contextMoveCopyMsgFavoritesMenu.accesskey "F">
+<!ENTITY contextCopyMsgMenu.label "Copy To">
+<!ENTITY contextCopyMsgMenu.accesskey "C">
+<!ENTITY contextKillThreadMenu.label "Ignore Thread">
+<!ENTITY contextKillSubthreadMenu.accesskey "b">
+<!ENTITY contextKillThreadMenu.accesskey "I">
+<!ENTITY contextKillSubthreadMenu.label "Ignore Subthread">
+<!ENTITY contextWatchThreadMenu.label "Watch Thread">
+<!-- LOCALIZATION NOTE (contextWatchThreadMenu.accesskey):
+ In the en-US locale we ran out of access keys, so there is an empty access key for
+ Watch Thread. Localizers can pick a suitable key
+ -->
+<!ENTITY contextWatchThreadMenu.accesskey "">
+<!ENTITY contextSaveAs.label "Save As…">
+<!ENTITY contextSaveAs.accesskey "S">
+<!ENTITY contextPrint.label "Print…">
+<!ENTITY contextPrint.accesskey "P">
+<!ENTITY contextPrintPreview.label "Print Preview">
+<!ENTITY contextPrintPreview.accesskey "v">
+
+<!-- LOCALIZATION NOTE (columnPicker.applyTo.label):
+ This option in the thread pane column picker pops up a sub-menu containing
+ the "columnPicker.applyToFolder.label" and
+ "columnPicker.applyToFolderAndChildren.label" options. This item indicates
+ a desire to apply the currently displayed set of columns to some other
+ folder(s). The sub-menu items indicate whether we want to apply it to just
+ a folder or also its children.
+ -->
+<!ENTITY columnPicker.applyTo.label "Apply columns to…">
+<!-- LOCALIZATION NOTE (columnPicker.applyToFolder.label):
+ This option in the thread pane column picker is found on a sub-menu beneath
+ the "columnPicker.applyTo.label" alongside
+ "columnPicker.applyToFolderAndChildren.label". It indicates a desire to
+ apply the currently display thread pane column settings to a single folder
+ that the user selects using the same widget as the move to/copy to
+ mechanism (via a series of popups).
+ -->
+<!ENTITY columnPicker.applyToFolder.label "Folder…">
+<!-- LOCALIZATION NOTE (columnPicker.applyToFolderAndChildren.label):
+ This option in the thread pane column picker is found on a sub-menu beneath
+ the "columnPicker.applyTo.label" alongside
+ "columnPicker.applyToFolder.label". It indicates a desire to
+ apply the currently display thread pane column settings to a folder and all
+ of its descendents. The user selects the folder using the same widget as the
+ move to/copy to mechanism (via a series of popups).
+ -->
+<!ENTITY columnPicker.applyToFolderAndChildren.label "Folder and its children…">
+<!-- LOCALIZATION NOTE (columnPicker.thisFolder.label):
+ This is used in the folder selection widget for the
+ "columnPicker.applyToFolder.label" and
+ "columnPicker.applyToFolderAndChildren.label" menu options. Whenever
+ a folder has children, it results in a menu popup; the first menu item
+ in that popup is given this label to indicate that that folder should be
+ selected. For example, if folder "A" has two children, "B" and "C", then
+ when the user hovers over "A", a new popup menu will be displayed whose
+ items are "This folder", "B", and "C". This is the equivalent of the
+ "File here" option for the move to/copy to widget.
+ -->
+<!ENTITY columnPicker.thisFolder.label "This folder">
+
+<!-- Media (video/audio) controls -->
+<!ENTITY contextPlay.label "Play">
+<!ENTITY contextPlay.accesskey "P">
+<!ENTITY contextPause.label "Pause">
+<!ENTITY contextPause.accesskey "P">
+<!ENTITY contextMute.label "Mute">
+<!ENTITY contextMute.accesskey "M">
+<!ENTITY contextUnmute.label "Unmute">
+<!ENTITY contextUnmute.accesskey "m">
+
+<!-- Quick Search Bar -->
+<!-- LOCALIZATION NOTE (quickSearchCmd.key):
+ This is actually the key used for the global message search box; we have
+ not changed
+ -->
+<!ENTITY quickSearchCmd.key "k">
+<!-- LOCALIZATION NOTE (search.label.base1):
+ This is the base of the empty text for the global search box. We replace
+ #1 with the contents of the appropriate search.keyLabel.* value for the
+ platform.
+ The goal is to convey to the user that typing in the box will allow them
+ to search for messages globally and that there is a hotkey they can press
+ to get to the box faster. If the global indexer is disabled, the search
+ box will be collapsed and the user will never see this message.
+ -->
+<!ENTITY search.label.base1 "Search #1">
+<!-- LOCALIZATION NOTE (search.keyLabel.nonmac):
+ The description of the key-binding to get into the global search box on
+ windows and linux (which use the control key). We use the key defined in
+ the quickSearchCmd.key entity defined above, the letter should match it.
+ -->
+<!ENTITY search.keyLabel.nonmac "&lt;Ctrl+K&gt;">
+<!-- LOCALIZATION NOTE (search.keyLabel.mac):
+ The description of the key-binding to get into the global search box on mac
+ systems. We use the key defined in the quickSearchCmd.key entity defined
+ above, the letter should match it.
+ -->
+<!ENTITY search.keyLabel.mac "&lt;&#x2318;K&gt;">
+
+<!-- Message Header Context Menu -->
+<!ENTITY AddToAddressBook.label "Add to Address Book…">
+<!ENTITY AddToAddressBook.accesskey "B">
+<!ENTITY AddDirectlyToAddressBook.label "Add to Address Book">
+<!ENTITY AddDirectlyToAddressBook.accesskey "B">
+<!ENTITY EditContact1.label "Edit Contact">
+<!ENTITY EditContact1.accesskey "E">
+<!ENTITY ViewContact.label "View Contact">
+<!ENTITY ViewContact.accesskey "V">
+<!ENTITY SubscribeToNewsgroup.label "Subscribe to Newsgroup">
+<!ENTITY SubscribeToNewsgroup.accesskey "N">
+<!ENTITY SendMessageTo.label "Compose Message To">
+<!ENTITY SendMessageTo.accesskey "s">
+<!ENTITY CopyEmailAddress.label "Copy Email Address">
+<!ENTITY CopyEmailAddress.accesskey "C">
+<!ENTITY CopyNameAndEmailAddress.label "Copy Name and Email Address">
+<!ENTITY CopyNameAndEmailAddress.accesskey "N">
+<!ENTITY CopyNewsgroupName.label "Copy Newsgroup Name">
+<!ENTITY CopyNewsgroupName.accesskey "C">
+<!ENTITY CopyNewsgroupURL.label "Copy Newsgroup URL">
+<!ENTITY CopyNewsgroupURL.accesskey "U">
+<!ENTITY CreateFilterFrom.label "Create Filter From…">
+<!ENTITY CreateFilterFrom.accesskey "F">
+<!ENTITY reportPhishingURL.label "Report Email Scam">
+<!ENTITY reportPhishingURL.accesskey "o">
+
+<!-- Spell checker context menu items -->
+<!ENTITY spellAddDictionaries.label "Add Dictionaries…">
+<!ENTITY spellAddDictionaries.accesskey "A">
+
+<!-- Content Pane Context Menu -->
+<!ENTITY saveLinkAsCmd.label "Save Link As…">
+<!ENTITY saveLinkAsCmd.accesskey "k">
+<!ENTITY saveImageAsCmd.label "Save Image As…">
+<!ENTITY saveImageAsCmd.accesskey "v">
+<!ENTITY copyLinkCmd.label "Copy Link Location">
+<!ENTITY copyLinkCmd.accesskey "L">
+<!ENTITY copyImageAllCmd.label "Copy Image">
+<!ENTITY copyImageAllCmd.accesskey "I">
+<!ENTITY copyEmailCmd.label "Copy Email Address">
+<!ENTITY copyEmailCmd.accesskey "E">
+<!ENTITY stopCmd.label "Stop">
+<!ENTITY stopCmd.accesskey "S">
+<!ENTITY reloadCmd.label "Reload">
+<!ENTITY reloadCmd.accesskey "R">
+<!ENTITY openInBrowser.label "Open In Browser">
+<!ENTITY openInBrowser.accesskey "O">
+<!ENTITY openLinkInBrowser.label "Open Link In Browser">
+<!ENTITY openLinkInBrowser.accesskey "O">
+
+<!-- Statusbar -->
+<!ENTITY statusText.label "Done">
+
+<!-- Mac OS X Window Menu -->
+<!ENTITY minimizeWindow.label "Minimize">
+<!ENTITY minimizeWindow.key "m">
+<!ENTITY bringAllToFront.label "Bring All to Front">
+<!ENTITY zoomWindow.label "Zoom">
+
+<!-- Mac OS X Application Menu (Cocoa widgets) -->
+<!ENTITY preferencesCmdMac2.label "Preferences">
+<!ENTITY preferencesCmdMac.commandkey ",">
+<!ENTITY preferencesCmdMac.modifiers "accel">
+<!ENTITY servicesMenuMac.label "Services">
+<!ENTITY hideThisAppCmdMac.label "Hide &brandShortName;">
+<!ENTITY hideThisAppCmdMac.commandkey "H">
+<!ENTITY hideThisAppCmdMac.modifiers "accel">
+<!ENTITY hideOtherAppsCmdMac.label "Hide Others">
+<!ENTITY hideOtherAppsCmdMac.commandkey "H">
+<!ENTITY hideOtherAppsCmdMac.modifiers "accel,alt">
+<!ENTITY showAllAppsCmdMac.label "Show All">
+
+<!-- Mac OS X Dock Icon pop-up menu -->
+<!ENTITY dockOptions.label "App Icon Options…">
+<!ENTITY writeNewMessageDock.label "Write New Message">
+<!ENTITY openAddressBookDock.label "Open Address Book">
+
+<!-- Content tab Navigation buttons -->
+<!ENTITY browseBackButton.tooltip "Go back one page">
+<!ENTITY browseForwardButton.tooltip "Go forward one page">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messenger.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messenger.properties
new file mode 100644
index 0000000000..b7ea8694a7
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messenger.properties
@@ -0,0 +1,769 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# The following are used by the messenger application
+#
+
+# LOCALIZATION NOTE(statusMessage):
+# Do not translate the words %1$S and %2$S below. Place the word %1$S where the
+# account name should appear and %2$S where the status message should appear.
+# EXAMPLE: Jim's Account: Downloading messages...
+statusMessage=%1$S: %2$S
+
+removeAccount=Delete Account…
+newFolderMenuItem=Folder…
+newSubfolderMenuItem=Subfolder…
+newFolder=New Folder…
+newSubfolder=New Subfolder…
+markFolderRead=Mark Folder Read;Mark Folders Read
+markNewsgroupRead=Mark Newsgroup Read;Mark Newsgroups Read
+folderProperties=Folder Properties
+newTag=New Tag…
+# LOCALIZATION NOTE (getNextNewsMessages): Semi-colon list of plural forms.
+# #1 is the number of news messages to get.
+getNextNewsMessages=Get Next #1 News Message;Get Next #1 News Messages
+advanceNextPrompt=Advance to next unread message in %S?
+titleNewsPreHost=on
+replyToSender=Reply to Sender
+reply=Reply
+EMLFiles=Mail Files
+OpenEMLFiles=Open Message
+# LOCALIZATION NOTE(defaultSaveMessageAsFileName): Do not translate ".eml"
+# in the line below. Also, the complete file name should be 8.3.
+defaultSaveMessageAsFileName=message.eml
+# LOCALIZATION NOTE(longMsgSubjectTruncator): A suffix string appended to the filename
+# (created from message subject) if it needed to be truncated due to length.
+longMsgSubjectTruncator=...
+SaveMailAs=Save Message As
+SaveAttachment=Save Attachment
+SaveAllAttachments=Save All Attachments
+DetachAttachment=Detach Attachment
+DetachAllAttachments=Detach All Attachments
+ChooseFolder=Choose Folder
+MessageLoaded=Message loaded…
+PreviewTitle=%S - %S
+saveAttachmentFailed=Unable to save the attachment. Please check your file name and try again later.
+saveMessageFailed=Unable to save the message. Please check your file name and try again later.
+fileExists=%S already exists. Do you want to replace it?
+# LOCALIZATION NOTE(failedToReadFile): %1$S is replaced by the file name, %2$S is replaced by the reason the file load failed.
+failedToReadFile=Failed to read file: %1$S reason: %2$S
+
+downloadingNewsgroups=Downloading Newsgroups for Offline Use
+downloadingMail=Downloading Mail for Offline Use
+sendingUnsent=Sending Unsent Messages
+
+folderExists=A folder with that name already exists. Please enter a different name.
+# LOCALIZATION NOTE(confirmDuplicateFolderRename): %1$S is name of folder being moved, %2$S is parent folder name, %3$S is proposed new folder name
+confirmDuplicateFolderRename=A subfolder with the name ‘%1$S’ already exists in the folder ‘%2$S’. Would you like to move this folder using the new name ‘%3$S’?
+folderCreationFailed=The folder could not be created because the folder name you specified contains an unrecognized character. Please enter a different name and try again.
+
+compactingFolder=Compacting folder %S…
+# LOCALIZATION NOTE(compactingDone): %1$S is the compaction gain.
+compactingDone=Done compacting (approx. %1$S saved).
+
+confirmFolderDeletionForFilter=Deleting the folder ‘%S’ will disable its associated filter(s). Are you sure you want to delete the folder?
+alertFilterChanged=Filters associated with this folder will be updated.
+filterDisabled=The folder ‘%S’ could not be found, so filter(s) associated with this folder will be disabled. Verify that the folder exists, and that filters point to a valid destination folder.
+filterFolderDeniedLocked=The messages could not be filtered to folder ‘%S’ because another operation is in progress.
+parsingFolderFailed=Unable to open the folder %S because it is in use by some other operation. Please wait for that operation to finish and then select the folder again.
+deletingMsgsFailed=Unable to delete messages in folder %S because it is in use by some other operation. Please wait for that operation to finish and then try again.
+alertFilterCheckbox=Do not warn me again.
+compactFolderDeniedLock=The folder ‘%S’ cannot be compacted because another operation is in progress. Please try again later.
+compactFolderWriteFailed=The folder ‘%S’ could not be compacted because writing to folder failed. Verify that you have enough disk space, and that you have write privileges to the file system, then try again.
+compactFolderInsufficientSpace=Some folders (e.g. ‘%S’) cannot be compacted because there is not enough free disk space. Please delete some files and try again.
+filterFolderHdrAddFailed=The messages could not be filtered to folder ‘%S’ because adding a message to it failed. Verify that the folder is displaying properly or try to repair it from the folder properties.
+filterFolderWriteFailed=The messages could not be filtered to folder ‘%S’ because writing to folder failed. Verify that you have enough disk space, and that you have write privileges to the file system, then try again.
+copyMsgWriteFailed=The messages could not be moved or copied to folder ‘%S’ because writing to folder failed. To gain disk space, from the File menu, first choose Empty Trash, and then choose Compact Folders, and then try again.
+cantMoveMsgWOBodyOffline=While working offline, you cannot move or copy messages that were not downloaded for offline use. From the Mail window, open the File menu, choose Offline, then uncheck Work Offline, and then try again.
+operationFailedFolderBusy=The operation failed because another operation is using the folder. Please wait for that operation to finish and then try again.
+folderRenameFailed=The folder could not be renamed. Perhaps the folder is being reparsed, or the new name is not a valid folder name.
+# LOCALIZATION NOTE(verboseFolderFormat): %1$S is folder name, %2$S is server name
+verboseFolderFormat=%1$S on %2$S
+# LOCALIZATION NOTE(filterFolderTruncateFailed): %1$S is replaced by the folder name, %2$S is replaced by the brandShortName
+filterFolderTruncateFailed=There was an error truncating the Inbox after filtering a message to folder ‘%1$S’. You may need to shutdown %2$S and delete INBOX.msf.
+
+mailboxTooLarge=The folder %S is full, and can’t hold any more messages. To make room for more messages, delete any old or unwanted mail and compact the folder.
+outOfDiskSpace=There is not enough disk space to download new messages. Try deleting old mail, emptying the Trash folder, and compacting your mail folders, and then try again.
+errorGettingDB=Unable to open the summary file for %S. Perhaps there was an error on disk, or the full path is too long.
+defaultServerTag=(Default)
+
+# Used in message database list view to provide a text value for graphic based cells.
+messageUnread=Unread
+messageHasFlag=Starred
+messageHasAttachment=Has Attachment
+messageJunk=Junk
+messageExpanded=Expanded
+messageCollapsed=Collapsed
+
+# Used in the SMTP Account Settings panel when a server value has no properties
+smtpServerList-NotSpecified=<not specified>
+smtpServer-ConnectionSecurityType-0=None
+smtpServer-ConnectionSecurityType-1=STARTTLS, if available
+smtpServer-ConnectionSecurityType-2=STARTTLS
+smtpServer-ConnectionSecurityType-3=SSL/TLS
+smtpServers-confirmServerDeletionTitle=Delete Server
+smtpServers-confirmServerDeletion=Are you sure you want to delete the server: \n %S?
+
+# Account Settings - Both Incoming and SMTP server
+authNo=No authentication
+authOld=Password, original method (insecure)
+authPasswordCleartextInsecurely=Password, transmitted insecurely
+authPasswordCleartextViaSSL=Normal password
+authPasswordEncrypted=Encrypted password
+authKerberos=Kerberos / GSSAPI
+authExternal=TLS Certificate
+authNTLM=NTLM
+authOAuth2=OAuth2
+authAnySecure=Any secure method (deprecated)
+authAny=Any method (insecure)
+
+# OAuth2 window title
+# LOCALIZATION NOTE(oauth2WindowTitle):
+# %1$S is the username (or full email address) used for authentication.
+# %2$S is the hostname of the account being authenticated.
+oauth2WindowTitle=Enter credentials for %1$S on %2$S
+
+# LOCALIZATION NOTE(serverType-nntp): Do not translate "NNTP" in the line below
+serverType-nntp=News Server (NNTP)
+# LOCALIZATION NOTE(serverType-pop3): Do not translate "POP" in the line below
+serverType-pop3=POP Mail Server
+# LOCALIZATION NOTE(serverType-imap): Do not translate "IMAP" in the line below
+serverType-imap=IMAP Mail Server
+serverType-none=Local Mail Store
+
+sizeColumnTooltip2=Sort by size
+sizeColumnHeader=Size
+linesColumnTooltip2=Sort by lines
+linesColumnHeader=Lines
+
+# LOCALIZATION NOTE (getMsgButtonTooltip): Do not translate the word "%S" below.
+# Place the word "%S" in your translation where the name of the comma separated accounts should appear.
+getMsgButtonTooltip=Get new messages for %S
+# Used to separate email addresses in a list. Note the trailing space ', '
+getMsgButtonTooltip.listSeparator=,\u0020
+
+# status feedback stuff
+documentDone=
+documentLoading=Loading Message…
+
+# LOCALIZATION NOTE (autosyncProgress): Do not translate the word "%1$S" or "%2$S" below.
+# Place the word %1$S in your translation where the name of the comma separated folders should appear.
+# Place the word %2$S in your translation where the name of the comma separated accounts should appear.
+autosyncProgress=Synchronizing messages in %1$S from %2$S…
+
+unreadMsgStatus=Unread: %S
+selectedMsgStatus=Selected: %S
+totalMsgStatus=Total: %S
+
+# localized folder names
+
+localFolders=Local Folders
+
+# LOCALIZATION NOTE (inboxFolderName): OK to translate all foldernames, bugzilla #57440 & bugzilla #23625 fixed
+inboxFolderName=Inbox
+trashFolderName=Trash
+sentFolderName=Sent
+draftsFolderName=Drafts
+templatesFolderName=Templates
+outboxFolderName=Outbox
+junkFolderName=Junk
+archivesFolderName=Archives
+
+# "Normal" priority is often blank,
+# depending on the consumers of these strings
+priorityLowest=Lowest
+priorityLow=Low
+priorityNormal=Normal
+priorityHigh=High
+priorityHighest=Highest
+
+#Group by date thread pane titles
+today=Today
+yesterday=Yesterday
+lastWeek=Last Week
+last7Days=Last 7 Days
+twoWeeksAgo=Two Weeks Ago
+last14Days=Last 14 Days
+older=Older
+futureDate=Future
+
+#Grouped By Tags
+untaggedMessages=Untagged Messages
+
+# Grouped by status
+messagesWithNoStatus=No Status
+
+#Grouped by priority
+noPriority=No Priority
+
+#Grouped by has attachments
+noAttachments=No Attachments
+attachments=Attachments
+
+#Grouped by starred
+notFlagged=Not Starred
+groupFlagged=Starred
+
+# defaults descriptions for tag prefs listed in mailnews.js
+# (we keep the .labels. names for backwards compatibility)
+mailnews.tags.remove=Remove All Tags
+mailnews.labels.description.1=Important
+mailnews.labels.description.2=Work
+mailnews.labels.description.3=Personal
+mailnews.labels.description.4=To Do
+mailnews.labels.description.5=Later
+
+# Format definition tag menu texts.
+# This is necessary in order to get the accesskeys to be the on the first
+# character of the menu text instead of after the menu text.
+# If a key definition exists for the tag at index n, that key's key will be
+# taken as the accesskey, eg.
+# <key id="key_tag3" key="&tagCmd3.key;" oncommand="ToggleMessageTagKey(3);"/>
+# makes the third tag have the accesskey &tagCmd3.key;.
+# In the menuitem's label, this accesskey appears at %1$S below; %2$S will be
+# replaced by the tag label.
+mailnews.tags.format=%1$S %2$S
+
+replied=Replied
+forwarded=Forwarded
+redirected=Redirected
+new=New
+read=Read
+flagged=Starred
+
+# for junk status picker in search and mail views
+junk=Junk
+
+# for junk score origin picker in search and mail views
+junkScoreOriginPlugin=Plugin
+junkScoreOriginFilter=Filter
+junkScoreOriginWhitelist=Whitelist
+junkScoreOriginUser=User
+junkScoreOriginImapFlag=IMAP Flag
+
+# for the has attachment picker in search and mail views
+hasAttachments=Has Attachments
+
+# for the Tag picker in search and mail views.
+tag=Tags
+
+# LOCALIZATION NOTE(andOthers):
+# for multiple authors, add this abbreviation to the first author to indicate
+# there are more; for the From column in the threadpane message list.
+andOthers=et al.
+
+# whether to also show phonetic fields in the addressbook
+# LOCALIZATION NOTE(mail.addr_book.show_phonetic_fields):
+# the only valid values are: true OR false (choose from the untranslated English words)
+mail.addr_book.show_phonetic_fields=false
+
+# valid format options are:
+# 1: yyyy/mm/dd
+# 2: yyyy/dd/mm
+# 3: mm/dd/yyyy
+# 4: mm/yyyy/dd
+# 5: dd/mm/yyyy
+# 6: dd/yyyy/mm
+#
+# 0: auto-detect the current locale format
+# a separator has to be either '/', '-', '.' and the year in Christian year
+# otherwise mm/dd/yyyy (option 3) is used
+#
+mailnews.search_date_format=0
+# separator for search date (e.g. "/", "-"), or empty when search_date_format is zero
+mailnews.search_date_separator=
+# leading zeros for day and month values, not used if mailnews.search_date_format is not zero
+mailnews.search_date_leading_zeros=true
+
+# offline msg
+nocachedbodybody2=The body of this message has not been downloaded from \
+the server for reading offline. To read this message, \
+you must reconnect to the network, choose Offline from \
+the File menu and then uncheck Work Offline. \
+In the future, you can select which messages or folders to read offline. To do \
+this, choose Offline from the file menu and then select Download/Sync Now. \
+You can adjust the Disk Space preference to prevent the downloading of large \
+messages.
+
+# LOCALIZATION NOTE(acctCentralTitleFormat): %1$S is brand, %2$S is account type, %3$S is account name
+acctCentralTitleFormat=%1$S %2$S - %3$S
+mailAcctType=Mail
+newsAcctType=News
+feedsAcctType=Feeds
+
+# LOCALIZATION NOTE(nocachedbodytitle): Do not translate "<TITLE>" or "</TITLE>" in the line below
+nocachedbodytitle=<TITLE>Go Online to View This Message</TITLE>\n
+
+# mailWindowOverlay.js
+confirmUnsubscribeTitle=Confirm Unsubscribe
+confirmUnsubscribeText=Are you sure you want to unsubscribe from %S?
+confirmUnsubscribeManyText=Are you sure you want to unsubscribe from these newsgroups?
+restoreAllTabs=Restore All Tabs
+
+confirmMarkAllFoldersReadTitle=Mark All Folders Read
+confirmMarkAllFoldersReadMessage=Are you sure you want to mark all messages in all folders of this account as read?
+
+# LOCALIZATION NOTE(junkBarMessage): %S is brand
+junkBarMessage=%S thinks this message is Junk mail.
+junkBarButton=Not Junk
+junkBarButtonKey=N
+junkBarInfoButton=Learn More
+junkBarInfoButtonKey=L
+
+# LOCALIZATION NOTE(remoteContentBarMessage): %S is brand
+remoteContentBarMessage=To protect your privacy, %S has blocked remote content in this message.
+remoteContentPrefLabel=Options
+remoteContentPrefAccesskey=O
+remoteContentPrefLabelUnix=Preferences
+remoteContentPrefAccesskeyUnix=P
+
+# LOCALIZATION NOTE(remoteAllowResource): %S is origin
+remoteAllowResource=Allow remote content from %S
+# LOCALIZATION NOTE(remoteAllowAll): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# #1 is the number of origins
+remoteAllowAll=Allow remote content from the #1 origin listed above;Allow remote content from all #1 origins listed above
+
+phishingBarMessage=This message may be a scam.
+phishingBarPrefLabel=Options
+phishingBarPrefAccesskey=O
+phishingBarPrefLabelUnix=Preferences
+phishingBarPrefAccesskeyUnix=P
+
+mdnBarIgnoreButton=Ignore Request
+mdnBarIgnoreButtonKey=n
+mdnBarSendReqButton=Send Receipt
+mdnBarSendReqButtonKey=S
+
+draftMessageMsg=This is a draft message.
+draftMessageButton=Edit
+draftMessageButtonKey=E
+
+# msgHdrViewOverlay.js
+openLabel=Open
+openLabelAccesskey=O
+saveLabel=Save As…
+saveLabelAccesskey=A
+detachLabel=Detach…
+detachLabelAccesskey=D
+deleteLabel=Delete
+deleteLabelAccesskey=E
+openFolderLabel=Open Containing Folder
+openFolderLabelAccesskey=F
+deleteAttachments=The following attachments will be permanently deleted from this message:\n%S\nThis action cannot be undone. Do you wish to continue?
+detachAttachments=The following attachments have been successfully saved and will now be permanently deleted from this message:\n%S\nThis action cannot be undone. Do you wish to continue?
+deleteAttachmentFailure=Failed to delete the selected attachments.
+emptyAttachment=This attachment appears to be empty.\nPlease check with the person who sent this.\nOften company firewalls or antivirus programs will destroy attachments.
+externalAttachmentNotFound=This detached file or link attachment is not found or is not accessible at this location anymore.
+
+# LOCALIZATION NOTE (attachmentCount): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# #1 number of attachments
+attachmentCount=#1 attachment;#1 attachments
+
+# LOCALIZATION NOTE (attachmentCountSingle): This is the format for the
+# attachment header when a message has only one attachment. This is separate
+# from attachmentCount above, since attachmentCountSingle typically ends with a
+# colon.
+attachmentCountSingle=1 attachment:
+
+# LOCALIZATION NOTE (attachmentSizeUnknown): The string to show for the total
+# size of all attachments when none of the attachments' sizes can be detected.
+attachmentSizeUnknown=size unknown
+
+# LOCALIZATION NOTE (attachmentSizeAtLeast): The string to show for the total
+# size of all attachments when at least one (but not all) of the attachments'
+# sizes can't be detected. %1$S is the formatted size.
+attachmentSizeAtLeast=at least %1$S
+
+# This is the format for prepending accesskeys to the
+# each of the attachments in the file|attachments menu:
+# ie: 1 file.txt
+# 2 another file.txt
+attachmentDisplayNameFormat=%S %S
+
+# This is the heading for the attachment summary when printing an email
+attachmentsPrintHeader=Attachments:
+
+# Connection Error Messages
+# LOCALIZATION NOTE(unknownHostError): %S is the server name
+unknownHostError=Failed to connect to server %S.
+# LOCALIZATION NOTE(connectionRefusedError): %S is the server name
+connectionRefusedError=Could not connect to server %S; the connection was refused.
+# LOCALIZATION NOTE(netTimeoutError): %S is the server name
+netTimeoutError=Connection to server %S timed out.
+# LOCALIZATION NOTE(netResetError): %S is the server name
+netResetError=Connection to server %S was reset.
+# LOCALIZATION NOTE(netInterruptError): %S is the server name
+netInterruptError=Connection to server %S was interrupted.
+
+recipientSearchCriteria=Subject or Recipient contains:
+fromSearchCriteria=Subject or From contains:
+
+# LOCALIZATION NOTE(biffNotification): %1$S is the number of new messages
+biffNotification_message=has %1$S new message
+biffNotification_messages=has %1$S new messages
+
+# LOCALIZATION NOTE(newMailNotification_message): %1$S is the name of the account %2$S is the number of new messages
+newMailNotification_message=%1$S received %2$S new message
+
+# LOCALIZATION NOTE(newMailNotification_messages): %1$S is the name of the account %2$S is the number of new messages
+newMailNotification_messages=%1$S received %2$S new messages
+
+# LOCALIZATION NOTE(newMailNotification_messagetitle): %1$S is subject of new message and %2$S is sender of new message.
+# This is UNIX only
+newMailNotification_messagetitle=%1$S from %2$S
+
+# LOCALIZATION NOTE(newMailAlert_message):
+# Semi-colon list of plural forms. See:
+# https://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the name of the account, #2 is the number of new messages
+newMailAlert_message=#1 received #2 new message;#1 received #2 new messages
+
+# For the Quota tab in the mail folder properties dialog
+quotaPercentUsed=%S%% full
+# for quota in main window (commandglue.js)
+percent=%S%%
+quotaTooltip2=IMAP quota: %S used of %S total. Click for details.
+
+# for message views
+confirmViewDeleteTitle=Confirm
+confirmViewDeleteMessage=Are you sure you want to delete this view?
+
+# for virtual folders
+confirmSavedSearchTitle=Confirm Delete
+confirmSavedSearchDeleteMessage=Are you sure you want to delete this saved search?
+
+## @name ENTER_PASSWORD_PROMPT
+## @loc None
+# LOCALIZATION NOTE (passwordPrompt): Do not translate the word %S below.
+# Place the word "%S" in your translation where the email address
+# or the username should appear
+passwordPrompt=Enter your password for %1$S on %2$S:
+
+## @name ENTER_PASSWORD_PROMPT_TITLE
+## @loc None
+passwordTitle=Mail Server Password Required
+
+# for checking if the user really wants to open lots of messages in separate windows.
+openWindowWarningTitle=Confirm
+# LOCALIZATION NOTE (openWindowWarningConfirmation): Semi-colon list of plural forms.
+# #1 is the number of messages the user is attempting to open.
+openWindowWarningConfirmation=Opening #1 message may be slow. Continue?;Opening #1 messages may be slow. Continue?
+
+# for checking if the user really wants to open lots of messages in tabs.
+openTabWarningTitle=Confirm
+# LOCALIZATION NOTE (openTabWarningConfirmation): Semi-colon list of plural forms.
+# #1 is the number of messages the user is attempting to open.
+openTabWarningConfirmation=Opening #1 message may be slow. Continue?;Opening #1 messages may be slow. Continue?
+
+# for warning the user that a tag they're trying to create already exists
+tagExists=A tag with that name already exists.
+
+# title of the edit tag dialog
+editTagTitle=Edit Tag
+
+# for the virtual folder list dialog title
+# %S is the name of the saved search folder
+editVirtualFolderPropertiesTitle=Edit Saved Search Properties for %S
+# LOCALIZATION NOTE (foldersChosen): #1 number of chosen folders
+virtualFolderSourcesChosen=#1 folder chosen;#1 folders chosen
+
+#alert to inform the user to choose one or more folders to search for a saved search folder
+alertNoSearchFoldersSelected=You must choose at least one folder to search for the saved search folder.
+
+# These are displayed in the message and folder pane windows
+# LOCALIZATION NOTE %.*f is the abbreviated size in the appropriate units
+byteAbbreviation2=%.*f bytes
+kiloByteAbbreviation2=%.*f KB
+megaByteAbbreviation2=%.*f MB
+gigaByteAbbreviation2=%.*f GB
+teraByteAbbreviation2=%.*f TB
+petaByteAbbreviation2=%.*f PB
+
+## LOCALIZATION NOTE(folderWithAccount):
+## This is used to show folder name together with an account name.
+## %1$S = folder name
+## %2$S = account name
+folderWithAccount=%1$S - %2$S
+## LOCALIZATION NOTE(folderWithUnreadMsgs):
+## This is a concatenation of two strings to compose a folder label with unread messages.
+## %1$S = folder name
+## %2$S = count of unread messages
+folderWithUnreadMsgs=%1$S (%2$S)
+## LOCALIZATION NOTE(summarizedValue):
+## This string shows an indication that the value shown is actually a summary
+## accumulated from all subfolders.
+## %S = summarized value from all subfolders
+folderSummarizedSymbolValue=▾%S
+## LOCALIZATION NOTE(subfoldersExplanation):
+## This is a tooltip message shown on the values in the numeric folder pane columns.
+## %1$S = is the count of messages having the respective property, found in the folder under mouse cursor
+## %2$S = is the count of messages having the respective property, found in subfolders of the folder under mouse cursor
+subfoldersExplanation=%1$S in this folder, %2$S in subfolders
+
+# Error message if message for a message id wasn't found
+errorOpenMessageForMessageIdTitle=Error opening message-id
+errorOpenMessageForMessageIdMessage=Message for message-id %S not found
+
+# Warnings to alert users about phishing urls
+confirmPhishingTitle=Email Scam Alert
+linkMismatchTitle=Link Mismatch Detected
+#LOCALIZATION NOTE %1$S is the brand name, %2$S is the host name of the url being visited
+confirmPhishingUrl=%1$S thinks this message is a scam. The links in the message may be trying to impersonate web pages you want to visit. Are you sure you want to visit %2$S?
+#LOCALIZATION NOTE %1$S is the host name of indicated host, %2$S is the host name of the actual host.
+confirmPhishingUrlAlternate=The link you just clicked seems to lead to another site than what the link text indicated. This is sometimes used for tracking whether you clicked the link, but it could also be a scam.\n\nThe link text indicated that the link would lead to %1$S, but it leads to %2$S.
+#LOCALIZATION NOTE $1$S is the host name of the indicated host.
+confirmPhishingGoAhead=Go to %1$S anyway
+#LOCALIZATION NOTE %1$S is the host name that was displayed to the user.
+confirmPhishingGoDirect=Go to %1$S
+
+# Check for Updates
+# LOCALIZATION NOTE (updatesItem_*): these are alternative labels for Check for Update item in Help menu.
+# Which one is used depends on Update process state.
+updatesItem_default=Check for Updates…
+updatesItem_defaultFallback=Check for Updates…
+updatesItem_default.accesskey=C
+updatesItem_downloading=Downloading %S…
+updatesItem_downloadingFallback=Downloading Update…
+updatesItem_downloading.accesskey=D
+updatesItem_resume=Resume Downloading %S…
+updatesItem_resumeFallback=Resume Downloading Update…
+updatesItem_resume.accesskey=D
+updatesItem_pending=Apply Downloaded Update Now…
+updatesItem_pendingFallback=Apply Downloaded Update Now…
+updatesItem_pending.accesskey=D
+
+# Folder Pane Header Title Strings
+folderPaneModeHeader_all=All Folders
+folderPaneModeHeader_unread=Unread Folders
+folderPaneModeHeader_favorite=Favourite Folders
+folderPaneModeHeader_recent=Recent Folders
+folderPaneModeHeader_smart=Unified Folders
+unifiedAccountName=Unified Folders
+
+# Copy / Move to Folder Again
+#LOCALIZATION NOTE %1$S is the name of the folder we will move to. moveToFolderAgainAccessKey
+# should have the same value as copyToFolderAgainAccessKey as they are the same menu item in the UI
+# moveToFolderAgainAccessKey should also be a letter that occurs before %1$S
+moveToFolderAgain=Move to “%1$S” Again
+moveToFolderAgainAccessKey=t
+#LOCALIZATION NOTE %1$S is the name of the folder we will copy to
+# copyToFolderAgainAccessKey
+# should have the same value as moveToFolderAgainAccessKey as they are the same menu item in the UI
+# copyToFolderAgainAccessKey should also be a letter that occurs before %1$S
+copyToFolderAgain=Copy to “%1$S” Again
+copyToFolderAgainAccessKey=t
+
+#LOCALIZATION NOTE(mdnBarMessageNormal) %1$S is the name of the sender
+mdnBarMessageNormal=%1$S has asked to be notified when you read this message.
+#LOCALIZATION NOTE(mdnBarMessageAddressDiffers) %1$S is the name of the sender, %2$S is the address(es) to send return receipt to
+mdnBarMessageAddressDiffers=%1$S has asked to be notified (on %2$S) when you read this message.
+
+# mailCommands.js
+emptyJunkFolderTitle=Empty “%S”
+emptyJunkFolderMessage=Delete all messages and subfolders in the Junk folder?
+emptyJunkDontAsk=Don’t ask me again.
+emptyTrashFolderTitle=Empty “%S”
+emptyTrashFolderMessage=Delete all messages and subfolders in the Trash folder?
+emptyTrashDontAsk=Don’t ask me again.
+
+# junkCommands.js
+junkAnalysisPercentComplete=Junk analysis %S complete
+processingJunkMessages=Processing Junk Messages
+
+# Messenger bootstrapping messages
+fileNotFoundTitle = File Not Found
+#LOCALIZATION NOTE(fileNotFoundMsg): %S is the filename
+fileNotFoundMsg = The file %S does not exist.
+
+fileEmptyTitle = File Empty
+#LOCALIZATION NOTE(fileEmptyMsg): %S is the filename
+fileEmptyMsg = The file %S is empty.
+
+# LOCALIZATION NOTE (headerMoreAddrs): semicolon separated list of plural
+# forms of the word "more" as used after the number of addresses
+# currently hidden while displaying a header such as "to", "cc", or "bcc"
+# in the message header box. English has two identical forms here, so it will
+# construct strings that look like (for example) "1 more" or "20 more".
+# <https://developer.mozilla.org/en/Localization_and_Plurals> has details
+# on this mechanism.
+headerMoreAddrs=#1 more;#1 more
+
+# LOCALIZATION NOTE (headerMoreAddrsTooltip): semicolon separated list of
+# plural forms of the phrase ", and #1 more" as used in the tooltip text
+# of the more widget displayed in the header pane (see headerMoreAddrs).
+# English has two identical forms here, so it will construct strings that
+# look like (for example) ", and 1 more" or ", and 20 more".
+# <https://developer.mozilla.org/en/Localization_and_Plurals> has details
+# on this mechanism.
+headerMoreAddrsTooltip=, and #1 more;, and #1 more
+
+# LOCALIZATION NOTE (headertoFieldMe): first person prepositional object
+# pronoun used in the "to" header of the message header pane. This is also
+# used for the fallback case if a header-specific localization is not
+# available.
+headertoFieldMe=Me
+
+# LOCALIZATION NOTE (headerfromFieldMe): first person prepositional object
+# pronoun used in the "from" header of the message header pane.
+headerfromFieldMe=Me
+
+# LOCALIZATION NOTE (headerreply-toFieldMe): first person prepositional
+# object pronoun used in the "reply-to" header of the message header pane.
+headerreply-toFieldMe=Me
+
+# LOCALIZATION NOTE (headerccFieldMe): first person prepositional object
+# pronoun used in the "cc" header of the message header pane.
+headerccFieldMe=Me
+
+# LOCALIZATION NOTE (headerbccFieldMe): first person prepositional object
+# pronoun used in the "bcc" header of the message header pane.
+headerbccFieldMe=Me
+
+expandAttachmentPaneTooltip=Show the attachment pane
+collapseAttachmentPaneTooltip=Hide the attachment pane
+
+# Shown when content tabs are being loaded.
+loadingTab=Loading…
+
+confirmMsgDelete.title=Confirm Deletion
+confirmMsgDelete.collapsed.desc=This will delete messages in collapsed threads. Are you sure you want to continue?
+confirmMsgDelete.deleteNoTrash.desc=This will delete messages immediately, without saving a copy to Trash. Are you sure you want to continue?
+confirmMsgDelete.deleteFromTrash.desc=This will permanently delete messages from Trash. Are you sure you want to continue?
+confirmMsgDelete.dontAsk.label=Don’t ask me again.
+confirmMsgDelete.delete.label=Delete
+
+mailServerLoginFailedTitle=Login Failed
+# LOCALIZATION NOTE (mailServerLoginFailedTitleWithAccount):
+# "%S" is the account name.
+mailServerLoginFailedTitleWithAccount=Login to account “%S” failed
+# LOCALIZATION NOTE (mailServerLoginFailed2):
+# %1$S is the host name of the server, %2$S is the user name.
+mailServerLoginFailed2=Login to server %1$S with username %2$S failed.
+mailServerLoginFailedRetryButton=&Retry
+mailServerLoginFailedEnterNewPasswordButton=&Enter New Password
+
+# LOCALIZATION NOTE (threadPane.columnPicker.confirmFolder.noChildren.title):
+# When the user selects a folder to apply the currently displayed columns to
+# via the "columnPicker.applyToFolder.label" menu option, this is the title of
+# the confirmation dialog used to verify they selected the correct folder. This
+# is the case in which we apply the columns only to the folder and not to any of
+# its children.
+threadPane.columnPicker.confirmFolder.noChildren.title=Apply Changes?
+# LOCALIZATION NOTE (threadPane.columnPicker.confirmFolder.noChildren.message):
+# When the user selects a folder to apply the currently displayed columns to
+# via the "columnPicker.applyToFolder.label" menu option, this is the text of
+# the confirmation dialog used to verify they selected the correct folder. The
+# string '%S' is replaced with the name of the folder the user selected in
+# order to help them confirm they picked what they thought they picked. This
+# is the case in which we apply the columns only to the folder and not to any of
+# its children.
+threadPane.columnPicker.confirmFolder.noChildren.message=Apply the current folder’s columns to %S?
+
+# LOCALIZATION NOTE (threadPane.columnPicker.confirmFolder.withChildren.title):
+# When the user selects a folder to apply the currently displayed columns to via
+# the "columnPicker.applyToFolderAndChildren.label" menu option, this is the
+# title of the confirmation dialog used to verify they selected the correct
+# folder. This is the case in which we apply the columns to the folder and all
+# of its children.
+threadPane.columnPicker.confirmFolder.withChildren.title=Apply Changes?
+# LOCALIZATION NOTE (threadPane.columnPicker.confirmFolder.withChildren.message):
+# When the user selects a folder to apply the currently displayed columns to via
+# the "columnPicker.applyToFolderAndChildren.label" menu option, this is the
+# text of the confirmation dialog used to verify they selected the correct
+# folder. The string '%S' is replaced with the name of the folder the user
+# selected in order to help them confirm they picked what they thought they
+# picked. This is the case in which we apply the columns to the folder and all
+# of its children.
+threadPane.columnPicker.confirmFolder.withChildren.message=Apply the current folder’s columns to %S and its children?
+
+# LOCALIZATION NOTE (lwthemeInstallRequest.message): %S will be replaced with
+# the host name of the site.
+lwthemeInstallRequest.message=This site (%S) attempted to install a theme.
+lwthemeInstallRequest.allowButton=Allow
+lwthemeInstallRequest.allowButton.accesskey=a
+
+lwthemePostInstallNotification.message=A new theme has been installed.
+lwthemePostInstallNotification.undoButton=Undo
+lwthemePostInstallNotification.undoButton.accesskey=U
+lwthemePostInstallNotification.manageButton=Manage Themes…
+lwthemePostInstallNotification.manageButton.accesskey=M
+
+# troubleshootModeRestart
+troubleshootModeRestartPromptTitle=Restart in Troubleshoot Mode
+troubleshootModeRestartPromptMessage=Troubleshoot Mode will disable all add-ons and temporarily use some default preferences.\nAre you sure you want to restart?
+troubleshootModeRestartButton=Restart
+
+# LOCALIZATION NOTE (downloadAndInstallButton.label): %S is replaced by the
+# version of the update: "Update to 28.0".
+update.downloadAndInstallButton.label=Update to %S
+update.downloadAndInstallButton.accesskey=U
+
+# Sanitize
+# LOCALIZATION NOTE (sanitizeDialog2.everything.title): When "Time range to
+# clear" is set to "Everything", the Clear Recent History dialog's title is
+# changed to this. See UI mockup and comment 11 at bug 480169 -->
+sanitizeDialog2.everything.title=Clear All History
+sanitizeButtonOK=Clear Now
+# LOCALIZATION NOTE (sanitizeEverythingWarning2): Warning that appears when
+# "Time range to clear" is set to "Everything" in Clear Recent History dialog,
+# provided that the user has not modified the default set of history items to clear.
+sanitizeEverythingWarning2=All history will be cleared.
+# LOCALIZATION NOTE (sanitizeSelectedWarning): Warning that appears when
+# "Time range to clear" is set to "Everything" in Clear Recent History dialog,
+# provided that the user has modified the default set of history items to clear.
+sanitizeSelectedWarning=All selected items will be cleared.
+
+learnMoreAboutIgnoreThread=Learn More…
+learnMoreAboutIgnoreThreadAccessKey = L
+undoIgnoreThread=Undo Ignore Thread
+undoIgnoreThreadAccessKey=U
+undoIgnoreSubthread=Undo Ignore Subthread
+undoIgnoreSubthreadAccessKey=U
+# LOCALIZATION NOTE (ignoredThreadFeedback): #1 is the message thread title
+ignoredThreadFeedback=Replies to the thread “#1” will not be shown.
+# LOCALIZATION NOTE (ignoredSubthreadFeedback): #1 is the message subthread title
+ignoredSubthreadFeedback=Replies to the subthread “#1” will not be shown.
+# LOCALIZATION NOTE (ignoredThreadsFeedback): Semi-colon list of plural forms.
+# #1 is the number of threads
+ignoredThreadsFeedback=Replies to the thread that was selected will not be shown.;Replies to the #1 threads that were selected will not be shown.
+# LOCALIZATION NOTE (ignoredSubthreadsFeedback): Semi-colon list of plural forms.
+# #1 is number of subthreads
+ignoredSubthreadsFeedback=Replies to the subthread that was selected will not be shown.;Replies to the #1 subthreads that were selected will not be shown.
+# LOCALIZATION NOTE (saveAsType): replace %S with the extension of the file to be saved.
+saveAsType=%S file
+
+# LOCALIZATION NOTE (openSearch.label): The label used in the autocomplete
+# widget to refer to a search on the web for a short string containing at most
+# 15 characters. %1$S is the search provider to use. %2$S is the string to
+# search for.
+openSearch.label=Search %1$S for “%2$S”
+
+# LOCALIZATION NOTE (openSearch.label.truncated): The label used in the
+# autocomplete widget to refer to a search on the web for a short string
+# containing more than 15 characters. %1$S is the search provider to use. %2$S
+# is the string to search for, truncated to 15 characters.
+openSearch.label.truncated=Search %1$S for “%2$S…”
+
+# LOCALIZATION NOTE (aboutDialog.architecture.*):
+# The sixtyFourBit and thirtyTwoBit strings describe the architecture of the
+# current Thunderbird build: 32-bit or 64-bit. These strings are used in parentheses
+# after the Thunderbird version in the About dialog,
+# e.g.: "48.0.2 (32-bit)" or "51.0a1 (2016-09-05) (64-bit)".
+aboutDialog.architecture.sixtyFourBit = 64-bit
+aboutDialog.architecture.thirtyTwoBit = 32-bit
+
+errorConsoleTitle = Error Console
+
+# LOCALIZATION NOTE (panel.back):
+# This is used by screen readers to label the "back" button in various browser
+# popup panels, including the sliding subviews of the appmenu.
+panel.back = Back
+
+# LOCALIZATION NOTE (folderErrorAlertTitle):
+# %S is a pretty string to identify the folder and account.
+# EXAMPLE: Error - Inbox on bob@example.com
+folderErrorAlertTitle = Error - %S
+
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EdAdvancedEdit.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EdAdvancedEdit.dtd
new file mode 100644
index 0000000000..83fcbd7416
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EdAdvancedEdit.dtd
@@ -0,0 +1,18 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY WindowTitle.label "Advanced Property Editor">
+<!ENTITY AttName.label "Attribute: ">
+<!ENTITY AttValue.label "Value: ">
+<!ENTITY PropertyName.label "Property: ">
+<!ENTITY currentattributesfor.label "Current attributes for: ">
+<!ENTITY tree.attributeHeader.label "Attribute">
+<!ENTITY tree.propertyHeader.label "Property">
+<!ENTITY tree.valueHeader.label "Value">
+<!ENTITY tabHTML.label "HTML Attributes">
+<!ENTITY tabCSS.label "Inline Style">
+<!ENTITY tabJSE.label "JavaScript Events">
+
+<!ENTITY editAttribute.label "Click on an item above to edit its value">
+<!ENTITY removeAttribute.label "Remove">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EdColorPicker.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EdColorPicker.dtd
new file mode 100644
index 0000000000..edfcd4989e
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EdColorPicker.dtd
@@ -0,0 +1,22 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY windowTitle.label "Colour">
+<!ENTITY lastPickedColor.label "Last-picked colour">
+<!ENTITY lastPickedColor.accessKey "L">
+<!ENTITY chooseColor1.label "Choose a colour:">
+<!ENTITY chooseColor2.label "Enter an HTML colour string">
+<!ENTITY chooseColor2.accessKey "H">
+<!ENTITY setColorExample.label "(e.g.: &quot;#0000ff&quot; or &quot;blue&quot;):">
+<!ENTITY default.label "Default">
+<!ENTITY default.accessKey "D">
+<!ENTITY palette.label "Palette:">
+<!ENTITY standardPalette.label "Standard">
+<!ENTITY webPalette.label "All web colours">
+<!ENTITY background.label "Background for:">
+<!ENTITY background.accessKey "B">
+<!ENTITY table.label "Table">
+<!ENTITY table.accessKey "T">
+<!ENTITY cell.label "Cell(s)">
+<!ENTITY cell.accessKey "C">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EdConvertToTable.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EdConvertToTable.dtd
new file mode 100644
index 0000000000..044f60e496
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EdConvertToTable.dtd
@@ -0,0 +1,15 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Convert To Table">
+<!ENTITY instructions1.label "Composer creates a new table row for each paragraph in the selection.">
+<!ENTITY instructions2.label "Choose the character used to separate the selection into columns:">
+<!ENTITY commaRadio.label "Comma">
+<!ENTITY spaceRadio.label "Space">
+<!ENTITY otherRadio.label "Other Character:">
+<!ENTITY deleteCharCheck.label "Delete separator character">
+<!ENTITY collapseSpaces.label "Ignore extra spaces">
+<!ENTITY collapseSpaces.tooltip "Convert adjacent spaces to one separator">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EdDialogOverlay.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EdDialogOverlay.dtd
new file mode 100644
index 0000000000..2b57d4db0e
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EdDialogOverlay.dtd
@@ -0,0 +1,18 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY AdvancedEditButton.label "Advanced Edit…">
+<!ENTITY AdvancedEditButton.accessKey "E">
+<!ENTITY AdvancedEditButton.tooltip "Add or modify HTML attributes, style attributes, and JavaScript">
+<!ENTITY chooseFileButton.label "Choose File...">
+<!ENTITY chooseFileButton.accessKey "F">
+<!ENTITY chooseFileLinkButton.label "Choose File...">
+<!ENTITY chooseFileLinkButton.accessKey "o">
+<!ENTITY makeUrlRelative.label "URL is relative to page location">
+<!ENTITY makeUrlRelative.accessKey "r">
+<!ENTITY makeUrlRelative.tooltip "Change between relative and absolute URL. You must first save the page to change this.">
+
+<!-- Shared by Link and Image dialogs -->
+<!ENTITY LinkURLEditField2.label "Enter a web page location, a local file, or select a Named Anchor or Heading from the field’s context menu:">
+<!ENTITY LinkURLEditField2.accessKey "w">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EdNamedAnchorProperties.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EdNamedAnchorProperties.dtd
new file mode 100644
index 0000000000..d418ed14b6
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EdNamedAnchorProperties.dtd
@@ -0,0 +1,8 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY windowTitle.label "Named Anchor Properties">
+<!ENTITY anchorNameEditField.label "Anchor Name:">
+<!ENTITY anchorNameEditField.accessKey "N">
+<!ENTITY nameInput.tooltip "Enter a unique name for this named anchor (target)">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorColorProperties.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorColorProperties.dtd
new file mode 100644
index 0000000000..3d0fa6de68
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorColorProperties.dtd
@@ -0,0 +1,29 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Page Colours and Background">
+<!ENTITY pageColors.label "Page Colours">
+<!ENTITY defaultColorsRadio.label "Reader’s default colours (Don’t set colours in page)">
+<!ENTITY defaultColorsRadio.accessKey "D">
+<!ENTITY defaultColorsRadio.tooltip "Use the colour settings from the viewer (reader’s) browser only">
+<!ENTITY customColorsRadio.label "Use custom colours:">
+<!ENTITY customColorsRadio.accessKey "C">
+<!ENTITY customColorsRadio.tooltip "These colour settings override the viewer’s browser settings">
+
+<!ENTITY normalText.label "Normal text">
+<!ENTITY normalText.accessKey "N">
+<!ENTITY linkText.label "Link text">
+<!ENTITY linkText.accessKey "L">
+<!ENTITY activeLinkText.label "Active link text">
+<!ENTITY activeLinkText.accessKey "A">
+<!ENTITY visitedLinkText.label "Visited link text">
+<!ENTITY visitedLinkText.accessKey "V">
+<!ENTITY background.label "Background:">
+<!ENTITY background.accessKey "B">
+<!ENTITY colon.character ":">
+<!ENTITY backgroundImage.label "Background Image:">
+<!ENTITY backgroundImage.accessKey "m">
+<!ENTITY backgroundImage.tooltip "Use an image file as the background for your page">
+<!ENTITY backgroundImage.shortenedDataURI "Shortened data URI (copy will place the full URI onto the clipboard)">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorHLineProperties.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorHLineProperties.dtd
new file mode 100644
index 0000000000..35f6946ce3
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorHLineProperties.dtd
@@ -0,0 +1,27 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Horizontal Line Properties">
+
+<!ENTITY dimensionsBox.label "Dimensions">
+<!ENTITY heightEditField.label "Height:">
+<!ENTITY heightEditField.accessKey "G">
+<!ENTITY widthEditField.label "Width:">
+<!ENTITY widthEditField.accessKey "W">
+<!ENTITY pixelsPopup.value "pixels">
+<!ENTITY alignmentBox.label "Alignment">
+<!ENTITY leftRadio.label "Left">
+<!ENTITY leftRadio.accessKey "L">
+<!ENTITY centerRadio.label "Centre">
+<!ENTITY centerRadio.accessKey "C">
+<!ENTITY rightRadio.label "Right">
+<!ENTITY rightRadio.accessKey "R">
+
+<!ENTITY threeDShading.label "3-D Shading">
+<!ENTITY threeDShading.accessKey "S">
+<!ENTITY saveSettings.label "Use as Default">
+<!ENTITY saveSettings.accessKey "D">
+<!ENTITY saveSettings.tooltip "Save these settings to use when inserting new horizontal lines">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorImageProperties.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorImageProperties.dtd
new file mode 100644
index 0000000000..35234f63db
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorImageProperties.dtd
@@ -0,0 +1,79 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- These strings are for use specifically in the editor's image and form image dialogs. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Image Properties">
+
+<!ENTITY pixelsPopup.value "pixels">
+
+<!-- These are in the Location tab panel -->
+<!ENTITY locationEditField.label "Image Location:">
+<!ENTITY locationEditField.accessKey "L">
+<!ENTITY locationEditField.tooltip "Type the image’s filename or location">
+<!ENTITY locationEditField.shortenedDataURI "Shortened data URI (copy will place the full URI onto the clipboard)">
+<!ENTITY title.label "Tooltip:">
+<!ENTITY title.accessKey "T">
+<!ENTITY title.tooltip "The HTML ‘title’ attribute that displays as a tooltip">
+<!ENTITY altText.label "Alternate text:">
+<!ENTITY altText.accessKey "A">
+<!ENTITY altTextEditField.tooltip "Type text to display in place of the image">
+<!ENTITY noAltText.label "Don’t use alternate text">
+<!ENTITY noAltText.accessKey "D">
+
+<!ENTITY previewBox.label "Image Preview">
+
+<!-- These controls are in the Dimensions tab panel -->
+<!-- actualSize.label should be same as actualSizeRadio.label + ":" -->
+<!ENTITY actualSize.label "Actual Size:">
+<!ENTITY actualSizeRadio.label "Actual Size">
+<!ENTITY actualSizeRadio.accessKey "A">
+<!ENTITY actualSizeRadio.tooltip "Revert to the image’s actual size">
+<!ENTITY customSizeRadio.label "Custom Size">
+<!ENTITY customSizeRadio.accessKey "S">
+<!ENTITY customSizeRadio.tooltip "Change the image’s size as displayed in the page">
+<!ENTITY heightEditField.label "Height:">
+<!ENTITY heightEditField.accessKey "G">
+<!ENTITY widthEditField.label "Width:">
+<!ENTITY widthEditField.accessKey "W">
+<!ENTITY constrainCheckbox.label "Constrain">
+<!ENTITY constrainCheckbox.accessKey "C">
+<!ENTITY constrainCheckbox.tooltip "Maintain the image’s aspect ratio">
+
+<!-- These controls are in the Image Map box of the expanded area -->
+<!ENTITY imagemapBox.label "Image Map">
+<!ENTITY removeImageMapButton.label "Remove">
+<!ENTITY removeImageMapButton.accessKey "R">
+
+<!-- These are the options for image alignment -->
+<!ENTITY alignment.label "Align Text to Image">
+<!ENTITY bottomPopup.value "At the bottom">
+<!ENTITY topPopup.value "At the top">
+<!ENTITY centerPopup.value "In the centre">
+<!ENTITY wrapRightPopup.value "Wrap to the right">
+<!ENTITY wrapLeftPopup.value "Wrap to the left">
+
+<!-- These controls are in the Spacing Box -->
+<!ENTITY spacingBox.label "Spacing">
+<!ENTITY leftRightEditField.label "Left and Right:">
+<!ENTITY leftRightEditField.accessKey "L">
+<!ENTITY topBottomEditField.label "Top and Bottom:">
+<!ENTITY topBottomEditField.accessKey "T">
+<!ENTITY borderEditField.label "Solid Border:">
+<!ENTITY borderEditField.accessKey "B">
+
+<!-- These controls are in the Link Box -->
+<!ENTITY showImageLinkBorder.label "Show border around linked image">
+<!ENTITY showImageLinkBorder.accessKey "B">
+<!ENTITY LinkAdvancedEditButton.label "Link Advanced Edit…">
+<!ENTITY LinkAdvancedEditButton.accessKey "L">
+<!ENTITY LinkAdvancedEditButton.tooltip "Add or modify HTML attributes, style attributes, and JavaScript">
+
+<!-- These tabs are currently used in the image input dialog -->
+<!ENTITY imageInputTab.label "Form">
+<!ENTITY imageLocationTab.label "Location">
+<!ENTITY imageDimensionsTab.label "Dimensions">
+<!ENTITY imageAppearanceTab.label "Appearance">
+<!ENTITY imageLinkTab.label "Link">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorInsertChars.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorInsertChars.dtd
new file mode 100644
index 0000000000..1755e499ca
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorInsertChars.dtd
@@ -0,0 +1,19 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Insert Character">
+<!ENTITY category.label "Category">
+<!ENTITY letter.label "Letter:">
+<!ENTITY letter.accessKey "L">
+<!ENTITY character.label "Character:">
+<!ENTITY character.accessKey "C">
+<!ENTITY accentUpper.label "Accent Uppercase">
+<!ENTITY accentLower.label "Accent Lowercase">
+<!ENTITY otherUpper.label "Other Uppercase">
+<!ENTITY otherLower.label "Other Lowercase">
+<!ENTITY commonSymbols.label "Common Symbols">
+<!ENTITY insertButton.label "Insert">
+<!ENTITY closeButton.label "Close">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorInsertMath.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorInsertMath.dtd
new file mode 100644
index 0000000000..357ed0b20d
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorInsertMath.dtd
@@ -0,0 +1,21 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Insert Math">
+
+<!ENTITY sourceEditField.label "Enter LaTeX source code:">
+
+<!ENTITY options.label "Options">
+<!ENTITY optionInline.label "Inline mode">
+<!ENTITY optionInline.accesskey "N">
+<!ENTITY optionDisplay.label "Display mode">
+<!ENTITY optionDisplay.accesskey "D">
+<!ENTITY optionLTR.label "Left-to-right direction">
+<!ENTITY optionLTR.accesskey "L">
+<!ENTITY optionRTL.label "Right-to-left direction">
+<!ENTITY optionRTL.accesskey "R">
+
+<!ENTITY insertButton.label "Insert">
+<!ENTITY insertButton.accesskey "I">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorInsertSource.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorInsertSource.dtd
new file mode 100644
index 0000000000..0b51a86c8c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorInsertSource.dtd
@@ -0,0 +1,15 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Insert HTML">
+<!ENTITY sourceEditField.label "Enter HTML tags and text:">
+<!ENTITY example.label "Example: ">
+<!-- LOCALIZATION NOTE (exampleOpenTag.label): DONT_TRANSLATE: they are text for HTML tagnames: "<i>" and "</i>" -->
+<!ENTITY exampleOpenTag.label "&lt;i&gt;">
+<!-- LOCALIZATION NOTE (exampleCloseTag.label): DONT_TRANSLATE: they are text for HTML tagnames: "<i>" and "</i>" -->
+<!ENTITY exampleCloseTag.label "&lt;/i&gt;">
+<!ENTITY exampleText.label "Hello World!">
+<!ENTITY insertButton.label "Insert">
+<!ENTITY insertButton.accesskey "I">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorInsertTOC.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorInsertTOC.dtd
new file mode 100644
index 0000000000..f3285a357a
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorInsertTOC.dtd
@@ -0,0 +1,16 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY Window.title "Table of Contents">
+<!ENTITY buildToc.label "Build table of contents from:">
+<!ENTITY tag.label "Tag:">
+<!ENTITY class.label "Class:">
+<!ENTITY header1.label "Level 1">
+<!ENTITY header2.label "Level 2">
+<!ENTITY header3.label "Level 3">
+<!ENTITY header4.label "Level 4">
+<!ENTITY header5.label "Level 5">
+<!ENTITY header6.label "Level 6">
+<!ENTITY makeReadOnly.label "Make the table of contents read-only">
+<!ENTITY orderedList.label "Number all entries in the table of contents">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorInsertTable.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorInsertTable.dtd
new file mode 100644
index 0000000000..a1907885c8
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorInsertTable.dtd
@@ -0,0 +1,18 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Insert Table">
+
+<!ENTITY size.label "Size">
+<!ENTITY numRowsEditField.label "Rows:">
+<!ENTITY numRowsEditField.accessKey "R">
+<!ENTITY numColumnsEditField.label "Columns:">
+<!ENTITY numColumnsEditField.accessKey "C">
+<!ENTITY widthEditField.label "Width:">
+<!ENTITY widthEditField.accessKey "W">
+<!ENTITY borderEditField.label "Border:">
+<!ENTITY borderEditField.accessKey "B">
+<!ENTITY borderEditField.tooltip "Type a number for the table’s border, or type zero (0) for no border">
+<!ENTITY pixels.label "pixels">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorLinkProperties.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorLinkProperties.dtd
new file mode 100644
index 0000000000..09b3b01550
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorLinkProperties.dtd
@@ -0,0 +1,6 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY windowTitle.label "Link Properties">
+<!ENTITY LinkURLBox.label "Link Location">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorListProperties.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorListProperties.dtd
new file mode 100644
index 0000000000..2494330000
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorListProperties.dtd
@@ -0,0 +1,20 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "List Properties">
+
+<!ENTITY ListType.label "List Type">
+<!ENTITY bulletStyle.label "Bullet Style:">
+<!ENTITY startingNumber.label "Start at:">
+<!ENTITY startingNumber.accessKey "S">
+<!ENTITY none.value "None">
+<!ENTITY bulletList.value "Bullet (Unnumbered) List">
+<!ENTITY numberList.value "Numbered List">
+<!ENTITY definitionList.value "Definition List">
+<!ENTITY changeEntireListRadio.label "Change entire list">
+<!ENTITY changeEntireListRadio.accessKey "C">
+<!ENTITY changeSelectedRadio.label "Change just selected items">
+<!ENTITY changeSelectedRadio.accessKey "I">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorPersonalDictionary.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorPersonalDictionary.dtd
new file mode 100644
index 0000000000..5eb0aa1af1
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorPersonalDictionary.dtd
@@ -0,0 +1,18 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Personal Dictionary">
+
+<!ENTITY wordEditField.label "New word:">
+<!ENTITY wordEditField.accessKey "N">
+<!ENTITY AddButton.label "Add">
+<!ENTITY AddButton.accessKey "A">
+<!ENTITY DictionaryList.label "Words in dictionary:">
+<!ENTITY DictionaryList.accessKey "W">
+<!ENTITY RemoveButton.label "Remove">
+<!ENTITY RemoveButton.accessKey "e">
+
+<!ENTITY CloseButton.label "Close">
+<!ENTITY CloseButton.accessKey "C">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorReplace.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorReplace.dtd
new file mode 100644
index 0000000000..dab1dc5537
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorReplace.dtd
@@ -0,0 +1,29 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from EdReplace.xul -->
+
+<!-- extracted from EdReplace.xhtml -->
+
+<!ENTITY replaceDialog.title "Find and Replace">
+<!ENTITY findField.label "Find text:">
+<!ENTITY findField.accesskey "n">
+<!ENTITY replaceField.label "Replace with:">
+<!ENTITY replaceField.accesskey "e">
+<!ENTITY caseSensitiveCheckbox.label "Match exact case">
+<!ENTITY caseSensitiveCheckbox.accesskey "M">
+<!ENTITY wrapCheckbox.label "Wrap around">
+<!ENTITY wrapCheckbox.accesskey "W">
+<!ENTITY backwardsCheckbox.label "Search backwards">
+<!ENTITY backwardsCheckbox.accesskey "b">
+<!ENTITY findNextButton.label "Find Next">
+<!ENTITY findNextButton.accesskey "F">
+<!ENTITY replaceButton.label "Replace">
+<!ENTITY replaceButton.accesskey "R">
+<!ENTITY replaceAndFindButton.label "Replace and Find">
+<!ENTITY replaceAndFindButton.accesskey "d">
+<!ENTITY replaceAllButton.label "Replace All">
+<!ENTITY replaceAllButton.accesskey "A">
+<!ENTITY closeButton.label "Close">
+<!ENTITY closeButton.accesskey "C">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorSpellCheck.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorSpellCheck.dtd
new file mode 100644
index 0000000000..7d29154831
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorSpellCheck.dtd
@@ -0,0 +1,38 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Check Spelling">
+
+<!ENTITY misspelledWord.label "Misspelled word:">
+<!ENTITY wordEditField.label "Replace with:">
+<!ENTITY wordEditField.accessKey "w">
+<!ENTITY checkwordButton.label "Check Word">
+<!ENTITY checkwordButton.accessKey "k">
+<!ENTITY suggestions.label "Suggestions:">
+<!ENTITY suggestions.accessKey "u">
+<!ENTITY ignoreButton.label "Ignore">
+<!ENTITY ignoreButton.accessKey "I">
+<!ENTITY ignoreAllButton.label "Ignore All">
+<!ENTITY ignoreAllButton.accessKey "n">
+<!ENTITY replaceButton.label "Replace">
+<!ENTITY replaceButton.accessKey "R">
+<!ENTITY replaceAllButton.label "Replace All">
+<!ENTITY replaceAllButton.accessKey "A">
+<!ENTITY stopButton.label "Stop">
+<!ENTITY stopButton.accessKey "o">
+<!ENTITY userDictionary.label "Personal Dictionary:">
+<!ENTITY moreDictionaries.label "Download more dictionaries…">
+<!ENTITY addToUserDictionaryButton.label "Add Word">
+<!ENTITY addToUserDictionaryButton.accessKey "d">
+<!ENTITY editUserDictionaryButton.label "Edit…">
+<!ENTITY editUserDictionaryButton.accessKey "E">
+<!ENTITY recheckButton2.label "Recheck Text">
+<!ENTITY recheckButton2.accessKey "T">
+<!ENTITY closeButton.label "Close">
+<!ENTITY closeButton.accessKey "C">
+<!ENTITY sendButton.label "Send">
+<!ENTITY sendButton.accessKey "S">
+<!ENTITY languagePopup.label "Language:">
+<!ENTITY languagePopup.accessKey "L">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorTableProperties.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorTableProperties.dtd
new file mode 100644
index 0000000000..7f14d2d2f7
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/EditorTableProperties.dtd
@@ -0,0 +1,75 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY tableWindow.title "Table Properties">
+<!ENTITY applyButton.label "Apply">
+<!ENTITY applyButton.accesskey "A">
+<!ENTITY closeButton.label "Close">
+<!ENTITY tableTab.label "Table">
+<!ENTITY cellTab.label "Cells">
+<!ENTITY tableRows.label "Rows:">
+<!ENTITY tableRows.accessKey "R">
+<!ENTITY tableColumns.label "Columns:">
+<!ENTITY tableColumns.accessKey "C">
+<!ENTITY tableHeight.label "Height:">
+<!ENTITY tableHeight.accessKey "G">
+<!ENTITY tableWidth.label "Width:">
+<!ENTITY tableWidth.accessKey "W">
+<!ENTITY tableBorderSpacing.label "Borders and Spacing">
+<!ENTITY tableBorderWidth.label "Border:">
+<!ENTITY tableBorderWidth.accessKey "B">
+<!ENTITY tableSpacing.label "Spacing:">
+<!ENTITY tableSpacing.accessKey "S">
+<!ENTITY tablePadding.label "Padding:">
+<!ENTITY tablePadding.accessKey "P">
+<!ENTITY tablePxBetwCells.label "pixels between cells">
+<!ENTITY tablePxBetwBrdrCellContent.label "pixels between cell border and content">
+<!ENTITY tableAlignment.label "Table Alignment:">
+<!ENTITY tableAlignment.accessKey "T">
+<!ENTITY tableCaption.label "Caption:">
+<!ENTITY tableCaption.accessKey "N">
+<!ENTITY tableCaptionAbove.label "Above Table">
+<!ENTITY tableCaptionBelow.label "Below Table">
+<!ENTITY tableCaptionLeft.label "Left of Table">
+<!ENTITY tableCaptionRight.label "Right of table">
+<!ENTITY tableCaptionNone.label "None">
+<!ENTITY tableInheritColor.label "(Let page colour show through)">
+
+<!ENTITY cellSelection.label "Selection">
+<!ENTITY cellSelectCell.label "Cell">
+<!ENTITY cellSelectRow.label "Row">
+<!ENTITY cellSelectColumn.label "Column">
+<!ENTITY cellSelectNext.label "Next">
+<!ENTITY cellSelectNext.accessKey "N">
+<!ENTITY cellSelectPrevious.label "Previous">
+<!ENTITY cellSelectPrevious.accessKey "P">
+<!ENTITY applyBeforeChange.label "Current changes will be applied before changing the selection.">
+<!ENTITY cellContentAlignment.label "Content Alignment">
+<!ENTITY cellHorizontal.label "Horizontal:">
+<!ENTITY cellHorizontal.accessKey "Z">
+<!ENTITY cellVertical.label "Vertical:">
+<!ENTITY cellVertical.accessKey "V">
+<!ENTITY cellStyle.label "Cell Style:">
+<!ENTITY cellStyle.accessKey "C">
+<!ENTITY cellNormal.label "Normal">
+<!ENTITY cellHeader.label "Header">
+<!ENTITY cellTextWrap.label "Text Wrap:">
+<!ENTITY cellTextWrap.accessKey "T">
+<!ENTITY cellWrap.label "Wrap">
+<!ENTITY cellNoWrap.label "Don’t wrap">
+<!ENTITY cellAlignTop.label "Top">
+<!ENTITY cellAlignMiddle.label "Middle">
+<!ENTITY cellAlignBottom.label "Bottom">
+<!ENTITY cellAlignJustify.label "Justify">
+<!ENTITY cellInheritColor.label "(Let table colour show through)">
+<!ENTITY cellUseCheckboxHelp.label "Use checkboxes to determine which properties are applied to all selected cells">
+
+<!-- Used in both Table and Cell panels -->
+<!ENTITY size.label "Size">
+<!ENTITY pixels.label "pixels">
+<!ENTITY backgroundColor.label "Background Colour:">
+<!ENTITY backgroundColor.accessKey "B">
+<!ENTITY AlignLeft.label "Left">
+<!ENTITY AlignCenter.label "Centre">
+<!ENTITY AlignRight.label "Right">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/composeMsgs.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/composeMsgs.properties
new file mode 100644
index 0000000000..5b64a973ac
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/composeMsgs.properties
@@ -0,0 +1,464 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+#
+# 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.
+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.
+
+## 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.
+
+## 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.
+
+## 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.
+
+## LOCALIZATION NOTE (sendFailedUnexpected): argument %X is a hex error code value
+sendFailedUnexpected=Failed due to unexpected error %X. No description is available.
+
+## LOCALIZATION NOTE (smtpSecurityIssue): argument %S is the Outgoing server (SMTP) response
+smtpSecurityIssue=The configuration related to %S must be corrected.
+
+## 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.
+
+## 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.
+
+couldNotGetUsersMailAddress2=An error occurred while sending mail: the sender’s address (From:) was invalid. Please verify that this email address is correct and try again.
+couldNotGetSendersIdentity=An error occurred while sending mail: the sender identity was invalid. Please verify the configuration of your identity 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.
+
+## 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.
+
+## 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.
+
+## 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.\nPlease check the message recipient “%2$S” and try again.
+
+## 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.
+
+## 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.
+
+## LOCALIZATION NOTE (smtpSendNotAllowed): argument %s is the Outgoing server (SMTP) response
+smtpSendNotAllowed=An error occurred while sending mail. The mail server responded:\n%s.\nPlease ensure that you are using the correct identity to send and that the used authentication method is correct. Verify that you are allowed to send via this SMTP server with your current credentials from your current network.
+
+## 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.
+
+## LOCALIZATION NOTE (smtpClientid): argument %s is the Outgoing server (SMTP) response
+smtpClientid=The outgoing server (SMTP) detected an error in the CLIENTID command. The message was not sent. The server responded: %s
+
+## LOCALIZATION NOTE (smtpClientidPermission): argument %s is the Outgoing server (SMTP) response
+smtpClientidPermission=The outgoing server (SMTP) response to the CLIENTID command indicates that your device is not permitted to send mail. 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.
+
+## 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.
+
+## 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.
+
+## LOCALIZATION NOTE (smtpSendRequestRefused): argument %S is the Outgoing server (SMTP)
+smtpSendRequestRefused=The message could not be sent because connecting to Outgoing server (SMTP) %S failed. The server may be unavailable or is refusing SMTP connections. Please verify that your Outgoing server (SMTP) settings are correct and try again.
+
+## 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.
+
+## 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.
+
+## 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.
+
+# LOCALIZATION NOTE (smtpHintAuthEncryptToPlainNoSsl): %S is the server hostname
+smtpHintAuthEncryptToPlainNoSsl=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 | Outgoing server (SMTP)’ to ‘Password, transmitted insecurely’. If it used to work but now doesn’t, you may be susceptible to getting your password stolen.
+
+# LOCALIZATION NOTE (smtpHintAuthEncryptToPlainSsl): %S is the server hostname
+smtpHintAuthEncryptToPlainSsl=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 | Outgoing server (SMTP)’ to ‘Normal password’.
+
+# LOCALIZATION NOTE (smtpHintAuthPlainToEncrypt): %S is the server hostname
+smtpHintAuthPlainToEncrypt=The Outgoing server (SMTP) %S does not allow plaintext passwords. Please try changing the ‘Authentication method’ in ‘Account Settings | Outgoing server (SMTP)’ to ‘Encrypted password’.
+
+# 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)’.
+
+# 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.
+
+# 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)’.
+
+# LOCALIZATION NOTE (errorIllegalLocalPart2): %s is an email address with an illegal localpart
+errorIllegalLocalPart2=There are non-ASCII characters in the local part of the recipient address %s and your server does not support SMTPUTF8. Please change this address and try again.
+
+## Strings used for the save message dialog shown when the user closes a message compose window
+saveDlogTitle=Save Message
+
+## LOCALIZATION NOTE (saveDlogMessages3): Do not translate the words %1$S and \n.
+## %1$S is replaced by the folder name configured for saving drafts (typically the "Drafts" folder).
+## Translate "Write" to match the translation of item "windowTitleWrite" below.
+saveDlogMessages3=Save this message to your drafts folder (%1$S) and close the Write window?
+discardButtonLabel=&Discard changes
+
+## generics string
+defaultSubject=(no subject)
+chooseFileToAttach=Attach File(s)
+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
+
+## Window titles
+# LOCALIZATION NOTE (windowTitleWrite):
+# %1$S is the message subject.
+# %2$S is the application name.
+# Example: Write: Re: Invitation - Thunderbird
+windowTitleWrite=Write: %1$S - %2$S
+# LOCALIZATION NOTE (windowTitlePrintPreview):
+# %1$S is the message subject.
+# %2$S is the application name.
+# Example: Print Preview: Re: Invitation - Thunderbird
+windowTitlePrintPreview=Print Preview: %1$S - %2$S
+
+## From field
+msgIdentityPlaceholder=Enter custom From address to be used instead of %S
+customizeFromAddressTitle=Customize From Address
+customizeFromAddressWarning=If your e-mail provider supports it, Customize From Address allows you to make a one-off minor alteration to your From address without having to create a new identity in Account Settings. For example, if your From address is John Doe <john@example.com> you may want to change it to John Doe <john+doe@example.com> or John <john@example.com>.
+customizeFromAddressIgnore=Never notify me of this again
+
+## 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 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 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 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 the attachment is a message
+messageAttachmentSafeName=Attached Message
+
+## String used for attachment pretty name, when the attachment is a message part
+partAttachmentSafeName=Attached Message Part
+
+# LOCALIZATION NOTE (attachmentBucketAttachFilesTooltip):
+# This tooltip should be same as attachFile.label in messengercompose.dtd,
+# but without ellipsis (…).
+attachmentBucketAttachFilesTooltip=Attach File(s)
+attachmentBucketClearSelectionTooltip=Clear Selection
+attachmentBucketHeaderShowTooltip=Show attachment pane
+attachmentBucketHeaderMinimizeTooltip=Minimize attachment pane
+attachmentBucketHeaderRestoreTooltip=Restore attachment pane
+
+## 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.
+errorFileAttachMessage=The file %1$S does not exist so could not be attached to the message.
+
+## String used if a file to serve as message body does not exist or cannot be loaded when passed
+## as a command line argument
+errorFileMessageTitle=Message File
+
+## LOCALIZATION NOTE (errorFileMessageMessage): %1$S will be replaced by the non-existent file name.
+errorFileMessageMessage=The file %1$S does not exist and could not be used as message body.
+
+## LOCALIZATION NOTE (errorLoadFileMessageMessage): %1$S will be replaced by the name of the file that can't be loaded.
+errorLoadFileMessageMessage=The file %1$S could not be loaded as message body.
+
+## Strings used by the Save as Draft/Template dialog
+SaveDialogTitle=Save Message
+
+## 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 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 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…
+
+## 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 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. 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 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 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 the author (name of the person replying to)
+mailnews.reply_header_authorwrotesingle=#1 wrote:
+
+## 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 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 should trigger an attachment reminder.
+mail.compose.attachment_reminder_keywords=.doc,.pdf,.xls,.ppt,.rtf,.pps,attachment,attach,attached,attaching,enclosed,CV,cover letter
+
+remindLaterButton=Remind Me Later
+remindLaterButton.accesskey=L
+disableAttachmentReminderButton=Disable attachment reminder for current message
+attachmentReminderTitle=Attachment Reminder
+attachmentReminderMsg=Did you forget to add an attachment?
+
+# LOCALIZATION NOTE (attachmentReminderKeywordsMsgs): Semi-colon list of plural forms.
+# See: https://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: https://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 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.
+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:
+## LOCALIZATION NOTE(smtpEnterPasswordPromptTitleWithHostname): Do not translate the
+## word %1$S. Place the word %1$S where the server host name should appear.
+smtpEnterPasswordPromptTitleWithHostname=Password Required for Outgoing (SMTP) Server %1$S
+
+# LOCALIZATION NOTE (removeAttachmentMsgs): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+removeAttachmentMsgs=Remove Attachment;Remove Attachments
+
+## LOCALIZATION NOTE(promptToSaveSentLocally2): Do not translate the strings %1$S, %2$S, %3$S and \n.
+## %2$S will be replaced with the account name. $1$S will be replaced by the folder name
+## configured to contain saved sent messages (typically the "Sent" folder).
+## %3$S will be replaced with the local folders account name (typically "Local Folders").
+## Translate "Write" to match the translation of item "windowTitleWrite" above.
+promptToSaveSentLocally2=Your message was sent but a copy was not placed in your sent folder (%1$S) due to network or file access errors.\nYou can retry or save the message locally to %3$S/%1$S-%2$S.
+errorFilteringMsg=Your message has been sent and saved, but there was an error while running message filters on it.
+errorCloudFileAuth.title=Authentication Error
+
+## LOCALIZATION NOTE(promptToSaveDraftLocally2): Do not translate the strings %1$S, %2$S, %3$S and \n.
+## %2$S will be replaced with the account name. $1$S will be replaced by the folder name
+## configured to contain saved draft messages (typically the "Drafts" folder).
+## %3$S will be replaced with the local folders account name (typically "Local Folders").
+promptToSaveDraftLocally2=Your draft message was not copied to your drafts folder (%1$S) due to network or file access errors.\nYou can retry or save the draft locally to %3$S/%1$S-%2$S.
+buttonLabelRetry2=&Retry
+
+## LOCALIZATION NOTE(promptToSaveTemplateLocally2): Do not translate the strings %1$S, %2$S, %3$S and \n.
+## %2$S will be replaced with the account name. $1$S will be replaced by the folder name
+## configured to contain saved templates (typically the "Templates" folder).
+## %3$S will be replaced with the local folders account name (typically "Local Folders").
+promptToSaveTemplateLocally2=Your template was not copied to your templates folder (%1$S) due to network or file access errors.\nYou can retry or save the template locally to %3$S/%1$S-%2$S.
+
+## LOCALIZATION NOTE(saveToLocalFoldersFailed): Message appears after normal
+## save fails (e.g., to Sent) and save to Local Folders also fails. This could
+## occur if network is down and filesystem problems are present such as disk
+## full, permission issues or hardware failure.
+saveToLocalFoldersFailed=Unable to save your message to local folders. Possibly out of file storage space.
+
+## LOCALIZATION NOTE(errorCloudFileAuth.message):
+## %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 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.
+
+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(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=x
+replaceButton.tooltip=Show the Find and Replace dialog
+
+## LOCALIZATION NOTE(blockedAllowResource): %S is the URL to load.
+blockedAllowResource=Unblock %S
+## LOCALIZATION NOTE (blockedContentMessage): Semi-colon list of plural forms.
+## See: https://developer.mozilla.org/en/docs/Localization_and_Plurals
+## %S will be replaced by brandShortName.
+## Files must be unblocked individually, therefore the plural form reads:
+## Unblocking a file (one of several) will include it (that one file) in your sent message.
+## In other words:
+## Unblocking one/several file(s) will include it/them in your message.
+blockedContentMessage=%S has blocked a file from loading into this message. Unblocking the file will include it in your sent message.;%S has blocked some files from loading into this message. Unblocking a file will include it in your sent message.
+
+blockedContentPrefLabel=Options
+blockedContentPrefAccesskey=O
+
+blockedContentPrefLabelUnix=Preferences
+blockedContentPrefAccesskeyUnix=P
+
+## Recipient pills fields.
+## LOCALIZATION NOTE(confirmRemoveRecipientRowTitle2): %S will be replaced with the field name.
+confirmRemoveRecipientRowTitle2=Remove %S Addresses
+## LOCALIZATION NOTE(confirmRemoveRecipientRowBody2): %S will be replaced with the field name.
+confirmRemoveRecipientRowBody2=Are you sure you want to remove the %S addresses?
+confirmRemoveRecipientRowButton=Remove
+
+## LOCALIZATION NOTE headersSpaceStyle is for aligning label of a newly create recipient row.
+## It should be larger than the largest Header label and identical to &headersSpace2.style;
+headersSpaceStyle=width: 8em
+
+## LOCALIZATION NOTE (smtpTooManyRecipients): argument %s is the Outgoing server (SMTP) response
+smtpTooManyRecipients=The message was not sent due to exceeding the allowed number of recipients. The server responded: %s.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/editor.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/editor.properties
new file mode 100644
index 0000000000..c50c1db5b6
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/editor.properties
@@ -0,0 +1,208 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE FILE: embedded "\n" represent HTML breaks (<br>)
+# Don't translate embedded "\n".
+# Don't translate strings like this: %variable%
+# as they will be replaced using JavaScript
+#
+No=No
+Save=Save
+More=More
+Less=Less
+MoreProperties=More Properties
+FewerProperties=Fewer Properties
+PropertiesAccessKey=P
+None=None
+none=none
+OpenHTMLFile=Open HTML File
+OpenTextFile=Open Text File
+SelectImageFile=Select Image File
+SaveDocument=Save Page
+SaveDocumentAs=Save Page As
+SaveTextAs=Save Text As
+EditMode=Edit Mode
+Preview=Preview
+Publish=Publish
+PublishPage=Publish Page
+DontPublish=Don’t Publish
+SavePassword=Use Password Manager to save this password
+CorrectSpelling=(correct spelling)
+NoSuggestedWords=(no suggested words)
+NoMisspelledWord=No misspelled words
+CheckSpellingDone=Completed spell checking.
+CheckSpelling=Check Spelling
+InputError=Error
+Alert=Alert
+CantEditFramesetMsg=Composer cannot edit HTML framesets, or pages with inline frames. For framesets, try editing the page for each frame separately. For pages with iframes, save a copy of the page and remove the <iframe> tag.
+CantEditMimeTypeMsg=This type of page can’t be edited.
+CantEditDocumentMsg=This page can’t be edited for an unknown reason.
+BeforeClosing=before closing
+BeforePreview=before viewing in the browser
+BeforeValidate=before validating the document
+# LOCALIZATION NOTE (SaveFilePrompt, PublishPrompt): Don't translate %title% and %reason% (this is the reason for asking user to close, such as "before closing")
+SaveFilePrompt=Save changes to “%title%” %reason%?
+PublishPrompt=Save changes to “%title%” %reason%?
+SaveFileFailed=Saving file failed!
+
+# Publishing error strings:
+# LOCALIZATION NOTE Don't translate %dir% or %file% in the Publishing error strings:
+FileNotFound=%file% not found.
+SubdirDoesNotExist=The subdirectory “%dir%” doesn’t exist on this site or the filename “%file%” is already in use by another subdirectory.
+FilenameIsSubdir=The filename “%file%” is already in use by another subdirectory.
+ServerNotAvailable=The server is not available. Check your connection and try again later.
+Offline=You are currently offline. Click the icon near the lower-right corner of any window to go online.
+DiskFull=There is not enough disk space available to save the file “%file%.”
+NameTooLong=The filename or subdirectory name is too long.
+AccessDenied=You do not have permission to publish to this location.
+UnknownPublishError=Unknown publishing error occurred.
+PublishFailed=Publishing failed.
+PublishCompleted=Publishing completed.
+AllFilesPublished=All files published
+# LOCALIZATION NOTE Don't translate %x% or %total%
+FailedFileMsg=%x% of %total% files failed to publish.
+# End-Publishing error strings
+Prompt=Prompt
+# LOCALIZATION NOTE (PromptFTPUsernamePassword): Don't translate %host%
+PromptFTPUsernamePassword=Enter username and password for FTP server at %host%
+RevertCaption=Revert To Last Saved
+Revert=Revert
+SendPageReason=before sending this page
+Send=Send
+## LOCALIZATION NOTE (PublishProgressCaption, PublishToSite, AbandonChanges): Don't translate %title%
+PublishProgressCaption=Publishing: %title%
+PublishToSite=Publishing to Site: %title%
+AbandonChanges=Abandon unsaved changes to “%title%” and reload page?
+DocumentTitle=Page Title
+NeedDocTitle=Please enter a title for the current page.
+DocTitleHelp=This identifies the page in the window title and bookmarks.
+CancelPublishTitle=Cancel publishing?
+## LOCALIZATION NOTE: "Continue" in this sentence must match the text for
+## the CancelPublishContinue key below
+CancelPublishMessage=Cancelling while publishing is in progress may result in your file(s) being incompletely transferred. Would you like to Continue or Cancel?
+CancelPublishContinue=Continue
+MissingImageError=Please enter or choose an image of type gif, jpg, or png.
+EmptyHREFError=Please choose a location to create a new link.
+LinkText=Link Text
+LinkImage=Link Image
+MixedSelection=[Mixed selection]
+Mixed=(mixed)
+# LOCALIZATION NOTE (NotInstalled): %S is the name of the font
+NotInstalled=%S (not installed)
+EnterLinkText=Enter text to display for the link:
+EnterLinkTextAccessKey=T
+EmptyLinkTextError=Please enter some text for this link.
+EditTextWarning=This will replace existing content.
+#LOCALIZATION NOTE (ValidateNumber):Don't translate: %n% %min% %max%
+ValidateRangeMsg=The number you entered (%n%) is outside of the allowed range.
+ValidateNumberMsg=Please enter a number between %min% and %max%.
+MissingAnchorNameError=Please enter a name for this anchor.
+#LOCALIZATION NOTE (DuplicateAnchorNameError): Don't translate %name%
+DuplicateAnchorNameError=“%name%” already exists in this page. Please enter a different name.
+BulletStyle=Bullet Style
+SolidCircle=Solid circle
+OpenCircle=Open circle
+SolidSquare=Solid square
+NumberStyle=Number Style
+Automatic=Automatic
+Style_1=1, 2, 3…
+Style_I=I, II, III…
+Style_i=i, ii, iii…
+Style_A=A, B, C…
+Style_a=a, b, c…
+Pixels=pixels
+Percent=percent
+PercentOfCell=% of cell
+PercentOfWindow=% of window
+PercentOfTable=% of table
+#LOCALIZATION NOTE (untitledTitle): %S is the window #. No plural handling needed.
+untitledTitle=untitled-%S
+untitledDefaultFilename=untitled
+ShowToolbar=Show Toolbar
+HideToolbar=Hide Toolbar
+ImapError=Unable to load image
+ImapCheck=\nPlease select a new location (URL) and try again.
+SaveToUseRelativeUrl=Relative URLs can only be used on pages which have been saved
+NoNamedAnchorsOrHeadings=(No named anchors or headings in this page)
+TextColor=Text Colour
+HighlightColor=Highlight Colour
+PageColor=Page Background Colour
+BlockColor=Block Background Colour
+TableColor=Table Background Colour
+CellColor=Cell Background Colour
+TableOrCellColor=Table or Cell Colour
+LinkColor=Link Text Colour
+ActiveLinkColor=Active Link Colour
+VisitedLinkColor=Visited Link Colour
+NoColorError=Click on a colour or enter a valid HTML colour string
+Table=Table
+TableCell=Table Cell
+NestedTable=Nested Table
+HLine=Horizontal Line
+Link=Link
+Image=Image
+ImageAndLink=Image and Link
+NamedAnchor=Named Anchor
+List=List
+ListItem=List Item
+Form=Form
+InputTag=Form Field
+InputImage=Form Image
+TextArea=Text Area
+Select=Selection List
+Button=Button
+Label=Label
+FieldSet=Field Set
+Tag=Tag
+MissingSiteNameError=Please enter a name for this publishing site.
+MissingPublishUrlError=Please enter a location for publishing this page.
+MissingPublishFilename=Please enter a filename for the current page.
+#LOCALIZATION NOTE (DuplicateSiteNameError): Don't translate %name%
+DuplicateSiteNameError=“%name%” already exists. Please enter a different site name.
+AdvancedProperties=Advanced Properties…
+AdvancedEditForCellMsg=Advanced Edit is unavailable when multiple cells are selected
+# LOCALIZATION NOTE (ObjectProperties):Don't translate "%obj%" it will be replaced with one of above object nouns
+ObjectProperties=%obj% Properties…
+# LOCALIZATION NOTE This character must be in the above string and not conflict with other accesskeys in Format menu
+ObjectPropertiesAccessKey=o
+# LOCALIZATION NOTE (JoinSelectedCells): This variable should contain the "tableJoinCells.accesskey"
+# letter as defined in editorOverlay.dtd
+JoinSelectedCells=Join Selected Cells
+# LOCALIZATION NOTE (JoinCellToRight): This variable should contain the "tableJoinCells.accesskey"
+# letter as defined in editorOverlay.dtd
+JoinCellToRight=Join with Cell to the Right
+JoinCellAccesskey=j
+# LOCALIZATION NOTE (TableSelectKey): Ctrl key on a keyboard
+TableSelectKey=Ctrl+
+# LOCALIZATION NOTE (XulKeyMac): Command key on a Mac keyboard
+XulKeyMac=Cmd+
+# LOCALIZATION NOTE (Del): Del key on a keyboard
+Del=Del
+Delete=Delete
+DeleteCells=Delete Cells
+DeleteTableTitle=Delete Rows or Columns
+DeleteTableMsg=Reducing the number of rows or columns will delete table cells and their contents. Do you really want to do this?
+Clear=Clear
+#Mouse actions
+Click=Click
+Drag=Drag
+Unknown=Unknown
+#
+# LOCALIZATION NOTE "RemoveTextStylesAccesskey" is used for both
+# menu items: "RemoveTextStyles" and "StopTextStyles"
+RemoveTextStylesAccesskey=x
+RemoveTextStyles=Remove All Text Styles
+StopTextStyles=Discontinue Text Styles
+#
+# LOCALIZATION NOTE "RemoveLinksAccesskey" is used for both
+# menu items: "RemoveLinks" and "StopLinks"
+RemoveLinksAccesskey=n
+RemoveLinks=Remove Links
+StopLinks=Discontinue Link
+#
+NoFormAction=It is recommended that you enter an action for this form. Self-posting forms are an advanced technique that may not work consistently in all browsers.
+NoAltText=If the image is relevant to the content of the document, you must supply alternate text that will appear in text-only browsers, and that will appear in other browsers when an image is loading or when image loading is disabled.
+#
+Malformed=The source could not be converted back into the document because it is not valid XHTML.
+NoLinksToCheck=There are no elements with links to check
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/editorOverlay.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/editorOverlay.dtd
new file mode 100644
index 0000000000..468eccef12
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/editorOverlay.dtd
@@ -0,0 +1,303 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- Attn: Localization - some of the menus in this dialog directly affect mail also. -->
+
+<!-- Edit menu items -->
+<!ENTITY pasteNoFormatting.label "Paste Without Formatting">
+<!ENTITY pasteNoFormatting.accesskey "n">
+<!ENTITY pasteNoFormatting.key "V">
+<!ENTITY pasteAsQuotationCmd.label "Paste As Quotation">
+<!ENTITY pasteAsQuotationCmd.accesskey "Q">
+
+<!-- Insert menu items -->
+<!ENTITY insertMenu.label "Insert">
+<!ENTITY insertMenu.accesskey "I">
+<!ENTITY insertLinkCmd2.label "Link…">
+<!ENTITY insertLinkCmd2.accesskey "L">
+<!ENTITY insertLinkCmd2.key "K">
+<!ENTITY insertAnchorCmd.label "Named Anchor…">
+<!ENTITY insertAnchorCmd.accesskey "A">
+<!ENTITY insertImageCmd.label "Image…">
+<!ENTITY insertImageCmd.accesskey "I">
+<!ENTITY insertHLineCmd.label "Horizontal Line">
+<!ENTITY insertHLineCmd.accesskey "o">
+<!ENTITY insertTableCmd.label "Table…">
+<!ENTITY insertTableCmd.accesskey "T">
+<!ENTITY insertHTMLCmd.label "HTML…">
+<!ENTITY insertHTMLCmd.accesskey "H">
+<!ENTITY insertMathCmd.label "Math…">
+<!ENTITY insertMathCmd.accesskey "M">
+<!ENTITY insertCharsCmd.label "Characters and Symbols…">
+<!ENTITY insertCharsCmd.accesskey "C">
+<!ENTITY insertBreakAllCmd.label "Break Below Image(s)">
+<!ENTITY insertBreakAllCmd.accesskey "k">
+
+<!-- Used just in context popup. -->
+<!ENTITY createLinkCmd.label "Create Link…">
+<!ENTITY createLinkCmd.accesskey "k">
+<!ENTITY editLinkCmd.label "Edit Link in New Composer">
+<!ENTITY editLinkCmd.accesskey "i">
+
+<!-- Font Face SubMenu -->
+<!ENTITY FontFaceSelect.tooltip "Choose a font">
+<!ENTITY fontfaceMenu.label "Font">
+<!ENTITY fontfaceMenu.accesskey "F">
+<!ENTITY fontVarWidth.label "Variable Width">
+<!ENTITY fontVarWidth.accesskey "V">
+<!ENTITY fontFixedWidth.label "Fixed Width">
+<!ENTITY fontFixedWidth.accesskey "x">
+<!ENTITY fontFixedWidth.key "T">
+<!ENTITY fontHelvetica.label "Helvetica, Arial">
+<!ENTITY fontHelvetica.accesskey "l">
+<!ENTITY fontTimes.label "Times">
+<!ENTITY fontTimes.accesskey "T">
+<!ENTITY fontCourier.label "Courier">
+<!ENTITY fontCourier.accesskey "C">
+
+<!-- Font Size SubMenu -->
+<!ENTITY FontSizeSelect.tooltip "Choose a font size">
+<!ENTITY decreaseFontSize.label "Smaller">
+<!ENTITY decreaseFontSize.accesskey "r">
+<!ENTITY decrementFontSize.key "&lt;">
+<!ENTITY decrementFontSize.key2 ","> <!-- < is above this key on many keyboards -->
+<!ENTITY increaseFontSize.label "Larger">
+<!ENTITY increaseFontSize.accesskey "g">
+<!ENTITY incrementFontSize.key "&gt;">
+<!ENTITY incrementFontSize.key2 "."> <!-- > is above this key on many keyboards -->
+
+<!ENTITY fontSizeMenu.label "Size">
+<!ENTITY fontSizeMenu.accesskey "z">
+<!ENTITY size-tinyCmd.label "Tiny">
+<!ENTITY size-tinyCmd.accesskey "T">
+<!ENTITY size-smallCmd.label "Small">
+<!ENTITY size-smallCmd.accesskey "S">
+<!ENTITY size-mediumCmd.label "Medium">
+<!ENTITY size-mediumCmd.accesskey "M">
+<!ENTITY size-largeCmd.label "Large">
+<!ENTITY size-largeCmd.accesskey "L">
+<!ENTITY size-extraLargeCmd.label "Extra Large">
+<!ENTITY size-extraLargeCmd.accesskey "x">
+<!ENTITY size-hugeCmd.label "Huge">
+<!ENTITY size-hugeCmd.accesskey "H">
+
+<!-- Font Style SubMenu -->
+<!ENTITY fontStyleMenu.label "Text Style">
+<!ENTITY fontStyleMenu.accesskey "S">
+<!ENTITY styleBoldCmd.label "Bold">
+<!ENTITY styleBoldCmd.accesskey "B">
+<!ENTITY styleBoldCmd.key "B">
+<!ENTITY styleItalicCmd.label "Italic">
+<!ENTITY styleItalicCmd.accesskey "I">
+<!ENTITY styleItalicCmd.key "I">
+<!ENTITY styleUnderlineCmd.label "Underline">
+<!ENTITY styleUnderlineCmd.accesskey "U">
+<!ENTITY styleUnderlineCmd.key "U">
+<!ENTITY styleStrikeThruCmd.label "Strikethrough">
+<!ENTITY styleStrikeThruCmd.accesskey "k">
+<!ENTITY styleSuperscriptCmd.label "Superscript">
+<!ENTITY styleSuperscriptCmd.accesskey "p">
+<!ENTITY styleSubscriptCmd.label "Subscript">
+<!ENTITY styleSubscriptCmd.accesskey "S">
+<!ENTITY styleNonbreakingCmd.label "Nonbreaking">
+<!ENTITY styleNonbreakingCmd.accesskey "N">
+<!ENTITY styleEm.label "Emphasis">
+<!ENTITY styleEm.accesskey "E">
+<!ENTITY styleStrong.label "Stronger Emphasis">
+<!ENTITY styleStrong.accesskey "t">
+<!ENTITY styleCite.label "Citation">
+<!ENTITY styleCite.accesskey "C">
+<!ENTITY styleAbbr.label "Abbreviation">
+<!ENTITY styleAbbr.accesskey "A">
+<!ENTITY styleAcronym.label "Acronym">
+<!ENTITY styleAcronym.accesskey "r">
+<!ENTITY styleCode.label "Code">
+<!ENTITY styleCode.accesskey "o">
+<!ENTITY styleSamp.label "Sample Output">
+<!ENTITY styleSamp.accesskey "m">
+<!ENTITY styleVar.label "Variable">
+<!ENTITY styleVar.accesskey "V">
+
+<!ENTITY formatFontColor.label "Text Colour…">
+<!ENTITY formatFontColor.accesskey "C">
+<!ENTITY tableOrCellColor.label "Table or Cell Background Colour…">
+<!ENTITY tableOrCellColor.accesskey "B">
+
+<!ENTITY formatRemoveStyles.key "Y">
+<!ENTITY formatRemoveLinks.key "K">
+<!ENTITY formatRemoveNamedAnchors.label "Remove Named Anchors">
+<!ENTITY formatRemoveNamedAnchors.accesskey "R">
+<!ENTITY formatRemoveNamedAnchors2.key "R">
+
+<!ENTITY paragraphMenu.label "Paragraph">
+<!ENTITY paragraphMenu.accesskey "P">
+<!ENTITY paragraphParagraphCmd.label "Paragraph">
+<!ENTITY paragraphParagraphCmd.accesskey "P">
+<!ENTITY heading1Cmd.label "Heading 1">
+<!ENTITY heading1Cmd.accesskey "1">
+<!ENTITY heading2Cmd.label "Heading 2">
+<!ENTITY heading2Cmd.accesskey "2">
+<!ENTITY heading3Cmd.label "Heading 3">
+<!ENTITY heading3Cmd.accesskey "3">
+<!ENTITY heading4Cmd.label "Heading 4">
+<!ENTITY heading4Cmd.accesskey "4">
+<!ENTITY heading5Cmd.label "Heading 5">
+<!ENTITY heading5Cmd.accesskey "5">
+<!ENTITY heading6Cmd.label "Heading 6">
+<!ENTITY heading6Cmd.accesskey "6">
+<!ENTITY paragraphAddressCmd.label "Address">
+<!ENTITY paragraphAddressCmd.accesskey "A">
+<!ENTITY paragraphPreformatCmd.label "Preformat">
+<!ENTITY paragraphPreformatCmd.accesskey "f">
+
+<!-- List menu items -->
+<!ENTITY formatlistMenu.label "List">
+<!ENTITY formatlistMenu.accesskey "L">
+<!ENTITY noneCmd.label "None">
+<!ENTITY noneCmd.accesskey "N">
+<!ENTITY listBulletCmd.label "Bulleted">
+<!ENTITY listBulletCmd.accesskey "B">
+<!ENTITY listNumberedCmd.label "Numbered">
+<!ENTITY listNumberedCmd.accesskey "m">
+<!ENTITY listTermCmd.label "Term">
+<!ENTITY listTermCmd.accesskey "T">
+<!ENTITY listDefinitionCmd.label "Definition">
+<!ENTITY listDefinitionCmd.accesskey "D">
+<!ENTITY listPropsCmd.label "List Properties…">
+<!ENTITY listPropsCmd.accesskey "L">
+
+<!ENTITY ParagraphSelect.tooltip "Choose a paragraph format">
+<!-- Shared in Paragraph, and Toolbar menulist -->
+<!ENTITY bodyTextCmd.label "Body Text">
+<!ENTITY bodyTextCmd.accesskey "T">
+
+<!-- Align menu items -->
+<!ENTITY alignMenu.label "Align">
+<!ENTITY alignMenu.accesskey "A">
+<!ENTITY alignLeft.label "Left">
+<!ENTITY alignLeft.accesskey "L">
+<!ENTITY alignLeft.tooltip "Align Left">
+<!ENTITY alignCenter.label "Centre">
+<!ENTITY alignCenter.accesskey "C">
+<!ENTITY alignCenter.tooltip "Align Centre">
+<!ENTITY alignRight.label "Right">
+<!ENTITY alignRight.accesskey "R">
+<!ENTITY alignRight.tooltip "Align Right">
+<!ENTITY alignJustify.label "Justify">
+<!ENTITY alignJustify.accesskey "J">
+<!ENTITY alignJustify.tooltip "Align Justified">
+
+<!ENTITY increaseIndent.label "Increase Indent">
+<!ENTITY increaseIndent.accesskey "I">
+<!ENTITY increaseIndent.key "]">
+<!ENTITY decreaseIndent.label "Decrease Indent">
+<!ENTITY decreaseIndent.accesskey "D">
+<!ENTITY decreaseIndent.key "[">
+
+<!ENTITY colorsAndBackground.label "Page Colours and Background…">
+<!ENTITY colorsAndBackground.accesskey "u">
+
+<!-- Table Menu -->
+<!ENTITY tableMenu.label "Table">
+<!ENTITY tableMenu.accesskey "b">
+
+<!-- Select Submenu -->
+<!ENTITY tableSelectMenu.label "Select">
+<!ENTITY tableSelectMenu.accesskey "S">
+
+<!ENTITY tableSelectMenu2.label "Table Select">
+<!ENTITY tableSelectMenu2.accesskey "S">
+<!ENTITY tableInsertMenu2.label "Table Insert">
+<!ENTITY tableInsertMenu2.accesskey "I">
+<!ENTITY tableDeleteMenu2.label "Table Delete">
+<!ENTITY tableDeleteMenu2.accesskey "D">
+
+<!-- Insert SubMenu -->
+<!ENTITY tableInsertMenu.label "Insert">
+<!ENTITY tableInsertMenu.accesskey "I">
+<!ENTITY tableTable.label "Table">
+<!ENTITY tableTable.accesskey "T">
+<!ENTITY tableRow.label "Row">
+<!ENTITY tableRows.label "Row(s)">
+<!ENTITY tableRow.accesskey "R">
+<!ENTITY tableRowAbove.label "Row Above">
+<!ENTITY tableRowAbove.accesskey "R">
+<!ENTITY tableRowBelow.label "Row Below">
+<!ENTITY tableRowBelow.accesskey "B">
+<!ENTITY tableColumn.label "Column">
+<!ENTITY tableColumns.label "Column(s)">
+<!ENTITY tableColumn.accesskey "o">
+<!ENTITY tableColumnBefore.label "Column Before">
+<!ENTITY tableColumnBefore.accesskey "o">
+<!ENTITY tableColumnAfter.label "Column After">
+<!ENTITY tableColumnAfter.accesskey "A">
+<!ENTITY tableCell.label "Cell">
+<!ENTITY tableCells.label "Cell(s)">
+<!ENTITY tableCell.accesskey "C">
+<!ENTITY tableCellContents.label "Cell Contents">
+<!ENTITY tableCellContents.accesskey "n">
+<!ENTITY tableAllCells.label "All Cells">
+<!ENTITY tableAllCells.accesskey "A">
+<!ENTITY tableCellBefore.label "Cell Before">
+<!ENTITY tableCellBefore.accesskey "C">
+<!ENTITY tableCellAfter.label "Cell After">
+<!ENTITY tableCellAfter.accesskey "f">
+<!-- Delete SubMenu -->
+<!ENTITY tableDeleteMenu.label "Delete">
+<!ENTITY tableDeleteMenu.accesskey "D">
+
+<!-- text for "Join Cells" is in editor.properties
+ ("JoinSelectedCells" and "JoinCellToRight")
+ the access key must exist in both of those strings
+ But value must be set here for accesskey to draw properly
+-->
+<!ENTITY tableJoinCells.label "j">
+<!ENTITY tableJoinCells.accesskey "j">
+<!ENTITY tableSplitCell.label "Split Cell">
+<!ENTITY tableSplitCell.accesskey "C">
+<!ENTITY convertToTable.label "Create Table from Selection">
+<!ENTITY convertToTable.accesskey "r">
+<!ENTITY tableProperties.label "Table Properties…">
+<!ENTITY tableProperties.accesskey "o">
+
+<!ENTITY imageToolbarCmd.label "Image">
+<!ENTITY imageToolbarCmd.tooltip "Insert new image or edit selected image’s properties">
+<!ENTITY hruleToolbarCmd.label "H.Line">
+<!ENTITY hruleToolbarCmd.tooltip "Insert horizontal line or edit selected line’s properties">
+<!ENTITY tableToolbarCmd.label "Table">
+<!ENTITY tableToolbarCmd.tooltip "Insert new table or edit selected table’s properties">
+<!ENTITY linkToolbarCmd.label "Link">
+<!ENTITY linkToolbarCmd.tooltip "Insert new link or edit selected link’s properties">
+<!ENTITY anchorToolbarCmd.label "Anchor">
+<!ENTITY anchorToolbarCmd.tooltip "Insert new named anchor or edit selected anchor’s properties">
+<!ENTITY TextColorButton.tooltip "Choose colour for text">
+<!ENTITY BackgroundColorButton.tooltip "Choose colour for background">
+
+<!-- Editor toolbar -->
+<!ENTITY absoluteFontSizeToolbarCmd.tooltip "Set font size">
+<!ENTITY decreaseFontSizeToolbarCmd.tooltip "Smaller font size">
+<!ENTITY increaseFontSizeToolbarCmd.tooltip "Larger font size">
+<!ENTITY boldToolbarCmd.tooltip "Bold">
+<!ENTITY italicToolbarCmd.tooltip "Italic">
+<!ENTITY underlineToolbarCmd.tooltip "Underline">
+<!ENTITY bulletListToolbarCmd.tooltip "Apply or remove bulleted list">
+<!ENTITY numberListToolbarCmd.tooltip "Apply or remove numbered list">
+<!ENTITY outdentToolbarCmd.tooltip "Outdent text (move left)">
+<!ENTITY indentToolbarCmd.tooltip "Indent text (move right)">
+<!ENTITY AlignPopupButton.tooltip "Choose text alignment">
+<!ENTITY InsertPopupButton.tooltip "Insert a Link, Anchor, Image, Horizontal Line, or Table">
+<!ENTITY alignLeftButton.tooltip "Align text along left margin">
+<!ENTITY alignCenterButton.tooltip "Align text centred">
+<!ENTITY alignRightButton.tooltip "Align text along right margin">
+<!ENTITY alignJustifyButton.tooltip "Align text along left and right margins">
+
+<!-- TOC manipulation -->
+<!ENTITY insertTOC.label "Insert">
+<!ENTITY insertTOC.accesskey "i">
+<!ENTITY updateTOC.label "Update">
+<!ENTITY updateTOC.accesskey "u">
+<!ENTITY removeTOC.label "Remove">
+<!ENTITY removeTOC.accesskey "r">
+<!ENTITY tocMenu.label "Table of Contents…">
+<!ENTITY tocMenu.accesskey "b">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/mailComposeEditorOverlay.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/mailComposeEditorOverlay.dtd
new file mode 100644
index 0000000000..e367a329b0
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/mailComposeEditorOverlay.dtd
@@ -0,0 +1,9 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY attachImageSource.label "Attach this image to the message">
+<!ENTITY attachImageSource.accesskey "s">
+
+<!ENTITY attachLinkSource.label "Attach the source of this link to the message">
+<!ENTITY attachLinkSource.accesskey "s">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/messengercompose.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/messengercompose.dtd
new file mode 100644
index 0000000000..969189a02c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/messengercompose.dtd
@@ -0,0 +1,306 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE messengercompose.dtd Main UI for message composition -->
+<!ENTITY msgComposeWindow.title "Write: (no subject)">
+
+<!-- File Menu -->
+<!ENTITY fileMenu.label "File">
+<!ENTITY fileMenu.accesskey "f">
+<!ENTITY newMenu.label "New">
+<!ENTITY newMenu.accesskey "N">
+<!ENTITY newMessage.label "Message">
+<!ENTITY newMessage.accesskey "M">
+<!ENTITY newMessageCmd2.key "N">
+<!ENTITY newContact.label "Address Book Contact…">
+<!ENTITY newContact.accesskey "C">
+<!ENTITY attachMenu.label "Attach">
+<!ENTITY attachMenu.accesskey "h">
+<!ENTITY attachCloudCmd.label "Filelink">
+<!ENTITY attachCloudCmd.accesskey "i">
+<!ENTITY attachPageCmd.label "Web Page…">
+<!ENTITY attachPageCmd.accesskey "W">
+<!ENTITY remindLater.label "Remind Me Later">
+<!ENTITY remindLater.accesskey "L">
+<!ENTITY closeCmd.label "Close">
+<!ENTITY closeCmd.key "W">
+<!ENTITY closeCmd.accesskey "c">
+<!ENTITY saveCmd.label "Save">
+<!ENTITY saveCmd.key "S">
+<!ENTITY saveCmd.accesskey "s">
+<!ENTITY saveAsCmd.label "Save As">
+<!ENTITY saveAsCmd.accesskey "A">
+<!ENTITY saveAsFileCmd.label "File…">
+<!ENTITY saveAsFileCmd.accesskey "F">
+<!ENTITY saveAsDraftCmd.label "Draft">
+<!ENTITY saveAsDraftCmd.accesskey "D">
+<!ENTITY saveAsTemplateCmd.label "Template">
+<!ENTITY saveAsTemplateCmd.accesskey "T">
+<!ENTITY sendNowCmd.label "Send Now">
+<!ENTITY sendCmd.keycode "VK_RETURN">
+<!ENTITY sendNowCmd.accesskey "d">
+<!ENTITY sendLaterCmd.label "Send Later">
+<!ENTITY sendLaterCmd.keycode "VK_RETURN">
+<!ENTITY sendLaterCmd.accesskey "L">
+<!ENTITY printCmd.label "Print…">
+<!ENTITY printCmd.key "P">
+<!ENTITY printCmd.accesskey "P">
+
+<!-- Edit Menu -->
+<!ENTITY editMenu.label "Edit">
+<!ENTITY editMenu.accesskey "e">
+<!ENTITY undoCmd.label "Undo">
+<!ENTITY undoCmd.key "Z">
+<!ENTITY undoCmd.accesskey "u">
+<!ENTITY redoCmd.label "Redo">
+<!ENTITY redoCmd.key "Y">
+<!ENTITY redoCmd.accesskey "r">
+<!ENTITY cutCmd.key "X">
+<!ENTITY copyCmd.key "C">
+<!ENTITY pasteCmd.key "V">
+<!ENTITY pasteNoFormattingCmd.key "V">
+<!ENTITY pasteAsQuotationCmd.key "o">
+<!ENTITY editRewrapCmd.accesskey "w">
+<!ENTITY deleteCmd.label "Delete">
+<!ENTITY deleteCmd.accesskey "d">
+<!ENTITY editRewrapCmd.label "Rewrap">
+<!ENTITY editRewrapCmd.key "R">
+<!ENTITY renameAttachmentCmd.label "Rename Attachment…">
+<!ENTITY renameAttachmentCmd.accesskey "e">
+<!ENTITY reorderAttachmentsCmd.label "Reorder Attachments…">
+<!ENTITY reorderAttachmentsCmd.accesskey "s">
+<!ENTITY reorderAttachmentsCmd.key "x">
+<!ENTITY selectAllCmd.accesskey "a">
+<!ENTITY findBarCmd.label "Find…">
+<!ENTITY findBarCmd.accesskey "F">
+<!ENTITY findBarCmd.key "F">
+<!ENTITY findReplaceCmd.label "Find and Replace…">
+<!ENTITY findReplaceCmd.accesskey "l">
+<!ENTITY findReplaceCmd.key "H">
+<!ENTITY findAgainCmd.label "Find Again">
+<!ENTITY findAgainCmd.accesskey "g">
+<!ENTITY findAgainCmd.key "G">
+<!ENTITY findAgainCmd.key2 "VK_F3">
+<!ENTITY findPrevCmd.label "Find Previous">
+<!ENTITY findPrevCmd.accesskey "v">
+<!ENTITY findPrevCmd.key "G">
+<!ENTITY findPrevCmd.key2 "VK_F3">
+
+<!-- Reorder Attachment Panel -->
+<!ENTITY reorderAttachmentsPanel.label "Reorder Attachments">
+<!ENTITY moveAttachmentBundleUpPanelBtn.label "Move together">
+
+<!-- LOCALIZATION NOTE (sortAttachmentsPanelBtn.Sort.AZ.label):
+ Please ensure that this translation matches
+ sortAttachmentsPanelBtn.Sort.ZA.label, except for the sort direction. -->
+<!ENTITY sortAttachmentsPanelBtn.Sort.AZ.label "Sort: A - Z">
+<!ENTITY sortAttachmentsPanelBtn.Sort.ZA.label "Sort: Z - A">
+<!-- LOCALIZATION NOTE (sortAttachmentsPanelBtn.SortSelection.AZ.label):
+ Please ensure that this translation matches
+ sortAttachmentsPanelBtn.SortSelection.ZA.label, except for the sort direction. -->
+<!ENTITY sortAttachmentsPanelBtn.SortSelection.AZ.label "Sort Selection: A - Z">
+<!ENTITY sortAttachmentsPanelBtn.SortSelection.ZA.label "Sort Selection: Z - A">
+<!ENTITY sortAttachmentsPanelBtn.key "y">
+
+<!-- View Menu -->
+<!ENTITY viewMenu.label "View">
+<!ENTITY viewMenu.accesskey "v">
+<!ENTITY viewToolbarsMenuNew.label "Toolbars">
+<!ENTITY viewToolbarsMenuNew.accesskey "T">
+<!ENTITY menubarCmd.label "Menu Bar">
+<!ENTITY menubarCmd.accesskey "M">
+<!ENTITY showCompositionToolbarCmd.label "Composition Toolbar">
+<!ENTITY showCompositionToolbarCmd.accesskey "o">
+<!ENTITY showFormattingBarCmd.label "Formatting Bar">
+<!ENTITY showFormattingBarCmd.accesskey "F">
+<!ENTITY showTaskbarCmd.label "Status Bar">
+<!ENTITY showTaskbarCmd.accesskey "S">
+<!ENTITY customizeToolbar.label "Customize…">
+<!ENTITY customizeToolbar.accesskey "C">
+
+<!ENTITY addressSidebar.label "Contacts Sidebar">
+<!ENTITY addressSidebar.accesskey "o">
+
+<!-- Format Menu -->
+<!ENTITY formatMenu.label "Format">
+<!ENTITY formatMenu.accesskey "o">
+
+<!-- Options Menu -->
+<!ENTITY optionsMenu.label "Options">
+<!ENTITY optionsMenu.accesskey "p">
+<!ENTITY checkSpellingCmd2.label "Check Spelling…">
+<!ENTITY checkSpellingCmd2.key "p">
+<!ENTITY checkSpellingCmd2.key2 "VK_F7">
+<!ENTITY checkSpellingCmd2.accesskey "h">
+<!ENTITY enableInlineSpellChecker.label "Spellcheck As You Type">
+<!ENTITY enableInlineSpellChecker.accesskey "S">
+<!ENTITY quoteCmd.label "Quote Message">
+<!ENTITY quoteCmd.accesskey "Q">
+
+<!--LOCALIZATION NOTE attachVCard.label Don't translate the term 'vCard' -->
+<!ENTITY attachVCard.label "Attach Personal Card (vCard)">
+<!ENTITY attachVCard.accesskey "v">
+
+<!ENTITY returnReceiptMenu.label "Return Receipt">
+<!ENTITY returnReceiptMenu.accesskey "t">
+<!ENTITY dsnMenu.label "Delivery Status Notification">
+<!ENTITY dsnMenu.accesskey "N">
+<!ENTITY priorityMenu.label "Priority">
+<!ENTITY priorityMenu.accesskey "p">
+<!ENTITY priorityButton.title "Priority">
+<!ENTITY priorityButton.tooltiptext "Change the message priority">
+<!ENTITY priorityButton.label "Priority:">
+<!ENTITY lowestPriorityCmd.label "Lowest">
+<!ENTITY lowestPriorityCmd.accesskey "l">
+<!ENTITY lowPriorityCmd.label "Low">
+<!ENTITY lowPriorityCmd.accesskey "o">
+<!ENTITY normalPriorityCmd.label "Normal">
+<!ENTITY normalPriorityCmd.accesskey "n">
+<!ENTITY highPriorityCmd.label "High">
+<!ENTITY highPriorityCmd.accesskey "i">
+<!ENTITY highestPriorityCmd.label "Highest">
+<!ENTITY highestPriorityCmd.accesskey "H">
+<!ENTITY fileCarbonCopyCmd.label "Send a Copy To">
+<!ENTITY fileCarbonCopyCmd.accesskey "d">
+<!ENTITY fileHereMenu.label "File Here">
+
+<!-- Tools Menu -->
+<!ENTITY tasksMenu.label "Tools">
+<!ENTITY tasksMenu.accesskey "T">
+<!ENTITY messengerCmd.label "Mail &amp; Newsgroups">
+<!ENTITY messengerCmd.accesskey "m">
+<!ENTITY messengerCmd.commandkey "1">
+<!ENTITY addressBookCmd.label "Address Book">
+<!ENTITY addressBookCmd.accesskey "a">
+<!ENTITY addressBookCmd.key "B">
+<!ENTITY accountManagerCmd2.label "Account Settings">
+<!ENTITY accountManagerCmd2.accesskey "S">
+<!ENTITY accountManagerCmdUnix2.accesskey "S">
+
+<!-- Mac OS X Window Menu -->
+<!ENTITY minimizeWindow.key "m">
+<!ENTITY minimizeWindow.label "Minimize">
+<!ENTITY bringAllToFront.label "Bring All to Front">
+<!ENTITY zoomWindow.label "Zoom">
+<!ENTITY windowMenu.label "Window">
+
+<!-- Mail Toolbar -->
+<!ENTITY sendButton.label "Send">
+<!ENTITY quoteButton.label "Quote">
+<!ENTITY addressButton.label "Contacts">
+<!ENTITY spellingButton.label "Spelling">
+<!ENTITY saveButton.label "Save">
+<!ENTITY printButton.label "Print">
+
+<!-- Mail Toolbar Tooltips -->
+<!ENTITY sendButton.tooltip "Send this message now">
+<!ENTITY sendlaterButton.tooltip "Send this message later">
+<!ENTITY quoteButton.tooltip "Quote the previous message">
+<!ENTITY addressButton.tooltip "Select a recipient from an Address Book">
+<!ENTITY spellingButton.tooltip "Check spelling of selection or entire message">
+<!ENTITY saveButton.tooltip "Save this message">
+<!ENTITY cutButton.tooltip "Cut">
+<!ENTITY copyButton.tooltip "Copy">
+<!ENTITY pasteButton.tooltip "Paste">
+<!ENTITY printButton.tooltip "Print this message">
+
+<!-- Headers -->
+<!--LOCALIZATION NOTE headersSpaces.style is for aligning the From:, To: and
+ Subject: rows. It should be larger than the largest Header label -->
+<!ENTITY headersSpace2.style "width: 8em;">
+<!ENTITY fromAddr2.label "From">
+<!ENTITY fromAddr.accesskey "r">
+<!ENTITY replyAddr2.label "Reply-To">
+<!ENTITY newsgroupsAddr2.label "Newsgroup">
+<!ENTITY followupAddr2.label "Followup-To">
+<!ENTITY subject2.label "Subject">
+<!ENTITY subject.accesskey "S">
+<!ENTITY attachmentBucketCloseButton.tooltip "Hide the attachment pane">
+
+<!-- Format Toolbar, imported from editorAppShell.xhtml -->
+<!ENTITY SmileButton.tooltip "Insert a smiley face">
+<!ENTITY smiley1Cmd.label "Smile">
+<!ENTITY smiley2Cmd.label "Frown">
+<!ENTITY smiley3Cmd.label "Wink">
+<!ENTITY smiley4Cmd.label "Tongue-out">
+<!ENTITY smiley5Cmd.label "Laughing">
+<!ENTITY smiley6Cmd.label "Embarrassed">
+<!ENTITY smiley7Cmd.label "Undecided">
+<!ENTITY smiley8Cmd.label "Surprise">
+<!ENTITY smiley9Cmd.label "Kiss">
+<!ENTITY smiley10Cmd.label "Yell">
+<!ENTITY smiley11Cmd.label "Cool">
+<!ENTITY smiley12Cmd.label "Money-Mouth">
+<!ENTITY smiley13Cmd.label "Foot-in-Mouth">
+<!ENTITY smiley14Cmd.label "Innocent">
+<!ENTITY smiley15Cmd.label "Cry">
+<!ENTITY smiley16Cmd.label "Lips-are-Sealed">
+
+<!-- Message Pane Context Menu -->
+<!ENTITY spellCheckNoSuggestions.label "No Suggestions Found">
+<!ENTITY spellCheckIgnoreWord.label "Ignore Word">
+<!ENTITY spellCheckIgnoreWord.accesskey "I">
+<!ENTITY spellCheckAddToDictionary.label "Add to Dictionary">
+<!ENTITY spellCheckAddToDictionary.accesskey "n">
+<!ENTITY undo.label "Undo">
+<!ENTITY undo.accesskey "U">
+<!ENTITY cut.label "Cut">
+<!ENTITY cut.accesskey "t">
+<!ENTITY copy.label "Copy">
+<!ENTITY copy.accesskey "C">
+<!ENTITY paste.label "Paste">
+<!ENTITY paste.accesskey "P">
+<!ENTITY pasteQuote.label "Paste As Quotation">
+<!ENTITY pasteQuote.accesskey "Q">
+
+<!-- Attachment Item and List Context Menus -->
+<!ENTITY openAttachment.label "Open">
+<!ENTITY openAttachment.accesskey "O">
+<!ENTITY delete.label "Delete">
+<!ENTITY delete.accesskey "D">
+<!ENTITY removeAttachment.label "Remove Attachment">
+<!ENTITY removeAttachment.accesskey "M">
+<!ENTITY renameAttachment.label "Rename…">
+<!ENTITY renameAttachment.accesskey "R">
+<!ENTITY reorderAttachments.label "Reorder Attachments…">
+<!ENTITY reorderAttachments.accesskey "s">
+<!ENTITY removeAllAttachments.label "Remove All Attachments">
+<!ENTITY removeAllAttachments.accesskey "v">
+<!ENTITY selectAll.label "Select All">
+<!ENTITY selectAll.accesskey "A">
+<!ENTITY attachCloud.label "Filelink…">
+<!ENTITY attachCloud.accesskey "i">
+<!ENTITY convertCloud.label "Convert to…">
+<!ENTITY convertCloud.accesskey "C">
+<!ENTITY cancelUpload.label "Cancel Upload">
+<!ENTITY cancelUpload.accesskey "n">
+<!ENTITY convertRegularAttachment.label "Regular Attachment">
+<!ENTITY convertRegularAttachment.accesskey "A">
+<!ENTITY attachPage.label "Attach Web Page…">
+<!ENTITY attachPage.accesskey "W">
+
+<!-- Attachment Pane Header Bar Context Menu -->
+<!-- LOCALIZATION NOTE (initiallyShowAttachmentPane.label):
+ Should use the same wording as startExpandedCmd.label
+ in msgHdrViewOverlay.dtd. -->
+<!ENTITY initiallyShowAttachmentPane.label "Initially Show Attachment Pane">
+<!ENTITY initiallyShowAttachmentPane.accesskey "S">
+
+<!-- Spell checker context menu items -->
+<!ENTITY spellAddDictionaries.label "Add Dictionaries…">
+<!ENTITY spellAddDictionaries.accesskey "A">
+
+<!-- Title for the address picker panel -->
+<!ENTITY addressesSidebarTitle.label "Contacts">
+
+<!-- Identity popup customize menuitem -->
+<!ENTITY customizeFromAddress.label "Customize From Address…">
+<!ENTITY customizeFromAddress.accesskey "A">
+
+<!-- Accessibility name for the document -->
+<!ENTITY aria.message.bodyName "Message body">
+
+<!-- Status Bar -->
+<!ENTITY languageStatusButton.tooltip "Spellcheck language">
+<!ENTITY encodingStatusPanel.tooltip "Text encoding">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/sendProgress.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/sendProgress.dtd
new file mode 100644
index 0000000000..0a94a609b1
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/sendProgress.dtd
@@ -0,0 +1,8 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE sendProgress.dtd Main UI for Send Message Progress Dialog -->
+<!ENTITY sendDialog.title "Processing Message">
+<!ENTITY status.label "Status:">
+<!ENTITY progress.label "Progress:">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/sendProgress.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/sendProgress.properties
new file mode 100644
index 0000000000..61799efb37
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/messengercompose/sendProgress.properties
@@ -0,0 +1,21 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (titleSendMsgSubject):
+# %S will be replaced by the message subject.
+titleSendMsgSubject=Sending Message - %S
+titleSendMsg=Sending Message
+# LOCALIZATION NOTE (titleSaveMsgSubject):
+# %S will be replaced by the message subject.
+titleSaveMsgSubject=Saving Message - %S
+titleSaveMsg=Saving Message
+
+# LOCALIZATION NOTE (percentMsg):
+# This string is used to format the text to the right of the progress meter.
+# %S will be replaced by the percentage of the file that has been saved.
+# %% will be replaced a single % sign.
+percentMsg=%S%%
+
+messageSent=Your message has been sent.
+messageSaved=Your message has been saved.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/migration/migration.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/migration/migration.dtd
new file mode 100644
index 0000000000..45b840f0fe
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/migration/migration.dtd
@@ -0,0 +1,30 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+
+<!ENTITY migrationWizard.title "Import Wizard">
+
+<!ENTITY importFromWin.label "Import Options, Account Settings, Address Book, Filters and other data from:">
+<!ENTITY importFromNonWin.label "Import Preferences, Account Settings, Address Book, Filters, and other data from:">
+<!ENTITY importSourceNotFound.label "No application to import data from found.">
+
+<!ENTITY importFromNothing.label "Don’t import anything">
+<!ENTITY importFromNothing.accesskey "D">
+<!ENTITY importFromSeamonkey3.label "SeaMonkey 2 or later">
+<!ENTITY importFromSeamonkey3.accesskey "S">
+<!ENTITY importFromOutlook.label "Outlook">
+<!ENTITY importFromOutlook.accesskey "O">
+
+<!ENTITY importSource.title "Import Settings and Mail Folders">
+<!ENTITY importItems.title "Items to Import">
+<!ENTITY importItems.label "Select which items to import:">
+
+<!ENTITY migrating.title "Importing…">
+<!ENTITY migrating.label "The following items are currently being imported…">
+
+<!ENTITY selectProfile.title "Select Profile">
+<!ENTITY selectProfile.label "The following profiles are available to import from:">
+
+<!ENTITY done.title "Import Complete">
+<!ENTITY done.label "The following items were successfully imported:">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/migration/migration.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/migration/migration.properties
new file mode 100644
index 0000000000..eee0ab5d90
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/migration/migration.properties
@@ -0,0 +1,32 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+profileName_format=%S %S
+
+# Import Sources
+1_seamonkey=Preferences
+
+1_thunderbird=Preferences
+
+2_seamonkey=Account Settings
+2_thunderbird=Account Settings
+2_outlook=Account Settings
+
+4_seamonkey=Address Books
+4_thunderbird=Address Books
+4_outlook=Address Book
+
+8_seamonkey=Junk Mail Training
+
+16_seamonkey=Saved Passwords
+
+32_seamonkey=Other Data
+
+64_seamonkey=Newsgroup Folders
+
+64_thunderbird=Newsgroup Folders
+
+128_seamonkey=Mail Folders
+128_thunderbird=Mail Folders
+128_outlook=Mail Folders
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mime.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mime.properties
new file mode 100644
index 0000000000..55a4acff4c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mime.properties
@@ -0,0 +1,154 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by libmime to emit header display in HTML
+#
+
+# Mail subject
+## @name MIME_MHTML_SUBJECT
+## @loc None
+1000=Subject
+
+# Resent-Comments
+## @name MIME_MHTML_RESENT_COMMENTS
+## @loc
+1001=Resent-Comments
+
+# Resent-Date
+## @name MIME_MHTML_RESENT_DATE
+## @loc
+1002=Resent-Date
+
+# Resent-Sender
+## @name MIME_MHTML_RESENT_SENDER
+## @loc
+1003=Resent-Sender
+
+# Resent-From
+## @name MIME_MHTML_RESENT_FROM
+## @loc
+1004=Resent-From
+
+# Resent-To
+## @name MIME_MHTML_RESENT_TO
+## @loc
+1005=Resent-To
+
+# Resent-CC
+## @name MIME_MHTML_RESENT_CC
+## @loc
+1006=Resent-CC
+
+# Date
+## @name MIME_MHTML_DATE
+## @loc
+1007=Date
+
+# Sender
+## @name MIME_MHTML_SENDER
+## @loc
+1008=Sender
+
+# From
+## @name MIME_MHTML_FROM
+## @loc
+1009=From
+
+# Reply-To
+## @name MIME_MHTML_REPLY_TO
+## @loc
+1010=Reply-To
+
+# Organization
+## @name MIME_MHTML_ORGANIZATION
+## @loc
+1011=Organization
+
+# To
+## @name MIME_MHTML_TO
+## @loc
+1012=To
+
+# CC
+## @name MIME_MHTML_CC
+## @loc
+1013=CC
+
+# Newsgroups
+## @name MIME_MHTML_NEWSGROUPS
+## @loc
+1014=Newsgroups
+
+# Followup-To
+## @name MIME_MHTML_FOLLOWUP_TO
+## @loc
+1015=Followup-To
+
+# References
+## @name MIME_MHTML_REFERENCES
+## @loc
+1016=References
+
+# Message ID
+## @name MIME_MHTML_MESSAGE_ID
+## @loc
+1021=Message-ID
+
+# BCC
+## @name MIME_MHTML_BCC
+## @loc
+1023=BCC
+
+# Link to doc
+## @name MIME_MSG_LINK_TO_DOCUMENT
+## @loc
+1026=Link to Document
+
+# Get Doc info
+## @name MIME_MSG_DOCUMENT_INFO
+## @loc
+1027=<B>Document Info:</B>
+
+# Msg Attachment
+## @name MIME_MSG_ATTACHMENT
+## @loc
+1028=Attachment
+
+# default attachment name
+## @name MIME_MSG_DEFAULT_ATTACHMENT_NAME
+## @loc
+# LOCALIZATION NOTE (1040): Do not translate "%s" below.
+# Place the %s where you wish the part number of the attachment to appear
+1040=Part %s
+
+# default forwarded message prefix
+## @name MIME_FORWARDED_MESSAGE_HTML_USER_WROTE
+## @loc
+1041=-------- Original Message --------
+
+# Partial Message Truncated
+## @name MIME_MSG_PARTIAL_TRUNCATED
+## @loc
+MIME_MSG_PARTIAL_TRUNCATED=Truncated!
+
+# Partial Message Truncated Explanation
+## @name MIME_MSG_PARTIAL_TRUNCATED_EXPLANATION
+## @loc
+MIME_MSG_PARTIAL_TRUNCATED_EXPLANATION=This message exceeded the Maximum Message Size set in Account Settings, so we have only downloaded the first few lines from the mail server.
+
+# Partial Message Not Downloaded
+## @name MIME_MSG_PARTIAL_NOT_DOWNLOADED
+## @loc
+MIME_MSG_PARTIAL_NOT_DOWNLOADED=Not Downloaded
+
+# Partial Message Not Downloaded Explanation
+## @name MIME_MSG_PARTIAL_NOT_DOWNLOADED_EXPLANATION
+## @loc
+MIME_MSG_PARTIAL_NOT_DOWNLOADED_EXPLANATION=Only the headers for this message were downloaded from the mail server.
+
+# MIME_MSG_PARTIAL_CLICK_FOR_REST
+## @name MIME_MSG_PARTIAL_CLICK_FOR_REST
+## @loc
+MIME_MSG_PARTIAL_CLICK_FOR_REST=Download the rest of the message.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mimeheader.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mimeheader.properties
new file mode 100644
index 0000000000..0166e31fef
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/mimeheader.properties
@@ -0,0 +1,35 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by libmime for header display in XML & HTML
+#
+TO=To
+BCC=BCC
+CC=CC
+DATE=Date
+DISTRIBUTION=Distribution
+FCC=FCC
+FOLLOWUP-TO=Followup-To
+FROM=From
+STATUS=Status
+LINES=Lines
+MESSAGE-ID=Message-ID
+MIME-VERSION=MIME-Version
+NEWSGROUPS=Newsgroups
+ORGANIZATION=Organization
+REFERENCES=References
+REPLY-TO=Reply-To
+RESENT-COMMENTS=Resent-Comments
+RESENT-DATE=Resent-Date
+RESENT-FROM=Resent-From
+RESENT-MESSAGE-ID=Resent-Message-ID
+RESENT-SENDER=Resent-Sender
+RESENT-TO=Resent-To
+RESENT-CC=Resent-CC
+SENDER=Sender
+SUBJECT=Subject
+APPROVED-BY=Approved-By
+USER-AGENT=User-Agent
+FILENAME=Filename
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/morkImportMsgs.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/morkImportMsgs.properties
new file mode 100644
index 0000000000..ce65917ca4
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/morkImportMsgs.properties
@@ -0,0 +1,18 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the Mork import code to display status/error
+# and informational messages.
+#
+
+MABFiles = Mork Address Books
+
+# Short name of import module
+morkImportName = Mork database (.mab)
+
+# Description of import module
+morkImportDescription = Import an address book from SeaMonkey or earlier versions of Thunderbird.
+
+morkImportSuccess = Success!
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/msgAccountCentral.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/msgAccountCentral.dtd
new file mode 100644
index 0000000000..a2d885270d
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/msgAccountCentral.dtd
@@ -0,0 +1,26 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY emailSectionHdr.label "Email">
+<!ENTITY readMsgsLink.label "Read messages">
+<!ENTITY composeMsgLink.label "Write a new message">
+
+<!ENTITY newsSectionHdr.label "Newsgroups">
+<!ENTITY subscribeNewsLink.label "Manage newsgroup subscriptions">
+
+<!ENTITY feedsSectionHdr.label "Feeds">
+<!ENTITY subscribeFeeds.label "Manage subscriptions">
+
+<!ENTITY chat.label "Chat">
+
+<!ENTITY accountsSectionHdr.label "Accounts">
+<!ENTITY subscribeImapFolders.label "Manage folder subscriptions">
+<!ENTITY settingsLink.label "View settings for this account">
+<!ENTITY setupNewAcct.label "Set up an account:">
+
+<!ENTITY advFeaturesSectionHdr.label "Advanced Features">
+<!ENTITY searchMsgsLink.label "Search messages">
+<!ENTITY filtersLink.label "Manage message filters">
+<!ENTITY junkSettings.label "Junk mail settings">
+<!ENTITY offlineLink.label "Offline settings">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/msgHdrViewOverlay.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/msgHdrViewOverlay.dtd
new file mode 100644
index 0000000000..e868a669d7
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/msgHdrViewOverlay.dtd
@@ -0,0 +1,114 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY toField4.label "To">
+<!ENTITY fromField4.label "From">
+<!ENTITY senderField4.label "Sender">
+<!ENTITY author.label "Author">
+<!ENTITY organizationField4.label "Organization">
+<!ENTITY replyToField4.label "Reply to">
+
+<!ENTITY subjectField4.label "Subject">
+<!ENTITY ccField4.label "Cc">
+<!ENTITY bccField4.label "Bcc">
+<!ENTITY newsgroupsField4.label "Newsgroups">
+<!ENTITY followupToField4.label "Followup to">
+<!ENTITY tagsHdr4.label "Tags">
+<!ENTITY dateField4.label "Date">
+<!ENTITY userAgentField4.label "User agent">
+<!ENTITY referencesField4.label "References">
+<!ENTITY messageIdField4.label "Message ID">
+<!ENTITY inReplyToField4.label "In reply to">
+<!ENTITY originalWebsite4.label "Website">
+
+<!ENTITY hdrArchiveButton1.label "Archive">
+<!ENTITY hdrArchiveButton1.tooltip "Archive this message">
+<!ENTITY hdrSmartReplyButton1.label "Smart Reply">
+<!ENTITY hdrReplyButton1.label "Reply">
+<!ENTITY hdrReplyButton2.tooltip "Reply to the sender of this message">
+<!ENTITY hdrReplyAllButton1.label "Reply All">
+<!ENTITY hdrReplyAllButton1.tooltip "Reply to sender and all recipients">
+<!ENTITY hdrReplyListButton1.label "Reply List">
+<!ENTITY hdrReplyListButton1.tooltip "Reply to mailing list">
+<!ENTITY hdrFollowupButton1.label "Followup">
+<!ENTITY hdrFollowupButton1.tooltip "Post a followup to this newsgroup">
+<!ENTITY hdrForwardButton1.label "Forward">
+<!ENTITY hdrForwardButton1.tooltip "Forward this message">
+<!ENTITY hdrJunkButton1.label "Junk">
+<!ENTITY hdrJunkButton1.tooltip "Mark this message as junk">
+<!ENTITY hdrTrashButton1.label "Delete">
+<!ENTITY hdrTrashButton1.tooltip "Delete this message">
+
+<!ENTITY hdrViewToolbarShowFull.label "Show Icons and Text">
+<!ENTITY hdrViewToolbarShowFull.accesskey "a">
+<!ENTITY hdrViewToolbarShowIcons.label "Show Icons Only">
+<!ENTITY hdrViewToolbarShowIcons.accesskey "I">
+<!ENTITY hdrViewToolbarShowText.label "Show Text Only">
+<!ENTITY hdrViewToolbarShowText.accesskey "T">
+<!ENTITY hdrViewToolbarAlwaysReplySender.label "Always Show Reply to Sender">
+<!ENTITY hdrViewToolbarAlwaysReplySender.accesskey "R">
+
+<!ENTITY otherActionsButton2.label "More">
+<!ENTITY otherActionsButton.tooltip "More actions">
+<!ENTITY otherActionsOpenConversation1.label "Open in Conversation">
+<!ENTITY otherActionsOpenConversation1.accesskey "C">
+<!ENTITY otherActionsOpenInNewWindow1.label "Open in New Window">
+<!ENTITY otherActionsOpenInNewWindow1.accesskey "W">
+<!ENTITY otherActionsOpenInNewTab1.label "Open in New Tab">
+<!ENTITY otherActionsOpenInNewTab1.accesskey "T">
+<!ENTITY markAsReadMenuItem1.label "Mark as Read">
+<!ENTITY markAsReadMenuItem1.accesskey "R">
+<!ENTITY markAsUnreadMenuItem1.label "Mark as Unread">
+<!ENTITY markAsUnreadMenuItem1.accesskey "r">
+<!ENTITY saveAsMenuItem1.label "Save as…">
+<!ENTITY saveAsMenuItem1.accesskey "S">
+<!ENTITY viewSourceMenuItem1.label "View Source">
+<!ENTITY viewSourceMenuItem1.accesskey "V">
+<!ENTITY otherActionsPrint1.label "Print…">
+<!ENTITY otherActionsPrint1.accesskey "P">
+
+<!-- Attachment bar context menu items -->
+<!ENTITY startExpandedCmd.label "Initially Show Attachment Pane">
+<!ENTITY startExpandedCmd.accesskey "S">
+
+<!-- Attachment context menu items -->
+<!ENTITY openAttachmentCmd.label "Open">
+<!ENTITY openAttachmentCmd.accesskey "O">
+<!ENTITY saveAsAttachmentCmd.label "Save As…">
+<!ENTITY saveAsAttachmentCmd.accesskey "S">
+<!ENTITY detachAttachmentCmd.label "Detach…">
+<!ENTITY detachAttachmentCmd.accesskey "D">
+<!ENTITY deleteAttachmentCmd.label "Delete">
+<!ENTITY deleteAttachmentCmd.accesskey "e">
+<!ENTITY openAllAttachmentsCmd.label "Open All…">
+<!ENTITY openAllAttachmentsCmd.accesskey "O">
+<!ENTITY saveAllAttachmentsCmd.label "Save All…">
+<!ENTITY saveAllAttachmentsCmd.accesskey "S">
+<!ENTITY detachAllAttachmentsCmd.label "Detach All…">
+<!ENTITY detachAllAttachmentsCmd.accesskey "D">
+<!ENTITY deleteAllAttachmentsCmd.label "Delete All…">
+<!ENTITY deleteAllAttachmentsCmd.accesskey "e">
+
+<!ENTITY openAttachment.tooltip "Open the attached file">
+
+<!ENTITY detachedAttachmentFolder.show.label "Open Containing Folder">
+<!ENTITY detachedAttachmentFolder.show.accesskey "F">
+<!ENTITY detachedAttachmentFolder.showMac.label "Show In Finder">
+<!ENTITY detachedAttachmentFolder.showMac.accesskey "F">
+
+<!-- Attachment toolbar items -->
+<!ENTITY saveAttachmentButton1.label "Save">
+<!ENTITY saveAttachmentButton1.tooltip "Save the attached file">
+<!ENTITY saveAllAttachmentsButton1.label "Save All">
+<!ENTITY saveAllAttachmentsButton1.tooltip "Save all the attached files">
+
+<!ENTITY copyLinkCmd.label "Copy Link Location">
+<!ENTITY copyLinkCmd.accesskey "C">
+
+<!ENTITY CopyMessageId.label "Copy Message-ID">
+<!ENTITY CopyMessageId.accesskey "C">
+<!ENTITY OpenMessageForMsgId.label "Open Message For ID">
+<!ENTITY OpenMessageForMsgId.accesskey "O">
+<!ENTITY OpenBrowserWithMsgId.label "Open Browser With Message-ID">
+<!ENTITY OpenBrowserWithMsgId.accesskey "B">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/msgSynchronize.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/msgSynchronize.dtd
new file mode 100644
index 0000000000..326ce4ac3d
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/msgSynchronize.dtd
@@ -0,0 +1,25 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from MsgSynchronize.xul and msgSelectOfflineFolders.xul-->
+
+<!-- extracted from MsgSynchronize.xhtml and msgSelectOfflineFolders.xhtml-->
+
+<!ENTITY MsgSynchronize.label "Download and Sync Messages">
+<!ENTITY MsgSelect.label "Items for Offline Use">
+<!ENTITY MsgSyncDesc.label "If you have already selected mail folders or newsgroups for offline use, you can download and/or sync them now. Otherwise, use the &quot;Select&quot; button to choose mail folders and newsgroups for offline use.">
+<!ENTITY MsgSyncDirections.label "Download and/or sync the following:">
+<!ENTITY syncTypeMail.label "Mail messages">
+<!ENTITY syncTypeMail.accesskey "M">
+<!ENTITY syncTypeNews.label "Newsgroup messages">
+<!ENTITY syncTypeNews.accesskey "N">
+<!ENTITY sendMessage.label "Send Unsent messages">
+<!ENTITY sendMessage.accesskey "S">
+<!ENTITY workOffline.label "Work offline once download and/or sync is complete">
+<!ENTITY workOffline.accesskey "W">
+<!ENTITY selectButton.label "Select…">
+<!ENTITY selectButton.accesskey "E">
+<!ENTITY MsgSelectDesc.label "Choose mail folders and newsgroups for offline use.">
+<!ENTITY MsgSelectInd.label "Download">
+<!ENTITY MsgSelectItems.label "Folders and Newsgroups">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/msgViewPickerOverlay.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/msgViewPickerOverlay.dtd
new file mode 100644
index 0000000000..95937c7e33
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/msgViewPickerOverlay.dtd
@@ -0,0 +1,22 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE msgViewPickerOverlay.dtd UI for showing various views on a folder -->
+
+<!ENTITY viewPicker.label "View:">
+<!ENTITY viewPicker.accesskey "i">
+<!ENTITY viewAll.label "All">
+<!ENTITY viewAll.accesskey "A">
+<!ENTITY viewUnread.label "Unread">
+<!ENTITY viewUnread.accesskey "U">
+<!ENTITY viewNotDeleted.label "Not Deleted">
+<!ENTITY viewNotDeleted.accesskey "D">
+<!ENTITY viewTags.label "Tags">
+<!ENTITY viewTags.accesskey "T">
+<!ENTITY viewCustomViews.label "Custom Views">
+<!ENTITY viewCustomViews.accesskey "V">
+<!ENTITY viewVirtualFolder.label "Save View as a Folder…">
+<!ENTITY viewVirtualFolder.accesskey "S">
+<!ENTITY viewCustomizeView.label "Customize…">
+<!ENTITY viewCustomizeView.accesskey "C">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/msgmdn.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/msgmdn.properties
new file mode 100644
index 0000000000..e47d69f4a3
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/msgmdn.properties
@@ -0,0 +1,18 @@
+# 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 http://mozilla.org/MPL/2.0/.
+## Msg Mdn Report strings
+MsgMdnDisplayed=Note: This Return Receipt only acknowledges that the message was displayed on the recipient’s computer. There is no guarantee that the recipient has read or understood the message contents.
+MsgMdnDispatched=The message was either printed, faxed, or forwarded without being displayed to the recipient. There is no guarantee that the recipient will read the message at a later time.
+MsgMdnProcessed=The message was processed by the recipient’s mail client without being displayed. There is no guarantee that the message will be read at a later time.
+MsgMdnDeleted=The message has been deleted. The person you sent it to may or may not have seen it. They might undelete it at a later time and read it.
+MsgMdnDenied=The recipient of the message does not wish to send a return receipt back to you.
+MsgMdnFailed=A failure occurred. A proper return receipt could not be generated or sent to you.
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+MsgMdnMsgSentTo=This is a Return Receipt for the mail that you sent to %S.
+MdnDisplayedReceipt=Return Receipt (displayed)
+MdnDispatchedReceipt=Return Receipt (dispatched)
+MdnProcessedReceipt=Return Receipt (processed)
+MdnDeletedReceipt=Return Receipt (deleted)
+MdnDeniedReceipt=Return Receipt (denied)
+MdnFailedReceipt=Return Receipt (failed)
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/multimessageview.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/multimessageview.dtd
new file mode 100644
index 0000000000..ca5cae2cb6
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/multimessageview.dtd
@@ -0,0 +1,8 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY window.title "Message Summary">
+<!ENTITY selectedmessages.label "Selected Messages">
+<!ENTITY archiveButton.label "Archive">
+<!ENTITY deleteButton.label "Delete">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/multimessageview.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/multimessageview.properties
new file mode 100644
index 0000000000..31e4e7546c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/multimessageview.properties
@@ -0,0 +1,66 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (numConversations): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# The number of conversations (threads or solitary messages) selected. #1 is the
+# number of conversations.
+numConversations=#1 conversation; #1 conversations
+
+# LOCALIZATION NOTE (atLeastNumConversations): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# The number of conversations (threads or solitary messages) selected. #1 is the
+# number of conversations. We use this when we didn't actually scan the entire
+# list of selected messages, so there may be more conversations than reported
+# (or maybe not!).
+atLeastNumConversations=#1+ conversation; #1+ conversations
+
+# LOCALIZATION NOTE (numMessages): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# The number of messages in a thread. #1 is the number of messages.
+numMessages=#1 message;#1 messages
+
+# LOCALIZATION NOTE (numUnread): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# The number of unread messages in a thread; meant to be appended to
+# "numMessages". #1 is the number of unread messages.
+numUnread=, #1 unread;, #1 unread
+
+# LOCALIZATION NOTE (numIgnored): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# The number of ignored messages in a thread; meant to be appended to
+# "numMessages". #1 is the number of ignored messages.
+numIgnored=, #1 ignored;, #1 ignored
+
+# LOCALIZATION NOTE (atLeastNumIgnored): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# The number of ignored messages in a thread; meant to be appended to
+# "numMessages". #1 is the number of ignored messages. We use this when we
+# didn't actually scan the entire list of selected messages, so there may be
+# more ignored messages than reported (or maybe not!).
+atLeastNumIgnored=, #1+ ignored;, #1+ ignored
+
+# LOCALIZATION NOTE (noSubject): What to display for a message if it has no
+# subject.
+noSubject=(no subject)
+
+# LOCALIZATION NOTE (messagesTotalSize): A message indicating the total size on
+# disk of the selected messages. #1 is the size, e.g. "123 KB".
+messagesTotalSize=These messages take up #1.
+
+# LOCALIZATION NOTE (messagesTotalSizeMoreThan): A message indicating the total
+# size on disk of the selected messages. #1 is the size, e.g. "123 KB". We use
+# this when we didn't actually scan the entire list of selected messages, so
+# this is a *minimum* size.
+messagesTotalSizeMoreThan=These messages take up more than #1.
+
+# LOCALIZATION NOTE (maxCountExceeded): A message to let the user know that not
+# all of the selected messages were summarized. #1 is the total number of
+# messages selected and #2 is the number of messages actually shown.
+maxCountExceeded= (Note: #1 messages are selected, the first #2 are shown)
+
+# LOCALIZATION NOTE (maxThreadCountExceeded): A message to let the user know that
+# not all of the selected thread were summarized. #1 is the total number of
+# threads selected and #2 is the number of threads actually shown.
+maxThreadCountExceeded= (Note: #1 threads are selected, the first #2 are shown)
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/newFolderDialog.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/newFolderDialog.dtd
new file mode 100644
index 0000000000..c34028d2d4
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/newFolderDialog.dtd
@@ -0,0 +1,16 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- Labels -->
+<!ENTITY newFolderDialog.title "New Folder">
+<!ENTITY name.label "Name:">
+<!ENTITY name.accesskey "n">
+<!ENTITY description.label "Create as a subfolder of:">
+<!ENTITY description.accesskey "c">
+<!ENTITY folderRestriction1.label "This server restricts folders to two special kinds.">
+<!ENTITY folderRestriction2.label "Allow your new folder to contain:">
+<!ENTITY foldersOnly.label "Folders Only">
+<!ENTITY messagesOnly.label "Messages Only">
+<!ENTITY accept.label "Create Folder">
+<!ENTITY accept.accesskey "r">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/news.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/news.properties
new file mode 100644
index 0000000000..bfe279b29f
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/news.properties
@@ -0,0 +1,56 @@
+# 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 http://mozilla.org/MPL/2.0/.
+downloadHeadersTitlePrefix=Download Headers
+downloadHeadersInfoText=There are %S new message headers to download for this newsgroup.
+cancelDisallowed=This message does not appear to be from you. You may only cancel your own posts, not those made by others.
+cancelConfirm=Are you sure you want to cancel this message?
+messageCancelled=Message cancelled.
+enterUserPassTitle=News Server Username and Password Required
+# LOCALIZATION NOTE (enterUserPassServer): %S is the server being accessed
+enterUserPassServer=Please enter a username and password for %S:
+# LOCALIZATION NOTE (enterUserPassGroup): %1$S is a specific newsgroup to set
+# the password for; %2$S is the server from which the newsgroup is accessed
+enterUserPassGroup=Please enter a username and password for %1$S on %2$S:
+okButtonText=Download
+
+noNewMessages=There are no new messages on the server.
+# LOCALIZATION NOTE (newNewsgroupHeaders): %1$S is the number of the current
+# header being downloaded, %2$S is the number of headers to be downloaded, and
+# %3$S is the newsgroup whose headers are being downloaded.
+newNewsgroupHeaders=Downloading %1$S of %2$S headers for %3$S
+# LOCALIZATION NOTE (newNewsgroupFilteringHeaders): %1$S is the name of the MIME
+# header being filtered on, %2$S is the number of the current header being
+# downloaded, %3$S is the number of headers to be downloaded, and %4$S is the
+# newsgroup whose headers are being downloaded.
+newNewsgroupFilteringHeaders=Getting headers for filters: %1$S (%2$S/%3$S) on %4$S
+downloadingArticles=Downloading articles %S-%S
+bytesReceived=Downloading newsgroups: %S received (%SKB read at %SKB/sec)
+downloadingArticlesForOffline=Downloading articles %S-%S in %S
+
+# LOCALIZATION NOTE (autoUnsubscribeText): %1$S is the newsgroup and %2$S is the newsgroup-server it is being removed from.
+autoUnsubscribeText=The newsgroup %1$S does not appear to exist on the host %2$S. Would you like to unsubscribe from it?
+
+# LOCALIZATION NOTE (autoSubscribeText): %1$S is the newsgroup.
+autoSubscribeText=Would you like to subscribe to %1$S?
+
+# LOCALIZATION NOTE (Error -304): In the following item, don't translate "NNTP"
+# Error - server error
+## @name NNTP_ERROR_MESSAGE
+## @loc None
+-304=A News (NNTP) error occurred:
+
+# Error - newsgroup scan error
+## @name NNTP_NEWSGROUP_SCAN_ERROR
+## @loc None
+-305=A News error occurred. The scan of all newsgroups is incomplete. Try to View All Newsgroups again
+
+# Error - NNTP authinfo failure
+## @name NNTP_AUTH_FAILED
+## @loc None
+-260=An authorization error occurred. Please try entering your name and/or password again.
+
+# Error - TCP error
+## @name TCP_ERROR
+## @loc None
+-206=A communications error occurred. Try connecting again. TCP Error:
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/newsError.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/newsError.dtd
new file mode 100644
index 0000000000..dea699948c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/newsError.dtd
@@ -0,0 +1,31 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- LOCALIZATION NOTE (newsError.title): The title of the news error page.
+ Not generally visible. -->
+<!ENTITY newsError.title "Problem Loading Article">
+
+<!-- LOCALIZATION NOTE (articleNotFound.title): The main heading for the news
+ error page. -->
+<!ENTITY articleNotFound.title "Article not found">
+
+<!-- LOCALIZATION NOTE (articleNotFound.desc): A longer description for the news
+ error page. -->
+<!ENTITY articleNotFound.desc "The newsgroup server reports that it can’t find the article.">
+
+<!-- LOCALIZATION NOTE (serverResponded.title): A string preceding the text
+ response from the newsgroup server describing the error. -->
+<!ENTITY serverResponded.title "Newsgroup server responded:">
+
+<!-- LOCALIZATION NOTE (articleExpired.title): A string explaining that the
+ article may have expired. -->
+<!ENTITY articleExpired.title "Perhaps the article has expired?">
+
+<!-- LOCALIZATION NOTE (trySearching.title): A string preceding the message's
+ ID. -->
+<!ENTITY trySearching.title "Try searching for article:">
+
+<!-- LOCALIZATION NOTE (removeExpiredArticles.title): The label for the button
+ to remove all expired articles from the newsgroup. -->
+<!ENTITY removeExpiredArticles.title "Remove All Expired Articles">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/offline.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/offline.properties
new file mode 100644
index 0000000000..bdb69847c9
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/offline.properties
@@ -0,0 +1,28 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Download Messages Prompt
+downloadMessagesWindowTitle1=Download Messages
+downloadMessagesLabel1=Do you want to download messages for offline use before going offline?
+downloadMessagesCheckboxLabel1=Always ask me when I go offline
+downloadMessagesNow2=&Download Now
+
+# Send Messages Prompt
+sendMessagesWindowTitle1=Unsent Messages
+sendMessagesLabel2=Do you want to send your unsent messages now?
+sendMessagesCheckboxLabel1=Always ask me when I go online
+sendMessagesNow2=&Send Now
+
+processMessagesLater2=&Later
+
+# GetMessages While Offline Prompt
+getMessagesOfflineWindowTitle1=Get Messages
+getMessagesOfflineLabel1=You are currently offline. Do you want to go online to get new messages?
+
+# Send Messages Offline Prompt
+sendMessagesOfflineWindowTitle1=Unsent Messages
+sendMessagesOfflineLabel1=You are currently offline. Do you want to go online to send unsent messages?
+
+offlineTooltip=You are currently offline.
+onlineTooltip=You are currently online.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/offlineStartup.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/offlineStartup.properties
new file mode 100644
index 0000000000..868bac20b6
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/offlineStartup.properties
@@ -0,0 +1,8 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+title=Work Online
+desc=Would you like to go online now?\n\n(If you choose to work offline, you can go online later - choose ‘Offline’ from the ‘File’ menu, then uncheck ‘Work Offline’.)
+workOnline=Work Online
+workOffline=Work Offline
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/outlookImportMsgs.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/outlookImportMsgs.properties
new file mode 100644
index 0000000000..82181df3b5
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/outlookImportMsgs.properties
@@ -0,0 +1,77 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the outlook express import code to display status/error
+# and informational messages
+#
+
+#
+# The following are used by the Outlook import code to display status/error
+# and informational messages
+#
+
+# Short name of import module
+## @name OUTLOOKIMPORT_NAME
+## @loc None
+## LOCALIZATION NOTE (2000): DONT_TRANSLATE
+2000=Outlook
+
+# Description of import module
+## @name OUTLOOKIMPORT_DESCRIPTION
+## @loc None
+## LOCALIZATION NOTE (2010): In this item, don't translate "Outlook"
+2010=Outlook mail, address books, and settings
+
+# Success message
+## @name OUTLOOKIMPORT_MAILBOX_SUCCESS
+## @loc None
+## LOCALIZATION NOTE (2002): In this item, don't translate "%S" or "%d"
+## The variable %S will receive the name of the mailbox
+## The variable %d will receive the number of messages
+2002=Mailbox %S, imported %d messages
+
+# Error message
+## @name OUTLOOKIMPORT_MAILBOX_BADPARAM
+## @loc None
+2003=Bad parameter passed to import mailbox.
+
+# Error message
+## @name OUTLOOKIMPORT_MAILBOX_CONVERTERROR
+## @loc None
+## LOCALIZATION NOTE (2004): In this item, don't translate "%S"
+## The variable %S will receive the name of the mailbox
+2004=Error importing mailbox %S, all messages may not be imported from this mailbox.
+
+# Address book name
+## @name OUTLOOKIMPORT_ADDRNAME
+## @loc None
+## LOCALIZATION NOTE (2005): In this item, don't translate "Outlook"
+2005=Outlook address books
+
+# Description
+## @name OUTLOOKIMPORT_ADDRESS_SUCCESS
+## @loc None
+## LOCALIZATION NOTE (2006): In this item, don't translate "%S"
+## The variable %S will receive the name of the address book
+2006=Imported address book %S
+
+# Error message
+## @name OUTLOOKIMPORT_ADDRESS_BADPARAM
+## @loc None
+2007=Bad parameter passed to import address book.
+
+# Error message
+## @name OUTLOOKIMPORT_ADDRESS_BADSOURCEFILE
+## @loc None
+## LOCALIZATION NOTE (2008): In this item, don't translate "%S"
+## The variable %S will receive the name of the address book
+2008=Error accessing file for address book %S.
+
+# Error message
+## @name OUTLOOKIMPORT_ADDRESS_CONVERTERROR
+## @loc None
+## LOCALIZATION NOTE (2009): In this item, don't translate "%S"
+## The variable %S will receive the name of the address book
+2009=Error importing address book %S, all addresses may not have been imported.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/pgpmime.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/pgpmime.properties
new file mode 100644
index 0000000000..2754392a07
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/pgpmime.properties
@@ -0,0 +1,10 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the pgpmime content type handler
+#
+
+# LOCALIZATION NOTE(pgpMimeNeedsAddon): The text can contain HTML tags.
+pgpNotAvailable=This is an encrypted OpenPGP message, but support for OpenPGP decryption is not available.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/preferences/applicationManager.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/preferences/applicationManager.properties
new file mode 100644
index 0000000000..576fe11b9f
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/preferences/applicationManager.properties
@@ -0,0 +1,13 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE
+# in descriptionApplications, %S will be replaced by one of the 3 following strings
+descriptionApplications=The following applications can be used to handle %S.
+
+handleProtocol=%S links
+handleFile=%S content
+
+descriptionWebApp=This web application is hosted at:
+descriptionLocalApp=This application is located at:
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/preferences/applications.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/preferences/applications.properties
new file mode 100644
index 0000000000..490eb45341
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/preferences/applications.properties
@@ -0,0 +1,13 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (dialog_removeAccount):
+# %S will be replaced with the user-defined name of a storage account.
+dialog_removeAccount=Are you sure you want to remove the account “%S”?
+
+# LOCALIZATION NOTE (addProvider):
+# %S will be replace with the display name of a provider, e.g. DropBox
+addProvider=Add %S
+
+notConfiguredYet=This account has not been configured yet
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/preferences/messagestyle.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/preferences/messagestyle.properties
new file mode 100644
index 0000000000..501d27da9e
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/preferences/messagestyle.properties
@@ -0,0 +1,13 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Content of preview conversation for chat message styles
+default=Default
+nick1=Florian
+buddy1=florian@im.instantbird.org
+nick2=Patrick
+buddy2=patrick@im.instantbird.org
+message1=Hi! :-)
+message2=What’s up?
+message3=I’m trying Thunderbird! ;-)
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/preferences/preferences.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/preferences/preferences.properties
new file mode 100644
index 0000000000..2583fb148e
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/preferences/preferences.properties
@@ -0,0 +1,100 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+#### Junk
+confirmResetJunkTrainingTitle=Confirm
+confirmResetJunkTrainingText=Are you sure you want to reset the adaptive filter training data?
+
+#### Downloads
+desktopFolderName=Desktop
+myDownloadsFolderName=My Downloads
+chooseAttachmentsFolderTitle=Choose Folder
+
+#### Applications
+
+fileEnding=%S file
+saveFile=Save File
+
+# LOCALIZATION NOTE (useApp, useDefault): %S = Application name
+useApp=Use %S
+useDefault=Use %S (default)
+
+useOtherApp=Use other…
+fpTitleChooseApp=Select Helper Application
+manageApp=Application Details…
+alwaysAsk=Always ask
+delete=Delete Action
+confirmDeleteTitle=Delete Action
+confirmDeleteText=Are you sure you want to delete this action?
+
+# LOCALIZATION NOTE (typeDescriptionWithDetails):
+# %1$S = type description (for example "Portable Document Format")
+# %2$S = details (see below, for example "(application/pdf: .pdf, .pdfx)")
+typeDescriptionWithDetails=%1$S %2$S
+
+# LOCALIZATION NOTE (typeDetailsWithTypeOrExt):
+# %1$S = type or extensions (for example "application/pdf", or ".pdf, .pdfx")
+typeDetailsWithTypeOrExt=(%1$S)
+
+# LOCALIZATION NOTE (typeDetailsWithTypeAndExt):
+# %1$S = type (for example "application/pdf")
+# %2$S = extensions (for example ".pdf, .pdfx")
+typeDetailsWithTypeAndExt=(%1$S: %2$S)
+
+#### Sound Notifications
+soundFilePickerTitle=Choose Sound
+
+#### Remote content
+imagepermissionstext=You can specify from which web sites images and other remote content are allowed to load. You can also allow all remote content based on sender e-mail address. Type the address of the site or e-mail you want to manage and then click Block or Allow.
+imagepermissionstitle=Exceptions - Remote Content
+
+#### Cookies
+cookiepermissionstitle=Exceptions - Cookies
+cookiepermissionstext=You can specify which websites are always or never allowed to use cookies. Type the exact address of the site you want to manage and then click Block, Allow for Session, or Allow.
+
+#### Cookie Viewer
+hostColon=Host:
+domainColon=Domain:
+forSecureOnly=Encrypted connections only
+forAnyConnection=Any type of connection
+expireAtEndOfSession=At end of session
+
+noCookieSelected=<no cookie selected>
+cookiesAll=The following cookies are stored on your computer:
+cookiesFiltered=The following cookies match your search:
+# LOCALIZATION NOTE (removeSelectedCookies):
+# Semicolon-separated list of plural forms. See:
+# https://developer.mozilla.org/en/docs/Localization_and_Plurals
+# If you need to display the number of selected elements in your language,
+# you can use #1 in your localization as a placeholder for the number.
+# For example this is the English string with numbers:
+# removeSelectedCookies=Remove #1 Selected;Remove #1 Selected
+removeSelectedCookies=Remove Selected;Remove Selected
+defaultUserContextLabel=None
+
+####Preferences::Advanced::Network
+#LOCALIZATION NOTE: The next string is for the disk usage of the cache.
+# e.g., "Your cache is currently using 200 MB"
+# %1$S = size
+# %2$S = unit (MB, KB, etc.)
+actualDiskCacheSize=Your cache is currently using %1$S %2$S of disk space
+actualDiskCacheSizeCalculated=Calculating cache size…
+
+# LOCALIZATION NOTE (labelDefaultFont): %S = font name
+labelDefaultFont=Default (%S)
+labelDefaultFontUnnamed=Default
+
+# LOCALIZATION NOTE (appLocale.label): %S = Name of the application locale,
+# e.g. English (United States)
+appLocale.label=Application locale: %S
+appLocale.accesskey=o
+# LOCALIZATION NOTE (rsLocale.label): %S = Name of the locale chosen in regional settings,
+# e.g. German (Germany)
+rsLocale.label=Regional settings locale: %S
+rsLocale.accesskey=e
+
+applications-type-pdf = Portable Document Format (PDF)
+
+# LOCALIZATION NOTE (previewInApp): %S = brandShortName
+previewInApp=Preview in %S
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/prefs.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/prefs.properties
new file mode 100644
index 0000000000..f33b709949
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/prefs.properties
@@ -0,0 +1,90 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# The following are used by the Account Wizard
+#
+enterValidEmail=Please enter a valid email address.
+accountNameExists=An account with this name already exists. Please enter a different account name.
+accountNameEmpty=The account name can not be empty.
+modifiedAccountExists=An account with that user name and server name already exists. Please enter a different user name and/or server name.
+userNameChanged=Your User Name has been updated. You may also need to update your Email Address and/or User Name associated with this account.
+serverNameChanged=The server name setting has changed. Please verify that any folders used by filters exist on the new server.
+# LOCALIZATION NOTE (junkSettingsBroken): %1$S is the account name
+junkSettingsBroken=The Junk settings on account “%1$S” have a possible problem. Would you like to review them before saving Account Settings?
+# LOCALIZATION NOTE (localDirectoryChanged): %1$S is program name (&brandShortName;)
+localDirectoryChanged=%1$S needs to restart now to apply the change to the Local directory setting.
+localDirectoryRestart=Restart
+userNameEmpty=The user name can not be empty.
+# LOCALIZATION NOTE (localDirectoryInvalid): %1$S is path to folder
+localDirectoryInvalid=The Local Directory path “%1$S” is invalid. Please pick a different directory.
+# LOCALIZATION NOTE (localDirectoryNotAllowed): %1$S is path to folder
+localDirectoryNotAllowed=The Local Directory path “%1$S” is not suitable for message storage. Please choose another directory.
+# if the user chooses to cancel the wizard when no accounts are there throw a message
+# LOCALIZATION NOTE (cancelWizard)
+# do not localize "\n\n"
+cancelWizard=Are you sure you want to exit the Account Wizard?\n\nIf you exit, any information you have entered will be lost and the account will not be created.
+accountWizard=Account Wizard
+WizardExit=Exit
+WizardContinue=Cancel
+# when the wizard already has a domain (Should we say something different?)
+enterValidServerName=Please enter a valid server name.
+failedRemoveAccount=Failed to remove this account.
+#LOCALIZATION NOTE: accountName: %1$S is server name, %2$S is user name
+accountName=%1$S - %2$S
+
+# LOCALIZATION NOTE: confirmDeferAccountWarning: do not localize "\n\n", it means a new empty line in the string.
+confirmDeferAccountWarning=If you store this account’s new mail in a different account’s Inbox, you will no longer be able to access already downloaded e-mail for this account. If you have mail in this account, please copy it to another account first.\n\nIf you have filters that filter mail into this account, you should disable them or change the destination folder. If any accounts have special folders in this account (Sent, Drafts, Templates, Archives, Junk), you should change them to be in another account.\n\nDo you still want to store this account’s e-mail in a different account?
+confirmDeferAccountTitle=Defer Account?
+
+directoryAlreadyUsedByOtherAccount=The directory specified in the Local Directory setting is already used by the “%S” account. Please pick a different directory.
+directoryParentUsedByOtherAccount=A parent directory of the directory specified in the Local Directory setting is already used by the “%S” account. Please pick a different directory.
+directoryChildUsedByOtherAccount=A subdirectory of the directory specified in the Local Directory setting is already used by the “%S” account. Please pick a different directory.
+#Provide default example values for sample email address
+exampleEmailUserName=user
+exampleEmailDomain=example.net
+emailFieldText=Email Address:
+#LOCALIZATION NOTE: defaultEmailText: %1$S is user name, %2$S is domain
+defaultEmailText=Enter your email address. This is the address others will use to send email to you (for example, “%1$S@%2$S”).
+#LOCALIZATION NOTE: customizedEmailText: %1$S is provider, %2$S is email username, %3$S is sample email, %4$S is sample username
+customizedEmailText=Enter your %1$S %2$S (for example, if your %1$S email address is “%3$S”, your %2$S is “%4$S”).
+
+# account manager stuff
+prefPanel-server=Server Settings
+prefPanel-copies=Copies & Folders
+prefPanel-synchronization=Synchronization & Storage
+prefPanel-diskspace=Disk Space
+prefPanel-addressing=Composition & Addressing
+prefPanel-junk=Junk Settings
+## LOCALIZATION NOTE (prefPanel-smtp): Don't translate "SMTP"
+prefPanel-smtp=Outgoing Server (SMTP)
+
+# account manager multiple identity support
+#LOCALIZATION NOTE: accountName: %1$S
+identity-list-title=Identities for %1$S
+
+identityDialogTitleAdd=New Identity
+## LOCALIZATION NOTE (identityDialogTitleEdit): %S is the identity name
+identityDialogTitleEdit=Edit %S
+
+identity-edit-req=You must specify a valid email address for this identity.
+identity-edit-req-title=Error Creating Identity
+
+## LOCALIZATION NOTE (identity-delete-confirm): %S is the identity name
+# and should be put on a new line. The new line is produced with the "\n" string.
+identity-delete-confirm=Are you sure you want to delete the identity\n%S?
+## LOCALIZATION NOTE (identity-delete-confirm-title): %S is the account name
+identity-delete-confirm-title=Deleting identity for %S
+identity-delete-confirm-button=Delete
+
+choosefile=Choose a file
+
+forAccount=For account “%S”
+
+removeFromServerTitle=Confirm permanent, automatic deletion of messages
+removeFromServer=This setting will permanently delete old messages from the remote server AND your local storage. Are you sure you want to proceed?
+
+confirmSyncChangesTitle=Confirm synchronization changes
+confirmSyncChanges=The Message Synchronization settings were changed.\n\nDo you want to save them?
+confirmSyncChangesDiscard=Discard
+
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/profileDowngrade.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/profileDowngrade.dtd
new file mode 100644
index 0000000000..e4415ac401
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/profileDowngrade.dtd
@@ -0,0 +1,20 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- LOCALIZATION NOTE:
+ This UI can be most easily shown by modifying the version in compatibility.ini
+ to a newer version and then starting Thunderbird.
+ For this feature, "installation" is used to mean "this discrete download of
+ Thunderbird" and "version" is used to mean "the specific revision number of a
+ given Thunderbird channel". These terms are not synonymous.
+-->
+<!ENTITY window.title "You have launched an older version of &brandProductName;">
+<!ENTITY window.style "width: 490px;">
+
+<!ENTITY window.nosync2 "A newer version of &brandProductName; may have made changes to your profile which are no longer compatible with this older version. Use this profile only with that newer version, or create a new profile for this installation of &brandShortName;. Creating a new profile requires setting up your accounts, calendars and add-ons again.">
+
+<!ENTITY window.moreinfo "More information…">
+<!ENTITY window.create "Create New Profile">
+<!ENTITY window.quit-win "Exit">
+<!ENTITY window.quit-nonwin "Quit">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/removeAccount.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/removeAccount.dtd
new file mode 100644
index 0000000000..51587076a2
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/removeAccount.dtd
@@ -0,0 +1,22 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY dialogTitle "Remove Account and Data">
+<!ENTITY removeButton.label "Remove">
+<!ENTITY removeButton.accesskey "R">
+<!ENTITY removeAccount.label "Remove account information">
+<!ENTITY removeAccount.accesskey "a">
+<!ENTITY removeAccount.desc "Removes only &brandShortName;’s knowledge of this account. Does not affect the account itself on the server.">
+<!ENTITY removeData.label "Remove message data">
+<!ENTITY removeData.accesskey "d">
+<!ENTITY removeDataChat.label "Remove conversation data">
+<!ENTITY removeDataChat.accesskey "d">
+<!ENTITY removeDataLocalAccount.desc "Removes all messages, folders and filters associated with this account from your local disk. This does not affect some messages which may still be kept on the server. Do not choose this if you plan to archive the local data or re-use it in &brandShortName; later.">
+<!ENTITY removeDataServerAccount.desc "Removes all messages, folders and filters associated with this account from your local disk. Your messages and folders are still kept on the server.">
+<!ENTITY removeDataChatAccount.desc "Removes all logs of conversations stored for this account on your local disk.">
+<!ENTITY showData.label "Show data location">
+<!ENTITY showData.accesskey "S">
+<!ENTITY progressPending "Removing selected data…">
+<!ENTITY progressSuccess "Removal succeeded.">
+<!ENTITY progressFailure "Removal failed.">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/removeAccount.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/removeAccount.properties
new file mode 100644
index 0000000000..f9d2d0a226
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/removeAccount.properties
@@ -0,0 +1,5 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+removeQuestion=Are you sure you want to remove the account “%S”?
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/renameFolderDialog.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/renameFolderDialog.dtd
new file mode 100644
index 0000000000..62dd784f45
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/renameFolderDialog.dtd
@@ -0,0 +1,9 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY renameFolderDialog.title "Rename Folder">
+<!ENTITY rename.label "Enter the new name for your folder:">
+<!ENTITY rename.accesskey "E">
+<!ENTITY accept.label "Rename">
+<!ENTITY accept.accesskey "R">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/sanitize.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/sanitize.dtd
new file mode 100644
index 0000000000..e959a11924
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/sanitize.dtd
@@ -0,0 +1,36 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY sanitizeDialog2.title "Clear Recent History">
+
+<!-- XXX rearrange entities to match physical layout when l10n isn't an issue -->
+<!-- LOCALIZATION NOTE (clearTimeDuration.*): "Time range to clear" dropdown.
+ See UI mockup at bug 480169 -->
+<!ENTITY clearTimeDuration.label "Time range to clear: ">
+<!ENTITY clearTimeDuration.accesskey "T">
+<!ENTITY clearTimeDuration.lastHour "Last Hour">
+<!ENTITY clearTimeDuration.last2Hours "Last Two Hours">
+<!ENTITY clearTimeDuration.last4Hours "Last Four Hours">
+<!ENTITY clearTimeDuration.today "Today">
+<!ENTITY clearTimeDuration.everything "Everything">
+<!-- Localization note (clearTimeDuration.suffix) - trailing entity for languages
+that require it. -->
+<!ENTITY clearTimeDuration.suffix "">
+
+
+<!ENTITY historyGroup.label "History">
+
+<!ENTITY itemHistory.label "Browsing History">
+<!ENTITY itemHistory.accesskey "B">
+<!ENTITY itemCookies.label "Cookies">
+<!ENTITY itemCookies.accesskey "C">
+<!ENTITY itemCache.label "Cache">
+<!ENTITY itemCache.accesskey "A">
+
+<!-- LOCALIZATION NOTE (sanitizeEverythingUndoWarning): Second warning paragraph
+ that appears when "Time range to clear" is set to "Everything". See UI
+ mockup at bug 480169 -->
+<!ENTITY sanitizeEverythingUndoWarning "This action cannot be undone.">
+
+<!ENTITY dialog.width "28em">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/seamonkeyImportMsgs.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/seamonkeyImportMsgs.properties
new file mode 100644
index 0000000000..5e0b9d8499
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/seamonkeyImportMsgs.properties
@@ -0,0 +1,18 @@
+# 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 http://mozilla.org/MPL/2.0/.
+#
+# The following are used by the seamonkey import code to display status/error
+# and informational messages
+
+# Short name of import module
+SeamonkeyImportName=SeaMonkey
+
+# Description of import module
+SeamonkeyImportDescription=Import address books, mail and accounts from SeaMonkey.
+
+# Success Message for addressbook import
+SeamonkeyImportAddressSuccess=Address books were successfully imported.
+
+# Success Message for mail import
+SeamonkeyImportSettingsSuccess=Local messages and accounts were successfully imported.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/search-attributes.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/search-attributes.properties
new file mode 100644
index 0000000000..010b8cd1ef
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/search-attributes.properties
@@ -0,0 +1,45 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+#these need to match nsMsgSearchAttrib interface in nsMsgSearchCore.idl
+#and nsMsgSearchAttribMap in nsMsgSearchAdapter.cpp
+Subject=Subject
+From=From
+Body=Body
+Date=Date
+Priority=Priority
+Status=Status
+To=To
+Cc=Cc
+ToOrCc=To or Cc
+AgeInDays=Age In Days
+SizeKB=Size (KB)
+Tags=Tags
+# for AB and LDAP
+AnyName=Any Name
+DisplayName=Display Name
+Nickname=Nickname
+ScreenName=Screen Name
+Email=Email
+AdditionalEmail=Additional Email
+AnyNumber=Any Number
+WorkPhone=Work Phone
+HomePhone=Home Phone
+Fax=Fax
+Pager=Pager
+Mobile=Mobile
+City=City
+Street=Street
+Title=Title
+Organization=Organization
+Department=Department
+# more mailnews
+FromToCcOrBcc=From, To, Cc or Bcc
+JunkScoreOrigin=Junk Score Origin
+JunkPercent=Junk Percent
+AttachmentStatus=Attachment Status
+JunkStatus=Junk Status
+Label=Label
+Customize=Customize…
+MissingCustomTerm=Missing Custom Term
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/search-operators.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/search-operators.properties
new file mode 100644
index 0000000000..0d1086cf19
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/search-operators.properties
@@ -0,0 +1,31 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+0=contains
+1=doesn’t contain
+2=is
+3=isn’t
+4=is empty
+
+5=is before
+6=is after
+
+7=is higher than
+8=is lower than
+
+9=begins with
+10=ends with
+
+11=sounds like
+12=LdapDwim
+
+13=is greater than
+14=is less than
+
+15=NameCompletion
+16=is in my address book
+17=isn’t in my address book
+18=isn’t empty
+19=matches
+20=doesn’t match
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/search.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/search.properties
new file mode 100644
index 0000000000..c629881f6a
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/search.properties
@@ -0,0 +1,27 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# these are the fields that get inserted in the search line
+# for "and" searches, this looks like:
+#
+# searchAnd0 <attribute> searchAnd1 <operator> searchAnd2 <value> searchAnd4
+#
+# for example, in english this looks like:
+# and the [Sender ] [doesn't contain] [John]
+#
+# TODO: need to special-case the first line (filterindex==0)
+
+# filter stuff
+
+searchingMessage=Searching…
+# LOCALIZATION NOTE (matchesFound): #1 number of matches found
+matchesFound=#1 match found;#1 matches found
+noMatchesFound=No matches found
+labelForStopButton=Stop
+labelForSearchButton=Search
+labelForStopButton.accesskey=S
+labelForSearchButton.accesskey=S
+
+moreButtonTooltipText=Add a new rule
+lessButtonTooltipText=Remove this rule
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/searchTermOverlay.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/searchTermOverlay.dtd
new file mode 100644
index 0000000000..e9bdfa0870
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/searchTermOverlay.dtd
@@ -0,0 +1,19 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY matchAll.label "Match all of the following">
+<!ENTITY matchAll.accesskey "a">
+<!ENTITY matchAny.label "Match any of the following">
+<!ENTITY matchAny.accesskey "o">
+<!ENTITY matchAllMsgs.label "Match all messages">
+<!ENTITY matchAllMsgs.accesskey "m">
+
+<!-- LOCALIZATION NOTE
+ The values below are used to control the widths of the search widgets.
+ Change the values only when the localized strings in the popup menus
+ are truncated in the widgets.
+ -->
+<!ENTITY searchTermListAttributesFlexValue "1">
+<!ENTITY searchTermListOperatorsFlexValue "1">
+<!ENTITY searchTermListValueFlexValue "3">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/shutdownWindow.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/shutdownWindow.properties
new file mode 100644
index 0000000000..4333ba08a3
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/shutdownWindow.properties
@@ -0,0 +1,10 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+# These strings are loaded and represented by the XUL dialog.
+shutdownDialogTitle=Shutdown Progress Window
+taskProgress=Processing %1$S of %2$S Tasks
+
+# These strings are loaded by the individual shutdown tasks.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/smime.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/smime.properties
new file mode 100644
index 0000000000..7bfffdb56a
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/smime.properties
@@ -0,0 +1,11 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the smime content type handler
+#
+
+## @name NS_MSG_UNABLE_TO_OPEN_FILE
+## LOCALIZATION NOTE: the text can contain HTML tags.
+1000=This is an <B>ENCRYPTED</B> or <B>SIGNED</B> message.<br> This Mail application does not support encrypted or signed mail.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/smtpEditOverlay.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/smtpEditOverlay.dtd
new file mode 100644
index 0000000000..593393a21b
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/smtpEditOverlay.dtd
@@ -0,0 +1,24 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY settings.caption "Settings">
+<!ENTITY security.caption "Security and Authentication">
+<!ENTITY serverName.label "Server Name:">
+<!ENTITY serverName.accesskey "S">
+<!ENTITY serverDescription.label "Description:">
+<!ENTITY serverDescription.accesskey "D">
+<!ENTITY serverPort.label "Port:">
+<!ENTITY serverPort.accesskey "P">
+<!ENTITY userName.label "User Name:">
+<!ENTITY userName.accesskey "m">
+<!ENTITY connectionSecurity.label "Connection security:">
+<!ENTITY connectionSecurity.accesskey "n">
+<!ENTITY connectionSecurityType-0.label "None">
+<!ENTITY connectionSecurityType-1.label "STARTTLS, if available">
+<!ENTITY connectionSecurityType-2.label "STARTTLS">
+<!ENTITY connectionSecurityType-3.label "SSL/TLS">
+<!ENTITY smtpEditTitle.label "SMTP Server">
+<!ENTITY serverPortDefault.label "Default:">
+<!ENTITY authMethod.label "Authentication method:">
+<!ENTITY authMethod.accesskey "i">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/subscribe.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/subscribe.dtd
new file mode 100644
index 0000000000..37c7979f2f
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/subscribe.dtd
@@ -0,0 +1,22 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY subscribeDialog.title "Subscribe">
+<!ENTITY subscribeButton.label "Subscribe">
+<!ENTITY subscribeButton.accesskey "S">
+<!ENTITY unsubscribeButton.label "Unsubscribe">
+<!ENTITY unsubscribeButton.accesskey "U">
+<!ENTITY newGroupsTab.label "New Groups">
+<!ENTITY newGroupsTab.accesskey "N">
+<!ENTITY refreshButton.label "Refresh">
+<!ENTITY refreshButton.accesskey "R">
+<!ENTITY stopButton.label "Stop">
+<!ENTITY stopButton.accesskey "T">
+<!ENTITY server.label "Account:">
+<!ENTITY server.accesskey "A">
+<!ENTITY subscribedHeader.label "Subscribe">
+<!-- commenting out until bug 38906 is fixed
+<!ENTITY messagesHeader.label "Messages"> -->
+<!ENTITY namefield.label "Show items that contain:">
+<!ENTITY namefield.accesskey "O">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/subscribe.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/subscribe.properties
new file mode 100644
index 0000000000..10dbb101c3
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/subscribe.properties
@@ -0,0 +1,13 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+subscribeLabel-nntp=Select the newsgroups to subscribe to:
+subscribeLabel-imap=Select the folders to subscribe to:
+currentListTab-nntp.label=Current Group List
+currentListTab-nntp.accesskey=L
+currentListTab-imap.label=Folder List
+currentListTab-imap.accesskey=L
+pleaseWaitString=Please wait…
+offlineState=You are offline. Items could not be retrieved from the server.
+errorPopulating=Error retrieving items from the server.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/tabmail.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/tabmail.dtd
new file mode 100644
index 0000000000..0b49814597
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/tabmail.dtd
@@ -0,0 +1,9 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY closeTab.label "Close Tab">
+<!ENTITY listAllTabs.label "List all tabs">
+<!-- LOCALIZATION NOTE(defaultTabTitle.label): This is the default tab
+ title to show when the tab has no title. -->
+<!ENTITY defaultTabTitle.label "Home">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/taskbar.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/taskbar.properties
new file mode 100644
index 0000000000..47959f9102
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/taskbar.properties
@@ -0,0 +1,8 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+taskbar.tasks.composeMessage.label=Write new message
+taskbar.tasks.composeMessage.description=Write a new message.
+taskbar.tasks.openAddressBook.label=Open address book
+taskbar.tasks.openAddressBook.description=Open your address book.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/telemetry.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/telemetry.properties
new file mode 100644
index 0000000000..f80bc9edd8
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/telemetry.properties
@@ -0,0 +1,13 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Telemetry prompt
+# LOCALIZATION NOTE (telemetryText): %1$S will be replaced by brandFullName,
+# and %2$S by the value of the toolkit.telemetry.server_owner preference.
+telemetryText = Would you like to help improve %1$S by automatically reporting memory usage, performance, and responsiveness to %2$S?
+telemetryLinkLabel = Learn More
+telemetryYesButtonLabel = Yes
+telemetryYesButtonAccessKey = Y
+telemetryNoButtonLabel = No
+telemetryNoButtonAccessKey = N
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/templateUtils.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/templateUtils.properties
new file mode 100644
index 0000000000..063891d153
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/templateUtils.properties
@@ -0,0 +1,7 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE yesterday: used in various places where we compute
+# a "friendly" date, e.g. displaying that a message was from yesterday.
+yesterday=yesterday
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/textImportMsgs.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/textImportMsgs.properties
new file mode 100644
index 0000000000..fcfed4523c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/textImportMsgs.properties
@@ -0,0 +1,48 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the outlook express import code to display status/error
+# and informational messages
+#
+
+#
+# The following are used by the text import code to display status/error
+# and informational messages
+#
+
+# Short name of import module
+## @name TEXTIMPORT_NAME
+## @loc None
+2000=Text file (LDIF, .tab, .csv, .txt)
+
+# Description of import module
+## @name TEXTIMPORT_DESCRIPTION
+## @loc None
+2001=Import an address book from a text file, including: LDIF (.ldif, .ldi), tab-delimited (.tab, .txt) or comma-separated (.csv) formats.
+
+# Description of import module
+## @name TEXTIMPORT_ADDRESS_NAME
+## @loc None
+2002=Text Address Book
+
+# Description
+## @name TEXTIMPORT_ADDRESS_SUCCESS
+## @loc None
+2003=Imported address book %S
+
+# Error message
+## @name TEXTIMPORT_ADDRESS_BADPARAM
+## @loc None
+2004=Bad parameter passed to import address book.
+
+# Error message
+## @name TEXTIMPORT_ADDRESS_BADSOURCEFILE
+## @loc None
+2005=Error accessing file for address book %S.
+
+# Error message
+## @name TEXTIMPORT_ADDRESS_CONVERTERROR
+## @loc None
+2006=Error importing address book %S, all addresses may not have been imported.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/vCardImportMsgs.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/vCardImportMsgs.properties
new file mode 100644
index 0000000000..0a24e9cf2d
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/vCardImportMsgs.properties
@@ -0,0 +1,26 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the vCard import code to display status, error, and
+# informational messages
+#
+
+vCardImportName=vCard file (.vcf)
+
+vCardImportDescription=Import an address book from vCard format
+
+vCardImportAddressName=vCard Address Book
+
+# LOCALIZATION NOTE (vCardImportAddressSuccess): %S is replaced by the
+# name of the address book being imported.
+vCardImportAddressSuccess=Imported address book %S
+
+# LOCALIZATION NOTE (vCardImportAddressSuccess): %S is replaced by the
+# name of the address book being imported.
+vCardImportAddressBadSourceFile=Error accessing file for address book %S.
+
+# LOCALIZATION NOTE (vCardImportAddressSuccess): %S is replaced by the
+# name of the address book being imported.
+vCardImportAddressConvertError=Error importing address book %S, all addresses may not have been imported.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/viewLog.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/viewLog.dtd
new file mode 100644
index 0000000000..5bca64539e
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/viewLog.dtd
@@ -0,0 +1,12 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY viewLog.title "Filter Log">
+<!ENTITY viewLogInfo.text "The Filter Log documents the filters that have been run for this account. Use the check box below to enable logging.">
+<!ENTITY clearLog.label "Clear Log">
+<!ENTITY clearLog.accesskey "C">
+<!ENTITY enableLog.label "Enable the Filter Log">
+<!ENTITY enableLog.accesskey "E">
+<!ENTITY closeLog.label "Close">
+<!ENTITY closeLog.accesskey "o">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/viewSource.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/viewSource.dtd
new file mode 100644
index 0000000000..cd992ccba9
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/viewSource.dtd
@@ -0,0 +1,86 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from content/viewSource.xul -->
+
+<!-- extracted from content/viewSource.xhtml -->
+
+<!-- LOCALIZATION NOTE (mainWindow.title) : DONT_TRANSLATE -->
+<!ENTITY mainWindow.title "&brandFullName;">
+<!-- LOCALIZATION NOTE (mainWindow.titlemodifier) : DONT_TRANSLATE -->
+<!ENTITY mainWindow.titlemodifier "&brandFullName;">
+<!-- LOCALIZATION NOTE (mainWindow.titlemodifierseparator) : DONT_TRANSLATE -->
+<!ENTITY mainWindow.titlemodifierseparator " - ">
+<!ENTITY mainWindow.preface "Source of: ">
+
+<!ENTITY editMenu.label "Edit">
+<!ENTITY editMenu.accesskey "E">
+<!ENTITY fileMenu.label "File">
+<!ENTITY fileMenu.accesskey "F">
+<!ENTITY savePageCmd.label "Save Page As…">
+<!ENTITY savePageCmd.accesskey "A">
+<!ENTITY savePageCmd.commandkey "S">
+<!ENTITY printCmd.label "Print…">
+<!ENTITY printCmd.accesskey "P">
+<!ENTITY printCmd.commandkey "P">
+<!ENTITY closeCmd.label "Close">
+<!ENTITY closeCmd.accesskey "C">
+<!ENTITY closeCmd.commandkey "W">
+
+<!-- LOCALIZATION NOTE :
+textEnlarge.commandkey3, textReduce.commandkey2 and
+textReset.commandkey2 are alternative acceleration keys for zoom.
+If shift key is needed with your locale popular keyboard for them,
+you can use these alternative items. Otherwise, their values should be empty. -->
+
+<!ENTITY textEnlarge.commandkey "+">
+<!ENTITY textEnlarge.commandkey2 "=">
+<!ENTITY textEnlarge.commandkey3 "">
+<!ENTITY textReduce.commandkey "-">
+<!ENTITY textReduce.commandkey2 "">
+<!ENTITY textReset.commandkey "0">
+<!ENTITY textReset.commandkey2 "">
+
+<!ENTITY goToLineCmd.label "Go to Line…">
+<!ENTITY goToLineCmd.accesskey "G">
+<!ENTITY goToLineCmd.commandkey "l">
+
+<!ENTITY viewMenu.label "View">
+<!ENTITY viewMenu.accesskey "V">
+<!ENTITY reloadCmd.label "Reload">
+<!ENTITY reloadCmd.accesskey "R">
+<!ENTITY reloadCmd.commandkey "r">
+<!ENTITY menu_wrapLongLines.title "Wrap Long Lines">
+<!ENTITY menu_wrapLongLines.accesskey "W">
+<!ENTITY menu_highlightSyntax.label "Syntax Highlighting">
+<!ENTITY menu_highlightSyntax.accesskey "H">
+<!ENTITY menu_textSize.label "Text Size">
+<!ENTITY menu_textSize.accesskey "Z">
+<!ENTITY menu_textEnlarge.label "Increase">
+<!ENTITY menu_textEnlarge.accesskey "I">
+<!ENTITY menu_textReduce.label "Decrease">
+<!ENTITY menu_textReduce.accesskey "D">
+<!ENTITY menu_textReset.label "Normal">
+<!ENTITY menu_textReset.accesskey "N">
+
+<!ENTITY findOnCmd.label "Find in This Page…">
+<!ENTITY findOnCmd.accesskey "F">
+<!ENTITY findOnCmd.commandkey "f">
+<!ENTITY findAgainCmd.label "Find Again">
+<!ENTITY findAgainCmd.accesskey "g">
+<!ENTITY findAgainCmd.commandkey "g">
+<!ENTITY findAgainCmd.commandkey2 "VK_F3">
+<!ENTITY findSelectionCmd.commandkey "e">
+
+<!ENTITY backCmd.label "Back">
+<!ENTITY backCmd.accesskey "B">
+<!ENTITY forwardCmd.label "Forward">
+<!ENTITY forwardCmd.accesskey "F">
+<!ENTITY goBackCmd.commandKey "[">
+<!ENTITY goForwardCmd.commandKey "]">
+
+<!ENTITY copyLinkCmd.label "Copy Link Location">
+<!ENTITY copyLinkCmd.accesskey "L">
+<!ENTITY copyEmailCmd.label "Copy Email Address">
+<!ENTITY copyEmailCmd.accesskey "E">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/viewSource.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/viewSource.properties
new file mode 100644
index 0000000000..ea79ace721
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/viewSource.properties
@@ -0,0 +1,17 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+goToLineTitle = Go to line
+goToLineText = Enter line number
+invalidInputTitle = Invalid input
+invalidInputText = The line number entered is invalid.
+outOfRangeTitle = Line not found
+outOfRangeText = The specified line was not found.
+viewSelectionSourceTitle = DOM Source of Selection
+viewMathMLSourceTitle = DOM Source of MathML
+
+context_goToLine_label = Go to Line…
+context_goToLine_accesskey = L
+context_wrapLongLines_label = Wrap Long Lines
+context_highlightSyntax_label = Syntax Highlighting
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/viewZoomOverlay.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/viewZoomOverlay.dtd
new file mode 100644
index 0000000000..55541f6dc8
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/viewZoomOverlay.dtd
@@ -0,0 +1,30 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!-- LOCALIZATION NOTE :
+fullZoomEnlargeCmd.commandkey3, fullZoomReduceCmd.commandkey2 and
+fullZoomResetCmd.commandkey2 are alternative acceleration keys for zoom.
+If shift key is needed with your locale popular keyboard for them,
+you can use these alternative items. Otherwise, their values should be empty. -->
+
+<!ENTITY fullZoomEnlargeCmd.label "Zoom In">
+<!ENTITY fullZoomEnlargeCmd.accesskey "I">
+<!ENTITY fullZoomEnlargeCmd.commandkey "+">
+<!ENTITY fullZoomEnlargeCmd.commandkey2 "="> <!-- + is above this key on many keyboards -->
+<!ENTITY fullZoomEnlargeCmd.commandkey3 "">
+
+<!ENTITY fullZoomReduceCmd.label "Zoom Out">
+<!ENTITY fullZoomReduceCmd.accesskey "O">
+<!ENTITY fullZoomReduceCmd.commandkey "-">
+<!ENTITY fullZoomReduceCmd.commandkey2 "">
+
+<!ENTITY fullZoomResetCmd.label "Reset">
+<!ENTITY fullZoomResetCmd.accesskey "R">
+<!ENTITY fullZoomResetCmd.commandkey "0">
+<!ENTITY fullZoomResetCmd.commandkey2 "">
+
+<!ENTITY fullZoomToggleCmd.label "Zoom Text Only">
+<!ENTITY fullZoomToggleCmd.accesskey "T">
+<!ENTITY fullZoom.label "Zoom">
+<!ENTITY fullZoom.accesskey "Z">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/virtualFolderListDialog.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/virtualFolderListDialog.dtd
new file mode 100644
index 0000000000..d3199adb48
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/virtualFolderListDialog.dtd
@@ -0,0 +1,8 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY virtualFolderListTitle.title "Select Folder(s)">
+<!ENTITY virtualFolderDesc.label "Select the folders to search:">
+<!ENTITY folderName.label "Folder name">
+<!ENTITY folderSearch.label "Search">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/virtualFolderProperties.dtd b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/virtualFolderProperties.dtd
new file mode 100644
index 0000000000..46018de550
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/virtualFolderProperties.dtd
@@ -0,0 +1,22 @@
+<!-- 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 http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY virtualFolderProperties.title "New Saved Search Folder">
+<!ENTITY name.label "Name:">
+<!ENTITY name.accesskey "N">
+<!ENTITY description.label "Create as a subfolder of:">
+<!ENTITY description.accesskey "C">
+
+<!ENTITY searchTermCaption.label "Configure the search criteria used for this saved search folder: ">
+
+<!ENTITY folderSelectionCaption.label "Select the folders to search: ">
+<!ENTITY chooseFoldersButton.label "Choose…">
+<!ENTITY chooseFoldersButton.accesskey "h">
+
+<!ENTITY searchOnline.label "Search Online (Gives up-to-date results for IMAP and News folders but increases time to open the folder)">
+<!ENTITY searchOnline.accesskey "S">
+<!ENTITY newFolderButton.label "Create">
+<!ENTITY newFolderButton.accesskey "r">
+<!ENTITY editFolderButton.label "Update">
+<!ENTITY editFolderButton.accesskey "U">
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/wmImportMsgs.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/wmImportMsgs.properties
new file mode 100644
index 0000000000..42786af7c1
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/messenger/wmImportMsgs.properties
@@ -0,0 +1,76 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the windows live mail import code to display status/error
+# and informational messages
+#
+
+# Short name of import module
+## @name WMIMPORT_NAME
+## @loc None
+## LOCALIZATION NOTE (2000): DONT_TRANSLATE
+2000=Windows Live Mail
+
+# Description of import module
+## @name WMIMPORT_DESCRIPTION
+## @loc None
+## LOCALIZATION NOTE (2001): In this item, don't translate "Windows Live Mail"
+2001=Windows Live Mail settings
+
+# Success message
+## @name WMIMPORT_MAILBOX_SUCCESS
+## @loc None
+## LOCALIZATION NOTE (2002): In this item, don't translate "%1$S" or "%2$d"
+## The variable %1$S will contain the name of the Mailbox
+## The variable %2$d will contain the number of messages
+2002=Mailbox %1$S, imported %2$d messages
+
+# Error message
+## @name WMIMPORT_MAILBOX_BADPARAM
+## @loc None
+2003=Bad parameter passed to import mailbox.
+
+# Error message
+## @name WMIMPORT_MAILBOX_BADSOURCEFILE
+## @loc None
+## LOCALIZATION NOTE (2004): In this item, don't translate "%S"
+## The variable %S will contain the name of the Mailbox
+2004=Error accessing file for mailbox %S.
+
+# Error message
+## @name WMIMPORT_MAILBOX_CONVERTERROR
+## @loc None
+## LOCALIZATION NOTE (2005): In this item, don't translate "%S"
+## The variable %S will contain the name of the Mailbox
+2005=Error importing mailbox %S, all messages may not be imported from this mailbox.
+
+# Default name of imported addressbook
+## @name WMIMPORT_DEFAULT_NAME
+## @loc None
+2006=Windows Live Mail Address Book
+
+# Autofind description
+## @name WMIMPORT_AUTOFIND
+## @loc None
+2007=Windows Live Mail address book (windows address book)
+
+# Description
+## @name WMIMPORT_ADDRESS_SUCCESS
+## @loc None
+## LOCALIZATION NOTE (2006): In this item, don't translate "%S"
+## The variable %S will receive the name of the address book
+2008=Imported address book %S
+
+# Error message
+## @name WMIMPORT_ADDRESS_CONVERTERROR
+## @loc None
+## LOCALIZATION NOTE (2009): In this item, don't translate "%S"
+## The variable %S will receive the name of the address book
+2009=Error importing address book %S, all addresses may not have been imported.
+
+# Error message
+## @name WMIMPORT_ADDRESS_BADPARAM
+## @loc None
+2010=Bad parameter passed to import addressbook.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/mozapps/downloads/downloads.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/mozapps/downloads/downloads.properties
new file mode 100644
index 0000000000..9836b0a0a0
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/mozapps/downloads/downloads.properties
@@ -0,0 +1,6 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Desktop folder name for downloaded files
+downloadsFolder=Downloads
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/mozapps/downloads/unknownContentType.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/mozapps/downloads/unknownContentType.properties
new file mode 100644
index 0000000000..806d3f83ff
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/mozapps/downloads/unknownContentType.properties
@@ -0,0 +1,23 @@
+# -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+# 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 http://mozilla.org/MPL/2.0/.
+
+title=Opening %S
+saveDialogTitle=Enter name of file to save to…
+defaultApp=%S (default)
+chooseAppFilePickerTitle=Choose Helper Application
+badApp=The application you chose (“%S”) could not be found. Check the file name or choose another application.
+badApp.title=Application not found
+badPermissions=The file could not be saved because you do not have the proper permissions. Choose another save directory.
+badPermissions.title=Invalid Save Permissions
+unknownAccept.label=Save File
+unknownCancel.label=Cancel
+fileType=%S file
+# LOCALIZATION NOTE (orderedFileSizeWithType): first %S is type, second %S is size, and third %S is unit
+orderedFileSizeWithType=%1$S (%2$S %3$S)
+avifExtHandlerDescription=AV1 Image File (AVIF)
+pdfExtHandlerDescription=Portable Document Format (PDF)
+svgExtHandlerDescription=Scalable Vector Graphics (SVG)
+webpExtHandlerDescription=WebP Image
+xmlExtHandlerDescription=Extensible Markup Language (XML)
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/mozapps/profile/profileSelection.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/mozapps/profile/profileSelection.properties
new file mode 100644
index 0000000000..dbd3041cfb
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/mozapps/profile/profileSelection.properties
@@ -0,0 +1,55 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE: These strings are used for startup/profile problems and the profile manager.
+
+# Application not responding
+# LOCALIZATION NOTE (restartTitle, restartMessageNoUnlocker2, restartMessageUnlocker, restartMessageNoUnlockerMac, restartMessageUnlockerMac): Messages displayed when the application is running but is not responding to commands. %S is the application name.
+restartTitle=Close %S
+restartMessageNoUnlocker2=%S is already running, but is not responding. To use %S, you must first close the existing %S process, restart your device, or use a different profile.
+restartMessageUnlocker=%S is already running, but is not responding. The old %S process must be closed to open a new window.
+restartMessageNoUnlockerMac=A copy of %S is already open. Only one copy of %S can be open at a time.
+restartMessageUnlockerMac=A copy of %S is already open. The running copy of %S will quit in order to open this one.
+
+# Profile manager
+# LOCALIZATION NOTE (profileTooltip): First %S is the profile name, second %S is the path to the profile folder.
+profileTooltip=Profile: ‘%S’ — Path: ‘%S’
+
+pleaseSelectTitle=Select Profile
+pleaseSelect=Please select a profile to begin %S, or create a new profile.
+
+renameProfileTitle=Rename Profile
+renameProfilePrompt=Rename the profile “%S” to:
+
+profileNameInvalidTitle=Invalid profile name
+profileNameInvalid=The profile name “%S” is not allowed.
+
+chooseFolder=Choose Profile Folder
+profileNameEmpty=An empty profile name is not allowed.
+invalidChar=The character “%S” is not allowed in profile names. Please choose a different name.
+
+deleteTitle=Delete Profile
+deleteProfileConfirm=Deleting a profile will remove the profile from the list of available profiles and cannot be undone.\nYou may also choose to delete the profile data files, including your settings, certificates and other user-related data. This option will delete the folder “%S” and cannot be undone.\nWould you like to delete the profile data files?
+deleteFiles=Delete Files
+dontDeleteFiles=Don’t Delete Files
+
+profileCreationFailed=Profile couldn’t be created. Probably the chosen folder isn’t writable.
+profileCreationFailedTitle=Profile Creation failed
+profileExists=A profile with this name already exists. Please choose another name.
+profileFinishText=Click Finish to create this new profile.
+profileFinishTextMac=Click Done to create this new profile.
+profileMissing=Your %S profile cannot be loaded. It may be missing or inaccessible.
+profileMissingTitle=Profile Missing
+profileDeletionFailed=Profile couldn’t be deleted as it may be in use.
+profileDeletionFailedTitle=Deletion Failed
+
+# Profile reset
+# LOCALIZATION NOTE (resetBackupDirectory): Directory name for the profile directory backup created during reset. This directory is placed in a location users will see it (ie. their desktop). %S is the application name.
+resetBackupDirectory=Old %S Data
+
+flushFailTitle=Changes not saved
+flushFailMessage=An unexpected error has prevented your changes from being saved.
+# LOCALIZATION NOTE (flushFailRestartButton): $S is brandShortName.
+flushFailRestartButton=Restart %S
+flushFailExitButton=Exit
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/mozapps/update/updates.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/mozapps/update/updates.properties
new file mode 100644
index 0000000000..a3eeb836d2
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/mozapps/update/updates.properties
@@ -0,0 +1,45 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE: The 1st %S is brandShortName and 2nd %S is update version
+# where update version from the update xml
+# example: MyApplication 10.0.5
+updateName=%S %S
+
+noThanksButton=No Thanks
+noThanksButton.accesskey=N
+restartLaterButton=Restart Later
+restartLaterButton.accesskey=L
+restartNowButton=Restart %S
+restartNowButton.accesskey=R
+
+statusFailed=Install Failed
+
+installSuccess=The Update was successfully installed
+installPending=Install Pending
+patchApplyFailure=The Update could not be installed (patch apply failed)
+elevationFailure=You don’t have the permissions necessary to install this update. Please contact your system administrator.
+
+check_error-200=Update XML file malformed (200)
+check_error-403=Access denied (403)
+check_error-404=Update XML file not found (404)
+check_error-500=Internal server error (500)
+check_error-2152398849=Failed (unknown reason)
+check_error-2152398861=Connection refused
+check_error-2152398862=Connection timed out
+# NS_ERROR_OFFLINE
+check_error-2152398864=Network is offline (go online)
+check_error-2152398867=Port not allowed
+check_error-2152398868=No data was received (please try again)
+check_error-2152398878=Update server not found (check your internet connection)
+check_error-2152398890=Proxy server not found (check your internet connection)
+# NS_ERROR_DOCUMENT_NOT_CACHED
+check_error-2152398918=Network is offline (go online)
+check_error-2152398919=Data transfer was interrupted (please try again)
+check_error-2152398920=Proxy server connection refused
+check_error-2153390069=Server certificate has expired (please adjust your system clock to the correct date and time if it is incorrect)
+check_error-verification_failed=The integrity of the update could not be verified
+check_error-move_failed=Failed to prepare the update for installation
+check_error-update_url_not_available=Update URL not available
+check_error-connection_aborted=Connection aborted
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/mozldap/ldap.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/mozldap/ldap.properties
new file mode 100644
index 0000000000..d5400a8b0c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/mozldap/ldap.properties
@@ -0,0 +1,261 @@
+#
+# 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 http://mozilla.org/MPL/2.0/.
+
+# The following two strings are used when prompting the user for authentication
+# information:
+
+## @name AUTH_PROMPT_TITLE
+## @loc none
+authPromptTitle=LDAP Server Password Required
+
+## @name AUTH_PROMPT_TEXT
+## @loc %1$S should not be localized. It is the hostname of the LDAP server.
+authPromptText=Please enter your password for %1$S.
+
+# These are string versions of all the errors defined in
+# nsILDAPErrors.idl, as well as the nsresult codes based on those
+# errors. See that file for the genesis of these codes, as well as
+# for info about how to get documentation about their precise
+# meanings.
+
+## @name OPERATIONS_ERROR
+## @loc none
+1=Operations error
+
+## @name PROTOCOL_ERROR
+## @loc none
+2=Protocol error
+
+## @name TIMELIMIT_EXCEEDED
+## @loc none
+3=Timelimit exceeded
+
+## @name SIZELIMIT_EXCEEDED
+## @loc none
+4=Sizelimit exceeded
+
+## @name COMPARE_FALSE
+## @loc none
+5=Compare false
+
+## @name COMPARE_TRUE
+## @loc none
+6=Compare true
+
+## @name STRONG_AUTH_NOT_SUPPORTED
+## @loc none
+7=Authentication method not supported
+
+## @name STRONG_AUTH_REQUIRED
+## @loc none
+8=Strong authentication required
+
+## @name PARTIAL_RESULTS
+## @loc none
+9=Partial results and referral received
+
+## @name REFERRAL
+## @loc none
+10=Referral received
+
+## @name ADMINLIMIT_EXCEEDED
+## @loc none
+11=Administrative limit exceeded
+
+## @name UNAVAILABLE_CRITICAL_EXTENSION
+## @loc none
+12=Unavailable critical extension
+
+## @name CONFIDENTIALITY_REQUIRED
+## @loc none
+13=Confidentiality required
+
+## @name SASL_BIND_IN_PROGRESS
+## @loc none
+14=SASL bind in progress
+
+## @name NO_SUCH_ATTRIBUTE
+## @loc none
+16=No such attribute
+
+## @name UNDEFINED_TYPE
+## @loc none
+17=Undefined attribute type
+
+## @name INAPPROPRIATE MATCHING
+## @loc none
+18=Inappropriate matching
+
+## @name CONSTRAINT_VIOLATION
+## @loc none
+19=Constraint violation
+
+## @name TYPE_OR_VALUE_EXISTS
+## @loc none
+20=Type or value exists
+
+## @name INVALID_SYNTAX
+## @loc none
+21=Invalid syntax
+
+## @name NO_SUCH_OBJECT
+## @loc none
+32=No such object
+
+## @name ALIAS_PROBLEM
+## @loc none
+33=Alias problem
+
+## @name INVALID_DN_ SYNTAX
+## @loc none
+34=Invalid DN syntax
+
+## @name IS_LEAF
+## @loc none
+35=Object is a leaf
+
+## @name ALIAS_DEREF_PROBLEM
+## @loc none
+36=Alias dereferencing problem
+
+## @name INAPPROPRIATE_AUTH
+## @loc none
+48=Inappropriate authentication
+
+## @name INVALID_CREDENTIALS
+## @loc none
+49=Invalid credentials
+
+## @name INSUFFICIENT_ACCESS
+## @loc none
+50=Insufficient access
+
+## @name BUSY
+## @loc none
+51=The LDAP server is busy
+
+## @name UNAVAILABLE
+## @loc none
+52=LDAP server is unavailable
+
+## @name UNWILLING_TO_PERFORM
+## @loc none
+53=LDAP server is unwilling to perform
+
+## @name LOOP_DETECT
+## @loc none
+54=Loop detected
+
+## @name SORT_CONTROL_MISSING
+## @loc none
+60=Sort Control is missing
+
+## @name INDEX_RANGE_ERROR
+## @loc none
+61=Search results exceed the range specified by the offsets
+
+## @name NAMING_VIOLATION
+## @loc none
+64=Naming violation
+
+## @name OBJECT_CLASS_VIOLATION
+## @loc none
+65=Object class violation
+
+## @name NOT_ALLOWED_ON_NONLEAF
+## @loc none
+66=Operation not allowed on nonleaf
+
+## @name NOT_ALLOWED_ON_RDN
+## @loc none
+67=Operation not allowed on RDN
+
+## @name ALREADY_EXISTS
+## @loc none
+68=Already exists
+
+## @name NO_OBJECT_CLASS_MODS
+## @loc none
+69=Cannot modify object class
+
+## @name RESULTS_TOO_LARGE
+## @loc none
+70=Results too large
+
+## @name AFFECTS_MULTIPLE_DSAS
+## @loc none
+71=Affects multiple servers
+
+## @name OTHER
+## @loc none
+80=Unknown error
+
+## @name SERVER_DOWN
+## @loc none
+81=Can’t contact the LDAP server
+
+## @name LOCAL_ERROR
+## @loc none
+82=Local error
+
+## @name ENCODING_ERROR
+## @loc none
+83=Encoding error
+
+## @name DECODING_ERROR
+## @loc none
+84=Decoding error
+
+## @name TIMEOUT
+## @loc none
+85=The LDAP server timed out
+
+## @name AUTH_UNKNOWN
+## @loc none
+86=Unknown authentication method
+
+## @name FILTER_ERROR
+## @loc none
+87=Invalid search filter
+
+## @name USER_CANCELLED
+## @loc none
+88=User cancelled operation
+
+## @name PARAM_ERROR
+## @loc none
+89=Bad parameter to an LDAP routine
+
+## @name NO_MEMORY
+## @loc none
+90=Out of memory
+
+## @name CONNECT_ERROR
+## @loc none
+91=Can’t connect to the LDAP server
+
+## @name NOT_SUPPORTED
+## @loc none
+92=Not supported by this version of the LDAP protocol
+
+## @name CONTROL_NOT_FOUND
+## @loc none
+93=Requested LDAP control not found
+
+## @name NO_RESULTS_RETURNED
+## @loc none
+94=No results returned
+
+## @name MORE_RESULTS_TO_RETURN
+## @loc none
+95=More results to return
+
+## @name CLIENT_LOOP
+## @loc none
+96=Client detected loop
+
+## @name REFERRAL_LIMIT_EXCEEDED
+## @loc none
+97=Referral hop limit exceeded
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/necko/necko.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/necko/necko.properties
new file mode 100644
index 0000000000..1c000ed837
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/necko/necko.properties
@@ -0,0 +1,96 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+3=Looking up %1$S…
+4=Connected to %1$S…
+5=Sending request to %1$S…
+6=Transferring data from %1$S…
+7=Connecting to %1$S…
+8=Read %1$S
+9=Wrote %1$S
+10=Waiting for %1$S…
+11=Looked up %1$S…
+12=Performing a TLS handshake to %1$S…
+13=The TLS handshake finished for %1$S…
+
+RepostFormData=This web page is being redirected to a new location. Would you like to resend the form data you have typed to the new location?
+
+# Directory listing strings
+DirTitle=Index of %1$S
+DirGoUp=Up to higher level directory
+ShowHidden=Show hidden objects
+DirColName=Name
+DirColSize=Size
+DirColMTime=Last Modified
+DirFileLabel=File:
+
+SuperfluousAuth=You are about to log in to the site “%1$S” with the username “%2$S”, but the website does not require authentication. This may be an attempt to trick you.\n\nIs “%1$S” the site you want to visit?
+AutomaticAuth=You are about to log in to the site “%1$S” with the username “%2$S”.
+
+TrackerUriBlocked=The resource at “%1$S” was blocked because content blocking is enabled.
+UnsafeUriBlocked=The resource at “%1$S” was blocked by Safe Browsing.
+# LOCALIZATION NOTE (CORPBlocked): %1$S is the URL of the blocked resource. %2$S is the URL of the MDN page about CORP.
+CORPBlocked=The resource at “%1$S” was blocked due to its Cross-Origin-Resource-Policy header (or lack thereof). See %2$S
+CookieBlockedByPermission=Request to access cookies or storage on “%1$S” was blocked because of custom cookie permission.
+CookieBlockedTracker=Request to access cookie or storage on “%1$S” was blocked because it came from a tracker and content blocking is enabled.
+CookieBlockedAll=Request to access cookie or storage on “%1$S” was blocked because we are blocking all storage access requests.
+CookieBlockedForeign=Request to access cookie or storage on “%1$S” was blocked because we are blocking all third-party storage access requests and content blocking is enabled.
+# As part of dynamic state partitioning, third-party resources might be limited to "partitioned" storage access that is separate from the first-party context.
+# This allows e.g. cookies to still be set, and prevents tracking without totally blocking storage access. This message is shown in the web console when this happens
+# to inform developers that their storage is isolated.
+CookiePartitionedForeign2=Partitioned cookie or storage access was provided to “%1$S” because it is loaded in the third-party context and dynamic state partitioning is enabled.
+
+# LOCALIZATION NOTE (CookieAllowedForOriginByStorageAccessAPI): %2$S and %1$S are URLs.
+CookieAllowedForOriginByStorageAccessAPI=Storage access granted for origin “%2$S” on “%1$S”.
+# LOCALIZATION NOTE (CookieAllowedForOriginByHeuristic): %2$S and %1$S are URLs.
+CookieAllowedForOriginByHeuristic=Storage access automatically granted for origin “%2$S” on “%1$S”.
+# LOCALIZATION NOTE (CookieAllowedForFpiByHeuristic): %2$S and %1$S are URLs.
+CookieAllowedForFpiByHeuristic=Storage access automatically granted for First-Party isolation “%2$S” on “%1$S”.
+
+# LOCALIZATION NOTE(CookieRejectedNonRequiresSecure2): %1$S is the cookie name. Do not localize "SameSite=None" and "secure".
+CookieRejectedNonRequiresSecure2=Cookie “%1$S” rejected because it has the “SameSite=None” attribute but is missing the “secure” attribute.
+# LOCALIZATION NOTE(CookieRejectedNonRequiresSecureForBeta3): %1$S is the cookie name. %2$S is a URL. Do not localize "SameSite", "SameSite=None" and "secure".
+CookieRejectedNonRequiresSecureForBeta3=Cookie “%1$S” will be soon rejected because it has the “SameSite” attribute set to “None” without the “secure” attribute. To know more about the “SameSite“ attribute, read %2$S
+# LOCALIZATION NOTE(CookieLaxForced2): %1$S is the cookie name. Do not localize "SameSite", "Lax" and "SameSite=Lax".
+CookieLaxForced2=Cookie “%1$S” has “SameSite” policy set to “Lax” because it is missing a “SameSite” attribute, and “SameSite=Lax” is the default value for this attribute.
+# LOCALIZATION NOTE(CookieLaxForcedForBeta2): %1$S is the cookie name. %2$S is a URL. Do not localize "SameSite", "Lax" and "SameSite=Lax", "SameSite=None".
+CookieLaxForcedForBeta2=Cookie “%1$S” does not have a proper “SameSite” attribute value. Soon, cookies without the “SameSite” attribute or with an invalid value will be treated as “Lax”. This means that the cookie will no longer be sent in third-party contexts. If your application depends on this cookie being available in such contexts, please add the “SameSite=None“ attribute to it. To know more about the “SameSite“ attribute, read %2$S
+# LOCALIZATION NOTE(CookieSameSiteValueInvalid2): %1$S is cookie name. Do not localize "SameSite", "Lax", "Strict" and "None"
+CookieSameSiteValueInvalid2=Invalid “SameSite“ value for cookie “%1$S”. The supported values are: “Lax“, “Strict“, “None“.
+# LOCALIZATION NOTE (CookieOversize): %1$S is the cookie name. %2$S is the number of bytes. "B" means bytes.
+CookieOversize=Cookie “%1$S” is invalid because its size is too big. Max size is %2$S B.
+# LOCALIZATION NOTE (CookiePathOversize): %1$S is the cookie name. %2$S is the number of bytes. "B" means bytes.
+CookiePathOversize=Cookie “%1$S” is invalid because its path size is too big. Max size is %2$S B.
+# LOCALIZATION NOTE (CookieRejectedByPermissionManager): %1$S is the cookie response header.
+CookieRejectedByPermissionManager=Cookie “%1$S” has been rejected by user set permissions.
+# LOCALIZATION NOTE (CookieRejectedInvalidCharName): %1$S is the cookie name.
+CookieRejectedInvalidCharName=Cookie “%1$S” has been rejected for invalid characters in the name.
+# LOCALIZATION NOTE (CookieRejectedInvalidDomain): %1$S is the cookie name.
+CookieRejectedInvalidDomain=Cookie “%1$S” has been rejected for invalid domain.
+# LOCALIZATION NOTE (CookieRejectedInvalidPrefix): %1$S is the cookie name.
+CookieRejectedInvalidPrefix=Cookie “%1$S” has been rejected for invalid prefix.
+# LOCALIZATION NOTE (CookieRejectedInvalidCharValue): %1$S is the cookie name.
+CookieRejectedInvalidCharValue=Cookie “%1$S” has been rejected for invalid characters in the value.
+# LOCALIZATION NOTE (CookieRejectedHttpOnlyButFromScript): %1$S is the cookie name.
+CookieRejectedHttpOnlyButFromScript=Cookie “%1$S” has been rejected because there is already an HTTP-Only cookie but script tried to store a new one.
+# LOCALIZATION NOTE (CookieRejectedSecureButHttp): %1$S is the cookie name.
+CookieRejectedSecureButNonHttps=Cookie “%1$S” has been rejected because a non-HTTPS cookie can’t be set as “secure”.
+# LOCALIZATION NOTE (CookieRejectedThirdParty): %1$S is the cookie response header.
+CookieRejectedThirdParty=Cookie “%1$S” has been rejected as third-party.
+# LOCALIZATION NOTE (CookieRejectedNonsecureOverSecure): %1$S is the cookie name.
+CookieRejectedNonsecureOverSecure=Cookie “%1$S” has been rejected because there is an existing “secure” cookie.
+# LOCALIZATION NOTE (CookieRejectedForNonSameSiteness): %1$S is the cookie name.
+CookieRejectedForNonSameSiteness=Cookie “%1$S” has been rejected because it is in a cross-site context and its “SameSite” is “Lax” or “Strict”.
+
+# LOCALIZATION NOTE (CookieBlockedCrossSiteRedirect): %1$S is the cookie name. Do not translate "SameSite", "Lax" or "Strict".
+CookieBlockedCrossSiteRedirect=Cookie “%1$S” with the “SameSite” attribute value “Lax” or “Strict” was omitted because of a cross-site redirect.
+
+# LOCALIZATION NOTE (APIDeprecationWarning): %1$S is the deprecated API; %2$S is the API function that should be used.
+APIDeprecationWarning=Warning: ‘%1$S’ deprecated, please use ‘%2$S’
+
+# LOCALIZATION NOTE (ResourceBlockedCORS): %1$S is the url of the resource blocked by ORB. $2$S is the reason.
+# example: The resource at <url> was blocked by OpaqueResponseBlocking. Reason: “nosniff with either blocklisted or text/plain”.
+ResourceBlockedORB=The resource at “%1$S” was blocked by OpaqueResponseBlocking. Reason: “%2$S”.
+
+InvalidHTTPResponseStatusLine=The status line of the HTTP response is invalid
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/passwordmgr/passwordmgr.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/passwordmgr/passwordmgr.properties
new file mode 100644
index 0000000000..99843b6cd9
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/passwordmgr/passwordmgr.properties
@@ -0,0 +1,75 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+rememberPassword = Use Password Manager to remember this password.
+savePasswordTitle = Confirm
+# LOCALIZATION NOTE (saveLoginMsg2, saveLoginMsgNoUser2):
+# %S is the login's hostname.
+saveLoginMsg2 = Save login for %S?
+saveLoginMsgNoUser2 = Save password for %S?
+saveLoginButtonAllow.label = Save
+saveLoginButtonAllow.accesskey = S
+saveLoginButtonDeny.label = Don’t save
+saveLoginButtonDeny.accesskey = D
+saveLoginButtonNever.label = Never save
+saveLoginButtonNever.accesskey = e
+# LOCALIZATION NOTE (updateLoginMsg3, updateLoginMsgNoUser3):
+# %S is the login's hostname.
+updateLoginMsg3 = Update login for %S?
+updateLoginMsgNoUser3 = Update password for %S?
+updateLoginMsgAddUsername2 = Add username to saved password?
+updateLoginButtonText = Update
+updateLoginButtonAccessKey = U
+updateLoginButtonDeny.label = Don’t update
+updateLoginButtonDeny.accesskey = D
+updateLoginButtonDelete.label = Remove saved login
+updateLoginButtonDelete.accesskey = R
+# LOCALIZATION NOTE (rememberPasswordMsg):
+# 1st string is the username for the login, 2nd is the login's hostname.
+# Note that long usernames may be truncated.
+rememberPasswordMsg = Would you like to remember the password for “%1$S” on %2$S?
+# LOCALIZATION NOTE (rememberPasswordMsgNoUsername):
+# String is the login's hostname.
+rememberPasswordMsgNoUsername = Would you like to remember the password on %S?
+# LOCALIZATION NOTE (noUsernamePlaceholder):
+# This is displayed in place of the username when it is missing.
+noUsernamePlaceholder=No username
+togglePasswordLabel=Show password
+togglePasswordAccessKey2=h
+notNowButtonText = &Not Now
+neverForSiteButtonText = Ne&ver for This Site
+rememberButtonText = &Remember
+passwordChangeTitle = Confirm Password Change
+# LOCALIZATION NOTE (updatePasswordMsg):
+# String is the username for the login.
+updatePasswordMsg = Would you like to update the saved password for “%S”?
+updatePasswordMsgNoUser = Would you like to update the saved password?
+userSelectText2 = Select which login to update:
+loginsDescriptionAll2=Logins for the following sites are stored on your computer
+
+# LOCALIZATION NOTE (useASecurelyGeneratedPassword):
+# Shown in the autocomplete popup to allow filling a generated password into a password field.
+useASecurelyGeneratedPassword=Use a Securely Generated Password
+# LOCALIZATION NOTE (generatedPasswordWillBeSaved):
+# %S will contain the brandShorterName. This informs the user that the generated password will be automatically saved.
+generatedPasswordWillBeSaved=%S will save this password for this website.
+# LOCALIZATION NOTE (loginHostAge):
+# This is used to show the context menu login items with their age.
+# 1st string is the username for the login, 2nd is the login's age.
+loginHostAge=%1$S (%2$S)
+# LOCALIZATION NOTE (noUsername):
+# String is used on the context menu when a login doesn't have a username.
+noUsername=No username
+# LOCALIZATION NOTE (displaySameOrigin):
+# String is used on the autocomplete row when the login origin is a domain match with the document origin
+displaySameOrigin=From this website
+
+# LOCALIZATION NOTE (insecureFieldWarningDescription2):
+# %1$S will contain insecureFieldWarningLearnMore and look like a link to indicate that clicking will open a tab with support information.
+insecureFieldWarningDescription2 = This connection is not secure. Logins entered here could be compromised. %1$S
+insecureFieldWarningLearnMore = Learn More
+
+# LOCALIZATION NOTE (viewSavedLogins.label):
+# This label is used in the footer of login autocomplete menus.
+viewSavedLogins.label= View Saved Logins
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/pipnss/nsserrors.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/pipnss/nsserrors.properties
new file mode 100644
index 0000000000..0d28ca43f5
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/pipnss/nsserrors.properties
@@ -0,0 +1,331 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+SSL_ERROR_EXPORT_ONLY_SERVER=Unable to communicate securely. Peer does not support high-grade encryption.
+SSL_ERROR_US_ONLY_SERVER=Unable to communicate securely. Peer requires high-grade encryption which is not supported.
+SSL_ERROR_NO_CYPHER_OVERLAP=Cannot communicate securely with peer: no common encryption algorithm(s).
+SSL_ERROR_NO_CERTIFICATE=Unable to find the certificate or key necessary for authentication.
+SSL_ERROR_BAD_CERTIFICATE=Unable to communicate securely with peer: peer’s certificate was rejected.
+SSL_ERROR_BAD_CLIENT=The server has encountered bad data from the client.
+SSL_ERROR_BAD_SERVER=The client has encountered bad data from the server.
+SSL_ERROR_UNSUPPORTED_CERTIFICATE_TYPE=Unsupported certificate type.
+SSL_ERROR_UNSUPPORTED_VERSION=Peer using unsupported version of security protocol.
+SSL_ERROR_WRONG_CERTIFICATE=Client authentication failed: private key in key database does not match public key in certificate database.
+SSL_ERROR_BAD_CERT_DOMAIN=Unable to communicate securely with peer: requested domain name does not match the server’s certificate.
+SSL_ERROR_POST_WARNING=Unrecognized SSL error code.
+SSL_ERROR_SSL2_DISABLED=Peer only supports SSL version 2, which is locally disabled.
+SSL_ERROR_BAD_MAC_READ=SSL received a record with an incorrect Message Authentication Code.
+SSL_ERROR_BAD_MAC_ALERT=SSL peer reports incorrect Message Authentication Code.
+SSL_ERROR_BAD_CERT_ALERT=SSL peer cannot verify your certificate.
+SSL_ERROR_REVOKED_CERT_ALERT=SSL peer rejected your certificate as revoked.
+SSL_ERROR_EXPIRED_CERT_ALERT=SSL peer rejected your certificate as expired.
+SSL_ERROR_SSL_DISABLED=Cannot connect: SSL is disabled.
+SSL_ERROR_FORTEZZA_PQG=Cannot connect: SSL peer is in another FORTEZZA domain.
+SSL_ERROR_UNKNOWN_CIPHER_SUITE=An unknown SSL cipher suite has been requested.
+SSL_ERROR_NO_CIPHERS_SUPPORTED=No cipher suites are present and enabled in this program.
+SSL_ERROR_BAD_BLOCK_PADDING=SSL received a record with bad block padding.
+SSL_ERROR_RX_RECORD_TOO_LONG=SSL received a record that exceeded the maximum permissible length.
+SSL_ERROR_TX_RECORD_TOO_LONG=SSL attempted to send a record that exceeded the maximum permissible length.
+SSL_ERROR_RX_MALFORMED_HELLO_REQUEST=SSL received a malformed Hello Request handshake message.
+SSL_ERROR_RX_MALFORMED_CLIENT_HELLO=SSL received a malformed Client Hello handshake message.
+SSL_ERROR_RX_MALFORMED_SERVER_HELLO=SSL received a malformed Server Hello handshake message.
+SSL_ERROR_RX_MALFORMED_CERTIFICATE=SSL received a malformed Certificate handshake message.
+SSL_ERROR_RX_MALFORMED_SERVER_KEY_EXCH=SSL received a malformed Server Key Exchange handshake message.
+SSL_ERROR_RX_MALFORMED_CERT_REQUEST=SSL received a malformed Certificate Request handshake message.
+SSL_ERROR_RX_MALFORMED_HELLO_DONE=SSL received a malformed Server Hello Done handshake message.
+SSL_ERROR_RX_MALFORMED_CERT_VERIFY=SSL received a malformed Certificate Verify handshake message.
+SSL_ERROR_RX_MALFORMED_CLIENT_KEY_EXCH=SSL received a malformed Client Key Exchange handshake message.
+SSL_ERROR_RX_MALFORMED_FINISHED=SSL received a malformed Finished handshake message.
+SSL_ERROR_RX_MALFORMED_CHANGE_CIPHER=SSL received a malformed Change Cipher Spec record.
+SSL_ERROR_RX_MALFORMED_ALERT=SSL received a malformed Alert record.
+SSL_ERROR_RX_MALFORMED_HANDSHAKE=SSL received a malformed Handshake record.
+SSL_ERROR_RX_MALFORMED_APPLICATION_DATA=SSL received a malformed Application Data record.
+SSL_ERROR_RX_UNEXPECTED_HELLO_REQUEST=SSL received an unexpected Hello Request handshake message.
+SSL_ERROR_RX_UNEXPECTED_CLIENT_HELLO=SSL received an unexpected Client Hello handshake message.
+SSL_ERROR_RX_UNEXPECTED_SERVER_HELLO=SSL received an unexpected Server Hello handshake message.
+SSL_ERROR_RX_UNEXPECTED_CERTIFICATE=SSL received an unexpected Certificate handshake message.
+SSL_ERROR_RX_UNEXPECTED_SERVER_KEY_EXCH=SSL received an unexpected Server Key Exchange handshake message.
+SSL_ERROR_RX_UNEXPECTED_CERT_REQUEST=SSL received an unexpected Certificate Request handshake message.
+SSL_ERROR_RX_UNEXPECTED_HELLO_DONE=SSL received an unexpected Server Hello Done handshake message.
+SSL_ERROR_RX_UNEXPECTED_CERT_VERIFY=SSL received an unexpected Certificate Verify handshake message.
+SSL_ERROR_RX_UNEXPECTED_CLIENT_KEY_EXCH=SSL received an unexpected Client Key Exchange handshake message.
+SSL_ERROR_RX_UNEXPECTED_FINISHED=SSL received an unexpected Finished handshake message.
+SSL_ERROR_RX_UNEXPECTED_CHANGE_CIPHER=SSL received an unexpected Change Cipher Spec record.
+SSL_ERROR_RX_UNEXPECTED_ALERT=SSL received an unexpected Alert record.
+SSL_ERROR_RX_UNEXPECTED_HANDSHAKE=SSL received an unexpected Handshake record.
+SSL_ERROR_RX_UNEXPECTED_APPLICATION_DATA=SSL received an unexpected Application Data record.
+SSL_ERROR_RX_UNKNOWN_RECORD_TYPE=SSL received a record with an unknown content type.
+SSL_ERROR_RX_UNKNOWN_HANDSHAKE=SSL received a handshake message with an unknown message type.
+SSL_ERROR_RX_UNKNOWN_ALERT=SSL received an alert record with an unknown alert description.
+SSL_ERROR_CLOSE_NOTIFY_ALERT=SSL peer has closed this connection.
+SSL_ERROR_HANDSHAKE_UNEXPECTED_ALERT=SSL peer was not expecting a handshake message it received.
+SSL_ERROR_DECOMPRESSION_FAILURE_ALERT=SSL peer was unable to successfully decompress an SSL record it received.
+SSL_ERROR_HANDSHAKE_FAILURE_ALERT=SSL peer was unable to negotiate an acceptable set of security parameters.
+SSL_ERROR_ILLEGAL_PARAMETER_ALERT=SSL peer rejected a handshake message for unacceptable content.
+SSL_ERROR_UNSUPPORTED_CERT_ALERT=SSL peer does not support certificates of the type it received.
+SSL_ERROR_CERTIFICATE_UNKNOWN_ALERT=SSL peer had some unspecified issue with the certificate it received.
+SSL_ERROR_GENERATE_RANDOM_FAILURE=SSL experienced a failure of its random number generator.
+SSL_ERROR_SIGN_HASHES_FAILURE=Unable to digitally sign data required to verify your certificate.
+SSL_ERROR_EXTRACT_PUBLIC_KEY_FAILURE=SSL was unable to extract the public key from the peer’s certificate.
+SSL_ERROR_SERVER_KEY_EXCHANGE_FAILURE=Unspecified failure while processing SSL Server Key Exchange handshake.
+SSL_ERROR_CLIENT_KEY_EXCHANGE_FAILURE=Unspecified failure while processing SSL Client Key Exchange handshake.
+SSL_ERROR_ENCRYPTION_FAILURE=Bulk data encryption algorithm failed in selected cipher suite.
+SSL_ERROR_DECRYPTION_FAILURE=Bulk data decryption algorithm failed in selected cipher suite.
+SSL_ERROR_SOCKET_WRITE_FAILURE=Attempt to write encrypted data to underlying socket failed.
+SSL_ERROR_MD5_DIGEST_FAILURE=MD5 digest function failed.
+SSL_ERROR_SHA_DIGEST_FAILURE=SHA-1 digest function failed.
+SSL_ERROR_MAC_COMPUTATION_FAILURE=MAC computation failed.
+SSL_ERROR_SYM_KEY_CONTEXT_FAILURE=Failure to create Symmetric Key context.
+SSL_ERROR_SYM_KEY_UNWRAP_FAILURE=Failure to unwrap the Symmetric key in Client Key Exchange message.
+SSL_ERROR_PUB_KEY_SIZE_LIMIT_EXCEEDED=SSL Server attempted to use domestic-grade public key with export cipher suite.
+SSL_ERROR_IV_PARAM_FAILURE=PKCS11 code failed to translate an IV into a param.
+SSL_ERROR_INIT_CIPHER_SUITE_FAILURE=Failed to initialize the selected cipher suite.
+SSL_ERROR_SESSION_KEY_GEN_FAILURE=Client failed to generate session keys for SSL session.
+SSL_ERROR_NO_SERVER_KEY_FOR_ALG=Server has no key for the attempted key exchange algorithm.
+SSL_ERROR_TOKEN_INSERTION_REMOVAL=PKCS#11 token was inserted or removed while operation was in progress.
+SSL_ERROR_TOKEN_SLOT_NOT_FOUND=No PKCS#11 token could be found to do a required operation.
+SSL_ERROR_NO_COMPRESSION_OVERLAP=Cannot communicate securely with peer: no common compression algorithm(s).
+SSL_ERROR_HANDSHAKE_NOT_COMPLETED=Cannot initiate another SSL handshake until current handshake is complete.
+SSL_ERROR_BAD_HANDSHAKE_HASH_VALUE=Received incorrect handshakes hash values from peer.
+SSL_ERROR_CERT_KEA_MISMATCH=The certificate provided cannot be used with the selected key exchange algorithm.
+SSL_ERROR_NO_TRUSTED_SSL_CLIENT_CA=No certificate authority is trusted for SSL client authentication.
+SSL_ERROR_SESSION_NOT_FOUND=Client’s SSL session ID not found in server’s session cache.
+SSL_ERROR_DECRYPTION_FAILED_ALERT=Peer was unable to decrypt an SSL record it received.
+SSL_ERROR_RECORD_OVERFLOW_ALERT=Peer received an SSL record that was longer than is permitted.
+SSL_ERROR_UNKNOWN_CA_ALERT=Peer does not recognize and trust the CA that issued your certificate.
+SSL_ERROR_ACCESS_DENIED_ALERT=Peer received a valid certificate, but access was denied.
+SSL_ERROR_DECODE_ERROR_ALERT=Peer could not decode an SSL handshake message.
+SSL_ERROR_DECRYPT_ERROR_ALERT=Peer reports failure of signature verification or key exchange.
+SSL_ERROR_EXPORT_RESTRICTION_ALERT=Peer reports negotiation not in compliance with export regulations.
+SSL_ERROR_PROTOCOL_VERSION_ALERT=Peer reports incompatible or unsupported protocol version.
+SSL_ERROR_INSUFFICIENT_SECURITY_ALERT=Server requires ciphers more secure than those supported by client.
+SSL_ERROR_INTERNAL_ERROR_ALERT=Peer reports it experienced an internal error.
+SSL_ERROR_USER_CANCELED_ALERT=Peer user cancelled handshake.
+SSL_ERROR_NO_RENEGOTIATION_ALERT=Peer does not permit renegotiation of SSL security parameters.
+SSL_ERROR_SERVER_CACHE_NOT_CONFIGURED=SSL server cache not configured and not disabled for this socket.
+SSL_ERROR_UNSUPPORTED_EXTENSION_ALERT=SSL peer does not support requested TLS hello extension.
+SSL_ERROR_CERTIFICATE_UNOBTAINABLE_ALERT=SSL peer could not obtain your certificate from the supplied URL.
+SSL_ERROR_UNRECOGNIZED_NAME_ALERT=SSL peer has no certificate for the requested DNS name.
+SSL_ERROR_BAD_CERT_STATUS_RESPONSE_ALERT=SSL peer was unable to get an OCSP response for its certificate.
+SSL_ERROR_BAD_CERT_HASH_VALUE_ALERT=SSL peer reported bad certificate hash value.
+SSL_ERROR_RX_UNEXPECTED_NEW_SESSION_TICKET=SSL received an unexpected New Session Ticket handshake message.
+SSL_ERROR_RX_MALFORMED_NEW_SESSION_TICKET=SSL received a malformed New Session Ticket handshake message.
+SSL_ERROR_DECOMPRESSION_FAILURE=SSL received a compressed record that could not be decompressed.
+SSL_ERROR_RENEGOTIATION_NOT_ALLOWED=Renegotiation is not allowed on this SSL socket.
+SSL_ERROR_UNSAFE_NEGOTIATION=Peer attempted old style (potentially vulnerable) handshake.
+SSL_ERROR_RX_UNEXPECTED_UNCOMPRESSED_RECORD=SSL received an unexpected uncompressed record.
+SSL_ERROR_WEAK_SERVER_EPHEMERAL_DH_KEY=SSL received a weak ephemeral Diffie-Hellman key in Server Key Exchange handshake message.
+SSL_ERROR_NEXT_PROTOCOL_DATA_INVALID=SSL received invalid NPN extension data.
+SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_SSL2=SSL feature not supported for SSL 2.0 connections.
+SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_SERVERS=SSL feature not supported for servers.
+SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_CLIENTS=SSL feature not supported for clients.
+SSL_ERROR_INVALID_VERSION_RANGE=SSL version range is not valid.
+SSL_ERROR_CIPHER_DISALLOWED_FOR_VERSION=SSL peer selected a cipher suite disallowed for the selected protocol version.
+SSL_ERROR_RX_MALFORMED_HELLO_VERIFY_REQUEST=SSL received a malformed Hello Verify Request handshake message.
+SSL_ERROR_RX_UNEXPECTED_HELLO_VERIFY_REQUEST=SSL received an unexpected Hello Verify Request handshake message.
+SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_VERSION=SSL feature not supported for the protocol version.
+SSL_ERROR_RX_UNEXPECTED_CERT_STATUS=SSL received an unexpected Certificate Status handshake message.
+SSL_ERROR_UNSUPPORTED_HASH_ALGORITHM=Unsupported hash algorithm used by TLS peer.
+SSL_ERROR_DIGEST_FAILURE=Digest function failed.
+SSL_ERROR_INCORRECT_SIGNATURE_ALGORITHM=Incorrect signature algorithm specified in a digitally-signed element.
+SSL_ERROR_NEXT_PROTOCOL_NO_CALLBACK=The next protocol negotiation extension was enabled, but the callback was cleared prior to being needed.
+SSL_ERROR_NEXT_PROTOCOL_NO_PROTOCOL=The server supports no protocols that the client advertises in the ALPN extension.
+SSL_ERROR_INAPPROPRIATE_FALLBACK_ALERT=The server rejected the handshake because the client downgraded to a lower TLS version than the server supports.
+SSL_ERROR_WEAK_SERVER_CERT_KEY=The server certificate included a public key that was too weak.
+SSL_ERROR_RX_SHORT_DTLS_READ=Not enough room in buffer for DTLS record.
+SSL_ERROR_NO_SUPPORTED_SIGNATURE_ALGORITHM=No supported TLS signature algorithm was configured.
+SSL_ERROR_UNSUPPORTED_SIGNATURE_ALGORITHM=The peer used an unsupported combination of signature and hash algorithm.
+SSL_ERROR_MISSING_EXTENDED_MASTER_SECRET=The peer tried to resume without a correct extended_master_secret extension.
+SSL_ERROR_UNEXPECTED_EXTENDED_MASTER_SECRET=The peer tried to resume with an unexpected extended_master_secret extension.
+SEC_ERROR_IO=An I/O error occurred during security authorization.
+SEC_ERROR_LIBRARY_FAILURE=security library failure.
+SEC_ERROR_BAD_DATA=security library: received bad data.
+SEC_ERROR_OUTPUT_LEN=security library: output length error.
+SEC_ERROR_INPUT_LEN=security library has experienced an input length error.
+SEC_ERROR_INVALID_ARGS=security library: invalid arguments.
+SEC_ERROR_INVALID_ALGORITHM=security library: invalid algorithm.
+SEC_ERROR_INVALID_AVA=security library: invalid AVA.
+SEC_ERROR_INVALID_TIME=Improperly formatted time string.
+SEC_ERROR_BAD_DER=security library: improperly formatted DER-encoded message.
+SEC_ERROR_BAD_SIGNATURE=Peer’s certificate has an invalid signature.
+SEC_ERROR_EXPIRED_CERTIFICATE=Peer’s Certificate has expired.
+SEC_ERROR_REVOKED_CERTIFICATE=Peer’s Certificate has been revoked.
+SEC_ERROR_UNKNOWN_ISSUER=Peer’s Certificate issuer is not recognized.
+SEC_ERROR_BAD_KEY=Peer’s public key is invalid.
+SEC_ERROR_BAD_PASSWORD=The security password entered is incorrect.
+SEC_ERROR_RETRY_PASSWORD=New password entered incorrectly. Please try again.
+SEC_ERROR_NO_NODELOCK=security library: no nodelock.
+SEC_ERROR_BAD_DATABASE=security library: bad database.
+SEC_ERROR_NO_MEMORY=security library: memory allocation failure.
+SEC_ERROR_UNTRUSTED_ISSUER=Peer’s certificate issuer has been marked as not trusted by the user.
+SEC_ERROR_UNTRUSTED_CERT=Peer’s certificate has been marked as not trusted by the user.
+SEC_ERROR_DUPLICATE_CERT=Certificate already exists in your database.
+SEC_ERROR_DUPLICATE_CERT_NAME=Downloaded certificate’s name duplicates one already in your database.
+SEC_ERROR_ADDING_CERT=Error adding certificate to database.
+SEC_ERROR_FILING_KEY=Error refiling the key for this certificate.
+SEC_ERROR_NO_KEY=The private key for this certificate cannot be found in key database
+SEC_ERROR_CERT_VALID=This certificate is valid.
+SEC_ERROR_CERT_NOT_VALID=This certificate is not valid.
+SEC_ERROR_CERT_NO_RESPONSE=Cert Library: No Response
+SEC_ERROR_EXPIRED_ISSUER_CERTIFICATE=The certificate issuer’s certificate has expired. Check your system date and time.
+SEC_ERROR_CRL_EXPIRED=The CRL for the certificate’s issuer has expired. Update it or check your system date and time.
+SEC_ERROR_CRL_BAD_SIGNATURE=The CRL for the certificate’s issuer has an invalid signature.
+SEC_ERROR_CRL_INVALID=New CRL has an invalid format.
+SEC_ERROR_EXTENSION_VALUE_INVALID=Certificate extension value is invalid.
+SEC_ERROR_EXTENSION_NOT_FOUND=Certificate extension not found.
+SEC_ERROR_CA_CERT_INVALID=Issuer certificate is invalid.
+SEC_ERROR_PATH_LEN_CONSTRAINT_INVALID=Certificate path length constraint is invalid.
+SEC_ERROR_CERT_USAGES_INVALID=Certificate usages field is invalid.
+SEC_INTERNAL_ONLY=**Internal ONLY module**
+SEC_ERROR_INVALID_KEY=The key does not support the requested operation.
+SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION=Certificate contains unknown critical extension.
+SEC_ERROR_OLD_CRL=New CRL is not later than the current one.
+SEC_ERROR_NO_EMAIL_CERT=Not encrypted or signed: you do not yet have an email certificate.
+SEC_ERROR_NO_RECIPIENT_CERTS_QUERY=Not encrypted: you do not have certificates for each of the recipients.
+SEC_ERROR_NOT_A_RECIPIENT=Cannot decrypt: you are not a recipient, or matching certificate and private key not found.
+SEC_ERROR_PKCS7_KEYALG_MISMATCH=Cannot decrypt: key encryption algorithm does not match your certificate.
+SEC_ERROR_PKCS7_BAD_SIGNATURE=Signature verification failed: no signer found, too many signers found, or improper or corrupted data.
+SEC_ERROR_UNSUPPORTED_KEYALG=Unsupported or unknown key algorithm.
+SEC_ERROR_DECRYPTION_DISALLOWED=Cannot decrypt: encrypted using a disallowed algorithm or key size.
+XP_SEC_FORTEZZA_BAD_CARD=Fortezza card has not been properly initialized. Please remove it and return it to your issuer.
+XP_SEC_FORTEZZA_NO_CARD=No Fortezza cards Found
+XP_SEC_FORTEZZA_NONE_SELECTED=No Fortezza card selected
+XP_SEC_FORTEZZA_MORE_INFO=Please select a personality to get more info on
+XP_SEC_FORTEZZA_PERSON_NOT_FOUND=Personality not found
+XP_SEC_FORTEZZA_NO_MORE_INFO=No more information on that Personality
+XP_SEC_FORTEZZA_BAD_PIN=Invalid Pin
+XP_SEC_FORTEZZA_PERSON_ERROR=Couldn’t initialize Fortezza personalities.
+SEC_ERROR_NO_KRL=No KRL for this site’s certificate has been found.
+SEC_ERROR_KRL_EXPIRED=The KRL for this site’s certificate has expired.
+SEC_ERROR_KRL_BAD_SIGNATURE=The KRL for this site’s certificate has an invalid signature.
+SEC_ERROR_REVOKED_KEY=The key for this site’s certificate has been revoked.
+SEC_ERROR_KRL_INVALID=New KRL has an invalid format.
+SEC_ERROR_NEED_RANDOM=security library: need random data.
+SEC_ERROR_NO_MODULE=security library: no security module can perform the requested operation.
+SEC_ERROR_NO_TOKEN=The security card or token does not exist, needs to be initialized, or has been removed.
+SEC_ERROR_READ_ONLY=security library: read-only database.
+SEC_ERROR_NO_SLOT_SELECTED=No slot or token was selected.
+SEC_ERROR_CERT_NICKNAME_COLLISION=A certificate with the same nickname already exists.
+SEC_ERROR_KEY_NICKNAME_COLLISION=A key with the same nickname already exists.
+SEC_ERROR_SAFE_NOT_CREATED=error while creating safe object
+SEC_ERROR_BAGGAGE_NOT_CREATED=error while creating baggage object
+XP_JAVA_REMOVE_PRINCIPAL_ERROR=Couldn’t remove the principal
+XP_JAVA_DELETE_PRIVILEGE_ERROR=Couldn’t delete the privilege
+XP_JAVA_CERT_NOT_EXISTS_ERROR=This principal doesn’t have a certificate
+SEC_ERROR_BAD_EXPORT_ALGORITHM=Required algorithm is not allowed.
+SEC_ERROR_EXPORTING_CERTIFICATES=Error attempting to export certificates.
+SEC_ERROR_IMPORTING_CERTIFICATES=Error attempting to import certificates.
+SEC_ERROR_PKCS12_DECODING_PFX=Unable to import. Decoding error. File not valid.
+SEC_ERROR_PKCS12_INVALID_MAC=Unable to import. Invalid MAC. Incorrect password or corrupt file.
+SEC_ERROR_PKCS12_UNSUPPORTED_MAC_ALGORITHM=Unable to import. MAC algorithm not supported.
+SEC_ERROR_PKCS12_UNSUPPORTED_TRANSPORT_MODE=Unable to import. Only password integrity and privacy modes supported.
+SEC_ERROR_PKCS12_CORRUPT_PFX_STRUCTURE=Unable to import. File structure is corrupt.
+SEC_ERROR_PKCS12_UNSUPPORTED_PBE_ALGORITHM=Unable to import. Encryption algorithm not supported.
+SEC_ERROR_PKCS12_UNSUPPORTED_VERSION=Unable to import. File version not supported.
+SEC_ERROR_PKCS12_PRIVACY_PASSWORD_INCORRECT=Unable to import. Incorrect privacy password.
+SEC_ERROR_PKCS12_CERT_COLLISION=Unable to import. Same nickname already exists in database.
+SEC_ERROR_USER_CANCELLED=The user pressed cancel.
+SEC_ERROR_PKCS12_DUPLICATE_DATA=Not imported, already in database.
+SEC_ERROR_MESSAGE_SEND_ABORTED=Message not sent.
+SEC_ERROR_INADEQUATE_KEY_USAGE=Certificate key usage inadequate for attempted operation.
+SEC_ERROR_INADEQUATE_CERT_TYPE=Certificate type not approved for application.
+SEC_ERROR_CERT_ADDR_MISMATCH=Address in signing certificate does not match address in message headers.
+SEC_ERROR_PKCS12_UNABLE_TO_IMPORT_KEY=Unable to import. Error attempting to import private key.
+SEC_ERROR_PKCS12_IMPORTING_CERT_CHAIN=Unable to import. Error attempting to import certificate chain.
+SEC_ERROR_PKCS12_UNABLE_TO_LOCATE_OBJECT_BY_NAME=Unable to export. Unable to locate certificate or key by nickname.
+SEC_ERROR_PKCS12_UNABLE_TO_EXPORT_KEY=Unable to export. Private Key could not be located and exported.
+SEC_ERROR_PKCS12_UNABLE_TO_WRITE=Unable to export. Unable to write the export file.
+SEC_ERROR_PKCS12_UNABLE_TO_READ=Unable to import. Unable to read the import file.
+SEC_ERROR_PKCS12_KEY_DATABASE_NOT_INITIALIZED=Unable to export. Key database corrupt or deleted.
+SEC_ERROR_KEYGEN_FAIL=Unable to generate public/private key pair.
+SEC_ERROR_INVALID_PASSWORD=Password entered is invalid. Please pick a different one.
+SEC_ERROR_RETRY_OLD_PASSWORD=Old password entered incorrectly. Please try again.
+SEC_ERROR_BAD_NICKNAME=Certificate nickname already in use.
+SEC_ERROR_NOT_FORTEZZA_ISSUER=Peer FORTEZZA chain has a non-FORTEZZA Certificate.
+SEC_ERROR_CANNOT_MOVE_SENSITIVE_KEY=A sensitive key cannot be moved to the slot where it is needed.
+SEC_ERROR_JS_INVALID_MODULE_NAME=Invalid module name.
+SEC_ERROR_JS_INVALID_DLL=Invalid module path/filename
+SEC_ERROR_JS_ADD_MOD_FAILURE=Unable to add module
+SEC_ERROR_JS_DEL_MOD_FAILURE=Unable to delete module
+SEC_ERROR_OLD_KRL=New KRL is not later than the current one.
+SEC_ERROR_CKL_CONFLICT=New CKL has different issuer than current CKL. Delete current CKL.
+SEC_ERROR_CERT_NOT_IN_NAME_SPACE=The Certifying Authority for this certificate is not permitted to issue a certificate with this name.
+SEC_ERROR_KRL_NOT_YET_VALID=The key revocation list for this certificate is not yet valid.
+SEC_ERROR_CRL_NOT_YET_VALID=The certificate revocation list for this certificate is not yet valid.
+SEC_ERROR_UNKNOWN_CERT=The requested certificate could not be found.
+SEC_ERROR_UNKNOWN_SIGNER=The signer’s certificate could not be found.
+SEC_ERROR_CERT_BAD_ACCESS_LOCATION=The location for the certificate status server has invalid format.
+SEC_ERROR_OCSP_UNKNOWN_RESPONSE_TYPE=The OCSP response cannot be fully decoded; it is of an unknown type.
+SEC_ERROR_OCSP_BAD_HTTP_RESPONSE=The OCSP server returned unexpected/invalid HTTP data.
+SEC_ERROR_OCSP_MALFORMED_REQUEST=The OCSP server found the request to be corrupted or improperly formed.
+SEC_ERROR_OCSP_SERVER_ERROR=The OCSP server experienced an internal error.
+SEC_ERROR_OCSP_TRY_SERVER_LATER=The OCSP server suggests trying again later.
+SEC_ERROR_OCSP_REQUEST_NEEDS_SIG=The OCSP server requires a signature on this request.
+SEC_ERROR_OCSP_UNAUTHORIZED_REQUEST=The OCSP server has refused this request as unauthorized.
+SEC_ERROR_OCSP_UNKNOWN_RESPONSE_STATUS=The OCSP server returned an unrecognizable status.
+SEC_ERROR_OCSP_UNKNOWN_CERT=The OCSP server has no status for the certificate.
+SEC_ERROR_OCSP_NOT_ENABLED=You must enable OCSP before performing this operation.
+SEC_ERROR_OCSP_NO_DEFAULT_RESPONDER=You must set the OCSP default responder before performing this operation.
+SEC_ERROR_OCSP_MALFORMED_RESPONSE=The response from the OCSP server was corrupted or improperly formed.
+SEC_ERROR_OCSP_UNAUTHORIZED_RESPONSE=The signer of the OCSP response is not authorized to give status for this certificate.
+SEC_ERROR_OCSP_FUTURE_RESPONSE=The OCSP response is not yet valid (contains a date in the future).
+SEC_ERROR_OCSP_OLD_RESPONSE=The OCSP response contains out-of-date information.
+SEC_ERROR_DIGEST_NOT_FOUND=The CMS or PKCS #7 Digest was not found in signed message.
+SEC_ERROR_UNSUPPORTED_MESSAGE_TYPE=The CMS or PKCS #7 Message type is unsupported.
+SEC_ERROR_MODULE_STUCK=PKCS #11 module could not be removed because it is still in use.
+SEC_ERROR_BAD_TEMPLATE=Could not decode ASN.1 data. Specified template was invalid.
+SEC_ERROR_CRL_NOT_FOUND=No matching CRL was found.
+SEC_ERROR_REUSED_ISSUER_AND_SERIAL=You are attempting to import a cert with the same issuer/serial as an existing cert, but that is not the same cert.
+SEC_ERROR_BUSY=NSS could not shutdown. Objects are still in use.
+SEC_ERROR_EXTRA_INPUT=DER-encoded message contained extra unused data.
+SEC_ERROR_UNSUPPORTED_ELLIPTIC_CURVE=Unsupported elliptic curve.
+SEC_ERROR_UNSUPPORTED_EC_POINT_FORM=Unsupported elliptic curve point form.
+SEC_ERROR_UNRECOGNIZED_OID=Unrecognized Object Identifier.
+SEC_ERROR_OCSP_INVALID_SIGNING_CERT=Invalid OCSP signing certificate in OCSP response.
+SEC_ERROR_REVOKED_CERTIFICATE_CRL=Certificate is revoked in issuer’s certificate revocation list.
+SEC_ERROR_REVOKED_CERTIFICATE_OCSP=Issuer’s OCSP responder reports certificate is revoked.
+SEC_ERROR_CRL_INVALID_VERSION=Issuer’s Certificate Revocation List has an unknown version number.
+SEC_ERROR_CRL_V1_CRITICAL_EXTENSION=Issuer’s V1 Certificate Revocation List has a critical extension.
+SEC_ERROR_CRL_UNKNOWN_CRITICAL_EXTENSION=Issuer’s V2 Certificate Revocation List has an unknown critical extension.
+SEC_ERROR_UNKNOWN_OBJECT_TYPE=Unknown object type specified.
+SEC_ERROR_INCOMPATIBLE_PKCS11=PKCS #11 driver violates the spec in an incompatible way.
+SEC_ERROR_NO_EVENT=No new slot event is available at this time.
+SEC_ERROR_CRL_ALREADY_EXISTS=CRL already exists.
+SEC_ERROR_NOT_INITIALIZED=NSS is not initialized.
+SEC_ERROR_TOKEN_NOT_LOGGED_IN=The operation failed because the PKCS#11 token is not signed in.
+SEC_ERROR_OCSP_RESPONDER_CERT_INVALID=Configured OCSP responder’s certificate is invalid.
+SEC_ERROR_OCSP_BAD_SIGNATURE=OCSP response has an invalid signature.
+SEC_ERROR_OUT_OF_SEARCH_LIMITS=Certificate validation search is out of search limits
+SEC_ERROR_INVALID_POLICY_MAPPING=Policy mapping contains anypolicy
+SEC_ERROR_POLICY_VALIDATION_FAILED=Certificate chain fails policy validation
+SEC_ERROR_UNKNOWN_AIA_LOCATION_TYPE=Unknown location type in cert AIA extension
+SEC_ERROR_BAD_HTTP_RESPONSE=Server returned bad HTTP response
+SEC_ERROR_BAD_LDAP_RESPONSE=Server returned bad LDAP response
+SEC_ERROR_FAILED_TO_ENCODE_DATA=Failed to encode data with ASN1 encoder
+SEC_ERROR_BAD_INFO_ACCESS_LOCATION=Bad information access location in certificate extension
+SEC_ERROR_LIBPKIX_INTERNAL=Libpkix internal error occurred during certificate validation.
+SEC_ERROR_PKCS11_GENERAL_ERROR=A PKCS #11 module returned CKR_GENERAL_ERROR, indicating that an unrecoverable error has occurred.
+SEC_ERROR_PKCS11_FUNCTION_FAILED=A PKCS #11 module returned CKR_FUNCTION_FAILED, indicating that the requested function could not be performed. Trying the same operation again might succeed.
+SEC_ERROR_PKCS11_DEVICE_ERROR=A PKCS #11 module returned CKR_DEVICE_ERROR, indicating that a problem has occurred with the token or slot.
+SEC_ERROR_BAD_INFO_ACCESS_METHOD=Unknown information access method in certificate extension.
+SEC_ERROR_CRL_IMPORT_FAILED=Error attempting to import a CRL.
+SEC_ERROR_EXPIRED_PASSWORD=The password expired.
+SEC_ERROR_LOCKED_PASSWORD=The password is locked.
+SEC_ERROR_UNKNOWN_PKCS11_ERROR=Unknown PKCS #11 error.
+SEC_ERROR_BAD_CRL_DP_URL=Invalid or unsupported URL in CRL distribution point name.
+SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED=The certificate was signed using an signature algorithm that is disabled because it is not secure.
+MOZILLA_PKIX_ERROR_KEY_PINNING_FAILURE=The server uses key pinning (HPKP) but no trusted certificate chain could be constructed that matches the pinset. Key pinning violations cannot be overridden.
+MOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY=The server uses a certificate with a basic constraints extension identifying it as a certificate authority. For a properly-issued certificate, this should not be the case.
+MOZILLA_PKIX_ERROR_INADEQUATE_KEY_SIZE=The server presented a certificate with a key size that is too small to establish a secure connection.
+MOZILLA_PKIX_ERROR_V1_CERT_USED_AS_CA=An X.509 version 1 certificate that is not a trust anchor was used to issue the server’s certificate. X.509 version 1 certificates are deprecated and should not be used to sign other certificates.
+MOZILLA_PKIX_ERROR_NOT_YET_VALID_CERTIFICATE=The server presented a certificate that is not yet valid.
+MOZILLA_PKIX_ERROR_NOT_YET_VALID_ISSUER_CERTIFICATE=A certificate that is not yet valid was used to issue the server’s certificate.
+MOZILLA_PKIX_ERROR_SIGNATURE_ALGORITHM_MISMATCH=The signature algorithm in the signature field of the certificate does not match the algorithm in its signatureAlgorithm field.
+MOZILLA_PKIX_ERROR_OCSP_RESPONSE_FOR_CERT_MISSING=The OCSP response does not include a status for the certificate being verified.
+MOZILLA_PKIX_ERROR_VALIDITY_TOO_LONG=The server presented a certificate that is valid for too long.
+MOZILLA_PKIX_ERROR_REQUIRED_TLS_FEATURE_MISSING=A required TLS feature is missing.
+MOZILLA_PKIX_ERROR_INVALID_INTEGER_ENCODING=The server presented a certificate that contains an invalid encoding of an integer. Common causes include negative serial numbers, negative RSA moduli, and encodings that are longer than necessary.
+MOZILLA_PKIX_ERROR_EMPTY_ISSUER_NAME=The server presented a certificate with an empty issuer distinguished name.
+MOZILLA_PKIX_ERROR_ADDITIONAL_POLICY_CONSTRAINT_FAILED=An additional policy constraint failed when validating this certificate.
+MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT=The certificate is not trusted because it is self-signed.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/pipnss/pipnss.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/pipnss/pipnss.properties
new file mode 100644
index 0000000000..39eb1e2c5e
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/pipnss/pipnss.properties
@@ -0,0 +1,136 @@
+#
+# 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 http://mozilla.org/MPL/2.0/.
+
+CertPasswordPrompt=Please enter the password for the PKCS#11 token %S.
+
+CertPasswordPromptDefault=Please enter your Primary Password.
+
+# The following strings have special requirements: they must fit in a 32 or 64
+# bytes buffer after being encoded to UTF-8.
+#
+# It's possible to verify the length of a translation using the Browser Console
+# in Firefox and evaluating the following code:
+#
+# (new TextEncoder('utf-8').encode('YOURSTRING')).length
+#
+# Simply replace YOURSTRING with your translation.
+#
+# If it's not possible to produce an understandable translation within these
+# limits, keeping the English text is an acceptable workaround.
+
+# The following strings have special requirements: they must fit in a 32 or 64
+# bytes buffer after being encoded to UTF-8.
+#
+# It's possible to verify the length of a translation using the Browser Console
+# in Firefox and evaluating the following code:
+#
+# (new TextEncoder().encode('YOURSTRING')).length
+#
+# Simply replace YOURSTRING with your translation.
+#
+# If it's not possible to produce an understandable translation within these
+# limits, keeping the English text is an acceptable workaround.
+
+# LOCALIZATION NOTE (RootCertModuleName): string limit is 64 bytes after
+# conversion to UTF-8.
+# length_limit = 64 bytes
+RootCertModuleName=Builtin Roots Module
+# LOCALIZATION NOTE (ManufacturerID): string limit is 32 bytes after conversion
+# to UTF-8.
+# length_limit = 32 bytes
+ManufacturerID=Mozilla.org
+# LOCALIZATION NOTE (LibraryDescription): string limit is 32 bytes after
+# conversion to UTF-8.
+# length_limit = 32 bytes
+LibraryDescription=PSM Internal Crypto Services
+# LOCALIZATION NOTE (TokenDescription): string limit is 32 bytes after
+# conversion to UTF-8.
+# length_limit = 32 bytes
+TokenDescription=Generic Crypto Services
+# LOCALIZATION NOTE (PrivateTokenDescription): string limit is 32 bytes after
+# conversion to UTF-8.
+# length_limit = 32 bytes
+PrivateTokenDescription=Software Security Device
+# LOCALIZATION NOTE (SlotDescription): string limit is 64 bytes after conversion
+# to UTF-8.
+# length_limit = 64 bytes
+SlotDescription=PSM Internal Cryptographic Services
+# LOCALIZATION NOTE (PrivateSlotDescription): string limit is 64 bytes after
+# conversion to UTF-8.
+# length_limit = 64 bytes
+PrivateSlotDescription=PSM Private Keys
+# LOCALIZATION NOTE (Fips140TokenDescription): string limit is 32 bytes after
+# conversion to UTF-8.
+# length_limit = 32 bytes
+Fips140TokenDescription=Software Security Device (FIPS)
+# LOCALIZATION NOTE (Fips140SlotDescription): string limit is 64 bytes after
+# conversion to UTF-8.
+# length_limit = 64 bytes
+Fips140SlotDescription=FIPS 140 Cryptographic, Key and Certificate Services
+
+# LOCALIZATION NOTE (nick_template): $1s is the common name from a cert (e.g. "Mozilla"), $2s is the CA name (e.g. VeriSign)
+nick_template=%1$s’s %2$s ID
+
+CertDumpKUSign=Signing
+CertDumpKUNonRep=Non-repudiation
+CertDumpKUEnc=Key Encipherment
+CertDumpKUDEnc=Data Encipherment
+CertDumpKUKA=Key Agreement
+CertDumpKUCertSign=Certificate Signer
+CertDumpKUCRLSigner=CRL Signer
+
+PSMERR_SSL_Disabled=Can’t connect securely because the SSL protocol has been disabled.
+PSMERR_SSL2_Disabled=Can’t connect securely because the site uses an older, insecure version of the SSL protocol.
+PSMERR_HostReusedIssuerSerial=You have received an invalid certificate. Please contact the server administrator or email correspondent and give them the following information:\n\nYour certificate contains the same serial number as another certificate issued by the certificate authority. Please get a new certificate containing a unique serial number.
+
+# LOCALIZATION NOTE (SSLConnectionErrorPrefix2): %1$S is the host string, %2$S is more detailed information (localized as well).
+SSLConnectionErrorPrefix2=An error occurred during a connection to %1$S. %2$S\n
+
+certErrorIntro=%S uses an invalid security certificate.
+
+certErrorTrust_SelfSigned=The certificate is not trusted because it is self-signed.
+certErrorTrust_UnknownIssuer=The certificate is not trusted because the issuer certificate is unknown.
+certErrorTrust_UnknownIssuer2=The server might not be sending the appropriate intermediate certificates.
+certErrorTrust_UnknownIssuer3=An additional root certificate may need to be imported.
+certErrorTrust_CaInvalid=The certificate is not trusted because it was issued by an invalid CA certificate.
+certErrorTrust_Issuer=The certificate is not trusted because the issuer certificate is not trusted.
+certErrorTrust_SignatureAlgorithmDisabled=The certificate is not trusted because it was signed using a signature algorithm that was disabled because that algorithm is not secure.
+certErrorTrust_ExpiredIssuer=The certificate is not trusted because the issuer certificate has expired.
+certErrorTrust_Untrusted=The certificate does not come from a trusted source.
+certErrorTrust_MitM=Your connection is being intercepted by a TLS proxy. Uninstall it if possible or configure your device to trust its root certificate.
+
+certErrorMismatch=The certificate is not valid for the name %S.
+# LOCALIZATION NOTE (certErrorMismatchSinglePrefix): %S is replaced by the domain for which the certificate is valid
+certErrorMismatchSinglePrefix=The certificate is only valid for %S.
+certErrorMismatchMultiple=The certificate is only valid for the following names:
+
+# LOCALIZATION NOTE (certErrorExpiredNow): Do not translate %1$S (date+time of expired certificate) or %2$S (current date+time)
+certErrorExpiredNow=The certificate expired on %1$S. The current time is %2$S.
+
+# LOCALIZATION NOTE (certErrorNotYetValidNow): Do not translate %1$S (date+time certificate will become valid) or %2$S (current date+time)
+certErrorNotYetValidNow=The certificate will not be valid until %1$S. The current time is %2$S.
+
+certErrorMitM=Websites prove their identity via certificates, which are issued by certificate authorities.
+# LOCALIZATION NOTE (certErrorMitM2): %S is brandShortName
+certErrorMitM2=%S is backed by the non-profit Mozilla, which administers a completely open certificate authority (CA) store. The CA store helps ensure that certificate authorities are following best practices for user security.
+# LOCALIZATION NOTE (certErrorMitM3): %S is brandShortName
+certErrorMitM3=%S uses the Mozilla CA store to verify that a connection is secure, rather than certificates supplied by the user’s operating system. So, if an antivirus program or a network is intercepting a connection with a security certificate issued by a CA that is not in the Mozilla CA store, the connection is considered unsafe.
+
+certErrorSymantecDistrustAdministrator=You may notify the website’s administrator about this problem.
+
+# LOCALIZATION NOTE (certErrorCodePrefix3): %S is replaced by the error code.
+certErrorCodePrefix3=Error code: %S
+
+P12DefaultNickname=Imported Certificate
+CertUnknown=Unknown
+CertNoEmailAddress=(no email address)
+CaCertExists=This certificate is already installed as a certificate authority.
+NotACACert=This is not a certificate authority certificate, so it can’t be imported into the certificate authority list.
+UserCertIgnoredNoPrivateKey=This personal certificate can’t be installed because you do not own the corresponding private key which was created when the certificate was requested.
+UserCertImported=Your personal certificate has been installed. You should keep a backup copy of this certificate.
+CertOrgUnknown=(Unknown)
+CertNotStored=(Not Stored)
+CertExceptionPermanent=Permanent
+CertExceptionTemporary=Temporary
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/pippki/pippki.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/pippki/pippki.properties
new file mode 100644
index 0000000000..1127f5ca25
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/pippki/pippki.properties
@@ -0,0 +1,75 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Download Cert dialog
+# LOCALIZATION NOTE(newCAMessage1):
+# %S is a string representative of the certificate being downloaded/imported.
+newCAMessage1=Do you want to trust “%S” for the following purposes?
+unnamedCA=Certificate Authority (unnamed)
+
+getPKCS12FilePasswordMessage=Please enter the password that was used to encrypt this certificate backup:
+
+# Client auth
+clientAuthRemember=Remember this decision
+# LOCALIZATION NOTE(clientAuthNickAndSerial): Represents a single cert when the
+# user is choosing from a list of certificates.
+# %1$S is the nickname of the cert.
+# %2$S is the serial number of the cert in AA:BB:CC hex format.
+clientAuthNickAndSerial=%1$S [%2$S]
+# LOCALIZATION NOTE(clientAuthHostnameAndPort):
+# %1$S is the hostname of the server.
+# %2$S is the port of the server.
+clientAuthHostnameAndPort=%1$S:%2$S
+# LOCALIZATION NOTE(clientAuthMessage1): %S is the Organization of the server
+# cert.
+clientAuthMessage1=Organization: “%S”
+# LOCALIZATION NOTE(clientAuthMessage2): %S is the Organization of the issuer
+# cert of the server cert.
+clientAuthMessage2=Issued Under: “%S”
+# LOCALIZATION NOTE(clientAuthIssuedTo): %1$S is the Distinguished Name of the
+# currently selected client cert, such as "CN=John Doe,OU=Example" (without
+# quotes).
+clientAuthIssuedTo=Issued to: %1$S
+# LOCALIZATION NOTE(clientAuthSerial): %1$S is the serial number of the selected
+# cert in AA:BB:CC hex format.
+clientAuthSerial=Serial number: %1$S
+# LOCALIZATION NOTE(clientAuthValidityPeriod):
+# %1$S is the already localized notBefore date of the selected cert.
+# %2$S is the already localized notAfter date of the selected cert.
+clientAuthValidityPeriod=Valid from %1$S to %2$S
+# LOCALIZATION NOTE(clientAuthKeyUsages): %1$S is a comma separated list of
+# already localized key usages the selected cert is valid for.
+clientAuthKeyUsages=Key Usages: %1$S
+# LOCALIZATION NOTE(clientAuthEmailAddresses): %1$S is a comma separated list of
+# e-mail addresses the selected cert is valid for.
+clientAuthEmailAddresses=Email addresses: %1$S
+# LOCALIZATION NOTE(clientAuthIssuedBy): %1$S is the Distinguished Name of the
+# cert which issued the selected cert.
+clientAuthIssuedBy=Issued by: %1$S
+# LOCALIZATION NOTE(clientAuthStoredOn): %1$S is the name of the PKCS #11 token
+# the selected cert is stored on.
+clientAuthStoredOn=Stored on: %1$S
+
+# Page Info
+pageInfo_NoEncryption=Connection Not Encrypted
+pageInfo_Privacy_None1=The website %S does not support encryption for the page you are viewing.
+pageInfo_Privacy_None2=Information sent over the Internet without encryption can be seen by other people while it is in transit.
+pageInfo_Privacy_None4=The page you are viewing was not encrypted before being transmitted over the Internet.
+# LOCALIZATION NOTE (pageInfo_EncryptionWithBitsAndProtocol and pageInfo_BrokenEncryption):
+# %1$S is the name of the encryption standard,
+# %2$S is the key size of the cipher.
+# %3$S is protocol version like "SSL 3" or "TLS 1.2"
+pageInfo_EncryptionWithBitsAndProtocol=Connection Encrypted (%1$S, %2$S bit keys, %3$S)
+pageInfo_BrokenEncryption=Broken Encryption (%1$S, %2$S bit keys, %3$S)
+pageInfo_Privacy_Encrypted1=The page you are viewing was encrypted before being transmitted over the Internet.
+pageInfo_Privacy_Encrypted2=Encryption makes it difficult for unauthorized people to view information travelling between computers. It is therefore unlikely that anyone read this page as it travelled across the network.
+pageInfo_MixedContent=Connection Partially Encrypted
+pageInfo_MixedContent2=Parts of the page you are viewing were not encrypted before being transmitted over the Internet.
+pageInfo_WeakCipher=Your connection to this website uses weak encryption and is not private. Other people can view your information or modify the website’s behaviour.
+pageInfo_CertificateTransparency_Compliant=This website complies with the Certificate Transparency policy.
+
+# Token Manager
+password_not_set=(not set)
+enable_fips=Enable FIPS
+
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/places/places.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/places/places.properties
new file mode 100644
index 0000000000..5d12936232
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/places/places.properties
@@ -0,0 +1,33 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+BookmarksMenuFolderTitle=Bookmarks Menu
+BookmarksToolbarFolderTitle=Bookmarks Toolbar
+OtherBookmarksFolderTitle=Other Bookmarks
+TagsFolderTitle=Tags
+MobileBookmarksFolderTitle=Mobile Bookmarks
+
+OrganizerQueryHistory=History
+OrganizerQueryDownloads=Downloads
+OrganizerQueryAllBookmarks=All Bookmarks
+
+# LOCALIZATION NOTE (dateName):
+# These are used to generate history containers when history is grouped by date
+finduri-AgeInDays-is-0=Today
+finduri-AgeInDays-is-1=Yesterday
+finduri-AgeInDays-is=%S days ago
+finduri-AgeInDays-last-is=Last %S days
+finduri-AgeInDays-isgreater=Older than %S days
+finduri-AgeInMonths-is-0=This month
+finduri-AgeInMonths-isgreater=Older than %S months
+
+# LOCALIZATION NOTE (localFiles):
+# This is used to generate local files container when history is grouped by site
+localhost=(local files)
+
+# LOCALIZATION NOTE
+# The string is used for showing file size of each backup in the "fileRestorePopup" popup
+# %1$S is the file size
+# %2$S is the file size unit
+backupFileSizeText=%1$S %2$S
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/pdfviewer/chrome.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/pdfviewer/chrome.properties
new file mode 100644
index 0000000000..ef0746c798
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/pdfviewer/chrome.properties
@@ -0,0 +1,20 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Chrome notification bar messages and buttons
+unsupported_feature=This PDF document might not be displayed correctly.
+unsupported_feature_forms=This PDF document contains forms. The filling of form fields is not supported.
+unsupported_feature_signatures=This PDF document contains digital signatures. Validation of signatures is not supported.
+open_with_different_viewer=Open With Different Viewer
+open_with_different_viewer.accessKey=O
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/pdfviewer/viewer.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/pdfviewer/viewer.properties
new file mode 100644
index 0000000000..8e10fcfb89
--- /dev/null
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/pdfviewer/viewer.properties
@@ -0,0 +1,270 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Previous Page
+previous_label=Previous
+next.title=Next Page
+next_label=Next
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Page
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=of {{pagesCount}}
+# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
+# will be replaced by a number representing the currently visible page,
+# respectively a number representing the total number of pages in the document.
+page_of_pages=({{pageNumber}} of {{pagesCount}})
+
+zoom_out.title=Zoom Out
+zoom_out_label=Zoom Out
+zoom_in.title=Zoom In
+zoom_in_label=Zoom In
+zoom.title=Zoom
+presentation_mode.title=Switch to Presentation Mode
+presentation_mode_label=Presentation Mode
+open_file.title=Open File
+open_file_label=Open
+print.title=Print
+print_label=Print
+save.title=Save
+save_label=Save
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Download
+# LOCALIZATION NOTE (download_button_label): used in Firefox for Android as a label for the download button (“download” is a verb).
+# Length of the translation matters since we are in a mobile context, with limited screen estate.
+download_button_label=Download
+bookmark1.title=Current Page (View URL from Current Page)
+bookmark1_label=Current Page
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Open in app
+# LOCALIZATION NOTE (open_in_app_label): This string is used in Firefox for Android. Length of the translation matters since we are in a mobile context, with limited screen estate.
+open_in_app_label=Open in app
+
+# Secondary toolbar and context menu
+tools.title=Tools
+tools_label=Tools
+first_page.title=Go to First Page
+first_page_label=Go to First Page
+last_page.title=Go to Last Page
+last_page_label=Go to Last Page
+page_rotate_cw.title=Rotate Clockwise
+page_rotate_cw_label=Rotate Clockwise
+page_rotate_ccw.title=Rotate Counterclockwise
+page_rotate_ccw_label=Rotate Counterclockwise
+
+cursor_text_select_tool.title=Enable Text Selection Tool
+cursor_text_select_tool_label=Text Selection Tool
+cursor_hand_tool.title=Enable Hand Tool
+cursor_hand_tool_label=Hand Tool
+
+scroll_page.title=Use Page Scrolling
+scroll_page_label=Page Scrolling
+scroll_vertical.title=Use Vertical Scrolling
+scroll_vertical_label=Vertical Scrolling
+scroll_horizontal.title=Use Horizontal Scrolling
+scroll_horizontal_label=Horizontal Scrolling
+scroll_wrapped.title=Use Wrapped Scrolling
+scroll_wrapped_label=Wrapped Scrolling
+
+spread_none.title=Do not join page spreads
+spread_none_label=No Spreads
+spread_odd.title=Join page spreads starting with odd-numbered pages
+spread_odd_label=Odd Spreads
+spread_even.title=Join page spreads starting with even-numbered pages
+spread_even_label=Even Spreads
+
+# Document properties dialog box
+document_properties.title=Document Properties…
+document_properties_label=Document Properties…
+document_properties_file_name=File name:
+document_properties_file_size=File size:
+# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
+# will be replaced by the PDF file size in kilobytes, respectively in bytes.
+document_properties_kb={{size_kb}} kB ({{size_b}} bytes)
+# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
+# will be replaced by the PDF file size in megabytes, respectively in bytes.
+document_properties_mb={{size_mb}} MB ({{size_b}} bytes)
+document_properties_title=Title:
+document_properties_author=Author:
+document_properties_subject=Subject:
+document_properties_keywords=Keywords:
+document_properties_creation_date=Creation Date:
+document_properties_modification_date=Modification Date:
+# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
+# will be replaced by the creation/modification date, and time, of the PDF file.
+document_properties_date_string={{date}}, {{time}}
+document_properties_creator=Creator:
+document_properties_producer=PDF Producer:
+document_properties_version=PDF Version:
+document_properties_page_count=Page Count:
+document_properties_page_size=Page Size:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=portrait
+document_properties_page_size_orientation_landscape=landscape
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Letter
+document_properties_page_size_name_legal=Legal
+# LOCALIZATION NOTE (document_properties_page_size_dimension_string):
+# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by
+# the size, respectively their unit of measurement and orientation, of the (current) page.
+document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} ({{orientation}})
+# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string):
+# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by
+# the size, respectively their unit of measurement, name, and orientation, of the (current) page.
+document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})
+# LOCALIZATION NOTE (document_properties_linearized): The linearization status of
+# the document; usually called "Fast Web View" in English locales of Adobe software.
+document_properties_linearized=Fast Web View:
+document_properties_linearized_yes=Yes
+document_properties_linearized_no=No
+document_properties_close=Close
+
+print_progress_message=Preparing document for printing…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Cancel
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Toggle Sidebar
+toggle_sidebar_notification2.title=Toggle Sidebar (document contains outline/attachments/layers)
+toggle_sidebar_label=Toggle Sidebar
+document_outline.title=Show Document Outline (double-click to expand/collapse all items)
+document_outline_label=Document Outline
+attachments.title=Show Attachments
+attachments_label=Attachments
+layers.title=Show Layers (double-click to reset all layers to the default state)
+layers_label=Layers
+thumbs.title=Show Thumbnails
+thumbs_label=Thumbnails
+current_outline_item.title=Find Current Outline Item
+current_outline_item_label=Current Outline Item
+findbar.title=Find in Document
+findbar_label=Find
+
+additional_layers=Additional Layers
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Page {{page}}
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Page {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Thumbnail of Page {{page}}
+
+# Find panel button title and messages
+find_input.title=Find
+find_input.placeholder=Find in document…
+find_previous.title=Find the previous occurrence of the phrase
+find_previous_label=Previous
+find_next.title=Find the next occurrence of the phrase
+find_next_label=Next
+find_highlight=Highlight All
+find_match_case_label=Match Case
+find_match_diacritics_label=Match Diacritics
+find_entire_word_label=Whole Words
+find_reached_top=Reached top of document, continued from bottom
+find_reached_bottom=Reached end of document, continued from top
+# LOCALIZATION NOTE (find_match_count): The supported plural forms are
+# [one|two|few|many|other], with [other] as the default value.
+# "{{current}}" and "{{total}}" will be replaced by a number representing the
+# index of the currently active find result, respectively a number representing
+# the total number of matches in the document.
+find_match_count={[ plural(total) ]}
+find_match_count[one]={{current}} of {{total}} match
+find_match_count[two]={{current}} of {{total}} matches
+find_match_count[few]={{current}} of {{total}} matches
+find_match_count[many]={{current}} of {{total}} matches
+find_match_count[other]={{current}} of {{total}} matches
+# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
+# [zero|one|two|few|many|other], with [other] as the default value.
+# "{{limit}}" will be replaced by a numerical value.
+find_match_count_limit={[ plural(limit) ]}
+find_match_count_limit[zero]=More than {{limit}} matches
+find_match_count_limit[one]=More than {{limit}} match
+find_match_count_limit[two]=More than {{limit}} matches
+find_match_count_limit[few]=More than {{limit}} matches
+find_match_count_limit[many]=More than {{limit}} matches
+find_match_count_limit[other]=More than {{limit}} matches
+find_not_found=Phrase not found
+
+# Predefined zoom values
+page_scale_width=Page Width
+page_scale_fit=Page Fit
+page_scale_auto=Automatic Zoom
+page_scale_actual=Actual Size
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading_error=An error occurred while loading the PDF.
+invalid_file_error=Invalid or corrupted PDF file.
+missing_file_error=Missing PDF file.
+unexpected_response_error=Unexpected server response.
+rendering_error=An error occurred while rendering the page.
+
+# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
+# replaced by the modification date, and time, of the annotation.
+annotation_date_string={{date}}, {{time}}
+
+# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[{{type}} Annotation]
+password_label=Enter the password to open this PDF file.
+password_invalid=Invalid password. Please try again.
+password_ok=OK
+password_cancel=Cancel
+
+printing_not_supported=Warning: Printing is not fully supported by this browser.
+printing_not_ready=Warning: The PDF is not fully loaded for printing.
+web_fonts_disabled=Web fonts are disabled: unable to use embedded PDF fonts.
+
+# Editor
+editor_free_text2.title=Text
+editor_free_text2_label=Text
+editor_ink2.title=Draw
+editor_ink2_label=Draw
+
+editor_stamp.title=Add an image
+editor_stamp_label=Add an image
+
+editor_stamp1.title=Add or edit images
+editor_stamp1_label=Add or edit images
+
+free_text2_default_content=Start typing…
+
+# Editor Parameters
+editor_free_text_color=Colour
+editor_free_text_size=Size
+editor_ink_color=Colour
+editor_ink_thickness=Thickness
+editor_ink_opacity=Opacity
+
+editor_stamp_add_image_label=Add image
+editor_stamp_add_image.title=Add image
+
+# Editor aria
+editor_free_text2_aria_label=Text Editor
+editor_ink2_aria_label=Draw Editor
+editor_ink_canvas_aria_label=User-created image
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/branding/brand.ftl b/thunderbird-l10n/en-CA/localization/en-CA/branding/brand.ftl
new file mode 100644
index 0000000000..5054ea8057
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/branding/brand.ftl
@@ -0,0 +1,22 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## Thunderbird Brand
+##
+## Thunderbird must be treated as a brand, and kept in English.
+## It cannot be:
+## - Transliterated.
+## - Translated.
+##
+## Reference: https://www.mozilla.org/styleguide/communications/translation/
+
+-brand-shorter-name = Thunderbird
+-brand-short-name = Thunderbird
+-brand-full-name = Mozilla Thunderbird
+# This brand name can be used in messages where the product name needs to
+# remain unchanged across different versions (Daily, Beta, etc.).
+-brand-product-name = Thunderbird
+-vendor-short-name = Mozilla
+trademarkInfo = Mozilla Thunderbird and the Thunderbird logos are trademarks of the Mozilla Foundation.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/browser/appExtensionFields.ftl b/thunderbird-l10n/en-CA/localization/en-CA/browser/appExtensionFields.ftl
new file mode 100644
index 0000000000..502bf2fcee
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/browser/appExtensionFields.ftl
@@ -0,0 +1,16 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## Theme names and descriptions used in the Themes panel in about:addons
+
+# "Auto" is short for automatic. It can be localized without limitations.
+extension-default-theme-name-auto = System theme — auto
+extension-default-theme-description = Follow the operating system setting for buttons, menus, and windows.
+
+extension-thunderbird-compact-light-name = Light
+extension-thunderbird-compact-light-description = A theme with a light colour scheme.
+
+extension-thunderbird-compact-dark-name = Dark
+extension-thunderbird-compact-dark-description = A theme with a dark colour scheme.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/browser/branding/brandings.ftl b/thunderbird-l10n/en-CA/localization/en-CA/browser/branding/brandings.ftl
new file mode 100644
index 0000000000..9ada8da73a
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/browser/branding/brandings.ftl
@@ -0,0 +1,18 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## The following feature names must be treated as a brand.
+##
+## They cannot be:
+## - Transliterated.
+## - Translated.
+##
+## Declension should be avoided where possible, leaving the original
+## brand unaltered in prominent UI positions.
+##
+## For further details, consult:
+## https://mozilla-l10n.github.io/styleguides/mozilla_general/#brands-copyright-and-trademark
+
+-profiler-brand-name = Firefox Profiler
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/browser/components/mozFiveStar.ftl b/thunderbird-l10n/en-CA/localization/en-CA/browser/components/mozFiveStar.ftl
new file mode 100644
index 0000000000..79e408238b
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/browser/components/mozFiveStar.ftl
@@ -0,0 +1,9 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# The rating out of 5 stars.
+# Variables:
+# $rating (number) - A number between 0 and 5. The translation should show at most one digit after the comma.
+moz-five-star-rating =
+ .title = Rated { NUMBER($rating, maximumFractionDigits: 1) } out of 5
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/browser/components/mozSupportLink.ftl b/thunderbird-l10n/en-CA/localization/en-CA/browser/components/mozSupportLink.ftl
new file mode 100644
index 0000000000..0cfaf42816
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/browser/components/mozSupportLink.ftl
@@ -0,0 +1,5 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+moz-support-link-text = Learn more
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-context-menus.ftl b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-context-menus.ftl
new file mode 100644
index 0000000000..fe0dd4e0fe
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-context-menus.ftl
@@ -0,0 +1,10 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+list-calendar-context-reload-menuitem =
+ .label = Synchronize
+ .accesskey = S
+calendar-item-context-menu-modify-menuitem =
+ .label = Edit
+ .accesskey = E
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-delete-prompt.ftl b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000..586849e2e9
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-delete-prompt.ftl
@@ -0,0 +1,35 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+calendar-delete-event-prompt-title =
+ { $count ->
+ [one] Delete Event
+ *[other] Delete Events
+ }
+calendar-delete-event-prompt-message =
+ { $count ->
+ [one] Do you really want to delete this event?
+ *[other] Do you really want to delete these { $count } events?
+ }
+calendar-delete-task-prompt-title =
+ { $count ->
+ [one] Delete Task
+ *[other] Delete Tasks
+ }
+calendar-delete-task-prompt-message =
+ { $count ->
+ [one] Do you really want to delete this task?
+ *[other] Do you really want to delete these { $count } tasks?
+ }
+calendar-delete-item-prompt-title =
+ { $count ->
+ [one] Delete Item
+ *[other] Delete Items
+ }
+calendar-delete-item-prompt-message =
+ { $count ->
+ [one] Do you really want to delete this item?
+ *[other] Do you really want to delete these { $count } items?
+ }
+calendar-delete-prompt-disable-message = Don't ask me again.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-editable-item.ftl b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000..80e61d97b8
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-editable-item.ftl
@@ -0,0 +1,30 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+calendar-editable-item-privacy-icon-private =
+ .alt = Privacy: Private Event
+calendar-editable-item-privacy-icon-confidential =
+ .alt = Privacy: Show Time and Date Only
+calendar-editable-item-recurrence =
+ .alt = Recurring
+calendar-editable-item-recurrence-exception =
+ .alt = Recurrence exception
+calendar-editable-item-todo-icon-task =
+ .alt = Task
+calendar-editable-item-todo-icon-completed-task =
+ .alt = Completed task
+calendar-editable-item-multiday-event-icon-start =
+ .alt = Multiple-day event begins
+calendar-editable-item-multiday-event-icon-continue =
+ .alt = Multiple-day event continues
+calendar-editable-item-multiday-event-icon-end =
+ .alt = Multiple-day event ends
+calendar-editable-item-reminder-icon-alarm =
+ .alt = A reminder alert is scheduled
+calendar-editable-item-reminder-icon-suppressed-alarm =
+ .alt = A reminder alert is scheduled but currently suppressed
+calendar-editable-item-reminder-icon-email =
+ .alt = A reminder e-mail is scheduled
+calendar-editable-item-reminder-icon-audio =
+ .alt = A reminder audio alert is scheduled
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000..d7d7bef6c3
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,10 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+calendar-event-reminder-icon-display =
+ .alt = Show an Alert
+calendar-event-reminder-icon-email =
+ .alt = Send an E-mail
+calendar-event-reminder-icon-audio =
+ .alt = Play an audio Alert
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-event-listing.ftl b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-event-listing.ftl
new file mode 100644
index 0000000000..8c97b86d18
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-event-listing.ftl
@@ -0,0 +1,71 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+calendar-event-listing-close =
+ .tooltiptext = Close event search and event list
+
+## Listing columns
+
+calendar-event-listing-column-calendar-name =
+ .label = Calendar Name
+ .tooltiptext = Sort by calendar name
+calendar-event-listing-column-category =
+ .label = Category
+ .tooltiptext = Sort by category
+# This label and tooltip is used for the column with the checkbox in the task
+# tree view, which indicates whether a task has been marked as completed.
+calendar-event-listing-column-completed =
+ .label = Done
+ .tooltiptext = Sort by completion
+calendar-event-listing-column-completed-date =
+ .label = Completed
+ .tooltiptext = Sort by completed date
+calendar-event-listing-column-due-date =
+ .label = Due
+ .tooltiptext = Sort by due date
+calendar-event-listing-column-end-date =
+ .label = End
+ .tooltiptext = Sort by end date
+calendar-event-listing-column-location =
+ .label = Location
+ .tooltiptext = Sort by location
+calendar-event-listing-column-percent-complete =
+ .label = % Complete
+ .tooltiptext = Sort by % complete
+calendar-event-listing-column-priority =
+ .label = Priority
+ .tooltiptext = Sort by priority
+calendar-event-listing-column-start-date =
+ .label = Start
+ .tooltiptext = Sort by start date
+calendar-event-listing-column-status =
+ .label = Status
+ .tooltiptext = Sort by status
+calendar-event-listing-column-time-until-due =
+ .label = Due in
+ .tooltiptext = Sort by time until due
+calendar-event-listing-column-title =
+ .label = Title
+ .tooltiptext = Sort by title
+
+## Interval dropdown options
+
+calendar-event-listing-interval-calendar-month =
+ .label = Events in this Calendar Month
+calendar-event-listing-interval-current-view =
+ .label = Events in Current View
+calendar-event-listing-interval-next-7-days =
+ .label = Events in the Next 7 Days
+calendar-event-listing-interval-next-14-days =
+ .label = Events in the Next 14 Days
+calendar-event-listing-interval-next-31-days =
+ .label = Events in the Next 31 Days
+calendar-event-listing-interval-next-6-months =
+ .label = Events in the Next 6 Months
+calendar-event-listing-interval-next-12-months =
+ .label = Events in the Next 12 Months
+calendar-event-listing-interval-selected-day =
+ .label = Currently Selected Day
+calendar-event-listing-interval-today =
+ .label = Today’s Events
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-ics-file-dialog.ftl b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-ics-file-dialog.ftl
new file mode 100644
index 0000000000..82214383bc
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-ics-file-dialog.ftl
@@ -0,0 +1,46 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+calendar-ics-file-window-2 =
+ .title = Import Calendar Events and Tasks
+calendar-ics-file-window-title = Import Calendar Events and Tasks
+calendar-ics-file-dialog-import-event-button-label = Import Event
+calendar-ics-file-dialog-import-task-button-label = Import Task
+calendar-ics-file-dialog-2 =
+ .buttonlabelaccept = Import All
+calendar-ics-file-accept-button-ok-label = OK
+calendar-ics-file-cancel-button-close-label = Close
+calendar-ics-file-dialog-message-2 = Import from file:
+calendar-ics-file-dialog-calendar-menu-label = Import into calendar:
+calendar-ics-file-dialog-items-loading-message =
+ .value = Loading items…
+calendar-ics-file-dialog-search-input =
+ .placeholder = Filter items…
+calendar-ics-file-dialog-sort-start-ascending =
+ .label = Sort by start date (first to last)
+calendar-ics-file-dialog-sort-start-descending =
+ .label = Sort by start date (last to first)
+# "A > Z" is used as a concise way to say "alphabetical order".
+# You may replace it with something appropriate to your language.
+calendar-ics-file-dialog-sort-title-ascending =
+ .label = Sort by title (A > Z)
+# "Z > A" is used as a concise way to say "reverse alphabetical order".
+# You may replace it with something appropriate to your language.
+calendar-ics-file-dialog-sort-title-descending =
+ .label = Sort by title (Z > A)
+calendar-ics-file-dialog-progress-message = Importing…
+calendar-ics-file-import-success = Successfully imported!
+calendar-ics-file-import-error = An error occurred and the import failed.
+calendar-ics-file-import-complete = Import complete.
+calendar-ics-file-import-duplicates =
+ { $duplicatesCount ->
+ [one] One item was ignored since it already exists in the destination calendar.
+ *[other] { $duplicatesCount } items were ignored since they already exist in the destination calendar.
+ }
+calendar-ics-file-import-errors =
+ { $errorsCount ->
+ [one] One item failed to import. Check the Error Console for details.
+ *[other] { $errorsCount } items failed to import. Check the Error Console for details.
+ }
+calendar-ics-file-dialog-no-calendars = There are no calendars that can import events or tasks.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-invitation-panel.ftl b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-invitation-panel.ftl
new file mode 100644
index 0000000000..1c42d7d010
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-invitation-panel.ftl
@@ -0,0 +1,100 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+calendar-invitation-panel-status-new = You have been invited to this event.
+calendar-invitation-panel-status-processed = This event has already been added to your calendar.
+calendar-invitation-panel-status-updateminor = This message contains an update for this event.
+calendar-invitation-panel-status-updatemajor = This message contains an update for this event. You should re-confirm your attendance.
+calendar-invitation-panel-status-cancelled = This message contains a cancellation for this event.
+calendar-invitation-panel-status-cancelled-notfound = This message contains a cancellation for an event not found on your calendar.
+# Variables:
+# $organizer (String) - The participant that cancelled the invitation.
+calendar-invitation-panel-intro-cancel = { $organizer } has cancelled:
+# Variables:
+# $summary (String) - A short summary or title of the event.
+calendar-invitation-panel-title = { $summary }
+calendar-invitation-panel-view-button = View
+calendar-invitation-panel-update-button = Update
+calendar-invitation-panel-delete-button = Delete
+calendar-invitation-panel-accept-button = Yes
+calendar-invitation-panel-decline-button = No
+calendar-invitation-panel-tentative-button = Maybe
+calendar-invitation-panel-more-button = More
+calendar-invitation-panel-menu-item-save-copy =
+ .label = Save a copy
+calendar-invitation-panel-menu-item-toggle-changes =
+ .label = Show Changes
+calendar-invitation-panel-prop-title-when = When:
+calendar-invitation-panel-prop-title-location = Location:
+# Example: Friday, September 16, 2022
+# Variables:
+# $startDate (String) - The date (without time) the event starts on.
+calendar-invitation-interval-all-day = { $startDate }
+# Example: September 16, 2022 – September 16, 2023
+# Variables:
+# $startMonth (String) - The month the interval starts.
+# $startDay (String) - The day of the month the interval starts.
+# $startYear (String) - The year the interval starts.
+# $endMonth (String) - The month the interval ends.
+# $endDay (String) - The day of the month the interval ends.
+# $endYear (String) - The year the interval ends.
+calendar-invitation-interval-all-day-between-years = { $startMonth } { $startDay }, { $startYear } – { $endMonth } { $endDay }, { $endYear }
+# Example: September 16 – 20, 2022
+# Variables:
+# $month (String) - The month the interval is in.
+# $startDay (String) - The day of the month the interval starts.
+# $endDay (String) - The day of the month the interval ends.
+# $year (String) - The year the interval is in.
+calendar-invitation-interval-all-day-in-month = { $month } { $startDay } – { $endDay }, { $year }
+# Example: September 16 – October 20, 2022
+# Variables:
+# $startMonth (String) - The month the interval starts.
+# $startDay (String) - The day of the month the interval starts.
+# $endMonth (String) - The month the interval ends.
+# $endDay (String) - The day of the month the interval ends.
+# $year (String) - The year the interval is in.
+calendar-invitation-interval-all-day-between-months = { $startMonth } { $startDay } – { $endMonth } { $endDay }, { $year }
+# Example: Friday, September 16, 2022 15:00 America/Port of Spain
+# Variables:
+# $startDate (String) - The date the interval starts.
+# $startTime (String) - The time the interval starts.
+# $timezone (String) - The timezone the interval is in.
+calendar-invitation-interval-same-date-time = { $startDate } <b>{ $startTime }</b> { $timezone }
+# Example: Friday, September 16, 2022 14:00 – 16:00 America/Port of Spain
+# Variables:
+# $startDate (String) - The date the interval starts.
+# $startTime (String) - The time the interval starts.
+# $endTime (String) - The time the interval ends.
+# $timezone (String) - The timezone the interval is in.
+calendar-invitation-interval-same-day = { $startDate } <b>{ $startTime }</b> – <b>{ $endTime }</b> { $timezone }
+# Example: Friday, September 16, 2022 14:00 – Tuesday, September 20, 2022 16:00 America/Port of Spain
+# Variables:
+# $startDate (String) - The date the interval starts.
+# $startTime (String) - The time the interval starts.
+# $endDate (String) - The date the interval ends.
+# $endTime (String) - The time the interval ends.
+# $timezone (String) - The timezone the interval is in.
+calendar-invitation-interval-several-days = { $startDate } <b>{ $startTime }</b> – { $endDate } <b>{ $endTime }</b> { $timezone }
+calendar-invitation-panel-prop-title-recurrence = Repeats:
+calendar-invitation-panel-prop-title-attendees = Attendees:
+calendar-invitation-panel-prop-title-description = Description:
+# Variables:
+# $count (Number) - The number of attendees with the "ACCEPTED" participation status.
+calendar-invitation-panel-partstat-accepted = { $count } yes
+# Variables:
+# $count (Number) - The number of attendees with the "DECLINED" participation status.
+calendar-invitation-panel-partstat-declined = { $count } no
+# Variables:
+# $count (Number) - The number of attendees with the "TENTATIVE" participation status.
+calendar-invitation-panel-partstat-tentative = { $count } maybe
+# Variables:
+# $count (Number) - The number of attendees with the "NEEDS-ACTION" participation status.
+calendar-invitation-panel-partstat-needs-action = { $count } pending
+# Variables:
+# $count (Number) - The total number of attendees.
+calendar-invitation-panel-partstat-total = { $count } participants
+calendar-invitation-panel-prop-title-attachments = Attachments:
+calendar-invitation-change-indicator-removed = Removed
+calendar-invitation-change-indicator-added = New
+calendar-invitation-change-indicator-modified = Changed
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000..6023901304
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,10 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+calendar-invitation-current-participation-status-icon-accepted =
+ .alt = Currently accepted
+calendar-invitation-current-participation-status-icon-declined =
+ .alt = Currently declined
+calendar-invitation-current-participation-status-icon-needs-action =
+ .alt = Currently undecided
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000..53f9c76ca8
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,8 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+calendar-itip-identity-dialog-title = Party crashing?
+calendar-itip-identity-warning = You are not on the guest list yet.
+calendar-itip-identity-label = Respond as:
+calendar-itip-identity-label-none = Associate this event with:
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-print.ftl b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-print.ftl
new file mode 100644
index 0000000000..8865893767
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-print.ftl
@@ -0,0 +1,17 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+calendar-print-layout-label = Layout
+calendar-print-layout-list = List
+calendar-print-layout-month-grid = Monthly Grid
+calendar-print-layout-week-planner = Weekly Planner
+calendar-print-filter-label = What to Print
+calendar-print-filter-events = Events
+calendar-print-filter-tasks = Tasks
+calendar-print-filter-completedtasks = Completed tasks
+calendar-print-filter-taskswithnoduedate = Tasks with no due date
+calendar-print-range-from = From
+calendar-print-range-to = To
+calendar-print-back-button = Back
+calendar-print-next-button = Next
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-recurrence-dialog.ftl b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-recurrence-dialog.ftl
new file mode 100644
index 0000000000..4de6b4c9fc
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-recurrence-dialog.ftl
@@ -0,0 +1,8 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+calendar-recurrence-preview-label = Preview
+calendar-recurrence-next = Next Month
+calendar-recurrence-previous = Previous Month
+calendar-recurrence-today = Today
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-summary-dialog.ftl b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-summary-dialog.ftl
new file mode 100644
index 0000000000..df6a85765b
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-summary-dialog.ftl
@@ -0,0 +1,17 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+calendar-summary-dialog-edit-button =
+ .label = Edit
+ .accesskey = E
+calendar-summary-dialog-edit-menu-button =
+ .label = Edit
+edit-button-context-menu-this-occurrence =
+ .label = Edit only this occurrence
+ .accesskey = t
+edit-button-context-menu-all-occurrences =
+ .label = Edit all occurrences
+ .accesskey = a
+description-context-menu-copy-link-text =
+ .label = Copy Link Text
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-uri-redirect-dialog.ftl b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-uri-redirect-dialog.ftl
new file mode 100644
index 0000000000..4c88232378
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-uri-redirect-dialog.ftl
@@ -0,0 +1,12 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+calendar-uri-redirect-window =
+ .title = Calendar URI Redirect
+calendar-uri-redirect-window-title = Calendar URI Redirect
+calendar-uri-redirect-description =
+ The server is redirecting the URI for the calendar "{ $calendarName }".
+ Accept the redirect and start using the new URI for this calendar?
+calendar-uri-redirect-original-uri-label = Current URI:
+calendar-uri-redirect-target-uri-label = Redirecting to new URI:
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-widgets.ftl b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-widgets.ftl
new file mode 100644
index 0000000000..6fe6c16298
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/calendar/calendar-widgets.ftl
@@ -0,0 +1,111 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+calendar-deactivated-notification-events = All calendars are currently disabled. Enable an existing calendar or add a new one to create and edit events.
+calendar-deactivated-notification-tasks = All calendars are currently disabled. Enable an existing calendar or add a new one to create and edit tasks.
+calendar-notifications-label = Show notifications for upcoming events
+calendar-add-notification-button =
+ .label = Add notification
+
+## Side panel
+
+calendar-list-header = Calendars
+# Variables:
+# $calendarName (String) - Calendar name as given by the user
+calendar-no-reminders-tooltip =
+ .title = { $calendarName } calendar has been muted
+calendar-enable-button = Enable
+# Variables:
+# $calendarName (String) - Calendar name as given by the user
+calendar-list-item-context-button =
+ .title = { $calendarName } calendar options
+calendar-import-new-calendar = New Calendar…
+ .title = Create or subscribe to a new calendar
+calendar-refresh-calendars =
+ .title = Reload all calendars and synchronize changes
+calendar-new-event-primary-button = New Event
+calendar-new-task-primary-button = New Task
+
+## Calendar navigation
+
+calendar-nav-button-prev-tooltip-day =
+ .title = Previous Day
+ .accesskey = s
+calendar-nav-button-prev-tooltip-week =
+ .title = Previous Week
+ .accesskey = s
+calendar-nav-button-prev-tooltip-multiweek =
+ .title = Previous Week
+ .accesskey = s
+calendar-nav-button-prev-tooltip-month =
+ .title = Previous Month
+ .accesskey = s
+calendar-nav-button-prev-tooltip-year =
+ .title = Previous Year
+ .accesskey = s
+calendar-nav-button-next-tooltip-day =
+ .title = Next Day
+ .accesskey = x
+calendar-nav-button-next-tooltip-week =
+ .title = Next Week
+ .accesskey = x
+calendar-nav-button-next-tooltip-multiweek =
+ .title = Next Week
+ .accesskey = x
+calendar-nav-button-next-tooltip-month =
+ .title = Next Month
+ .accesskey = x
+calendar-nav-button-next-tooltip-year =
+ .title = Next Year
+ .accesskey = x
+calendar-today-button-tooltip =
+ .title = Go to Today
+calendar-view-toggle-day = Day
+ .title = Switch to day view
+calendar-view-toggle-week = Week
+ .title = Switch to week view
+calendar-view-toggle-multiweek = Multiweek
+ .title = Switch to multiweek view
+calendar-view-toggle-month = Month
+ .title = Switch to month view
+
+## Menu on calendar control bar
+
+calendar-control-bar-menu-button =
+ .title = Calendar layout options
+calendar-find-events-menu-option =
+ .label = Find Events Pane
+calendar-hide-weekends-option =
+ .label = Workweek days only
+calendar-define-workweek-option =
+ .label = Define workweek days
+calendar-show-tasks-calendar-option =
+ .label = Show tasks in calendar
+
+## Calendar Context Menu
+
+calendar-context-menu-previous-day =
+ .label = Previous Day
+ .accesskey = s
+calendar-context-menu-previous-week =
+ .label = Previous Week
+ .accesskey = s
+calendar-context-menu-previous-multiweek =
+ .label = Previous Week
+ .accesskey = s
+calendar-context-menu-previous-month =
+ .label = Previous Month
+ .accesskey = s
+calendar-context-menu-next-day =
+ .label = Next Day
+ .accesskey = x
+calendar-context-menu-next-week =
+ .label = Next Week
+ .accesskey = x
+calendar-context-menu-next-multiweek =
+ .label = Next Week
+ .accesskey = x
+calendar-context-menu-next-month =
+ .label = Next Month
+ .accesskey = x
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/calendar/category-dialog.ftl b/thunderbird-l10n/en-CA/localization/en-CA/calendar/category-dialog.ftl
new file mode 100644
index 0000000000..d276598685
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/calendar/category-dialog.ftl
@@ -0,0 +1,7 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+category-name-label = Name
+category-color-label =
+ .label = Use Colour
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/calendar/preferences.ftl b/thunderbird-l10n/en-CA/localization/en-CA/calendar/preferences.ftl
new file mode 100644
index 0000000000..4174be87e6
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/calendar/preferences.ftl
@@ -0,0 +1,192 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+calendar-title = Calendar
+calendar-title-reminder = Reminders
+calendar-title-notification = Notifications
+calendar-title-category = Categories
+dateformat-label =
+ .value = Date Text Format:
+ .accesskey = D
+# $date (String) - the formatted example date
+dateformat-long =
+ .label = Long: { $date }
+# $date (String) - the formatted example date
+dateformat-short =
+ .label = Short: { $date }
+use-system-timezone-radio-button =
+ .label = Use system timezone
+set-timezone-manually-radio-button =
+ .label = Set timezone manually
+timezone-label =
+ .value = Timezone:
+weekstart-label =
+ .value = Start the week on:
+ .accesskey = r
+day-1-name =
+ .label = Sunday
+day-2-name =
+ .label = Monday
+day-3-name =
+ .label = Tuesday
+day-4-name =
+ .label = Wednesday
+day-5-name =
+ .label = Thursday
+day-6-name =
+ .label = Friday
+day-7-name =
+ .label = Saturday
+show-weeknumber-label =
+ .label = Show week number in views and minimonth
+ .accesskey = n
+workdays-label =
+ .value = Workweek days:
+day-1-checkbox =
+ .label = Sun
+ .accesskey = S
+day-2-checkbox =
+ .label = Mon
+ .accesskey = M
+day-3-checkbox =
+ .label = Tue
+ .accesskey = T
+day-4-checkbox =
+ .label = Wed
+ .accesskey = W
+day-5-checkbox =
+ .label = Thu
+ .accesskey = h
+day-6-checkbox =
+ .label = Fri
+ .accesskey = F
+day-7-checkbox =
+ .label = Sat
+ .accesskey = a
+dayweek-legend = Day and Week Views
+visible-hours-label =
+ .value = Show:
+ .accesskey = o
+visible-hours-end-label =
+ .value = hours at a time
+day-start-label =
+ .value = Day starts at:
+ .accesskey = D
+day-end-label =
+ .value = Day ends at:
+ .accesskey = y
+midnight-label =
+ .label = Midnight
+noon-label =
+ .label = Noon
+location-checkbox =
+ .label = Show location
+ .accesskey = L
+multiweek-legend = Multiweek View
+number-of-weeks-label =
+ .value = Number of weeks to show (including previous weeks):
+ .accesskey = e
+week-0-label =
+ .label = none
+week-1-label =
+ .label = 1 week
+week-2-label =
+ .label = 2 weeks
+week-3-label =
+ .label = 3 weeks
+week-4-label =
+ .label = 4 weeks
+week-5-label =
+ .label = 5 weeks
+week-6-label =
+ .label = 6 weeks
+previous-weeks-label =
+ .value = Previous weeks to show:
+ .accesskey = P
+todaypane-legend = Today Pane
+agenda-days =
+ .value = The agenda shows:
+ .accesskey = g
+event-task-legend = Events and Tasks
+default-length-label =
+ .value = Default Event and Task Length:
+ .accesskey = E
+task-start-label =
+ .value = Start Date:
+task-start-1-label =
+ .label = None
+task-start-2-label =
+ .label = Start of Day
+task-start-3-label =
+ .label = End of Day
+task-start-4-label =
+ .label = Tomorrow
+task-start-5-label =
+ .label = Next Week
+task-start-6-label =
+ .label = Relative to Current Time
+task-start-7-label =
+ .label = Relative to Start
+task-start-8-label =
+ .label = Relative to Next Hour
+task-due-label =
+ .value = Due Date:
+edit-intab-label =
+ .label = Edit events and tasks in a tab instead of in a dialog window.
+ .accesskey = t
+prompt-delete-label =
+ .label = Prompt before deleting events and tasks.
+ .accesskey = V
+accessibility-legend = Accessibility
+accessibility-colors-label =
+ .label = Optimize colours for accessibility
+ .accesskey = c
+reminder-legend = When a Reminder is Due:
+reminder-play-checkbox =
+ .label = Play a sound
+ .accesskey = s
+reminder-play-alarm-button =
+ .label = Play
+ .accesskey = P
+reminder-default-sound-label =
+ .label = Use default sound
+ .accesskey = d
+reminder-custom-sound-label =
+ .label = Use the following sound file
+ .accesskey = U
+reminder-browse-sound-label =
+ .label = Browse…
+ .accesskey = B
+reminder-dialog-label =
+ .label = Show the reminder dialog
+ .accesskey = x
+missed-reminder-label =
+ .label = Show missed reminders for writable calendars
+ .accesskey = m
+reminder-default-legend = Reminder Defaults
+default-snooze-label =
+ .value = Default Snooze Length:
+ .accesskey = S
+event-alarm-label =
+ .value = Default reminder setting for events:
+ .accesskey = e
+alarm-on-label =
+ .label = On
+alarm-off-label =
+ .label = Off
+task-alarm-label =
+ .value = Default reminder setting for tasks:
+ .accesskey = a
+event-alarm-time-label =
+ .value = Default time a reminder is set before an event:
+ .accesskey = u
+task-alarm-time-label =
+ .value = Default time a reminder is set before a task:
+ .accesskey = o
+calendar-notifications-customize-label = Notifications can be customized for each calendar in the calendar’s properties window.
+category-new-label = New Category
+category-edit-label = Edit Category
+category-overwrite-title = Warning: Duplicate name
+category-overwrite = A category already exists with that name. Do you want to overwrite it?
+category-blank-warning = You must enter a category name.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/chat/matrix.ftl b/thunderbird-l10n/en-CA/localization/en-CA/chat/matrix.ftl
new file mode 100644
index 0000000000..f692e45e6d
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/chat/matrix.ftl
@@ -0,0 +1,24 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+### Matrix Protocol strings
+
+
+## Conversation names when a room has no user readable name.
+
+room-name-empty = Empty conversation
+# Variables:
+# $oldName (String) - The previous name the conversation had before it was
+# removed.
+room-name-empty-had-name = Empty conversation (was { $oldName })
+# Variables:
+# $participant (String) - The name of one participant that isn't the user.
+# $otherParticipantCount (Number) - The count of other participants apart from
+# the user and $participant.
+room-name-others2 =
+ { $otherParticipantCount ->
+ [one] { $participant } and { $otherParticipantCount } other
+ *[other] { $participant } and { $otherParticipantCount } others
+ }
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/crashreporter/aboutcrashes.ftl b/thunderbird-l10n/en-CA/localization/en-CA/crashreporter/aboutcrashes.ftl
new file mode 100644
index 0000000000..9af0b2dfcb
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/crashreporter/aboutcrashes.ftl
@@ -0,0 +1,31 @@
+# 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 http://mozilla-org/MPL/2-0/-
+
+
+# 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 http://mozilla.org/MPL/2.0/.
+
+crash-reports-title = Crash Reports
+
+submit-all-button-label = Submit All
+delete-button-label = Clear All
+delete-confirm-title = Are you sure?
+delete-unsubmitted-description = This will delete all unsubmitted crash reports and cannot be undone.
+delete-submitted-description = This will remove the list of submitted crash reports but will not delete the submitted data. This cannot be undone.
+
+crashes-unsubmitted-label = Unsubmitted Crash Reports
+id-heading = Report ID
+date-crashed-heading = Date Crashed
+submit-crash-button-label = Submit
+# This text is used to replace the label of the crash submit button
+# if the crash submission fails.
+submit-crash-button-failure-label = Failed
+
+crashes-submitted-label = Submitted Crash Reports
+date-submitted-heading = Date Submitted
+view-crash-button-label = View
+
+no-reports-label = No crash reports have been submitted.
+no-config-label = This application has not been configured to display crash reports. The preference <code>breakpad.reportURL</code> must be set.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/aboutdebugging.ftl b/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/aboutdebugging.ftl
new file mode 100644
index 0000000000..691c205a65
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/aboutdebugging.ftl
@@ -0,0 +1,400 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+### These strings are used inside the about:debugging UI.
+
+
+# Page Title strings
+
+# Page title (ie tab title) for the Setup page
+about-debugging-page-title-setup-page = Debugging - Setup
+
+# Page title (ie tab title) for the Runtime page
+# { $selectedRuntimeId } is the id of the current runtime, such as "this-firefox", "localhost:6080", ...
+about-debugging-page-title-runtime-page = Debugging - Runtime / { $selectedRuntimeId }
+
+# Sidebar strings
+
+# Display name of the runtime for the currently running instance of Firefox. Used in the
+# Sidebar and in the Setup page.
+about-debugging-this-firefox-runtime-name = This { -brand-shorter-name }
+
+# Sidebar heading for selecting the currently running instance of Firefox
+about-debugging-sidebar-this-firefox =
+ .name = { about-debugging-this-firefox-runtime-name }
+
+# Sidebar heading for connecting to some remote source
+about-debugging-sidebar-setup =
+ .name = Setup
+
+# Text displayed in the about:debugging sidebar when USB devices discovery is enabled.
+about-debugging-sidebar-usb-enabled = USB enabled
+
+# Text displayed in the about:debugging sidebar when USB devices discovery is disabled
+# (for instance because the mandatory ADB extension is not installed).
+about-debugging-sidebar-usb-disabled = USB disabled
+
+# Connection status (connected) for runtime items in the sidebar
+aboutdebugging-sidebar-runtime-connection-status-connected = Connected
+# Connection status (disconnected) for runtime items in the sidebar
+aboutdebugging-sidebar-runtime-connection-status-disconnected = Disconnected
+
+# Text displayed in the about:debugging sidebar when no device was found.
+about-debugging-sidebar-no-devices = No devices discovered
+
+# Text displayed in buttons found in sidebar items representing remote runtimes.
+# Clicking on the button will attempt to connect to the runtime.
+about-debugging-sidebar-item-connect-button = Connect
+
+# Text displayed in buttons found in sidebar items when the runtime is connecting.
+about-debugging-sidebar-item-connect-button-connecting = Connecting…
+
+# Text displayed in buttons found in sidebar items when the connection failed.
+about-debugging-sidebar-item-connect-button-connection-failed = Connection failed
+
+# Text displayed in connection warning on sidebar item of the runtime when connecting to
+# the runtime is taking too much time.
+about-debugging-sidebar-item-connect-button-connection-not-responding = Connection still pending, check for messages on the target browser
+
+# Text displayed as connection error in sidebar item when the connection has timed out.
+about-debugging-sidebar-item-connect-button-connection-timeout = Connection timed out
+
+# Text displayed in sidebar items for remote devices where a compatible browser (eg
+# Firefox) has not been detected yet. Typically, Android phones connected via USB with
+# USB debugging enabled, but where Firefox is not started.
+about-debugging-sidebar-runtime-item-waiting-for-browser = Waiting for browser…
+
+# Text displayed in sidebar items for remote devices that have been disconnected from the
+# computer.
+about-debugging-sidebar-runtime-item-unplugged = Unplugged
+
+# Title for runtime sidebar items that are related to a specific device (USB, WiFi).
+about-debugging-sidebar-runtime-item-name =
+ .title = { $displayName } ({ $deviceName })
+# Title for runtime sidebar items where we cannot get device information (network
+# locations).
+about-debugging-sidebar-runtime-item-name-no-device =
+ .title = { $displayName }
+
+# Text to show in the footer of the sidebar that links to a help page
+# (currently: https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/)
+about-debugging-sidebar-support = Debugging Support
+
+# Text to show as the ALT attribute of a help icon that accompanies the help about
+# debugging link in the footer of the sidebar
+about-debugging-sidebar-support-icon =
+ .alt = Help icon
+
+# Text displayed in a sidebar button to refresh the list of USB devices. Clicking on it
+# will attempt to update the list of devices displayed in the sidebar.
+about-debugging-refresh-usb-devices-button = Refresh devices
+
+# Setup Page strings
+
+# Title of the Setup page.
+about-debugging-setup-title = Setup
+
+# Introduction text in the Setup page to explain how to configure remote debugging.
+about-debugging-setup-intro = Configure the connection method you wish to remotely debug your device with.
+
+# Explanatory text in the Setup page about what the 'This Firefox' page is for
+about-debugging-setup-this-firefox2 = Use <a>{ about-debugging-this-firefox-runtime-name }</a> to debug extensions and service workers on this version of { -brand-shorter-name }.
+
+# Title of the heading Connect section of the Setup page.
+about-debugging-setup-connect-heading = Connect a Device
+
+# USB section of the Setup page
+about-debugging-setup-usb-title = USB
+
+# Explanatory text displayed in the Setup page when USB debugging is disabled
+about-debugging-setup-usb-disabled = Enabling this will download and add the required Android USB debugging components to { -brand-shorter-name }.
+
+# Text of the button displayed in the USB section of the setup page when USB debugging is disabled.
+# Clicking on it will download components needed to debug USB Devices remotely.
+about-debugging-setup-usb-enable-button = Enable USB Devices
+
+# Text of the button displayed in the USB section of the setup page when USB debugging is enabled.
+about-debugging-setup-usb-disable-button = Disable USB Devices
+
+# Text of the button displayed in the USB section of the setup page while USB debugging
+# components are downloaded and installed.
+about-debugging-setup-usb-updating-button = Updating…
+
+# USB section of the Setup page (USB status)
+about-debugging-setup-usb-status-enabled = Enabled
+about-debugging-setup-usb-status-disabled = Disabled
+about-debugging-setup-usb-status-updating = Updating…
+
+# USB section step by step guide
+about-debugging-setup-usb-step-enable-dev-menu2 = Enable Developer menu on your Android device.
+
+# USB section step by step guide
+about-debugging-setup-usb-step-enable-debug2 = Enable USB Debugging in the Android Developer Menu.
+
+# USB section step by step guide
+about-debugging-setup-usb-step-enable-debug-firefox2 = Enable USB Debugging in Firefox on the Android device.
+
+# USB section step by step guide
+about-debugging-setup-usb-step-plug-device = Connect the Android device to your computer.
+
+# Text shown in the USB section of the setup page with a link to troubleshoot connection errors.
+# The link goes to https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/index.html#connecting-to-a-remote-device
+about-debugging-setup-usb-troubleshoot = Problems connecting to the USB device? <a>Troubleshoot</a>
+
+# Network section of the Setup page
+about-debugging-setup-network =
+ .title = Network Location
+
+# Text shown in the Network section of the setup page with a link to troubleshoot connection errors.
+# The link goes to https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/index.html#connecting-over-the-network
+about-debugging-setup-network-troubleshoot = Problems connecting via network location? <a>Troubleshoot</a>
+
+# Text of a button displayed after the network locations "Host" input.
+# Clicking on it will add the new network location to the list.
+about-debugging-network-locations-add-button = Add
+
+# Text to display when there are no locations to show.
+about-debugging-network-locations-empty-text = No network locations have been added yet.
+
+# Text of the label for the text input that allows users to add new network locations in
+# the Connect page. A host is a hostname and a port separated by a colon, as suggested by
+# the input's placeholder "localhost:6080".
+about-debugging-network-locations-host-input-label = Host
+
+# Text of a button displayed next to existing network locations in the Connect page.
+# Clicking on it removes the network location from the list.
+about-debugging-network-locations-remove-button = Remove
+
+# Text used as error message if the format of the input value was invalid in the network locations form of the Setup page.
+# Variables:
+# $host-value (string) - The input value submitted by the user in the network locations form
+about-debugging-network-location-form-invalid = Invalid host “{ $host-value }”. The expected format is “hostname:portnumber”.
+
+# Text used as error message if the input value was already registered in the network locations form of the Setup page.
+# Variables:
+# $host-value (string) - The input value submitted by the user in the network locations form
+about-debugging-network-location-form-duplicate = The host “{ $host-value }” is already registered
+
+# Runtime Page strings
+
+# Below are the titles for the various categories of debug targets that can be found
+# on "runtime" pages of about:debugging.
+# Title of the temporary extensions category (only available for "This Firefox" runtime).
+about-debugging-runtime-temporary-extensions =
+ .name = Temporary Extensions
+# Title of the extensions category.
+about-debugging-runtime-extensions =
+ .name = Extensions
+# Title of the tabs category.
+about-debugging-runtime-tabs =
+ .name = Tabs
+# Title of the service workers category.
+about-debugging-runtime-service-workers =
+ .name = Service Workers
+# Title of the shared workers category.
+about-debugging-runtime-shared-workers =
+ .name = Shared Workers
+# Title of the other workers category.
+about-debugging-runtime-other-workers =
+ .name = Other Workers
+# Title of the processes category.
+about-debugging-runtime-processes =
+ .name = Processes
+
+# Label of the button opening the performance profiler panel in runtime pages for remote
+# runtimes.
+about-debugging-runtime-profile-button2 = Profile performance
+
+# This string is displayed in the runtime page if the current configuration of the
+# target runtime is incompatible with service workers. "Learn more" points to:
+# https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/index.html#service-workers-not-compatible
+about-debugging-runtime-service-workers-not-compatible = Your browser configuration is not compatible with Service Workers. <a>Learn more</a>
+
+# This string is displayed in the runtime page if the remote browser version is too old.
+# "Troubleshooting" link points to https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/
+# { $runtimeVersion } is the version of the remote browser (for instance "67.0a1")
+# { $minVersion } is the minimum version that is compatible with the current Firefox instance (same format)
+about-debugging-browser-version-too-old = The connected browser has an old version ({ $runtimeVersion }). The minimum supported version is ({ $minVersion }). This is an unsupported setup and may cause DevTools to fail. Please update the connected browser. <a>Troubleshooting</a>
+
+# Dedicated message for a backward compatibility issue that occurs when connecting:
+# from Fx 70+ to the old Firefox for Android (aka Fennec) which uses Fx 68.
+about-debugging-browser-version-too-old-fennec = This version of Firefox cannot debug Firefox for Android (68). We recommend installing Firefox for Android Nightly on your phone for testing. <a>More details</a>
+
+# This string is displayed in the runtime page if the remote browser version is too recent.
+# "Troubleshooting" link points to https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/
+# { $runtimeID } is the build ID of the remote browser (for instance "20181231", format is yyyyMMdd)
+# { $localID } is the build ID of the current Firefox instance (same format)
+# { $runtimeVersion } is the version of the remote browser (for instance "67.0a1")
+# { $localVersion } is the version of your current browser (same format)
+about-debugging-browser-version-too-recent = The connected browser is more recent ({ $runtimeVersion }, buildID { $runtimeID }) than your { -brand-shorter-name } ({ $localVersion }, buildID { $localID }). This is an unsupported setup and may cause DevTools to fail. Please update Firefox. <a>Troubleshooting</a>
+
+# Displayed for runtime info in runtime pages.
+# { $name } is brand name such as "Firefox Nightly"
+# { $version } is version such as "64.0a1"
+about-debugging-runtime-name = { $name } ({ $version })
+
+# Text of a button displayed in Runtime pages for remote runtimes.
+# Clicking on the button will close the connection to the runtime.
+about-debugging-runtime-disconnect-button = Disconnect
+
+# Text of the connection prompt button displayed in Runtime pages, when the preference
+# "devtools.debugger.prompt-connection" is false on the target runtime.
+about-debugging-connection-prompt-enable-button = Enable connection prompt
+
+# Text of the connection prompt button displayed in Runtime pages, when the preference
+# "devtools.debugger.prompt-connection" is true on the target runtime.
+about-debugging-connection-prompt-disable-button = Disable connection prompt
+
+# Title of a modal dialog displayed on remote runtime pages after clicking on the Profile Runtime button.
+about-debugging-profiler-dialog-title2 = Profiler
+
+# Clicking on the header of a debug target category will expand or collapse the debug
+# target items in the category. This text is used as ’title’ attribute of the header,
+# to describe this feature.
+about-debugging-collapse-expand-debug-targets = Collapse / expand
+
+# Debug Targets strings
+
+# Displayed in the categories of "runtime" pages that don't have any debug target to
+# show. Debug targets depend on the category (extensions, tabs, workers...).
+about-debugging-debug-target-list-empty = Nothing yet.
+
+# Text of a button displayed next to debug targets of "runtime" pages. Clicking on this
+# button will open a DevTools toolbox that will allow inspecting the target.
+# A target can be an addon, a tab, a worker...
+about-debugging-debug-target-inspect-button = Inspect
+
+# Text of a button displayed in the "This Firefox" page, in the Temporary Extension
+# section. Clicking on the button will open a file picker to load a temporary extension
+about-debugging-tmp-extension-install-button = Load Temporary Add-on…
+
+# Text displayed when trying to install a temporary extension in the "This Firefox" page.
+about-debugging-tmp-extension-install-error = There was an error during the temporary add-on installation.
+
+# Text of a button displayed for a temporary extension loaded in the "This Firefox" page.
+# Clicking on the button will reload the extension.
+about-debugging-tmp-extension-reload-button = Reload
+
+# Text of a button displayed for a temporary extension loaded in the "This Firefox" page.
+# Clicking on the button will uninstall the extension and remove it from the page.
+about-debugging-tmp-extension-remove-button = Remove
+
+# Text of a button displayed for a temporary extension loaded in the "This Firefox" page.
+# Clicking on the button will forcefully terminate the extension background script (button
+# only visible in extensions that includes a non-persistent background script, either an
+# event page or a background service worker).
+about-debugging-tmp-extension-terminate-bgscript-button = Terminate background script
+
+# Message displayed in the file picker that opens to select a temporary extension to load
+# (triggered by the button using "about-debugging-tmp-extension-install-button")
+# manifest.json .xpi and .zip should not be localized.
+# Note: this message is only displayed in Windows and Linux platforms.
+about-debugging-tmp-extension-install-message = Select manifest.json file or .xpi/.zip archive
+
+# This string is displayed as a message about the add-on having a temporaryID.
+about-debugging-tmp-extension-temporary-id = This WebExtension has a temporary ID. <a>Learn more</a>
+
+# Text displayed for extensions in "runtime" pages, before displaying a link the extension's
+# manifest URL.
+about-debugging-extension-manifest-url =
+ .label = Manifest URL
+
+# Text displayed for extensions in "runtime" pages, before displaying the extension's uuid.
+# UUIDs look like b293e463-481e-5148-a487-5aaf7a130429
+about-debugging-extension-uuid =
+ .label = Internal UUID
+
+# Text displayed for extensions (temporary extensions only) in "runtime" pages, before
+# displaying the location of the temporary extension.
+about-debugging-extension-location =
+ .label = Location
+
+# Text displayed for extensions in "runtime" pages, before displaying the extension's ID.
+# For instance "geckoprofiler@mozilla.com" or "{ed26ddcb-5611-4512-a89a-51b8db81cfb2}".
+about-debugging-extension-id =
+ .label = Extension ID
+
+# Text displayed for extensions in "runtime" pages, before displaying the status of the
+# extension background script.
+about-debugging-extension-backgroundscript =
+ .label = Background script
+
+# Displayed for extension using a non-persistent background page (either an event page or
+# background service worker) when the background script is currently running.
+about-debugging-extension-backgroundscript-status-running = Running
+
+# Displayed for extension using a non-persistent background page when is currently stopped.
+about-debugging-extension-backgroundscript-status-stopped = Stopped
+
+# This string is displayed as a label of the button that pushes a test payload
+# to a service worker.
+# Note this relates to the "Push" API, which is normally not localized so it is
+# probably better to not localize it.
+about-debugging-worker-action-push2 = Push
+ .disabledTitle = Service Worker push is currently disabled for multiprocess { -brand-shorter-name }
+
+# This string is displayed as a label of the button that starts a service worker.
+about-debugging-worker-action-start2 = Start
+ .disabledTitle = Service Worker start is currently disabled for multiprocess { -brand-shorter-name }
+
+# This string is displayed as a label of the button that unregisters a service worker.
+about-debugging-worker-action-unregister = Unregister
+
+# Displayed for service workers in runtime pages that listen to Fetch events.
+about-debugging-worker-fetch-listening =
+ .label = Fetch
+ .value = Listening for fetch events
+
+# Displayed for service workers in runtime pages that do not listen to Fetch events.
+about-debugging-worker-fetch-not-listening =
+ .label = Fetch
+ .value = Not listening for fetch events
+
+# Displayed for service workers in runtime pages that are currently running (service
+# worker instance is active).
+about-debugging-worker-status-running = Running
+
+# Displayed for service workers in runtime pages that are registered but stopped.
+about-debugging-worker-status-stopped = Stopped
+
+# Displayed for service workers in runtime pages that are registering.
+about-debugging-worker-status-registering = Registering
+
+# Displayed for service workers in runtime pages, to label the scope of a worker
+about-debugging-worker-scope =
+ .label = Scope
+
+# Displayed for service workers in runtime pages, to label the push service endpoint (url)
+# of a worker
+about-debugging-worker-push-service =
+ .label = Push Service
+
+# Displayed as title of the inspect button when service worker debugging is disabled.
+about-debugging-worker-inspect-action-disabled =
+ .title = Service Worker inspection is currently disabled for multiprocess { -brand-shorter-name }
+
+# Displayed as title of the inspect button for zombie tabs (e.g. tabs loaded via a session restore).
+about-debugging-zombie-tab-inspect-action-disabled =
+ .title = Tab is not fully loaded and cannot be inspected
+
+# Displayed instead of the Main Process debug target when the preference
+# `devtools.browsertoolbox.fission` is true.
+about-debugging-multiprocess-toolbox-name = Multiprocess Toolbox
+
+# Description for the Multiprocess Toolbox target.
+about-debugging-multiprocess-toolbox-description = Main Process and Content Processes for the target browser
+
+# Alt text used for the close icon of message component (warnings, errors and notifications).
+about-debugging-message-close-icon =
+ .alt = Close message
+
+# Label text used for the error details of message component.
+about-debugging-message-details-label-error = Error details
+
+# Label text used for the warning details of message component.
+about-debugging-message-details-label-warning = Warning details
+
+# Label text used for default state of details of message component.
+about-debugging-message-details-label = Details
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/accessibility.ftl b/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/accessibility.ftl
new file mode 100644
index 0000000000..9bf08493e5
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/accessibility.ftl
@@ -0,0 +1,99 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+### These strings are used inside the Accessibility panel.
+
+accessibility-learn-more = Learn more
+
+accessibility-text-label-header = Text Labels and Names
+
+accessibility-keyboard-header = Keyboard
+
+## Text entries that are used as text alternative for icons that depict accessibility isses.
+
+
+## These strings are used in the overlay displayed when running an audit in the accessibility panel
+
+accessibility-progress-initializing = Initializing…
+ .aria-valuetext = Initializing…
+
+# This string is displayed in the audit progress bar in the accessibility panel.
+# Variables:
+# $nodeCount (Integer) - The number of nodes for which the audit was run so far.
+accessibility-progress-progressbar =
+ { $nodeCount ->
+ [one] Checking { $nodeCount } node
+ *[other] Checking { $nodeCount } nodes
+ }
+
+accessibility-progress-finishing = Finishing up…
+ .aria-valuetext = Finishing up…
+
+## Text entries that are used as text alternative for icons that depict accessibility issues.
+
+accessibility-warning =
+ .alt = Warning
+
+accessibility-fail =
+ .alt = Error
+
+accessibility-best-practices =
+ .alt = Best Practices
+
+## Text entries for a paragraph used in the accessibility panel sidebar's checks section
+## that describe that currently selected accessible object has an accessibility issue
+## with its text label or accessible name.
+
+accessibility-text-label-issue-area = Use <code>alt</code> attribute to label <div>area</div> elements that have the <span>href</span> attribute. <a>Learn more</a>
+
+accessibility-text-label-issue-dialog = Dialogs should be labelled. <a>Learn more</a>
+
+accessibility-text-label-issue-document-title = Documents must have a <code>title</code>. <a>Learn more</a>
+
+accessibility-text-label-issue-embed = Embedded content must be labelled. <a>Learn more</a>
+
+accessibility-text-label-issue-figure = Figures with optional captions should be labelled. <a>Learn more</a>
+
+accessibility-text-label-issue-fieldset = <code>fieldset</code> elements must be labelled. <a>Learn more</a>
+
+accessibility-text-label-issue-fieldset-legend2 = Use a <code>legend</code> element to label a <span>fieldset</span>. <a>Learn more</a>
+
+accessibility-text-label-issue-form = Form elements must be labelled. <a>Learn more</a>
+
+accessibility-text-label-issue-form-visible = Form elements should have a visible text label. <a>Learn more</a>
+
+accessibility-text-label-issue-frame = <code>frame</code> elements must be labelled. <a>Learn more</a>
+
+accessibility-text-label-issue-glyph = Use <code>alt</code> attribute to label <span>mglyph</span> elements. <a>Learn more</a>
+
+accessibility-text-label-issue-heading = Headings must be labelled. <a>Learn more</a>
+
+accessibility-text-label-issue-heading-content = Headings should have visible text content. <a>Learn more</a>
+
+accessibility-text-label-issue-iframe = Use <code>title</code> attribute to describe <span>iframe</span> content. <a>Learn more</a>
+
+accessibility-text-label-issue-image = Content with images must be labelled. <a>Learn more</a>
+
+accessibility-text-label-issue-interactive = Interactive elements must be labelled. <a>Learn more</a>
+
+accessibility-text-label-issue-optgroup-label2 = Use a <code>label</code> attribute to label an <span>optgroup</span>. <a>Learn more</a>
+
+accessibility-text-label-issue-toolbar = Toolbars must be labelled when there is more than one toolbar. <a>Learn more</a>
+
+## Text entries for a paragraph used in the accessibility panel sidebar's checks section
+## that describe that currently selected accessible object has a keyboard accessibility
+## issue.
+
+accessibility-keyboard-issue-semantics = Focusable elements should have interactive semantics. <a>Learn more</a>
+
+accessibility-keyboard-issue-tabindex = Avoid using <code>tabindex</code> attribute greater than zero. <a>Learn more</a>
+
+accessibility-keyboard-issue-action = Interactive elements must be able to be activated using a keyboard. <a>Learn more</a>
+
+accessibility-keyboard-issue-focusable = Interactive elements must be focusable. <a>Learn more</a>
+
+accessibility-keyboard-issue-focus-visible = Focusable element may be missing focus styling. <a>Learn more</a>
+
+accessibility-keyboard-issue-mouse-only = Clickable elements must be focusable and should have interactive semantics. <a>Learn more</a>
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/application.ftl b/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/application.ftl
new file mode 100644
index 0000000000..997f503806
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/application.ftl
@@ -0,0 +1,147 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+### These strings are used inside the Application panel which is available
+### by setting the preference `devtools-application-enabled` to true.
+
+
+### The correct localization of this file might be to keep it in English, or another
+### language commonly spoken among web developers. You want to make that choice consistent
+### across the developer tools. A good criteria is the language in which you'd find the
+### best documentation on web development on the web.
+
+# Header for the list of Service Workers displayed in the application panel for the current page.
+serviceworker-list-header = Service Workers
+
+# Text displayed next to the list of Service Workers to encourage users to check out
+# about:debugging to see all registered Service Workers.
+serviceworker-list-aboutdebugging = Open <a>about:debugging</a> for Service Workers from other domains
+
+# Text for the button to unregister a Service Worker. Displayed for active Service Workers.
+serviceworker-worker-unregister = Unregister
+
+# Text for the debug link displayed for an already started Service Worker. Clicking on the
+# link opens a new devtools toolbox for this service worker. The title attribute is only
+# displayed when the link is disabled.
+serviceworker-worker-debug = Debug
+ .title = Only running service workers can be debugged
+
+# Alt text for the image icon displayed inside a debug link for a service worker.
+serviceworker-worker-inspect-icon =
+ .alt = Inspect
+
+# Text for the start link displayed for a registered but not running Service Worker.
+# Clicking on the link will attempt to start the service worker.
+serviceworker-worker-start3 = Start
+
+# Text displayed for the updated time of the service worker. The <time> element will
+# display the last update time of the service worker script.
+serviceworker-worker-updated = Updated <time>{ DATETIME($date, month: "long", year: "numeric", day: "numeric", hour: "numeric", minute: "numeric", second: "numeric") }</time>
+
+## Service Worker status strings: all serviceworker-worker-status-* strings are also
+## defined in aboutdebugging.properties and should be synchronized with them.
+
+# Service Worker status. A running service worker is registered, currently executed, can
+# be debugged and stopped.
+serviceworker-worker-status-running = Running
+
+# Service Worker status. A stopped service worker is registered but not currently active.
+serviceworker-worker-status-stopped = Stopped
+
+# Text displayed when no service workers are visible for the current page.
+serviceworker-empty-intro2 = No service workers found
+
+# Link will open https://developer.mozilla.org/docs/Web/API/Service_Worker_API/Using_Service_Workers
+serviceworker-empty-intro-link = Learn more
+
+# Text displayed when there are no Service Workers to display for the current page,
+# introducing hints to debug Service Worker issues.
+# <a> and <span> are links that will open the webconsole and the debugger, respectively.
+serviceworker-empty-suggestions2 = If the current page should have a service worker, you could look for errors in the <a>Console</a> or step through your service worker registration in the <span>Debugger</span>.
+
+# Suggestion to go to about:debugging in order to see Service Workers for all domains.
+# Link will open about:debugging in a new tab.
+serviceworker-empty-suggestions-aboutdebugging2 = View service workers from other domains
+
+# Header for the Manifest page when we have an actual manifest
+manifest-view-header = App Manifest
+
+# Header for the Manifest page when there's no manifest to inspect
+manifest-empty-intro2 = No web app manifest detected
+
+# The link will open https://developer.mozilla.org/en-US/docs/Web/Manifest
+manifest-empty-intro-link = Learn how to add a manifest
+
+# Header for the Errors and Warnings section of Manifest inspection displayed in the application panel.
+manifest-item-warnings = Errors and Warnings
+
+# Header for the Identity section of Manifest inspection displayed in the application panel.
+manifest-item-identity = Identity
+
+# Header for the Presentation section of Manifest inspection displayed in the application panel.
+manifest-item-presentation = Presentation
+
+# Header for the Icon section of Manifest inspection displayed in the application panel.
+manifest-item-icons = Icons
+
+# Text displayed while we are loading the manifest file
+manifest-loading = Loading manifest…
+
+# Text displayed when the manifest has been successfully loaded
+manifest-loaded-ok = Manifest loaded.
+
+# Text displayed as a caption when there has been an error while trying to
+# load the manifest
+manifest-loaded-error = There was an error while loading the manifest:
+
+# Text displayed as an error when there has been a Firefox DevTools error while
+# trying to load the manifest
+manifest-loaded-devtools-error = Firefox DevTools error
+
+# Text displayed when the page has no manifest available
+manifest-non-existing = No manifest found to inspect.
+
+# Text displayed when the page has a manifest embedded in a Data URL and
+# thus we cannot link to it.
+manifest-json-link-data-url = The manifest is embedded in a Data URL.
+
+# Text displayed at manifest icons to label their purpose, as declared
+# in the manifest.
+manifest-icon-purpose = Purpose: <code>{ $purpose }</code>
+
+# Text displayed as the alt attribute for <img> tags showing the icons in the
+# manifest.
+manifest-icon-img =
+ .alt = Icon
+
+# Text displayed as the title attribute for <img> tags showing the icons in the
+# manifest. `$sizes` is a user-dependent string that has been parsed as a
+# space-separated list of `<width>x<height>` sizes or the keyword `any`.
+manifest-icon-img-title = Icon with sizes: { $sizes }
+
+# Text displayed as the title attribute for <img> tags showing the icons in the
+# manifest, in case there's no icon size specified by the user
+manifest-icon-img-title-no-sizes = Unspecified size icon
+
+# Sidebar navigation item for Manifest sidebar item section
+sidebar-item-manifest = Manifest
+ .alt = Manifest Icon
+ .title = Manifest
+
+# Sidebar navigation item for Service Workers sidebar item section
+sidebar-item-service-workers = Service Workers
+ .alt = Service Workers Icon
+ .title = Service Workers
+
+# Text for the ALT and TITLE attributes of the warning icon
+icon-warning =
+ .alt = Warning icon
+ .title = Warning
+
+# Text for the ALT and TITLE attributes of the error icon
+icon-error =
+ .alt = Error icon
+ .title = Error
+
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/compatibility.ftl b/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/compatibility.ftl
new file mode 100644
index 0000000000..05210e7f1a
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/compatibility.ftl
@@ -0,0 +1,54 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## Messages used as headers in the main pane
+
+compatibility-selected-element-header = Selected Element
+compatibility-all-elements-header = All Issues
+
+## Message used as labels for the type of issue
+
+compatibility-issue-deprecated = (deprecated)
+compatibility-issue-experimental = (experimental)
+compatibility-issue-prefixneeded = (prefix needed)
+compatibility-issue-deprecated-experimental = (deprecated, experimental)
+compatibility-issue-deprecated-prefixneeded = (deprecated, prefix needed)
+compatibility-issue-experimental-prefixneeded = (experimental, prefix needed)
+compatibility-issue-deprecated-experimental-prefixneeded = (deprecated, experimental, prefix needed)
+
+## Messages used as labels and titles for buttons in the footer
+
+compatibility-settings-button-label = Settings
+compatibility-settings-button-title =
+ .title = Settings
+
+## Messages used as headers in settings pane
+
+compatibility-settings-header = Settings
+compatibility-target-browsers-header = Target Browsers
+
+##
+
+# Text used as the label for the number of nodes where the issue occurred
+# Variables:
+# $number (Number) - The number of nodes where the issue occurred
+compatibility-issue-occurrences =
+ { $number ->
+ [one] { $number } occurrence
+ *[other] { $number } occurrences
+ }
+
+compatibility-no-issues-found = No compatibility issues found.
+compatibility-close-settings-button =
+ .title = Close settings
+
+# Text used in the element containing the browser icons for a given compatibility issue.
+# Line breaks are significant.
+# Variables:
+# $browsers (String) - A line-separated list of browser information (e.g. Firefox 98\nChrome 99).
+compatibility-issue-browsers-list =
+ .title =
+ Compatibility issues in:
+ { $browsers }
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/perftools.ftl b/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/perftools.ftl
new file mode 100644
index 0000000000..87b44bf17b
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/perftools.ftl
@@ -0,0 +1,161 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+### These strings are used in DevTools’ performance-new panel, about:profiling, and
+### the remote profiling panel. There are additional profiler strings in the appmenu.ftl
+### file that are used for the profiler popup.
+
+perftools-intro-title = Profiler Settings
+perftools-intro-description =
+ Recordings launch profiler.firefox.com in a new tab. All data is stored
+ locally, but you can choose to upload it for sharing.
+
+## All of the headings for the various sections.
+
+perftools-heading-settings = Full Settings
+perftools-heading-buffer = Buffer Settings
+perftools-heading-features = Features
+perftools-heading-features-default = Features (Recommended on by default)
+perftools-heading-features-disabled = Disabled Features
+perftools-heading-features-experimental = Experimental
+perftools-heading-threads = Threads
+perftools-heading-threads-jvm = JVM Threads
+perftools-heading-local-build = Local build
+
+##
+
+perftools-description-intro =
+ Recordings launch <a>profiler.firefox.com</a> in a new tab. All data is stored
+ locally, but you can choose to upload it for sharing.
+perftools-description-local-build =
+ If you’re profiling a build that you have compiled yourself, on this
+ machine, please add your build’s objdir to the list below so that
+ it can be used to look up symbol information.
+
+## The controls for the interval at which the profiler samples the code.
+
+perftools-range-interval-label = Sampling interval:
+perftools-range-interval-milliseconds = { NUMBER($interval, maxFractionalUnits: 2) } ms
+
+##
+
+# The size of the memory buffer used to store things in the profiler.
+perftools-range-entries-label = Buffer size:
+
+perftools-custom-threads-label = Add custom threads by name:
+
+perftools-devtools-interval-label = Interval:
+perftools-devtools-threads-label = Threads:
+perftools-devtools-settings-label = Settings
+
+## Various statuses that affect the current state of profiling, not typically displayed.
+
+perftools-status-recording-stopped-by-another-tool = The recording was stopped by another tool.
+perftools-status-restart-required = The browser must be restarted to enable this feature.
+
+## These are shown briefly when the user is waiting for the profiler to respond.
+
+perftools-request-to-stop-profiler = Stopping recording
+perftools-request-to-get-profile-and-stop-profiler = Capturing profile
+
+##
+
+perftools-button-start-recording = Start recording
+perftools-button-capture-recording = Capture recording
+perftools-button-cancel-recording = Cancel recording
+perftools-button-save-settings = Save settings and go back
+perftools-button-restart = Restart
+perftools-button-add-directory = Add a directory
+perftools-button-remove-directory = Remove selected
+perftools-button-edit-settings = Edit Settings…
+
+## These messages are descriptions of the threads that can be enabled for the profiler.
+
+perftools-thread-gecko-main =
+ .title = The main processes for both the parent process, and content processes
+perftools-thread-compositor =
+ .title = Composites together different painted elements on the page
+perftools-thread-dom-worker =
+ .title = This handles both web workers and service workers
+perftools-thread-renderer =
+ .title = When WebRender is enabled, the thread that executes OpenGL calls
+perftools-thread-render-backend =
+ .title = The WebRender RenderBackend thread
+perftools-thread-timer =
+ .title = The thread handling timers (setTimeout, setInterval, nsITimer)
+perftools-thread-style-thread =
+ .title = Style computation is split into multiple threads
+pref-thread-stream-trans =
+ .title = Network stream transport
+perftools-thread-socket-thread =
+ .title = The thread where networking code runs any blocking socket calls
+perftools-thread-img-decoder =
+ .title = Image decoding threads
+perftools-thread-dns-resolver =
+ .title = DNS resolution happens on this thread
+perftools-thread-task-controller =
+ .title = TaskController thread pool threads
+perftools-thread-jvm-gecko =
+ .title = The main Gecko JVM thread
+perftools-thread-jvm-nimbus =
+ .title = The main threads for the Nimbus experiments SDK
+perftools-thread-jvm-default-dispatcher =
+ .title = The Default dispatcher for the Kotlin coroutines library
+perftools-thread-jvm-glean =
+ .title = The main threads for the Glean telemetry SDK
+perftools-thread-jvm-arch-disk-io =
+ .title = The IO dispatcher for the Kotlin coroutines library
+perftools-thread-jvm-pool =
+ .title = Threads created in an unnamed thread pool
+
+##
+
+perftools-record-all-registered-threads = Bypass selections above and record all registered threads
+
+perftools-tools-threads-input-label =
+ .title = These thread names are a comma separated list that is used to enable profiling of the threads in the profiler. The name needs to be only a partial match of the thread name to be included. It is whitespace sensitive.
+
+## Onboarding UI labels. These labels are displayed in the new performance panel UI, when
+## devtools.performance.new-panel-onboarding preference is true.
+
+perftools-onboarding-message = <b>New</b>: { -profiler-brand-name } is now integrated into Developer Tools. <a>Learn more</a> about this powerful new tool.
+
+perftools-onboarding-close-button =
+ .aria-label = Close the onboarding message
+
+## Profiler presets
+
+
+# Presets and their l10n IDs are defined in the file
+# devtools/client/performance-new/popup/background.jsm.js
+# The same labels and descriptions are also defined in appmenu.ftl.
+
+# Presets and their l10n IDs are defined in the file
+# devtools/client/performance-new/shared/background.jsm.js
+# The same labels and descriptions are also defined in appmenu.ftl.
+
+perftools-presets-web-developer-label = Web Developer
+perftools-presets-web-developer-description = Recommended preset for most web app debugging, with low overhead.
+
+perftools-presets-firefox-label = { -brand-shorter-name }
+perftools-presets-firefox-description = Recommended preset for profiling { -brand-shorter-name }.
+
+perftools-presets-graphics-label = Graphics
+perftools-presets-graphics-description = Preset for investigating graphics bugs in { -brand-shorter-name }.
+
+perftools-presets-media-label = Media
+perftools-presets-media-description2 = Preset for investigating audio and video bugs in { -brand-shorter-name }.
+
+perftools-presets-networking-label = Networking
+perftools-presets-networking-description = Preset for investigating networking bugs in { -brand-shorter-name }.
+
+# "Power" is used in the sense of energy (electricity used by the computer).
+perftools-presets-power-label = Power
+perftools-presets-power-description = Preset for investigating power use bugs in { -brand-shorter-name }, with low overhead.
+
+perftools-presets-custom-label = Custom
+
+##
+
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/storage.ftl b/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/storage.ftl
new file mode 100644
index 0000000000..f3574076b1
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/storage.ftl
@@ -0,0 +1,132 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+### These strings are used inside the Storage Inspector.
+
+# Key shortcut used to focus the filter box on top of the data view
+storage-filter-key = CmdOrCtrl+F
+
+# Hint shown when the selected storage host does not contain any data
+storage-table-empty-text = No data present for selected host
+
+# Hint shown when the cookies storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/Cookies
+storage-table-type-cookies-hint = View and edit cookies by selecting a host. <a data-l10n-name="learn-more-link">Learn more</a>
+
+# Hint shown when the local storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/Local_Storage_Session_Storage
+storage-table-type-localstorage-hint = View and edit the local storage by selecting a host. <a data-l10n-name="learn-more-link">Learn more</a>
+
+# Hint shown when the session storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/Local_Storage_Session_Storage
+storage-table-type-sessionstorage-hint = View and edit the session storage by selecting a host. <a data-l10n-name="learn-more-link">Learn more</a>
+
+# Hint shown when the IndexedDB storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/IndexedDB
+storage-table-type-indexeddb-hint = View and delete IndexedDB entries by selecting a database. <a data-l10n-name="learn-more-link">Learn more</a>
+
+# Hint shown when the cache storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/Cache_Storage
+storage-table-type-cache-hint = View and delete the cache storage entries by selecting a storage. <a data-l10n-name="learn-more-link">Learn more</a>
+
+# Hint shown when the extension storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/Extension_Storage
+storage-table-type-extensionstorage-hint = View and edit the extension storage by selecting a host. <a data-l10n-name="learn-more-link">Learn more</a>
+
+# Placeholder for the searchbox that allows you to filter the table items
+storage-search-box =
+ .placeholder = Filter Items
+
+# Placeholder text in the sidebar search box
+storage-variable-view-search-box =
+ .placeholder = Filter values
+
+# Add Item button title
+storage-add-button =
+ .title = Add Item
+
+# Refresh button title
+storage-refresh-button =
+ .title = Refresh Items
+
+# Context menu action to delete all storage items
+storage-context-menu-delete-all =
+ .label = Delete All
+
+# Context menu action to delete all session cookies
+storage-context-menu-delete-all-session-cookies =
+ .label = Delete All Session Cookies
+
+# Context menu action to copy a storage item
+storage-context-menu-copy =
+ .label = Copy
+
+# Context menu action to delete storage item
+# Variables:
+# $itemName (String) - Name of the storage item that will be deleted
+storage-context-menu-delete =
+ .label = Delete “{ $itemName }”
+
+# Context menu action to add an item
+storage-context-menu-add-item =
+ .label = Add Item
+
+# Context menu action to delete all storage items from a given host
+# Variables:
+# $host (String) - Host for which we want to delete the items
+storage-context-menu-delete-all-from =
+ .label = Delete All From “{ $host }”
+
+## Header names of the columns in the Storage Table for each type of storage available
+## through the Storage Tree to the side.
+
+storage-table-headers-cookies-name = Name
+storage-table-headers-cookies-value = Value
+storage-table-headers-cookies-expires = Expires / Max-Age
+storage-table-headers-cookies-size = Size
+storage-table-headers-cookies-last-accessed = Last Accessed
+storage-table-headers-cookies-creation-time = Created
+storage-table-headers-cache-status = Status
+storage-table-headers-extension-storage-area = Storage Area
+
+## Labels for Storage type groups present in the Storage Tree, like cookies, local storage etc.
+
+storage-tree-labels-cookies = Cookies
+storage-tree-labels-local-storage = Local Storage
+storage-tree-labels-session-storage = Session Storage
+storage-tree-labels-indexed-db = Indexed DB
+storage-tree-labels-cache = Cache Storage
+storage-tree-labels-extension-storage = Extension Storage
+
+##
+
+# Tooltip for the button that collapses the right panel in the
+# storage UI when the panel is closed.
+storage-expand-pane =
+ .title = Expand Pane
+
+# Tooltip for the button that collapses the right panel in the
+# storage UI when the panel is open.
+storage-collapse-pane =
+ .title = Collapse Pane
+
+# String displayed in the expires column when the cookie is a Session Cookie
+storage-expires-session = Session
+
+# Heading displayed over the item value in the sidebar
+storage-data = Data
+
+# Heading displayed over the item parsed value in the sidebar
+storage-parsed-value = Parsed Value
+
+# Warning notification when IndexedDB database could not be deleted immediately.
+# Variables:
+# $dbName (String) - Name of the database
+storage-idb-delete-blocked = Database “{ $dbName }” will be deleted after all connections are closed.
+
+# Error notification when IndexedDB database could not be deleted.
+# Variables:
+# $dbName (String) - Name of the database
+storage-idb-delete-error = Database “{ $dbName }” could not be deleted.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/styleeditor.ftl b/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/styleeditor.ftl
new file mode 100644
index 0000000000..18f6a5f989
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/styleeditor.ftl
@@ -0,0 +1,51 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+styleeditor-new-button =
+ .tooltiptext = Create and append a new style sheet to the document
+ .accesskey = N
+styleeditor-import-button =
+ .tooltiptext = Import and append an existing style sheet to the document
+ .accesskey = I
+styleeditor-filter-input =
+ .placeholder = Filter style sheets
+styleeditor-visibility-toggle =
+ .tooltiptext = Toggle style sheet visibility
+ .accesskey = S
+styleeditor-visibility-toggle-system =
+ .tooltiptext = System style sheets can’t be disabled
+styleeditor-save-button = Save
+ .tooltiptext = Save this style sheet to a file
+ .accesskey = S
+styleeditor-options-button =
+ .tooltiptext = Style Editor options
+styleeditor-at-rules = At-rules
+styleeditor-editor-textbox =
+ .data-placeholder = Type CSS here.
+styleeditor-no-stylesheet = This page has no style sheet.
+styleeditor-no-stylesheet-tip = Perhaps you’d like to <a data-l10n-name="append-new-stylesheet">append a new style sheet</a>?
+styleeditor-open-link-new-tab =
+ .label = Open Link in New Tab
+styleeditor-copy-url =
+ .label = Copy URL
+styleeditor-find =
+ .label = Find
+ .accesskey = F
+styleeditor-find-again =
+ .label = Find Again
+ .accesskey = g
+styleeditor-go-to-line =
+ .label = Jump to Line…
+ .accesskey = J
+# Label displayed when searching a term that is not found in any stylesheet path
+styleeditor-stylesheet-all-filtered = No matching style sheet has been found.
+
+# This string is shown in the style sheets list
+# Variables:
+# $ruleCount (Integer) - The number of rules in the stylesheet.
+styleeditor-stylesheet-rule-count =
+ { $ruleCount ->
+ [one] { $ruleCount } rule.
+ *[other] { $ruleCount } rules.
+ }
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/toolbox-options.ftl b/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/toolbox-options.ftl
new file mode 100644
index 0000000000..f5accc6030
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/toolbox-options.ftl
@@ -0,0 +1,133 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+### Localization for Developer Tools options
+
+
+## Default Developer Tools section
+
+# The heading
+options-select-default-tools-label = Default Developer Tools
+# The label for the explanation of the * marker on a tool which is currently not supported
+# for the target of the toolbox.
+options-tool-not-supported-label = * Not supported for current toolbox target
+# The label for the heading of group of checkboxes corresponding to the developer tools
+# added by add-ons. This heading is hidden when there is no developer tool installed by add-ons.
+options-select-additional-tools-label = Developer Tools installed by add-ons
+# The label for the heading of group of checkboxes corresponding to the default developer
+# tool buttons.
+options-select-enabled-toolbox-buttons-label = Available Toolbox Buttons
+# The label for the heading of the radiobox corresponding to the theme
+options-select-dev-tools-theme-label = Themes
+
+## Inspector section
+
+# The heading
+options-context-inspector = Inspector
+# The label for the checkbox option to show user agent styles
+options-show-user-agent-styles-label = Show Browser Styles
+options-show-user-agent-styles-tooltip =
+ .title = Turning this on will show default styles that are loaded by the browser.
+# The label for the checkbox option to enable collapse attributes
+options-collapse-attrs-label = Truncate DOM attributes
+options-collapse-attrs-tooltip =
+ .title = Truncate long attributes in the inspector
+# The label for the checkbox option to enable the "drag to update" feature
+options-inspector-draggable-properties-label = Click and drag to edit size values
+options-inspector-draggable-properties-tooltip =
+ .title = Click and drag to edit size values in the inspector rules view.
+# The label for the checkbox option to enable simplified highlighting on page elements
+# within the inspector for users who enabled prefers-reduced-motion = reduce
+options-inspector-simplified-highlighters-label = Use simpler highlighters with prefers-reduced-motion
+options-inspector-simplified-highlighters-tooltip =
+ .title = Enables simplified highlighters when prefers-reduced-motion is enabled. Draws lines instead of filled rectangles around highlighted elements to avoid flashing effects.
+
+## "Default Color Unit" options for the Inspector
+
+options-default-color-unit-label = Default colour unit
+options-default-color-unit-authored = As Authored
+options-default-color-unit-hex = Hex
+options-default-color-unit-hsl = HSL(A)
+options-default-color-unit-rgb = RGB(A)
+options-default-color-unit-hwb = HWB
+options-default-color-unit-name = Colour Names
+
+## Style Editor section
+
+# The heading
+options-styleeditor-label = Style Editor
+# The label for the checkbox that toggles autocompletion of css in the Style Editor
+options-stylesheet-autocompletion-label = Autocomplete CSS
+options-stylesheet-autocompletion-tooltip =
+ .title = Autocomplete CSS properties, values and selectors in Style Editor as you type
+
+## Screenshot section
+
+# The heading
+options-screenshot-label = Screenshot Behaviour
+# Label for the checkbox that toggles screenshot to clipboard feature
+options-screenshot-clipboard-only-label = Screenshot to clipboard only
+options-screenshot-clipboard-tooltip2 =
+ .title = Saves the screenshot directly to the clipboard
+# Label for the checkbox that toggles the camera shutter audio for screenshot tool
+options-screenshot-audio-label = Play camera shutter sound
+options-screenshot-audio-tooltip =
+ .title = Enables the camera audio sound when taking screenshot
+
+## Editor section
+
+# The heading
+options-sourceeditor-label = Editor Preferences
+options-sourceeditor-detectindentation-tooltip =
+ .title = Guess indentation based on source content
+options-sourceeditor-detectindentation-label = Detect indentation
+options-sourceeditor-autoclosebrackets-tooltip =
+ .title = Automatically insert closing brackets
+options-sourceeditor-autoclosebrackets-label = Autoclose brackets
+options-sourceeditor-expandtab-tooltip =
+ .title = Use spaces instead of the tab character
+options-sourceeditor-expandtab-label = Indent using spaces
+options-sourceeditor-tabsize-label = Tab size
+options-sourceeditor-keybinding-label = Keybindings
+options-sourceeditor-keybinding-default-label = Default
+
+## Advanced section
+
+# The heading (this item is also used in perftools.ftl)
+options-context-advanced-settings = Advanced settings
+# The label for the checkbox that toggles the HTTP cache on or off
+options-disable-http-cache-label = Disable HTTP Cache (when toolbox is open)
+options-disable-http-cache-tooltip =
+ .title = Turning this option on will disable the HTTP cache for all tabs that have the toolbox open. Service Workers are not affected by this option.
+# The label for checkbox that toggles JavaScript on or off
+options-disable-javascript-label = Disable JavaScript *
+options-disable-javascript-tooltip =
+ .title = Turning this option on will disable JavaScript for the current tab. If the tab or the toolbox is closed then this setting will be forgotten.
+# The label for checkbox that toggles chrome debugging, i.e. the devtools.chrome.enabled preference
+options-enable-chrome-label = Enable browser chrome and add-on debugging toolboxes
+options-enable-chrome-tooltip =
+ .title = Turning this option on will allow you to use various developer tools in browser context (via Tools > Web Developer > Browser Toolbox) and debug add-ons from the Add-ons Manager
+# The label for checkbox that toggles remote debugging, i.e. the devtools.debugger.remote-enabled preference
+options-enable-remote-label = Enable remote debugging
+options-enable-remote-tooltip2 =
+ .title = Turning this option on will allow to debug this browser instance remotely
+# The label for checkbox that enables F12 as a shortcut to open DevTools
+options-enable-f12-label = Use the F12 key to open or close DevTools
+options-enable-f12-tooltip =
+ .title = Turning this option on will bind the F12 key to open or close the DevTools toolbox
+# The label for checkbox that toggles custom formatters for objects
+options-enable-custom-formatters-label = Enable custom formatters
+options-enable-custom-formatters-tooltip =
+ .title = Turning this option on will allow sites to define custom formatters for DOM objects
+# The label for checkbox that toggles the service workers testing over HTTP on or off.
+options-enable-service-workers-http-label = Enable Service Workers over HTTP (when toolbox is open)
+options-enable-service-workers-http-tooltip =
+ .title = Turning this option on will enable the service workers over HTTP for all tabs that have the toolbox open.
+# The label for the checkbox that toggles source maps in all tools.
+options-source-maps-label = Enable Source Maps
+options-source-maps-tooltip =
+ .title = If you enable this option sources will be mapped in the tools.
+# The message shown for settings that trigger page reload
+options-context-triggers-page-refresh = * Current session only, reloads the page
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/toolbox.ftl b/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/toolbox.ftl
new file mode 100644
index 0000000000..00fb5b1521
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/toolbox.ftl
@@ -0,0 +1,55 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+### These messages are used in the DevTools toolbox.
+
+
+## These labels are shown in the "..." menu in the toolbox, and represent different
+## commands such as the docking of DevTools, toggling features, and viewing some
+## external links. Some of the commands have the keyboard shortcut shown next to
+## the label.
+
+toolbox-meatball-menu-dock-bottom-label = Dock to Bottom
+toolbox-meatball-menu-dock-left-label = Dock to Left
+toolbox-meatball-menu-dock-right-label = Dock to Right
+toolbox-meatball-menu-dock-separate-window-label = Separate Window
+
+toolbox-meatball-menu-splitconsole-label = Show Split Console
+toolbox-meatball-menu-hideconsole-label = Hide Split Console
+
+toolbox-meatball-menu-settings-label = Settings
+toolbox-meatball-menu-documentation-label = Documentation…
+toolbox-meatball-menu-community-label = Community…
+
+# This menu item is only available in the browser toolbox. It forces the popups/panels
+# to stay visible on blur, which is primarily useful for addon developers and Firefox
+# contributors.
+toolbox-meatball-menu-noautohide-label = Disable Popup Auto-Hide
+
+toolbox-meatball-menu-pseudo-locale-accented = Enable “accented” locale
+toolbox-meatball-menu-pseudo-locale-bidi = Enable “bidi” locale
+
+##
+
+
+## These labels are shown in the top-toolbar in the Browser Toolbox and Browser Console
+
+toolbox-mode-browser-toolbox-label = Browser Toolbox Mode
+toolbox-mode-browser-console-label = Browser Console Mode
+
+toolbox-mode-everything-label = Multiprocess
+toolbox-mode-everything-sub-label = (Slower)
+toolbox-mode-everything-container =
+ .title = Debug everything in all processes
+
+toolbox-mode-parent-process-label = Parent process only
+toolbox-mode-parent-process-sub-label = (Fast)
+toolbox-mode-parent-process-container =
+ .title = Only focus on resources from the parent process.
+
+toolbox-always-on-top-enabled2 = Disable always on top
+ .title = This will restart the Developer Tools
+toolbox-always-on-top-disabled2 = Enable always on top
+ .title = This will restart the Developer Tools
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/tooltips.ftl b/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/tooltips.ftl
new file mode 100644
index 0000000000..60dae0c2bf
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/tooltips.ftl
@@ -0,0 +1,84 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+### Localization for Developer Tools tooltips.
+
+learn-more = <span data-l10n-name="link">Learn more</span>
+
+## In the Rule View when a CSS property cannot be successfully applied we display
+## an icon. When this icon is hovered this message is displayed to explain why
+## the property is not applied.
+## Variables:
+## $property (string) - A CSS property name e.g. "color".
+## $display (string) - A CSS display value e.g. "inline-block".
+
+inactive-css-not-grid-or-flex-container = <strong>{ $property }</strong> has no effect on this element since it’s neither a flex container nor a grid container.
+inactive-css-not-grid-or-flex-container-or-multicol-container = <strong>{ $property }</strong> has no effect on this element since it’s not a flex container, a grid container, or a multi-column container.
+inactive-css-not-multicol-container = <strong>{ $property }</strong> has no effect on this element since it’s not a multi-column container.
+inactive-css-not-grid-or-flex-item = <strong>{ $property }</strong> has no effect on this element since it’s not a grid or flex item.
+inactive-css-not-grid-item = <strong>{ $property }</strong> has no effect on this element since it’s not a grid item.
+inactive-css-not-grid-container = <strong>{ $property }</strong> has no effect on this element since it’s not a grid container.
+inactive-css-not-flex-item = <strong>{ $property }</strong> has no effect on this element since it’s not a flex item.
+inactive-css-not-flex-container = <strong>{ $property }</strong> has no effect on this element since it’s not a flex container.
+inactive-css-not-inline-or-tablecell = <strong>{ $property }</strong> has no effect on this element since it’s not an inline or table-cell element.
+inactive-css-first-line-pseudo-element-not-supported = <strong>{ $property }</strong> is not supported on ::first-line pseudo-elements.
+inactive-css-first-letter-pseudo-element-not-supported = <strong>{ $property }</strong> is not supported on ::first-letter pseudo-elements.
+inactive-css-placeholder-pseudo-element-not-supported = <strong>{ $property }</strong> is not supported on ::placeholder pseudo-elements.
+inactive-css-property-because-of-display = <strong>{ $property }</strong> has no effect on this element since it has a display of <strong>{ $display }</strong>.
+inactive-css-not-display-block-on-floated = The <strong>display</strong> value has been changed by the engine to <strong>block</strong> because the element is <strong>floated</strong>.
+inactive-css-property-is-impossible-to-override-in-visited = It’s impossible to override <strong>{ $property }</strong> due to <strong>:visited</strong> restriction.
+inactive-css-position-property-on-unpositioned-box = <strong>{ $property }</strong> has no effect on this element since it’s not a positioned element.
+inactive-text-overflow-when-no-overflow = <strong>{ $property }</strong> has no effect on this element since <strong>overflow:hidden</strong> is not set.
+inactive-css-not-for-internal-table-elements = <strong>{ $property }</strong> has no effect on internal table elements.
+inactive-css-not-for-internal-table-elements-except-table-cells = <strong>{ $property }</strong> has no effect on internal table elements except table cells.
+inactive-css-not-table = <strong>{ $property }</strong> has no effect on this element since it’s not a table.
+inactive-css-not-table-cell = <strong>{ $property }</strong> has no effect on this element since it’s not a table cell.
+inactive-scroll-padding-when-not-scroll-container = <strong>{ $property }</strong> has no effect on this element since it doesn’t scroll.
+inactive-css-border-image = <strong>{ $property }</strong> has no effect on this element since it cannot be applied to internal table elements where <strong>border-collapse</strong> is set to <strong>collapse</strong> on the parent table element.
+inactive-css-ruby-element = <strong>{ $property }</strong> has no effect on this element since it is a ruby element. Its size is determined by the font size of the ruby text.
+inactive-css-highlight-pseudo-elements-not-supported = <strong>{ $property }</strong> is not supported on highlight pseudo-elements.
+inactive-css-cue-pseudo-element-not-supported = <strong>{ $property }</strong> is not supported on ::cue pseudo-elements.
+
+## In the Rule View when a CSS property cannot be successfully applied we display
+## an icon. When this icon is hovered this message is displayed to explain how
+## the problem can be solved.
+
+inactive-css-not-grid-or-flex-container-fix = Try adding <strong>display:grid</strong> or <strong>display:flex</strong>. { learn-more }
+inactive-css-not-grid-or-flex-container-or-multicol-container-fix = Try adding either <strong>display:grid</strong>, <strong>display:flex</strong>, or <strong>columns:2</strong>. { learn-more }
+inactive-css-not-multicol-container-fix = Try adding either <strong>column-count</strong> or <strong>column-width</strong>. { learn-more }
+inactive-css-not-grid-or-flex-item-fix-3 = Try adding <strong>display:grid</strong>, <strong>display:flex</strong>, <strong>display:inline-grid</strong>, or <strong>display:inline-flex</strong> to the element’s parent. { learn-more }
+inactive-css-not-grid-item-fix-2 = Try adding <strong>display:grid</strong> or <strong>display:inline-grid</strong> to the element’s parent. { learn-more }
+inactive-css-not-grid-container-fix = Try adding <strong>display:grid</strong> or <strong>display:inline-grid</strong>. { learn-more }
+inactive-css-not-flex-item-fix-2 = Try adding <strong>display:flex</strong> or <strong>display:inline-flex</strong> to the element’s parent. { learn-more }
+inactive-css-not-flex-container-fix = Try adding <strong>display:flex</strong> or <strong>display:inline-flex</strong>. { learn-more }
+inactive-css-not-inline-or-tablecell-fix = Try adding <strong>display:inline</strong> or <strong>display:table-cell</strong>. { learn-more }
+inactive-css-non-replaced-inline-or-table-row-or-row-group-fix = Try adding <strong>display:inline-block</strong> or <strong>display:block</strong>. { learn-more }
+inactive-css-non-replaced-inline-or-table-column-or-column-group-fix = Try adding <strong>display:inline-block</strong>. { learn-more }
+inactive-css-not-display-block-on-floated-fix = Try removing <strong>float</strong> or adding <strong>display:block</strong>. { learn-more }
+inactive-css-position-property-on-unpositioned-box-fix = Try setting its <strong>position</strong> property to something other than <strong>static</strong>. { learn-more }
+inactive-text-overflow-when-no-overflow-fix = Try adding <strong>overflow:hidden</strong>. { learn-more }
+inactive-css-not-for-internal-table-elements-fix = Try setting its <strong>display</strong> property to something else than <strong>table-cell</strong>, <strong>table-column</strong>, <strong>table-row</strong>, <strong>table-column-group</strong>, <strong>table-row-group</strong>, or <strong>table-footer-group</strong>. { learn-more }
+inactive-css-not-for-internal-table-elements-except-table-cells-fix = Try setting its <strong>display</strong> property to something else than <strong>table-column</strong>, <strong>table-row</strong>, <strong>table-column-group</strong>, <strong>table-row-group</strong>, or <strong>table-footer-group</strong>. { learn-more }
+inactive-css-not-table-fix = Try adding <strong>display:table</strong> or <strong>display:inline-table</strong>. { learn-more }
+inactive-css-not-table-cell-fix = Try adding <strong>display:table-cell</strong>. { learn-more }
+inactive-scroll-padding-when-not-scroll-container-fix = Try adding <strong>overflow:auto</strong>, <strong>overflow:scroll</strong>, or <strong>overflow:hidden</strong>. { learn-more }
+inactive-css-border-image-fix = On the parent table element, remove the property or change the value of <strong>border-collapse</strong> to a value other than <strong>collapse</strong>. { learn-more }
+inactive-css-ruby-element-fix = Try changing the <strong>font-size</strong> of the ruby text. { learn-more }
+
+## In the Rule View when a CSS property may have compatibility issues with other browsers
+## we display an icon. When this icon is hovered this message is displayed to explain why
+## the property is incompatible and the platforms it is incompatible on.
+## Variables:
+## $property (string) - A CSS declaration name e.g. "-moz-user-select" that can be a platform specific alias.
+## $rootProperty (string) - A raw CSS property name e.g. "user-select" that is not a platform specific alias.
+
+css-compatibility-default-message = <strong>{ $property }</strong> is not supported in the following browsers:
+css-compatibility-deprecated-experimental-message = <strong>{ $property }</strong> was an experimental property that is now deprecated by W3C standards. It is not supported in the following browsers:
+css-compatibility-deprecated-experimental-supported-message = <strong>{ $property }</strong> was an experimental property that is now deprecated by W3C standards.
+css-compatibility-deprecated-message = <strong>{ $property }</strong> is deprecated by W3C standards. It is not supported in the following browsers:
+css-compatibility-deprecated-supported-message = <strong>{ $property }</strong> is deprecated by W3C standards.
+css-compatibility-experimental-message = <strong>{ $property }</strong> is an experimental property. It is not supported in the following browsers:
+css-compatibility-experimental-supported-message = <strong>{ $property }</strong> is an experimental property.
+css-compatibility-learn-more-message = <span data-l10n-name="link">Learn more</span> about <strong>{ $rootProperty }</strong>
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/devtools/shared/debugger-paused-reasons.ftl b/thunderbird-l10n/en-CA/localization/en-CA/devtools/shared/debugger-paused-reasons.ftl
new file mode 100644
index 0000000000..66c986b5e3
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/devtools/shared/debugger-paused-reasons.ftl
@@ -0,0 +1,87 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+### These strings are used inside the Debugger which is available from the Web
+### Developer sub-menu -> 'Debugger', as well as in the "Paused Debugger
+### Overlay" that is displayed in the content page when it pauses.
+
+
+### The correct localization of this file might be to keep it in
+### English, or another language commonly spoken among web developers.
+### You want to make that choice consistent across the developer tools.
+### A good criteria is the language in which you'd find the best
+### documentation on web development on the web.
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused due to a `debugger` statement in the code
+whypaused-debugger-statement = Paused on debugger statement
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on a breakpoint
+whypaused-breakpoint = Paused on breakpoint
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on an event breakpoint.
+whypaused-event-breakpoint = Paused on event breakpoint
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on an exception
+whypaused-exception = Paused on exception
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on a DOM mutation breakpoint
+whypaused-mutation-breakpoint = Paused on DOM mutation
+
+# The text that is displayed to describe an added node which triggers a subtree
+# modification
+whypaused-mutation-breakpoint-added = Added:
+
+# The text that is displayed to describe a removed node which triggers a subtree
+# modification
+whypaused-mutation-breakpoint-removed = Removed:
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused at a JS execution
+whypaused-interrupted = Paused at Execution
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused while stepping in or out of the stack
+whypaused-resume-limit = Paused while stepping
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on a dom event
+whypaused-pause-on-dom-events = Paused on event listener
+
+# The text that is displayed in an info block when evaluating a conditional
+# breakpoint throws an error
+whypaused-breakpoint-condition-thrown = Error with conditional breakpoint
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on an xml http request
+whypaused-xhr = Paused on XMLHttpRequest
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on a promise rejection
+whypaused-promise-rejection = Paused on promise rejection
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused at a watchpoint on an object property
+whypaused-get-watchpoint = Paused on property get
+
+# The text that is displayed in an info block explaining how the debugger is
+# currently paused at a watchpoint on an object property
+whypaused-set-watchpoint = Paused on property set
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on an assert
+whypaused-assert = Paused on assertion
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on a debugger statement
+whypaused-debug-command = Paused on debugged function
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on an event listener breakpoint set
+whypaused-other = Debugger paused
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/devtools/shared/highlighters.ftl b/thunderbird-l10n/en-CA/localization/en-CA/devtools/shared/highlighters.ftl
new file mode 100644
index 0000000000..3f4c76814c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/devtools/shared/highlighters.ftl
@@ -0,0 +1,55 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+### This file contains strings used in highlighters.
+### Highlighters are visualizations that DevTools draws on top of content to aid
+### in understanding content sizing, etc.
+
+# The row and column position of a grid cell shown in the grid cell infobar when hovering
+# over the CSS grid outline.
+# Variables
+# $row (integer) - The row index
+# $column (integer) - The column index
+grid-row-column-positions = Row { $row } / Column { $column }
+# The layout type of an element shown in the infobar when hovering over a DOM element and
+# it is a grid container.
+gridtype-container = Grid Container
+# The layout type of an element shown in the infobar when hovering over a DOM element and
+# it is a grid item.
+gridtype-item = Grid Item
+# The layout type of an element shown in the infobar when hovering over a DOM element and
+# it is both a grid container and a grid item.
+gridtype-dual = Grid Container/Item
+# The layout type of an element shown in the infobar when hovering over a DOM element and
+# it is a flex container.
+flextype-container = Flex Container
+# The layout type of an element shown in the infobar when hovering over a DOM element and
+# it is a flex item.
+flextype-item = Flex Item
+# The layout type of an element shown in the infobar when hovering over a DOM element and
+# it is both a flex container and a flex item.
+flextype-dual = Flex Container/Item
+# The message displayed in the content page when the user clicks on the
+# "Pick an element from the page" in about:devtools-toolbox inspector panel, when
+# debugging a remote page.
+# Variables
+# $action (string) - Will either be remote-node-picker-notice-action-desktop or
+# remote-node-picker-notice-action-touch
+remote-node-picker-notice = DevTools Node Picker enabled. { $action }
+# Text displayed in `remote-node-picker-notice`, when the remote page is on desktop
+remote-node-picker-notice-action-desktop = Click an element to select it in the Inspector
+# Text displayed in `remote-node-picker-notice`, when the remote page is on Android
+remote-node-picker-notice-action-touch = Tap an element to select it in the Inspector
+# The text displayed in the button that is in the notice in the content page when the user
+# clicks on the "Pick an element from the page" in about:devtools-toolbox inspector panel,
+# when debugging a remote page.
+remote-node-picker-notice-hide-button = Hide
+# The text displayed in a toolbox notification message which is only displayed
+# if prefers-reduced-motion is enabled (via OS-level settings or by using the
+# ui.prefersReducedMotion=1 preference).
+simple-highlighters-message = When prefers-reduced-motion is enabled, a simpler highlighter can be enabled in the settings panel, to avoid flashing colours.
+# Text displayed in a button inside the "simple-highlighters-message" toolbox
+# notification. "Settings" here refers to the DevTools settings panel.
+simple-highlighters-settings-button = Open Settings
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/devtools/shared/webconsole-commands.ftl b/thunderbird-l10n/en-CA/localization/en-CA/devtools/shared/webconsole-commands.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/devtools/shared/webconsole-commands.ftl
@@ -0,0 +1,3 @@
+# 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 http://mozilla.org/MPL/2.0/.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/devtools/startup/key-shortcuts.ftl b/thunderbird-l10n/en-CA/localization/en-CA/devtools/startup/key-shortcuts.ftl
new file mode 100644
index 0000000000..bbc2c7ca1e
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/devtools/startup/key-shortcuts.ftl
@@ -0,0 +1,38 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Key pressed to open a toolbox with the default panel selected
+devtools-commandkey-toggle-toolbox = I
+# Alternative key pressed to open a toolbox with the default panel selected
+devtools-commandkey-toggle-toolbox-f12 = VK_F12
+# Key pressed to open the Browser Toolbox, used for debugging Firefox itself
+devtools-commandkey-browser-toolbox = I
+# Key pressed to open the Browser Console, used for debugging Firefox itself
+devtools-commandkey-browser-console = J
+# Key pressed to toggle on the Responsive Design Mode
+devtools-commandkey-responsive-design-mode = M
+# Key pressed to open a toolbox with the inspector panel selected
+devtools-commandkey-inspector = C
+# Key pressed to open a toolbox with the web console panel selected
+devtools-commandkey-webconsole = K
+# Key pressed to open a toolbox with the debugger panel selected
+devtools-commandkey-jsdebugger = Z
+# Key pressed to open a toolbox with the network monitor panel selected
+devtools-commandkey-netmonitor = E
+# Key pressed to open a toolbox with the style editor panel selected
+devtools-commandkey-styleeditor = VK_F7
+# Key pressed to open a toolbox with the performance panel selected
+devtools-commandkey-performance = VK_F5
+# Key pressed to open a toolbox with the storage panel selected
+devtools-commandkey-storage = VK_F9
+# Key pressed to open a toolbox with the DOM panel selected
+devtools-commandkey-dom = W
+# Key pressed to open a toolbox with the accessibility panel selected
+devtools-commandkey-accessibility-f12 = VK_F12
+# Key pressed to start or stop the performance profiler
+devtools-commandkey-profiler-start-stop = VK_1
+# Key pressed to capture a recorded performance profile
+devtools-commandkey-profiler-capture = VK_2
+# Key pressed to toggle the JavaScript tracing
+devtools-commandkey-javascript-tracing-toggle = VK_5
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/dom/XMLPrettyPrint.ftl b/thunderbird-l10n/en-CA/localization/en-CA/dom/XMLPrettyPrint.ftl
new file mode 100644
index 0000000000..61b5b9432b
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/dom/XMLPrettyPrint.ftl
@@ -0,0 +1,5 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+xml-nostylesheet = This XML file does not appear to have any style information associated with it. The document tree is shown below.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/dom/media.ftl b/thunderbird-l10n/en-CA/localization/en-CA/dom/media.ftl
new file mode 100644
index 0000000000..1b1d6bcc26
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/dom/media.ftl
@@ -0,0 +1,6 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+default-audio-output-device-label = Default audio output device
+mediastatus-fallback-title = { -brand-short-name } is playing media
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/locales-preview/aboutTranslations.ftl b/thunderbird-l10n/en-CA/localization/en-CA/locales-preview/aboutTranslations.ftl
new file mode 100644
index 0000000000..68e9d8aafd
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/locales-preview/aboutTranslations.ftl
@@ -0,0 +1,28 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# The title of the about:translations page, referencing the translations feature.
+about-translations-title = Translations
+about-translations-header = { -translations-brand-name }
+about-translations-results-placeholder = Translation
+# Text displayed on from-language dropdown when no language is selected
+about-translations-detect = Detect language
+# Text displayed on a language dropdown when the language is in beta
+# Variables:
+# $language (string) - The localized display name of the language
+about-translations-displayname-beta = { $language } BETA
+# Text displayed on from-language dropdown when a language is detected
+# Variables:
+# $language (string) - The localized display name of the detected language
+about-translations-detect-lang = Detect language ({ $language })
+# Text displayed on from-language dropdown when a beta language is detected
+# Variables:
+# $language (string) - The localized display name of the detected language
+about-translations-detect-lang-beta = Detect language ({ $language } BETA)
+# Text displayed on to-language dropdown when no language is selected
+about-translations-select = Select language
+about-translations-textarea =
+ .placeholder = Add text to translate
+about-translations-no-support = Your device does not meet the minimum requirements to use this feature. Try on another device.
+about-translations-engine-error = The translations engine failed to load.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/about3Pane.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/about3Pane.ftl
new file mode 100644
index 0000000000..69f25efce8
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/about3Pane.ftl
@@ -0,0 +1,359 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## Message List Header Bar
+
+quick-filter-button =
+ .title = Toggle the Quick Filter Bar
+quick-filter-button-label = Quick Filter
+thread-pane-header-display-button =
+ .title = Message list display options
+# Variables:
+# $count (Number) - The number of messages in this folder.
+thread-pane-folder-message-count =
+ { $count ->
+ [one] { $count } Message
+ *[other] { $count } Messages
+ }
+# Variables:
+# $count (Number) - The number of messages currently selected.
+thread-pane-folder-selected-count =
+ { $count ->
+ *[other] { $count } Selected
+ }
+thread-pane-header-context-table-view =
+ .label = Table View
+thread-pane-header-context-cards-view =
+ .label = Cards View
+thread-pane-header-context-hide =
+ .label = Hide Message List Header
+
+## Quick Filter Bar
+
+# The tooltip to display when the user hovers over the sticky button
+# (currently displayed as a push-pin). When active, the sticky button
+# causes the current filter settings to be retained when the user changes
+# folders or opens new tabs. (When inactive, only the state of the text
+# filters are propagated between folder changes and when opening new tabs.)
+quick-filter-bar-sticky =
+ .title = Keep filters applied when switching folders
+# The tooltip for the filter button that replaces the quick filter buttons with
+# a dropdown menu.
+quick-filter-bar-dropdown =
+ .title = Quick filter menu
+quick-filter-bar-dropdown-unread =
+ .label = Unread
+quick-filter-bar-dropdown-starred =
+ .label = Starred
+quick-filter-bar-dropdown-inaddrbook =
+ .label = Contact
+quick-filter-bar-dropdown-tags =
+ .label = Tags
+quick-filter-bar-dropdown-attachment =
+ .label = Attachment
+# The tooltip for the filter button that causes us to filter results to only
+# include unread messages.
+quick-filter-bar-unread =
+ .title = Show only unread messages
+# The label for the filter button that causes us to filter results to only
+# include unread messages.
+quick-filter-bar-unread-label = Unread
+# The tooltip for the filter button that causes us to filter results to only
+# include messages that have been starred/flagged.
+quick-filter-bar-starred =
+ .title = Show only starred messages
+# The label for the filter button that causes us to filter results to only
+# include messages that have been starred/flagged.
+quick-filter-bar-starred-label = Starred
+# The tooltip for the filter button that causes us to filter results to only
+# include messages from contacts in one of the user's non-remote address
+# books.
+quick-filter-bar-inaddrbook =
+ .title = Show only messages from people in your address book
+# The label for the filter button that causes us to filter results to only
+# include messages from contacts in one of the user's non-remote address
+# books.
+quick-filter-bar-inaddrbook-label = Contact
+# The tooltip for the filter button that causes us to filter results to only
+# include messages with at least one tag on them.
+quick-filter-bar-tags =
+ .title = Show only messages with tags on them
+# The label for the filter button that causes us to filter results to only
+# include messages with at least one tag on them.
+quick-filter-bar-tags-label = Tags
+# The tooltip for the filter button that causes us to filter results to only
+# include messages with attachments.
+quick-filter-bar-attachment =
+ .title = Show only messages with attachments
+# The label for the filter button that causes us to filter results to only
+# include messages with attachments.
+quick-filter-bar-attachment-label = Attachment
+# The contents of the results box when there is a filter active but there
+# are no messages matching the filter.
+quick-filter-bar-no-results = No results
+# This is used to populate the results box; it either displays the
+# number of messages found using this string, that there are no messages
+# (using quick-filter-bar-no-results), or the box is hidden.
+# Variables:
+# $count (Number) - The number of messages that match selected filters.
+quick-filter-bar-results =
+ { $count ->
+ [one] { $count } message
+ *[other] { $count } messages
+ }
+# Keyboard shortcut for the text search box.
+# This should match quick-filter-bar-show in messenger.ftl.
+quick-filter-bar-textbox-shortcut =
+ { PLATFORM() ->
+ [macos] ⇧ ⌘ K
+ *[other] Ctrl+Shift+K
+ }
+# This is the empty text for the text search box.
+# The goal is to convey to the user that typing in the box will filter
+# the messages and that there is a hotkey they can press to get to the
+# box faster.
+quick-filter-bar-textbox =
+ .placeholder = Filter these messages <{ quick-filter-bar-textbox-shortcut }>
+# Tooltip of the Any-of/All-of tagging mode selector.
+quick-filter-bar-boolean-mode =
+ .title = Tag filtering mode
+# The Any-of tagging mode.
+quick-filter-bar-boolean-mode-any =
+ .label = Any of
+ .title = At least one of the selected tag criteria should match
+# The All-of tagging mode.
+quick-filter-bar-boolean-mode-all =
+ .label = All of
+ .title = All of the selected tag criteria must match
+# This label explains what the sender/recipients/subject/body buttons do.
+# This string should ideally be kept short because the label and the text
+# filter buttons share their bar (that appears when there is text in the text
+# filter box) with the list of tags when the tag filter is active, and the
+# tag sub-bar wants as much space as possible. (Overflow is handled by an
+# arrow scroll box.)
+quick-filter-bar-text-filter-explanation = Filter messages by:
+# The button label that toggles whether the text filter searches the message
+# sender for the string.
+quick-filter-bar-text-filter-sender = Sender
+# The button label that toggles whether the text filter searches the message
+# recipients (to, cc) for the string.
+quick-filter-bar-text-filter-recipients = Recipients
+# The button label that toggles whether the text filter searches the message
+# subject for the string.
+quick-filter-bar-text-filter-subject = Subject
+# The button label that toggles whether the text filter searches the message
+# body for the string.
+quick-filter-bar-text-filter-body = Body
+# The first line of the panel popup that tells the user we found no matches
+# but we can convert to a global search for them.
+quick-filter-bar-gloda-upsell-line1 = Continue this search across all folders
+# The second line of the panel popup that tells the user we found no matches.
+# Variables:
+# $text (String) - What the user has typed so far.
+quick-filter-bar-gloda-upsell-line2 = Press ‘Enter’ again to continue your search for: { $text }
+
+## Folder pane
+
+folder-pane-get-messages-button =
+ .title = Get Messages
+folder-pane-get-all-messages-menuitem =
+ .label = Get All New Messages
+ .accesskey = G
+folder-pane-write-message-button = New Message
+ .title = Compose a new message
+folder-pane-more-menu-button =
+ .title = Folder pane options
+# Context menu item to show/hide different folder types in the folder pane
+folder-pane-header-folder-modes =
+ .label = Folder Modes
+# Context menu item to toggle display of "Get messages" button in folder pane header
+folder-pane-header-context-toggle-get-messages =
+ .label = Show “Get Messages”
+# Context menu item to toggle display of "New Message" button in folder pane header
+folder-pane-header-context-toggle-new-message =
+ .label = Show “New Message”
+folder-pane-header-context-hide =
+ .label = Hide Folder Pane Header
+folder-pane-show-total-toggle =
+ .label = Show Total Message Count
+# Context menu item to show or hide folder sizes
+folder-pane-header-toggle-folder-size =
+ .label = Show Folder Size
+folder-pane-header-hide-local-folders =
+ .label = Hide Local Folders
+folder-pane-mode-context-button =
+ .title = Folder mode options
+folder-pane-mode-context-toggle-compact-mode =
+ .label = Compact View
+ .accesskey = C
+folder-pane-mode-move-up =
+ .label = Move Up
+folder-pane-mode-move-down =
+ .label = Move Down
+# Variables:
+# $count (Number) - Number of unread messages.
+folder-pane-unread-aria-label =
+ { $count ->
+ [one] 1 unread message
+ *[other] { $count } unread messages
+ }
+# Variables:
+# $count (Number) - Number of total messages.
+folder-pane-total-aria-label =
+ { $count ->
+ [one] 1 total message
+ *[other] { $count } total messages
+ }
+
+## Message thread pane
+
+threadpane-column-header-select =
+ .title = Toggle select all messages
+threadpane-column-header-select-all =
+ .title = Select all messages
+threadpane-column-header-deselect-all =
+ .title = Deselect all messages
+threadpane-column-label-select =
+ .label = Select Messages
+threadpane-column-header-thread =
+ .title = Toggle message threads
+threadpane-column-label-thread =
+ .label = Thread
+threadpane-column-header-flagged =
+ .title = Sort by star
+threadpane-column-label-flagged =
+ .label = Starred
+threadpane-flagged-cell-label = Starred
+threadpane-column-header-attachments =
+ .title = Sort by attachments
+threadpane-column-label-attachments =
+ .label = Attachments
+threadpane-attachments-cell-label = Attachments
+threadpane-column-header-spam =
+ .title = Sort by spam status
+threadpane-column-label-spam =
+ .label = Spam
+threadpane-spam-cell-label = Spam
+threadpane-column-header-unread-button =
+ .title = Sort by read status
+threadpane-column-label-unread-button =
+ .label = Read status
+threadpane-read-cell-label = Read
+threadpane-unread-cell-label = Unread
+threadpane-column-header-sender = From
+ .title = Sort by from
+threadpane-column-label-sender =
+ .label = From
+threadpane-column-header-recipient = Recipient
+ .title = Sort by recipient
+threadpane-column-label-recipient =
+ .label = Recipient
+threadpane-column-header-correspondents = Correspondents
+ .title = Sort by correspondents
+threadpane-column-label-correspondents =
+ .label = Correspondents
+threadpane-column-header-subject = Subject
+ .title = Sort by subject
+threadpane-column-label-subject =
+ .label = Subject
+threadpane-column-header-date = Date
+ .title = Sort by date
+threadpane-column-label-date =
+ .label = Date
+threadpane-column-header-received = Received
+ .title = Sort by date received
+threadpane-column-label-received =
+ .label = Received
+threadpane-column-header-status = Status
+ .title = Sort by status
+threadpane-column-label-status =
+ .label = Status
+threadpane-column-header-size = Size
+ .title = Sort by size
+threadpane-column-label-size =
+ .label = Size
+threadpane-column-header-tags = Tag
+ .title = Sort by tags
+threadpane-column-label-tags =
+ .label = Tag
+threadpane-column-header-account = Account
+ .title = Sort by account
+threadpane-column-label-account =
+ .label = Account
+threadpane-column-header-priority = Priority
+ .title = Sort by priority
+threadpane-column-label-priority =
+ .label = Priority
+threadpane-column-header-unread = Unread
+ .title = Number of unread messages in thread
+threadpane-column-label-unread =
+ .label = Unread
+threadpane-column-header-total = Total
+ .title = Total number of messages in thread
+threadpane-column-label-total =
+ .label = Total
+threadpane-column-header-location = Location
+ .title = Sort by location
+threadpane-column-label-location =
+ .label = Location
+threadpane-column-header-id = Order Received
+ .title = Sort by order received
+threadpane-column-label-id =
+ .label = Order Received
+threadpane-column-header-delete =
+ .title = Delete a message
+threadpane-column-label-delete =
+ .label = Delete
+
+## Message state variations
+
+threadpane-message-new =
+ .alt = New message indicator
+ .title = New message
+threadpane-message-replied =
+ .alt = Replied indicator
+ .title = Message replied
+threadpane-message-redirected =
+ .alt = Redirected indicator
+ .title = Message redirected
+threadpane-message-forwarded =
+ .alt = Forwarded indicator
+ .title = Message forwarded
+threadpane-message-replied-forwarded =
+ .alt = Replied and forwarded indicator
+ .title = Message replied and forwarded
+threadpane-message-replied-redirected =
+ .alt = Replied and redirected indicator
+ .title = Message replied and redirected
+threadpane-message-forwarded-redirected =
+ .alt = Forwarded and redirected indicator
+ .title = Message forwarded and redirected
+threadpane-message-replied-forwarded-redirected =
+ .alt = Replied, forwarded, and redirected indicator
+ .title = Message replied, forwarded, and redirected
+apply-columns-to-menu =
+ .label = Apply columns to…
+apply-current-view-to-menu =
+ .label = Apply current view to…
+apply-current-view-to-folder =
+ .label = Folder…
+apply-current-view-to-folder-children =
+ .label = Folder and its children…
+
+## Apply columns confirmation dialog
+
+apply-changes-to-folder-title = Apply Changes?
+# Variables:
+# $name (String): The name of the folder to apply to.
+apply-current-columns-to-folder-message = Apply the current folder’s columns to { $name }?
+# Variables:
+# $name (String): The name of the folder to apply to.
+apply-current-columns-to-folder-with-children-message = Apply the current folder’s columns to { $name } and its children?
+# Variables:
+# $name (String): The name of the folder to apply to.
+apply-current-view-to-folder-message = Apply the current folder’s view to { $name }?
+# Variables:
+# $name (String): The name of the folder to apply to.
+apply-current-view-to-folder-with-children-message = Apply the current folder’s view to { $name } and its children?
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutAddonsExtra.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutAddonsExtra.ftl
new file mode 100644
index 0000000000..1b0c64b7c7
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutAddonsExtra.ftl
@@ -0,0 +1,12 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+add-on-options-button =
+ .title = Add-on Options
+
+add-on-search-alternative-button-label = Find an alternative add-on
+
+atn-addons-heading-search-input =
+ .placeholder = Search addons.thunderbird.net
+
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutDialog.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutDialog.ftl
new file mode 100644
index 0000000000..70afdea42f
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutDialog.ftl
@@ -0,0 +1,48 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+about-update-whats-new = What’s New
+about-dialog-title = About { -brand-full-name }
+release-notes-link = Release notes
+update-internal-error = Unable to check for updates due to internal error. Updates available at <a data-l10n-name="manual-link"/>
+update-check-for-updates-button = Check for Updates
+ .accesskey = C
+update-update-button = Restart to update { -brand-shorter-name }
+ .accesskey = R
+update-checking-for-updates = Checking for updates…
+update-downloading-message = Downloading update — <span data-l10n-name="download-status"></span>
+update-applying = Applying update…
+update-downloading = <img data-l10n-name="icon"/>Downloading update — <span data-l10n-name="download-status"></hspan>
+update-failed = Update failed. <a data-l10n-name="failed-link">Download the latest version</a>
+update-admin-disabled = Updates disabled by your system administrator
+update-no-updates-found = { -brand-short-name } is up to date
+update-other-instance-handling-updates = { -brand-short-name } is being updated by another instance
+update-manual = Updates available at <a data-l10n-name="manual-link"/>
+update-unsupported = You can not perform further updates on this system. <a data-l10n-name="unsupported-link">Learn more</a>
+update-restarting = Restarting…
+# Variables:
+# $channel (String): description of the update channel (e.g. "release", "beta", "nightly" etc.)
+channel-description = You are currently on the <span data-l10n-name="current-channel">{ $channel }</span> update channel.
+warning-desc-version = { -brand-short-name } is experimental and may be unstable.
+warning-desc-telemetry = It automatically sends information about performance, hardware, usage and customizations back to { -vendor-short-name } to help make { -brand-short-name } better.
+# Example of resulting string: 66.0.1 (64-bit)
+# Variables:
+# $version (String): version of Thunderbird, e.g. 66.0.1
+# $bits (Number): bits of the architecture (32 or 64)
+aboutDialog-version = { $version } ({ $bits }-bit)
+# Example of resulting string: 66.0a1 (2019-01-16) (64-bit)
+# Variables:
+# $version (String): version of Thunderbird for Daily builds, e.g. 66.0a1
+# $isodate (String): date in ISO format, e.g. 2019-01-16
+# $bits (Number): bits of the architecture (32 or 64)
+aboutDialog-version-nightly = { $version } ({ $isodate }) ({ $bits }-bit)
+aboutdialog-update-checking-failed = Failed to check for updates.
+community-experimental = <a data-l10n-name="community-exp-mozilla-link">{ -vendor-short-name }</a> is a <a data-l10n-name="community-exp-credits-link">global community</a> working together to keep the Web open, public and accessible to all.
+community-desc = { -brand-short-name } is designed by <a data-l10n-name="community-mozilla-link">{ -vendor-short-name }</a>, a <a data-l10n-name="community-credits-link">global community</a> working together to keep the Web open, public and accessible to all.
+about-donation = Want to help? <a data-l10n-name="helpus-donate-link">Make a donation</a> or <a data-l10n-name="helpus-get-involved-link">get involved!</a>
+bottom-links-license = Licensing Information
+bottom-links-rights = End-User Rights
+bottom-links-privacy = Privacy Policy
+cmd-close-mac-command-key =
+ .key = w
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutImport.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutImport.ftl
new file mode 100644
index 0000000000..4ad1162ab0
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutImport.ftl
@@ -0,0 +1,283 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+import-page-title = Import
+
+export-page-title = Export
+
+## Header
+
+import-start = Import Tool
+
+import-start-title = Import settings or data from an application or a file.
+
+import-start-description = Select the source from which you want to import. You will later be asked to choose which data needs to be imported.
+
+import-from-app = Import from Application
+
+import-file = Import from a file
+
+import-file-title = Select a file to import its content.
+
+import-file-description = Choose to import a previously backed up profile, address books or calendars.
+
+import-address-book-title = Import Address Book file
+
+import-calendar-title = Import Calendar file
+
+export-profile = Export
+
+## Buttons
+
+button-back = Back
+
+button-continue = Continue
+
+button-export = Export
+
+button-finish = Finish
+
+## Import from app steps
+
+app-name-thunderbird = Thunderbird
+
+app-name-seamonkey = SeaMonkey
+
+app-name-outlook = Outlook
+
+app-name-becky = Becky! Internet Mail
+
+app-name-apple-mail = Apple Mail
+
+source-thunderbird = Import from another { app-name-thunderbird } installation
+
+source-thunderbird-description = Import settings, filters, messages, and other data from a { app-name-thunderbird } profile.
+
+source-seamonkey = Import from a { app-name-seamonkey } installation
+
+source-seamonkey-description = Import settings, filters, messages, and other data from a { app-name-seamonkey } profile.
+
+source-outlook = Import from { app-name-outlook }
+
+source-outlook-description = Import accounts, address books, and messages from { app-name-outlook }.
+
+source-becky = Import from { app-name-becky }
+
+source-becky-description = Import address books and messages from { app-name-becky }.
+
+source-apple-mail = Import from { app-name-apple-mail }
+
+source-apple-mail-description = Import messages from { app-name-apple-mail }.
+
+source-file2 = Import from a file
+
+source-file-description = Select a file to import address books, calendars, or a profile backup (ZIP file).
+
+## Import from file selections
+
+file-profile2 = Import Backed-up Profile
+
+file-profile-description = Select a previously backed up Thunderbird profile (.zip)
+
+file-calendar = Import Calendars
+
+file-calendar-description = Select a file containing exported Calendars or Events (.ics)
+
+file-addressbook = Import Address Books
+
+file-addressbook-description = Select a file containing exported Address Books and Contacts
+
+## Import from app profile steps
+
+from-app-thunderbird = Import from a { app-name-thunderbird } profile
+
+from-app-seamonkey = Import from a { app-name-seamonkey } profile
+
+from-app-outlook = Import from { app-name-outlook }
+
+from-app-becky = Import from { app-name-becky }
+
+from-app-apple-mail = Import from { app-name-apple-mail }
+
+profiles-pane-title-thunderbird = Import Settings and Data from a { app-name-thunderbird } profile.
+
+profiles-pane-title-seamonkey = Import Settings and Data from a { app-name-seamonkey } profile.
+
+profiles-pane-title-outlook = Import Data from { app-name-outlook }.
+
+profiles-pane-title-becky = Import Data from { app-name-becky }.
+
+profiles-pane-title-apple-mail = Import Messages from { app-name-apple-mail }.
+
+profile-source = Import from profile
+
+# $profileName (string) - name of the profile
+profile-source-named = Import from profile <strong>"{ $profileName }"</strong>
+
+profile-file-picker-directory = Choose a profile folder
+
+profile-file-picker-archive = Choose a <strong>ZIP</strong> file
+
+profile-file-picker-archive-description = The ZIP file must be smaller than 2GB.
+
+profile-file-picker-archive-title = Choose a ZIP file (smaller than 2GB)
+
+items-pane-title2 = Choose what to import:
+
+items-pane-directory = Directory:
+
+items-pane-profile-name = Profile name:
+
+items-pane-checkbox-accounts = Accounts and Settings
+
+items-pane-checkbox-address-books = Address Books
+
+items-pane-checkbox-calendars = Calendars
+
+items-pane-checkbox-mail-messages = Mail Messages
+
+items-pane-override = Any existing or identical data will not be overwritten.
+
+## Import from address book file steps
+
+import-from-addr-book-file-description = Choose the file format containing your Address Book data.
+
+addr-book-csv-file = Comma or tab separated file (.csv, .tsv)
+
+addr-book-ldif-file = LDIF file (.ldif)
+
+addr-book-vcard-file = vCard file (.vcf, .vcard)
+
+addr-book-sqlite-file = SQLite database file (.sqlite)
+
+addr-book-mab-file = Mork database file (.mab)
+
+addr-book-file-picker = Select an address book file
+
+addr-book-csv-field-map-title = Match field names
+
+addr-book-csv-field-map-desc = Select address book fields corresponding to the source fields. Uncheck fields you do not want to import.
+
+addr-book-directories-title = Select where to import the chosen data
+
+addr-book-directories-pane-source = Source file:
+
+# $addressBookName (string) - name of the new address book that would be created.
+addr-book-import-into-new-directory2 = Create a new directory called <strong>"{ $addressBookName }"</strong>
+
+# $addressBookName (string) - name of the address book to import into
+addr-book-summary-title = Import the chosen data into the "{ $addressBookName }" directory
+
+# $addressBookName (string) - name of the address book that will be created.
+addr-book-summary-description = A new address book called "{ $addressBookName }" will be created.
+
+## Import from calendar file steps
+
+import-from-calendar-file-desc = Select the iCalendar (.ics) file you would like to import.
+
+calendar-items-title = Select which items to import.
+
+calendar-items-loading = Loading items…
+
+calendar-items-filter-input =
+ .placeholder = Filter items…
+
+calendar-select-all-items = Select all
+
+calendar-deselect-all-items = Deselect all
+
+calendar-target-title = Select where to import the chosen items.
+
+# $targetCalendar (string) - name of the new calendar that would be created
+calendar-import-into-new-calendar2 = Create a new calendar called <strong>"{ $targetCalendar }"</strong>
+
+# $itemCount (number) - count of selected items (tasks, events) that will be imported
+# $targetCalendar (string) - name of the calendar the items will be imported into
+calendar-summary-title =
+ { $itemCount ->
+ [one] Import one item into the "{ $targetCalendar }" calendar
+ *[other] Import { $itemCount } items into the "{ $targetCalendar }" calendar
+ }
+
+# $targetCalendar (string) - name of the calendar that will be created
+calendar-summary-description = A new calendar called "{ $targetCalendar }" will be created.
+
+## Import dialog
+
+# $progressPercent (string) - percent formatted progress (for example "10%")
+progress-pane-importing2 = Importing… { $progressPercent }
+
+# $progressPercent (string) - percent formatted progress (for example "10%")
+progress-pane-exporting2 = Exporting… { $progressPercent }
+
+progress-pane-finished-desc2 = Complete.
+
+error-pane-title = Error
+
+error-message-zip-file-too-big2 = The selected ZIP file is larger than 2GB. Please extract it first, then import from the extracted folder instead.
+
+error-message-extract-zip-file-failed2 = Failed to extract the ZIP file. Please extract it manually, then import from the extracted folder instead.
+
+error-message-failed = Import failed unexpectedly, more information may be available in the Error Console.
+
+error-failed-to-parse-ics-file = No importable items found in the file.
+
+error-export-failed = Export failed unexpectedly, more information may be available in the Error Console.
+
+error-message-no-profile = No profile found.
+
+## <csv-field-map> element
+
+csv-first-row-contains-headers = First row contains field names
+
+csv-source-field = Source field
+
+csv-source-first-record = First record
+
+csv-source-second-record = Second record
+
+csv-target-field = Address book field
+
+## Export tab
+
+export-profile-title = Export accounts, messages, address books, and settings to a ZIP file.
+
+export-profile-description = If your current profile is larger than 2GB, we suggest you back it up by yourself.
+
+export-open-profile-folder = Open profile folder
+
+export-file-picker2 = Export to a ZIP file
+
+export-brand-name = { -brand-product-name }
+
+## Summary pane
+
+summary-pane-title = Data to be imported
+
+summary-pane-start = Start Import
+
+summary-pane-warning = { -brand-product-name } will need to be restarted when importing is complete.
+
+summary-pane-start-over = Restart Import Tool
+
+## Footer area
+
+footer-help = Need help?
+
+footer-import-documentation = Import documentation
+
+footer-export-documentation = Export documentation
+
+footer-support-forum = Support forum
+
+## Step navigation on top of the wizard pages
+
+step-list =
+ .aria-label = Import steps
+
+step-confirm = Confirm
+
+# Variables:
+# $number (number) - step number
+step-count = { $number }
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutProfilesExtra.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutProfilesExtra.ftl
new file mode 100644
index 0000000000..fe428ad56b
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutProfilesExtra.ftl
@@ -0,0 +1,5 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+profiles-launch-profile-plain = Launch profile
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutRights.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutRights.ftl
new file mode 100644
index 0000000000..06dc0006dc
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutRights.ftl
@@ -0,0 +1,50 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+rights-title = About Your Rights
+rights-intro = { -brand-full-name } is free and open source software, built by a community of thousands from all over the world. There are a few things you should know:
+rights-intro-point-1 = { -brand-short-name } is made available to you under the terms of the <a data-l10n-name="mozilla-public-license-link">Mozilla Public Licence</a>. This means you may use, copy and distribute { -brand-short-name } to others. You are also welcome to modify the source code of { -brand-short-name } as you want to meet your needs. The Mozilla Public Licence also gives you the right to distribute your modified versions.
+rights-intro-point-2 =
+ You are not granted any trademark rights or licenses to the trademarks of
+ the Mozilla Foundation or any party, including without limitation the
+ Thunderbird name or logo. Additional information on trademarks may be found
+ <a data-l10n-name="mozilla-trademarks-link">here</a>.
+rights-intro-point-3 = Some features in { -brand-short-name }, such as the Crash Reporter, give you the option to provide feedback to { -vendor-short-name }. By choosing to submit feedback, you give { -vendor-short-name } permission to use the feedback to improve its products, to publish the feedback on its websites, and to distribute the feedback.
+rights-intro-point-4 = How we use your personal information and feedback submitted to { -vendor-short-name } through { -brand-short-name } is described in the <a data-l10n-name="mozilla-privacy-policy-link">{ -brand-short-name } Privacy Policy</a>.
+rights-intro-point-4-unbranded = Any applicable privacy policies for this product should be listed here.
+rights-intro-point-5 = Some { -brand-short-name } features make use of web-based information services, however, we cannot guarantee they are 100% accurate or error-free. More details, including information on how to disable the features that use these services, can be found in the <a data-l10n-name="mozilla-service-terms-link">service terms</a>.
+rights-intro-point-5-unbranded = If this product incorporates web services, any applicable service terms for the service(s) should be linked to the <a data-l10n-name="mozilla-website-services-link">Website Services</a> section.
+rights-intro-point-6 = In order to play back certain types of video content, { -brand-short-name } downloads certain content decryption modules from third parties.
+rights-webservices-header = { -brand-full-name } Web-Based Information Services
+rights-webservices2 =
+ { -brand-full-name } uses web-based information services (“Services”) to
+ provide some of the features provided for your use with this binary version
+ of { -brand-short-name } under the terms described below. If you do not
+ want to use one or more of the Services, or the terms below are
+ unacceptable, you may disable the feature or Service(s). Instructions on
+ how to disable a particular feature or Service may be found
+ <a data-l10n-name="mozilla-disable-service-link">here</a>. Other features
+ and Services can be disabled in the application settings.
+rights-locationawarebrowsing = <strong>Location Aware Browsing: </strong>is always opt-in. No location information is ever sent without your permission. If you wish to disable the feature completely, follow these steps:
+rights-locationawarebrowsing-term-1 = In the URL bar, type <code>about:config</code>
+rights-locationawarebrowsing-term-2 = Type geo.enabled
+rights-locationawarebrowsing-term-3 = Double click on the geo.enabled preference
+rights-locationawarebrowsing-term-4 = Location-Aware Browsing is now disabled
+rights-webservices-unbranded = An overview of the website services the product incorporates, along with instructions on how to disable them, if applicable, should be included here.
+rights-webservices-term-unbranded = Any applicable service terms for this product should be listed here.
+rights-webservices-term-1 = { -vendor-short-name } and its contributors, licensors and partners work to provide the most accurate and up-to-date Services. However, we cannot guarantee that this information is comprehensive and error-free. For example, the Safe Browsing Service may not identify some risky sites and may identify some safe sites in error and the Location Aware Service all locations returned by our service providers are estimates only and neither we nor our service providers guarantee the accuracy of the locations provided.
+rights-webservices-term-2 = { -vendor-short-name } may discontinue or change the Services at its discretion.
+rights-webservices-term-3 = You are welcome to use these Services with the accompanying version of { -brand-short-name }, and { -vendor-short-name } grants you its rights to do so. { -vendor-short-name } and its licensors reserve all other rights in the Services. These terms are not intended to limit any rights granted under open source licences applicable to { -brand-short-name } and to corresponding source code versions of { -brand-short-name }.
+rights-webservices-term-4 =
+ <strong>The Services are provided “as-is.” { -vendor-short-name }, its
+ contributors, licensors, and distributors, disclaim all warranties, whether
+ express or implied, including without limitation, warranties that the
+ Services are merchantable and fit for your particular purposes. You bear
+ the entire risk as to selecting the Services for your purposes and as to
+ the quality and performance of the Services. Some jurisdictions do not
+ allow the exclusion or limitation of implied warranties, so this disclaimer
+ may not apply to you.</strong>
+rights-webservices-term-5 = <strong>Except as required by law, { -vendor-short-name }, its contributors, licensors, and distributors will not be liable for any indirect, special, incidental, consequential, punitive, or exemplary damages arising out of or in any way relating to the use of { -brand-short-name } and the Services. The collective liability under these terms will not exceed $500 (five hundred dollars). Some jurisdictions do not allow the exclusion or limitation of certain damages, so this exclusion and limitation may not apply to you.</strong>
+rights-webservices-term-6 = { -vendor-short-name } may update these terms as necessary from time to time. These terms may not be modified or cancelled without { -vendor-short-name }’s written agreement.
+rights-webservices-term-7 = These terms are governed by the laws of the state of California, U.S.A., excluding its conflict of law provisions. If any portion of these terms is held to be invalid or unenforceable, the remaining portions will remain in full force and effect. In the event of a conflict between a translated version of these terms and the English language version, the English language version shall control.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000..0a0cf23c03
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,33 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+calendars-title = Calendar Settings
+calendars-table-heading-property = Name
+calendars-table-heading-value = Value
+calendars-table-name = Name
+calendars-table-type = Type
+calendars-table-disabled = Disabled
+calendars-table-username = Username
+calendars-table-uri = URI
+calendars-table-refreshinterval = Refresh Interval
+calendars-table-readonly = Read-only
+calendars-table-suppressalarms = Suppress Alarms
+calendars-table-cache-enabled = Cache Enabled
+calendars-table-imip-identity = iMIP Identity
+calendars-table-imip-identity-disabled = iMIP Disabled
+calendars-table-imip-identity-account = iMIP Account
+calendars-table-organizerid = Organiser Id
+calendars-table-forceemailscheduling = Force Email Scheduling
+calendars-table-capabilities-alarms-popup-supported = Popup Alarms Supported
+calendars-table-capabilities-alarms-oninviations-supported = Alarms on Invitation Supported
+calendars-table-capabilities-alarms-maxcount = Max Alarms Per Event
+calendars-table-capabilities-attachments-supported = Attachment Supported
+calendars-table-capabilities-categories-maxcount = Max Categories
+calendars-table-capabilities-privacy-supported = Privacy State Supported
+calendars-table-capabilities-priority-supported = Priority Supported
+calendars-table-capabilities-events-supported = Event Supported
+calendars-table-capabilities-tasks-supported = Task Supported
+calendars-table-capabilities-timezones-floating-supported = Local Time Supported
+calendars-table-capabilities-timezones-utc-supported = UTC/GMT Supported
+calendars-table-capabilities-autoschedule-supported = Auto-Scheduling Supported
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutSupportChat.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutSupportChat.ftl
new file mode 100644
index 0000000000..7731079ba6
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutSupportChat.ftl
@@ -0,0 +1,11 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+chat-title = Chat Accounts
+chat-table-heading-account = ID
+chat-table-heading-protocol = Protocol
+chat-table-heading-name = Name
+chat-table-heading-actions = Actions
+chat-table-copy-debug-log = Copy Debug Log
+ .title = Copy errors and other logging from this chat account to the clipboard. May contain personal information like chat messages.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutSupportMail.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutSupportMail.ftl
new file mode 100644
index 0000000000..ed43f52582
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/aboutSupportMail.ftl
@@ -0,0 +1,29 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+accounts-title = Mail and News Accounts
+show-private-data-main-text = Include account names
+show-private-data-explanation-text = (possibly identifying information)
+accounts-ID = ID
+accounts-name = Name
+accounts-incoming-server = Incoming server
+accounts-outgoing-servers = Outgoing servers
+accounts-server-name = Name
+accounts-conn-security = Connection security
+accounts-auth-method = Authentication method
+accounts-default = Default?
+identity-name = Identity
+send-via-email = Send via email
+app-basics-telemetry = Telemetry Data
+app-basics-cache-use = Cache Use
+mail-libs-title = Libraries
+libs-table-heading-library = Library
+libs-table-heading-expected-version = Expected minimum version
+libs-table-heading-loaded-version = Version in use
+libs-table-heading-path = Path
+libs-table-heading-status = Status
+libs-rnp-status-ok = OK
+libs-rnp-status-load-failed = Failed to load. OpenPGP will not work.
+libs-rnp-status-incompatible = Incompatible version. OpenPGP will not work.
+libs-rnp-status-unofficial = Unofficial version. OpenPGP might not work as expected.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/accountCentral.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/accountCentral.ftl
new file mode 100644
index 0000000000..d14bc05a8c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/accountCentral.ftl
@@ -0,0 +1,65 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+account-central-title = Welcome to { -brand-full-name }
+account-settings = Account Settings
+
+# $accounts (Number) - the number of configured accounts
+setup-title = Choose What to Set Up
+about-title = About { -brand-full-name }
+resources-title = Resources
+
+release-notes =
+ .title = About { -brand-full-name }
+
+email-label = Email
+ .aria-label = Connect to your existing email account
+email-description = { -brand-short-name } lets you connect to your existing email account, to read your emails conveniently and efficiently from within the application.
+
+calendar-label = Calendar
+ .aria-label = Create a new calendar
+calendar-description = { -brand-short-name } lets you handle events and keeps you organized. Connecting to a remote calendar will keep all your events in sync across all your devices.
+
+chat-label = Chat
+ .aria-label = Connect to your chat account
+chat-description = { -brand-short-name } lets you connect to multiple instant messaging accounts, offering support for various platforms.
+
+filelink-label = Filelink
+ .aria-label = Set up Filelink
+filelink-description = { -brand-short-name } lets you set up a convenient Filelink cloud account to easily send large attachments.
+
+addressbook-label = Address Book
+ .aria-label = Create a new address book
+addressbook-description = { -brand-short-name } lets you organize all your contacts in an address book. You can also connect to a remote address book to keep all your contacts in sync.
+
+feeds-label = Feeds
+ .aria-label = Connect to feeds
+feeds-description = { -brand-short-name } lets you connect to RSS/Atom feeds to get news and updates from all around.
+
+newsgroups-label = Newsgroups
+ .aria-label = Connect to a newsgroup
+newsgroups-description = { -brand-short-name } lets you connect to all the newsgroups you want.
+
+import-title = Import from Another Program
+import-paragraph2 = { -brand-short-name } lets you import mail messages, address book entries, feed subscriptions, settings, and/or filters from other mail programs and common address book formats.
+
+import-label = Import
+ .aria-label = Import data from other programs
+
+about-paragraph = Thunderbird is the leading open source, cross-platform email and calendaring client, free for business and personal use. We want it to stay secure and become even better. A donation will allow us to hire developers, pay for infrastructure, and continue to improve.
+
+about-paragraph-consider-donation = <b>Thunderbird is funded by users like you! If you like Thunderbird, please consider making a donation.</b> The best way for you to ensure Thunderbird remains available is to <a data-l10n-name="donation-link"> make a donation</a>.
+
+explore-link = Explore Features
+support-link = Support
+involved-link = Get Involved
+developer-link = Developer Documentation
+
+read = Read messages
+compose = Write a new message
+search = Search messages
+filter = Manage message filters
+nntp-subscription = Manage newsgroup subscriptions
+rss-subscription = Manage feed subscriptions
+e2e = End-to-end Encryption
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/accountManager.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/accountManager.ftl
new file mode 100644
index 0000000000..607c22e94a
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/accountManager.ftl
@@ -0,0 +1,18 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+open-preferences-sidebar-button2 = { -brand-short-name } Settings
+
+open-addons-sidebar-button = Add-ons and Themes
+
+account-action-add-newsgroup-account =
+ .label = Add Newsgroup Account…
+ .accesskey = N
+
+server-change-restart-required = Restart is required to apply the server name or username change.
+
+edit-vcard-dialog-accept-button = Save
+ .accesskey = S
+edit-vcard-dialog-cancel-button = Cancel
+ .accesskey = C
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/accountProvisioner.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/accountProvisioner.ftl
new file mode 100644
index 0000000000..34ea6bf37a
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/accountProvisioner.ftl
@@ -0,0 +1,78 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+account-provisioner-tab-title = Get a new email address from a service provider
+
+provisioner-searching-icon =
+ .alt = Searching…
+
+account-provisioner-title = Create a new email address
+
+account-provisioner-description = Use our trusted partners to get a new private and secure email address.
+
+account-provisioner-start-help = The search terms used are sent to { -vendor-short-name } (<a data-l10n-name="mozilla-privacy-link">Privacy Policy</a>) and 3rd party email providers <strong>mailfence.com</strong> (<a data-l10n-name="mailfence-privacy-link">Privacy Policy</a>, <a data-l10n-name="mailfence-tou-link">Terms of Use</a>) and <strong>gandi.net</strong> (<a data-l10n-name="gandi-privacy-link">Privacy Policy</a>, <a data-l10n-name="gandi-tou-link">Terms of Use</a>) to find available email addresses.
+
+account-provisioner-mail-account-title = Buy a new email address
+
+account-provisioner-mail-account-description = Thunderbird partnered with <a data-l10n-name="mailfence-home-link">Mailfence</a> to offer you a new private and secure email. We believe everyone should have a secure email.
+
+account-provisioner-domain-title = Buy an email and domain of your own
+
+account-provisioner-domain-description = Thunderbird partnered with <a data-l10n-name="gandi-home-link">Gandi</a> to offer you a custom domain. This lets you use any address on that domain.
+
+## Forms
+
+account-provisioner-mail-input =
+ .placeholder = Your name, nickname or other search term
+
+account-provisioner-domain-input =
+ .placeholder = Your name, nickname or other search term
+
+account-provisioner-search-button = Search
+
+account-provisioner-button-cancel = Cancel
+
+account-provisioner-button-existing = Use an existing email account
+
+account-provisioner-button-back = Go back
+
+## Notifications
+
+account-provisioner-fetching-provisioners = Retrieving provisioners…
+
+account-provisioner-connection-issues = Unable to communicate with our sign-up servers. Please check your connection.
+
+account-provisioner-searching-email = Searching for available email accounts…
+
+account-provisioner-searching-domain = Searching for available domains…
+
+account-provisioner-searching-error = Could not find any addresses to suggest. Try changing the search terms.
+
+## Illustrations
+
+account-provisioner-step1-image =
+ .title = Choose which account to create
+
+## Search results
+
+# Variables:
+# $count (Number) - The number of domains found during search.
+account-provisioner-results-title =
+ { $count ->
+ [one] One available address found for:
+ *[other] { $count } available addresses found for:
+ }
+
+account-provisioner-mail-results-caption = You can try to search for nicknames or any other term to find more emails.
+
+account-provisioner-domain-results-caption = You can try to search for nicknames or any other term to find more domains.
+
+account-provisioner-free-account = Free
+
+account-provision-price-per-year = { $price } a year
+
+account-provisioner-all-results-button = Show all results
+
+account-provisioner-open-in-tab-img =
+ .title = Opens in a new Tab
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/accountcreation/accountHub.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/accountcreation/accountHub.ftl
new file mode 100644
index 0000000000..a1a228afb1
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/accountcreation/accountHub.ftl
@@ -0,0 +1,47 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+### Account Hub
+### Account hub is where user can setup new accounts in Thunderbird.
+
+
+## Header
+
+account-hub-brand = { -brand-full-name }
+account-hub-welcome-line = Welcome to <span data-l10n-name="brand-name">{ -brand-full-name }</span>
+account-hub-title = Account Hub
+
+## Footer
+
+account-hub-release-notes = Release notes
+account-hub-support = Support
+account-hub-donate = Donate
+
+## Initial setup page
+
+account-hub-email-setup-button = Email Account
+ .title = Set up an email account
+account-hub-calendar-setup-button = Calendar
+ .title = Set up a local or remote calendar
+account-hub-address-book-setup-button = Address Book
+ .title = Set up a local or remote address book
+account-hub-chat-setup-button = Chat
+ .title = Set up a chat account
+account-hub-feed-setup-button = RSS feed
+ .title = Set up an RSS feed account
+account-hub-newsgroup-setup-button = Newsgroup
+ .title = Set up a newsgroup account
+account-hub-import-setup-button = Import
+ .title = Import a backed up profile
+# Note: "Sync" represents the Firefox Sync product so it shouldn't be translated.
+account-hub-sync-button = Sign in to Sync…
+
+## Email page
+
+account-hub-email-title = Set up your email account
+account-hub-email-cancel-button = Cancel
+account-hub-email-back-button = Back
+account-hub-email-continue-button = Continue
+account-hub-email-confirm-button = Confirm
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000..a0936c0ac5
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,294 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+account-setup-tab-title = Account Setup
+
+## Header
+
+account-setup-title = Set Up Your Existing Email Address
+account-setup-description =
+ To use your current email address fill in your credentials.<br/>
+ { -brand-product-name } will automatically search for a working and recommended server configuration.
+account-setup-secondary-description = { -brand-product-name } will automatically search for a working and recommended server configuration.
+account-setup-success-title = Account successfully created
+account-setup-success-description = You can now use this account with { -brand-short-name }.
+account-setup-success-secondary-description = You can improve the experience by connecting related services and configuring advanced account settings.
+
+## Form fields
+
+account-setup-name-label = Your full name
+ .accesskey = n
+# Note: "John Doe" is a multiple-use name that is used when the true name of a person is unknown. We use this fake name as an input placeholder. Translators should update this to reflect the placeholder name of their language/country.
+account-setup-name-input =
+ .placeholder = John Doe
+account-setup-name-info-icon =
+ .title = Your name, as shown to others
+account-setup-name-warning-icon =
+ .title = Please enter your name
+account-setup-email-label = Email address
+ .accesskey = E
+account-setup-email-input =
+ .placeholder = john.doe@example.com
+account-setup-email-info-icon =
+ .title = Your existing email address
+account-setup-email-warning-icon =
+ .title = Invalid email address
+account-setup-password-label = Password
+ .accesskey = P
+ .title = Optional, will only be used to validate the username
+account-provisioner-button = Get a new email address
+ .accesskey = G
+account-setup-password-toggle-show =
+ .title = Show password in clear text
+account-setup-password-toggle-hide =
+ .title = Hide password
+account-setup-remember-password = Remember password
+ .accesskey = m
+account-setup-exchange-label = Your login
+ .accesskey = l
+# YOURDOMAIN refers to the Windows domain in ActiveDirectory. yourusername refers to the user's account name in Windows.
+account-setup-exchange-input =
+ .placeholder = YOURDOMAIN\yourusername
+# Domain refers to the Windows domain in ActiveDirectory. We mean the user's login in Windows at the local corporate network.
+account-setup-exchange-info-icon =
+ .title = Domain login
+
+## Action buttons
+
+account-setup-button-cancel = Cancel
+ .accesskey = a
+account-setup-button-manual-config = Configure manually
+ .accesskey = m
+account-setup-button-stop = Stop
+ .accesskey = S
+account-setup-button-retest = Re-test
+ .accesskey = t
+account-setup-button-continue = Continue
+ .accesskey = C
+account-setup-button-done = Done
+ .accesskey = D
+
+## Notifications
+
+account-setup-looking-up-settings = Looking up configuration…
+account-setup-looking-up-settings-guess = Looking up configuration: Trying common server names…
+account-setup-looking-up-settings-half-manual = Looking up configuration: Probing server…
+account-setup-looking-up-disk = Looking up configuration: { -brand-short-name } installation…
+account-setup-looking-up-isp = Looking up configuration: Email provider…
+# Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
+account-setup-looking-up-db = Looking up configuration: Mozilla ISP database…
+account-setup-looking-up-mx = Looking up configuration: Incoming mail domain…
+account-setup-looking-up-exchange = Looking up configuration: Exchange server…
+account-setup-checking-password = Checking password…
+account-setup-installing-addon = Downloading and installing add-on…
+account-setup-success-half-manual = The following settings were found by probing the given server:
+account-setup-success-guess = Configuration found by trying common server names.
+account-setup-success-guess-offline = You are offline. We guessed some settings but you will need to enter the correct settings.
+account-setup-success-password = Password OK
+account-setup-success-addon = Successfully installed the add-on
+# Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
+account-setup-success-settings-db = Configuration found in Mozilla ISP database.
+account-setup-success-settings-disk = Configuration found on { -brand-short-name } installation.
+account-setup-success-settings-isp = Configuration found at email provider.
+# Note: Microsoft Exchange is a product name.
+account-setup-success-settings-exchange = Configuration found for a Microsoft Exchange server.
+
+## Illustrations
+
+account-setup-step1-image =
+ .title = Initial setup
+account-setup-step2-image =
+ .title = Loading…
+account-setup-step3-image =
+ .title = Configuration found
+account-setup-step4-image =
+ .title = Connection error
+account-setup-step5-image =
+ .title = Account created
+account-setup-privacy-footnote2 = Your credentials will only be stored locally on your computer.
+account-setup-selection-help = Not sure what to select?
+account-setup-selection-error = Need help?
+account-setup-success-help = Not sure about your next steps?
+account-setup-documentation-help = Setup documentation
+account-setup-forum-help = Support forum
+account-setup-privacy-help = Privacy policy
+account-setup-getting-started = Getting started
+
+## Results area
+
+# Variables:
+# $count (Number) - Number of available protocols.
+account-setup-results-area-title =
+ { $count ->
+ [one] Available configuration
+ *[other] Available configurations
+ }
+account-setup-result-imap-description = Keep your folders and emails synced on your server
+account-setup-result-pop-description = Keep your folders and emails on your computer
+# Note: Exchange, Office365 are the name of products.
+account-setup-result-exchange2-description = Use the Microsoft Exchange server or Office365 cloud services
+account-setup-incoming-title = Incoming
+account-setup-outgoing-title = Outgoing
+account-setup-username-title = Username
+account-setup-exchange-title = Server
+account-setup-result-no-encryption = No Encryption
+account-setup-result-ssl = SSL/TLS
+account-setup-result-starttls = STARTTLS
+account-setup-result-outgoing-existing = Use existing outgoing SMTP server
+# Variables:
+# $incoming (String): The email/username used to log into the incoming server
+# $outgoing (String): The email/username used to log into the outgoing server
+account-setup-result-username-different = Incoming: { $incoming }, Outgoing: { $outgoing }
+
+## Error messages
+
+# Note: The reference to "janedoe" (Jane Doe) is the name of an example person. You will want to translate it to whatever example persons would be named in your language. In the example, AD is the name of the Windows domain, and this should usually not be translated.
+account-setup-credentials-incomplete = Authentication failed. Either the entered credentials are incorrect or a separate username is required for logging in. This username is usually your Windows domain login with or without the domain (for example, janedoe or AD\\janedoe)
+account-setup-credentials-wrong = Authentication failed. Please check the username and password
+account-setup-find-settings-failed = { -brand-short-name } failed to find the settings for your email account
+account-setup-exchange-config-unverifiable = Configuration could not be verified. If your username and password are correct, it’s likely that the server administrator has disabled the selected configuration for your account. Try selecting another protocol.
+account-setup-provisioner-error = An error occurred while setting up your new account in { -brand-short-name }. Please, try to manually set up your account with your credentials.
+
+## Manual configuration area
+
+account-setup-manual-config-title = Server settings
+account-setup-incoming-server-legend = Incoming server
+account-setup-protocol-label = Protocol:
+account-setup-hostname-label = Hostname:
+account-setup-port-label = Port:
+ .title = Set the port number to 0 for autodetection
+account-setup-auto-description = { -brand-short-name } will attempt to auto-detect fields that are left blank.
+account-setup-ssl-label = Connection security:
+account-setup-outgoing-server-legend = Outgoing server
+
+## Incoming/Outgoing SSL Authentication options
+
+ssl-autodetect-option = Autodetect
+ssl-no-authentication-option = No authentication
+ssl-cleartext-password-option = Normal password
+ssl-encrypted-password-option = Encrypted password
+
+## Incoming/Outgoing SSL options
+
+ssl-noencryption-option = None
+account-setup-auth-label = Authentication method:
+account-setup-username-label = Username:
+account-setup-advanced-setup-button = Advanced config
+ .accesskey = A
+
+## Warning insecure server dialog
+
+account-setup-insecure-title = Warning!
+account-setup-insecure-incoming-title = Incoming settings:
+account-setup-insecure-outgoing-title = Outgoing settings:
+# Variables:
+# $server (String): The name of the hostname of the server the user was trying to connect to.
+account-setup-warning-cleartext = <b>{ $server }</b> does not use encryption.
+account-setup-warning-cleartext-details = Insecure mail servers do not use encrypted connections to protect your passwords and private information. By connecting to this server you could expose your password and private information.
+account-setup-insecure-server-checkbox = I understand the risks
+ .accesskey = u
+account-setup-insecure-description = { -brand-short-name } can allow you to get to your mail using the provided configurations. However, you should contact your administrator or email provider regarding these improper connections. See the <a data-l10n-name="thunderbird-faq-link">Thunderbird FAQ</a> for more information.
+insecure-dialog-cancel-button = Change Settings
+ .accesskey = S
+insecure-dialog-confirm-button = Confirm
+ .accesskey = C
+
+## Warning Exchange confirmation dialog
+
+# Variables:
+# $domain (String): The name of the server where the configuration was found, e.g. rackspace.com.
+exchange-dialog-question = { -brand-short-name } found your account setup information on { $domain }. Do you want to proceed and submit your credentials?
+exchange-dialog-confirm-button = Login
+exchange-dialog-cancel-button = Cancel
+
+## Dismiss account creation dialog
+
+exit-dialog-title = No Email Account Configured
+exit-dialog-description = Are you sure you want to cancel the setup process? { -brand-short-name } can still be used without an email account, but many features will not be available.
+account-setup-no-account-checkbox = Use { -brand-short-name } without an email account
+ .accesskey = U
+exit-dialog-cancel-button = Continue Setup
+ .accesskey = C
+exit-dialog-confirm-button = Exit Setup
+ .accesskey = E
+
+## Alert dialogs
+
+account-setup-creation-error-title = Error Creating Account
+account-setup-error-server-exists = Incoming server already exists.
+account-setup-confirm-advanced-title = Confirm Advanced Configuration
+account-setup-confirm-advanced-description = This dialogue will be closed and an account with the current settings will be created, even if the configuration is incorrect. Do you want to proceed?
+
+## Addon installation section
+
+account-setup-addon-install-title = Install
+account-setup-addon-install-intro = A third-party add-on can allow you to access your email account on this server:
+account-setup-addon-no-protocol = This email server unfortunately does not support open protocols. { account-setup-addon-install-intro }
+
+## Success view
+
+account-setup-settings-button = Account settings
+account-setup-encryption-button = End-to-end encryption
+account-setup-signature-button = Add a signature
+account-setup-dictionaries-button = Download dictionaries
+account-setup-address-book-carddav-button = Connect to a CardDAV address book
+account-setup-address-book-ldap-button = Connect to an LDAP address book
+account-setup-calendar-button = Connect to a remote calendar
+account-setup-linked-services-title = Connect your linked services
+account-setup-linked-services-description = { -brand-short-name } detected other services linked to your email account.
+account-setup-no-linked-description = Setup other services to get the most out of your { -brand-short-name } experience.
+# Variables:
+# $count (Number) - The number of address books found during autoconfig.
+account-setup-found-address-books-description =
+ { $count ->
+ [one] { -brand-short-name } found one address book linked to your email account.
+ *[other] { -brand-short-name } found { $count } address books linked to your email account.
+ }
+# Variables:
+# $count (Number) - The number of calendars found during autoconfig.
+account-setup-found-calendars-description =
+ { $count ->
+ [one] { -brand-short-name } found one calendar linked to your email account.
+ *[other] { -brand-short-name } found { $count } calendars linked to your email account.
+ }
+account-setup-button-finish = Finish
+ .accesskey = F
+account-setup-looking-up-address-books = Looking up address books…
+account-setup-looking-up-calendars = Looking up calendars…
+account-setup-address-books-button = Address Books
+account-setup-calendars-button = Calendars
+account-setup-connect-link = Connect
+account-setup-existing-address-book = Connected
+ .title = Address book already connected
+account-setup-existing-calendar = Connected
+ .title = Calendar already connected
+account-setup-connect-all-calendars = Connect all calendars
+account-setup-connect-all-address-books = Connect all address books
+
+## Calendar synchronization dialog
+
+calendar-dialog-title = Connect calendar
+calendar-dialog-cancel-button = Cancel
+ .accesskey = C
+calendar-dialog-confirm-button = Connect
+ .accesskey = n
+account-setup-calendar-name-label = Name
+account-setup-calendar-name-input =
+ .placeholder = My calendar
+account-setup-calendar-color-label = Colour
+account-setup-calendar-refresh-label = Refresh
+account-setup-calendar-refresh-manual = Manually
+# Variables:
+# $count (Number) - Number of minutes in the calendar refresh interval.
+account-setup-calendar-refresh-interval =
+ { $count ->
+ [one] Every minute
+ *[other] Every { $count } minutes
+ }
+account-setup-calendar-read-only = Read only
+ .accesskey = R
+account-setup-calendar-show-reminders = Show reminders
+ .accesskey = S
+account-setup-calendar-offline-support = Offline support
+ .accesskey = O
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/addonNotifications.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/addonNotifications.ftl
new file mode 100644
index 0000000000..53a4b56c79
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/addonNotifications.ftl
@@ -0,0 +1,122 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+xpinstall-prompt = { -brand-short-name } prevented this site from asking you to install software on your computer.
+
+## Variables:
+## $host (String): The hostname of the site the add-on is being installed from.
+
+xpinstall-prompt-header = Allow { $host } to install an add-on?
+xpinstall-prompt-message = You are attempting to install an add-on from { $host }. Make sure you trust this site before continuing.
+
+##
+
+xpinstall-prompt-header-unknown = Allow an unknown site to install an add-on?
+xpinstall-prompt-message-unknown = You are attempting to install an add-on from an unknown site. Make sure you trust this site before continuing.
+xpinstall-prompt-dont-allow =
+ .label = Don’t Allow
+ .accesskey = D
+xpinstall-prompt-never-allow =
+ .label = Never Allow
+ .accesskey = N
+# Long text in this context make the dropdown menu extend awkwardly to the left,
+# avoid a localization that's significantly longer than the English version.
+xpinstall-prompt-never-allow-and-report =
+ .label = Report Suspicious Site
+ .accesskey = R
+# Accessibility Note:
+# Be sure you do not choose an accesskey that is used elsewhere in the active context (e.g. main menu bar, submenu of the warning popup button)
+# See https://website-archive.mozilla.org/www.mozilla.org/access/access/keyboard/ for details
+xpinstall-prompt-install =
+ .label = Continue to Installation
+ .accesskey = C
+
+# These messages are shown when a website invokes navigator.requestMIDIAccess.
+
+site-permission-install-first-prompt-midi-header = This site is requesting access to your MIDI (Musical Instrument Digital Interface) devices. Device access can be enabled by installing an add-on.
+site-permission-install-first-prompt-midi-message = This access is not guaranteed to be safe. Only continue if you trust this site.
+
+##
+
+xpinstall-disabled-locked = Software installation has been disabled by your system administrator.
+xpinstall-disabled = Software installation is currently disabled. Click Enable and try again.
+xpinstall-disabled-button =
+ .label = Enable
+ .accesskey = n
+# This message is shown when the installation of an add-on is blocked by enterprise policy.
+# Variables:
+# $addonName (String): the name of the add-on.
+# $addonId (String): the ID of add-on.
+addon-install-blocked-by-policy = { $addonName } ({ $addonId }) is blocked by your system administrator.
+# This message is shown when the installation of add-ons from a domain is blocked by enterprise policy.
+addon-domain-blocked-by-policy = Your system administrator prevented this site from asking you to install software on your computer.
+addon-install-full-screen-blocked = Add-on installation is not allowed while in or before entering fullscreen mode.
+# Variables:
+# $addonName (String): the localized name of the sideloaded add-on.
+webext-perms-sideload-menu-item = { $addonName } added to { -brand-short-name }
+# Variables:
+# $addonName (String): the localized name of the extension which has been updated.
+webext-perms-update-menu-item = { $addonName } requires new permissions
+
+## Add-on removal warning
+
+# Variables:
+# $name (String): The name of the add-on that will be removed.
+addon-removal-title = Remove { $name }?
+# Variables:
+# $name (String): the name of the extension which is about to be removed.
+addon-removal-message = Remove { $name } from { -brand-shorter-name }?
+addon-removal-button = Remove
+addon-removal-abuse-report-checkbox = Report this extension to { -vendor-short-name }
+# Variables:
+# $addonCount (Number): the number of add-ons being downloaded
+addon-downloading-and-verifying =
+ { $addonCount ->
+ [one] Downloading and verifying add-on…
+ *[other] Downloading and verifying { $addonCount } add-ons…
+ }
+addon-download-verifying = Verifying
+addon-install-cancel-button =
+ .label = Cancel
+ .accesskey = C
+addon-install-accept-button =
+ .label = Add
+ .accesskey = A
+
+## Variables:
+## $addonCount (Number): the number of add-ons being installed
+
+addon-confirm-install-message =
+ { $addonCount ->
+ [one] This site would like to install an add-on in { -brand-short-name }:
+ *[other] This site would like to install { $addonCount } add-ons in { -brand-short-name }:
+ }
+addon-confirm-install-unsigned-message =
+ { $addonCount ->
+ [one] Caution: This site would like to install an unverified add-on in { -brand-short-name }. Proceed at your own risk.
+ *[other] Caution: This site would like to install { $addonCount } unverified add-ons in { -brand-short-name }. Proceed at your own risk.
+ }
+# Variables:
+# $addonCount (Number): the number of add-ons being installed (at least 2)
+addon-confirm-install-some-unsigned-message = Caution: This site would like to install { $addonCount } add-ons in { -brand-short-name }, some of which are unverified. Proceed at your own risk.
+
+## Add-on install errors
+## Variables:
+## $addonName (String): the add-on name.
+
+addon-install-error-network-failure = The add-on could not be downloaded because of a connection failure.
+addon-install-error-incorrect-hash = The add-on could not be installed because it does not match the add-on { -brand-short-name } expected.
+addon-install-error-corrupt-file = The add-on downloaded from this site could not be installed because it appears to be corrupt.
+addon-install-error-file-access = { $addonName } could not be installed because { -brand-short-name } cannot modify the needed file.
+addon-install-error-not-signed = { -brand-short-name } has prevented this site from installing an unverified add-on.
+addon-install-error-invalid-domain = The add-on { $addonName } can not be installed from this location.
+addon-local-install-error-network-failure = This add-on could not be installed because of a filesystem error.
+addon-local-install-error-incorrect-hash = This add-on could not be installed because it does not match the add-on { -brand-short-name } expected.
+addon-local-install-error-corrupt-file = This add-on could not be installed because it appears to be corrupt.
+addon-local-install-error-file-access = { $addonName } could not be installed because { -brand-short-name } cannot modify the needed file.
+addon-local-install-error-not-signed = This add-on could not be installed because it has not been verified.
+# Variables:
+# $appVersion (String): the application version.
+addon-install-error-incompatible = { $addonName } could not be installed because it is not compatible with { -brand-short-name } { $appVersion }.
+addon-install-error-blocklisted = { $addonName } could not be installed because it has a high risk of causing stability or security problems.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/addressbook/abCardDAVDialog.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/addressbook/abCardDAVDialog.ftl
new file mode 100644
index 0000000000..e31d3770a1
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/addressbook/abCardDAVDialog.ftl
@@ -0,0 +1,26 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+carddav-window-title = New CardDAV Address Book
+
+carddav-dialog =
+ .buttonlabelaccept = Continue
+ .buttonaccesskeyaccept = C
+
+carddav-username-label =
+ .value = Username:
+ .accesskey = U
+carddav-location-label =
+ .value = Location:
+ .accesskey = L
+carddav-location =
+ .default-placeholder = URL or host name of the address book server
+
+carddav-loading = Looking up configuration…
+carddav-known-incompatible = { $url } is known to be incompatible with { -brand-short-name }.
+carddav-connection-error = Failed to connect.
+carddav-none-found = Found no address books to add for the specified account.
+carddav-already-added = All address books for the specified account have already been added.
+
+carddav-available-books = Available address books:
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/addressbook/abCardDAVProperties.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/addressbook/abCardDAVProperties.ftl
new file mode 100644
index 0000000000..be7a583222
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/addressbook/abCardDAVProperties.ftl
@@ -0,0 +1,33 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+carddav-url-label =
+ .value = CardDAV URL:
+ .accesskey = V
+
+carddav-refreshinterval-label =
+ .label = Synchronize:
+ .accesskey = S
+
+# Variables:
+# $minutes (integer) - Number of minutes between address book synchronizations
+carddav-refreshinterval-minutes-value =
+ .label =
+ { $minutes ->
+ [one] every minute
+ *[other] every { $minutes } minutes
+ }
+
+# Variables:
+# $hours (integer) - Number of hours between address book synchronizations
+carddav-refreshinterval-hours-value =
+ .label =
+ { $hours ->
+ [one] every hour
+ *[other] every { $hours } hours
+ }
+
+carddav-readonly-label =
+ .label = Read-only
+ .accesskey = R
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000..30d79bd95f
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,266 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+about-addressbook-title = Address Book
+
+## Toolbar
+
+about-addressbook-toolbar-new-address-book =
+ .label = New Address Book
+about-addressbook-toolbar-add-carddav-address-book =
+ .label = Add CardDAV Address Book
+about-addressbook-toolbar-add-ldap-address-book =
+ .label = Add LDAP Address Book
+about-addressbook-toolbar-new-contact =
+ .label = New Contact
+about-addressbook-toolbar-new-list =
+ .label = New List
+about-addressbook-toolbar-import =
+ .label = Import
+
+## Books
+
+all-address-books-row =
+ .title = All Address Books
+all-address-books = All Address Books
+# Variables:
+# $name (String) - The name of the selected book/list.
+# $count (Number) - The number of contacts in the selected book/list.
+about-addressbook-card-count = Total contacts in { $name }: { $count }
+# Variables:
+# $count (Number) - The number of contacts in all address books.
+about-addressbook-card-count-all = Total contacts in all address books: { $count }
+about-addressbook-books-context-properties =
+ .label = Properties
+about-addressbook-books-context-edit-list =
+ .label = Edit list
+about-addressbook-books-context-synchronize =
+ .label = Synchronize
+about-addressbook-books-context-edit =
+ .label = Edit
+about-addressbook-books-context-print =
+ .label = Print…
+about-addressbook-books-context-export =
+ .label = Export…
+about-addressbook-books-context-delete =
+ .label = Delete
+about-addressbook-books-context-remove =
+ .label = Remove
+about-addressbook-books-context-startup-default =
+ .label = Default startup directory
+about-addressbook-confirm-delete-book-title = Delete Address Book
+# Variables:
+# $name (String) - Name of the address book to be deleted.
+about-addressbook-confirm-delete-book = Are you sure you want to delete { $name } and all of its contacts?
+about-addressbook-confirm-remove-remote-book-title = Remove Address Book
+# Variables:
+# $name (String) - Name of the remote address book to be removed.
+about-addressbook-confirm-remove-remote-book = Are you sure you want to remove { $name }?
+
+## Cards
+
+# Variables:
+# $name (String) - Name of the address book that will be searched.
+about-addressbook-search =
+ .placeholder = Search { $name }
+about-addressbook-search-all =
+ .placeholder = Search all address books
+about-addressbook-sort-button2 =
+ .title = List display options
+about-addressbook-name-format-display =
+ .label = Display Name
+about-addressbook-name-format-firstlast =
+ .label = First Last
+about-addressbook-name-format-lastfirst =
+ .label = Last, First
+about-addressbook-sort-name-ascending =
+ .label = Sort by name (A > Z)
+about-addressbook-sort-name-descending =
+ .label = Sort by name (Z > A)
+about-addressbook-sort-email-ascending =
+ .label = Sort by e-mail address (A > Z)
+about-addressbook-sort-email-descending =
+ .label = Sort by e-mail address (Z > A)
+about-addressbook-table-layout =
+ .label = Table layout
+
+## Card column headers
+## Each string is listed here twice, and the values should match.
+
+about-addressbook-column-header-generatedname2 = Name
+ .title = Sort by name
+about-addressbook-column-label-generatedname2 =
+ .label = Name
+about-addressbook-column-header-emailaddresses2 = Email Addresses
+ .title = Sort by email addresses
+about-addressbook-column-label-emailaddresses2 =
+ .label = Email Addresses
+about-addressbook-column-header-nickname2 = Nickname
+ .title = Sort by nickname
+about-addressbook-column-label-nickname2 =
+ .label = Nickname
+about-addressbook-column-header-phonenumbers2 = Phone Numbers
+ .title = Sort by phone numbers
+about-addressbook-column-label-phonenumbers2 =
+ .label = Phone Numbers
+about-addressbook-column-header-addresses2 = Addresses
+ .title = Sort by addresses
+about-addressbook-column-label-addresses2 =
+ .label = Addresses
+about-addressbook-column-header-title2 = Title
+ .title = Sort by title
+about-addressbook-column-label-title2 =
+ .label = Title
+about-addressbook-column-header-department2 = Department
+ .title = Sort by department
+about-addressbook-column-label-department2 =
+ .label = Department
+about-addressbook-column-header-organization2 = Organization
+ .title = Sort by organization
+about-addressbook-column-label-organization2 =
+ .label = Organization
+about-addressbook-column-header-addrbook2 = Address Book
+ .title = Sort by address book
+about-addressbook-column-label-addrbook2 =
+ .label = Address Book
+about-addressbook-cards-context-write =
+ .label = Write
+about-addressbook-confirm-delete-mixed-title = Delete Contacts and Lists
+# Variables:
+# $count (Number) - The number of contacts and lists to be deleted. Always greater than 1.
+about-addressbook-confirm-delete-mixed = Are you sure you want to delete these { $count } contacts and lists?
+# Variables:
+# $count (Number) - The number of lists to be deleted.
+about-addressbook-confirm-delete-lists-title =
+ { $count ->
+ [one] Delete List
+ *[other] Delete Lists
+ }
+# Variables:
+# $count (Number) - The number of lists to be deleted.
+# $name (String) - The name of the list to be deleted, if $count is 1.
+about-addressbook-confirm-delete-lists =
+ { $count ->
+ [one] Are you sure you want to delete the list { $name }?
+ *[other] Are you sure you want to delete these { $count } lists?
+ }
+# Variables:
+# $count (Number) - The number of contacts to be removed.
+about-addressbook-confirm-remove-contacts-title =
+ { $count ->
+ [one] Remove Contact
+ *[other] Remove Contacts
+ }
+# Variables:
+# $name (String) - The name of the contact to be removed.
+# $list (String) - The name of the list that contacts will be removed from.
+about-addressbook-confirm-remove-contacts-single = Are you sure you want to remove { $name } from { $list }?
+# Variables:
+# $count (Number) - The number of contacts to be removed.
+# $list (String) - The name of the list that contacts will be removed from.
+about-addressbook-confirm-remove-contacts-multi =
+ { $count ->
+ *[other] Are you sure you want to remove these { $count } contacts from { $list }?
+ }
+# Variables:
+# $count (Number) - The number of contacts to be deleted.
+about-addressbook-confirm-delete-contacts-title =
+ { $count ->
+ [one] Delete Contact
+ *[other] Delete Contacts
+ }
+# Variables:
+# $name (String) - The name of the contact to be deleted.
+about-addressbook-confirm-delete-contacts-single = Are you sure you want to delete the contact { $name }?
+# Variables:
+# $count (Number) - The number of contacts to be deleted.
+about-addressbook-confirm-delete-contacts-multi =
+ { $count ->
+ *[other] Are you sure you want to delete these { $count } contacts?
+ }
+
+## Card list placeholder
+## Shown when there are no cards in the list
+
+about-addressbook-placeholder-empty-book = No contacts available
+about-addressbook-placeholder-new-contact = New Contact
+about-addressbook-placeholder-search-only = This address book shows contacts only after a search
+about-addressbook-placeholder-searching = Searching…
+about-addressbook-placeholder-no-search-results = No contacts found
+
+## Details
+
+# Variables:
+# $count (Number) - The number of selected items (will never be fewer than 2).
+about-addressbook-selection-mixed-header2 =
+ { $count ->
+ *[other] { $count } selected address book entries
+ }
+# Variables:
+# $count (Number) - The number of selected contacts
+about-addressbook-selection-contacts-header2 =
+ { $count ->
+ [one] { $count } selected contact
+ *[other] { $count } selected contacts
+ }
+# Variables:
+# $count (Number) - The number of selected lists
+about-addressbook-selection-lists-header2 =
+ { $count ->
+ [one] { $count } selected list
+ *[other] { $count } selected lists
+ }
+about-addressbook-details-edit-photo =
+ .title = Edit contact photo
+about-addressbook-new-contact-header = New Contact
+about-addressbook-prefer-display-name = Prefer display name over message header
+about-addressbook-write-action-button = Write
+about-addressbook-event-action-button = Event
+about-addressbook-search-action-button = Search
+about-addressbook-new-list-action-button = New List
+about-addressbook-begin-edit-contact-button = Edit
+about-addressbook-delete-edit-contact-button = Delete
+about-addressbook-cancel-edit-contact-button = Cancel
+about-addressbook-save-edit-contact-button = Save
+about-addressbook-add-contact-to = Add to:
+about-addressbook-details-email-addresses-header = Email Addresses
+about-addressbook-details-phone-numbers-header = Phone Numbers
+about-addressbook-details-addresses-header = Addresses
+about-addressbook-details-notes-header = Notes
+about-addressbook-details-impp-header = Instant Messaging
+about-addressbook-details-websites-header = Websites
+about-addressbook-details-other-info-header = Other Information
+about-addressbook-entry-type-work = Work
+about-addressbook-entry-type-home = Home
+about-addressbook-entry-type-fax = Fax
+# Or "Mobile"
+about-addressbook-entry-type-cell = Cell
+about-addressbook-entry-type-pager = Pager
+about-addressbook-entry-name-birthday = Birthday
+about-addressbook-entry-name-anniversary = Anniversary
+about-addressbook-entry-name-title = Title
+about-addressbook-entry-name-role = Role
+about-addressbook-entry-name-organization = Organization
+about-addressbook-entry-name-website = Website
+about-addressbook-entry-name-time-zone = Time Zone
+about-addressbook-entry-name-custom1 = Custom 1
+about-addressbook-entry-name-custom2 = Custom 2
+about-addressbook-entry-name-custom3 = Custom 3
+about-addressbook-entry-name-custom4 = Custom 4
+about-addressbook-unsaved-changes-prompt-title = Unsaved Changes
+about-addressbook-unsaved-changes-prompt = Do you want to save your changes before leaving the edit view?
+
+# Photo dialog
+
+about-addressbook-photo-drop-target = Drop or paste a photo here, or click to select a file.
+about-addressbook-photo-drop-loading = Loading photo…
+about-addressbook-photo-drop-error = Failed to load photo.
+about-addressbook-photo-filepicker-title = Select an image file
+about-addressbook-photo-discard = Discard existing photo
+about-addressbook-photo-cancel = Cancel
+about-addressbook-photo-save = Save
+
+# Keyboard shortcuts
+
+about-addressbook-new-contact-key = N
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000..5e39bf05ea
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,12 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+import-ab-csv-dialog-title = Import Address Book from Text File
+
+# $recordNumber (Number) - The current record number of the preview data.
+import-ab-csv-preview-record-number = Preview of the data import for record { $recordNumber }
+
+import-ab-csv-dialog =
+ .buttonlabelaccept = Import
+ .buttonaccesskeyaccept = I
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/addressbook/vcard.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/addressbook/vcard.ftl
new file mode 100644
index 0000000000..6eeef0fb21
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/addressbook/vcard.ftl
@@ -0,0 +1,138 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+# Display Name
+
+vcard-displayname = Display name
+vcard-displayname-placeholder =
+ .placeholder = { vcard-displayname }
+
+# Type selection
+
+vcard-entry-type-label = Type
+vcard-entry-type-home = Home
+vcard-entry-type-work = Work
+vcard-entry-type-none = None
+vcard-entry-type-custom = Custom
+
+# N vCard field
+
+vcard-name-header = Name
+vcard-n-prefix = Prefix
+vcard-n-add-prefix =
+ .title = Add prefix
+vcard-n-firstname = First name
+vcard-n-add-firstname =
+ .title = Add first name
+vcard-n-middlename = Middle name
+vcard-n-add-middlename =
+ .title = Add middle name
+vcard-n-lastname = Last name
+vcard-n-add-lastname =
+ .title = Add last name
+vcard-n-suffix = Suffix
+vcard-n-add-suffix =
+ .title = Add suffix
+
+# Nickname
+
+vcard-nickname = Nickname
+
+# Email vCard field
+
+vcard-email-header = Email Addresses
+vcard-email-add = Add email address
+vcard-email-label = Email address
+vcard-primary-email-label = Default
+
+# URL vCard field
+
+vcard-url-header = Websites
+vcard-url-add = Add website
+vcard-url-label = Website
+
+# Tel vCard field
+
+vcard-tel-header = Phone Numbers
+vcard-tel-add = Add phone number
+vcard-tel-label = Phone number
+# Or "Mobile"
+vcard-entry-type-cell = Cell
+vcard-entry-type-fax = Fax
+vcard-entry-type-pager = Pager
+
+# TZ vCard field
+
+vcard-tz-header = Time Zone
+vcard-tz-add = Add time zone
+
+# IMPP vCard field
+
+vcard-impp2-header = Instant Messaging
+vcard-impp-add = Add chat account
+vcard-impp-label = Chat account
+vcard-impp-select = Protocol
+vcard-impp-option-other = Other
+vcard-impp-input-label = URI
+vcard-impp-input-title = URI for instant messaging
+
+# BDAY and ANNIVERSARY vCard field
+
+vcard-bday-anniversary-header = Special Dates
+vcard-bday-anniversary-add = Add special date
+vcard-bday-label = Birthday
+vcard-anniversary-label = Anniversary
+vcard-date-day = Day
+vcard-date-month = Month
+vcard-date-year = Year
+
+# ADR vCard field
+
+vcard-adr-header = Addresses
+vcard-adr-add = Add address
+vcard-adr-label = Address
+vcard-adr-delivery-label = Delivery label
+vcard-adr-street = Street address
+# Or "Locality"
+vcard-adr-locality = City
+# Or "Region"
+vcard-adr-region = Province
+# The term "ZIP code" only applies in USA. Most locales should use "Postal code" only.
+vcard-adr-code = Postal code
+vcard-adr-country = Country
+
+# NOTE vCard field
+
+vcard-note-header = Notes
+vcard-note-add = Add note
+
+# TITLE, ROLE and ORGANIZATION vCard fields
+
+vcard-org-header = Organizational Properties
+vcard-org-add = Add organizational properties
+vcard-org-title = Title
+vcard-org-title-input =
+ .title = Position or job
+ .placeholder = Job title
+vcard-org-role = Role
+vcard-org-role-input =
+ .title = Function or part played in a particular situation
+ .placeholder = Role in a project
+vcard-org-org = Organization
+vcard-org-org-input =
+ .title = Organizational name
+ .placeholder = Company name
+vcard-org-org-unit = Department
+vcard-org-org-unit-input =
+ .title = Organizational unit name
+ .placeholder = Department
+
+# Custom properties
+
+vcard-custom-header = Custom Properties
+vcard-custom-add = Add custom properties
+vcard-remove-button-title =
+ .title = Remove
+vcard-remove-button = Remove
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/appmenu.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/appmenu.ftl
new file mode 100644
index 0000000000..f1fdfeba93
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/appmenu.ftl
@@ -0,0 +1,210 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## Sync
+
+appmenu-sync-panel-title =
+ .title = Sync
+appmenu-signin-panel =
+ .label = Sign in to Sync
+ .accesskey = i
+appmenu-sync-sync =
+ .value = Account Sync
+ .accesskey = A
+appmenu-sync-manage =
+ .value = Manage Account
+ .accesskey = M
+appmenu-sync-account =
+ .value = example@example.com
+appmenu-sync-now =
+ .label = Sync Now
+ .accesskey = N
+appmenu-sync-settings =
+ .label = Sync Settings
+ .accesskey = S
+appmenu-sync-sign-out =
+ .label = Sign Out…
+ .accesskey = O
+
+## New Account
+
+appmenu-new-account-panel-title =
+ .title = New Account
+appmenu-new-account-panel =
+ .label = New Account
+ .accesskey = N
+appmenu-create-new-mail-account =
+ .label = Get a New Email
+ .accesskey = G
+appmenu-new-mail-account =
+ .label = Existing Email
+ .accesskey = E
+appmenu-new-calendar =
+ .label = Calendar
+ .accesskey = C
+appmenu-new-chat-account =
+ .label = Chat
+ .accesskey = h
+appmenu-new-feed =
+ .label = Feed
+ .accesskey = F
+appmenu-new-newsgroup =
+ .label = Newsgroup
+ .accesskey = N
+
+## New Account / Address Book
+
+appmenu-newab-panel-title =
+ .title = New Address Book
+appmenu-newab-panel =
+ .label = New Address Book
+ .accesskey = A
+appmenu-new-addressbook =
+ .label = Local Address Book
+ .accesskey = A
+appmenu-new-carddav =
+ .label = CardDav Address Book
+ .accesskey = C
+appmenu-new-ldap =
+ .label = LDAP Address Book
+ .accesskey = L
+
+## Create
+
+appmenu-create-panel-title =
+ .title = Create
+appmenu-create-panel =
+ .label = Create
+ .accesskey = C
+appmenu-create-message =
+ .label = Message
+ .accesskey = M
+appmenu-create-event =
+ .label = Event
+ .accesskey = E
+appmenu-create-task =
+ .label = Task
+ .accesskey = T
+appmenu-create-contact =
+ .label = Contact
+ .accesskey = C
+
+## Open
+
+appmenu-open-file-panel =
+ .label = Open from File
+ .accesskey = O
+appmenu-open-file-panel-title =
+ .title = Open from File
+appmenu-open-message =
+ .label = Message…
+ .accesskey = M
+appmenu-open-calendar =
+ .label = Calendar…
+ .accesskey = C
+
+## View / Layout
+
+appmenu-view-panel-title =
+ .title = View
+appmenu-view-panel =
+ .label = View
+ .accesskey = V
+appmenuitem-toggle-thread-pane-header =
+ .label = Message List Header
+appmenu-font-size-value = Font Size
+appmenu-mail-uidensity-value = Density
+appmenu-uidensity-compact =
+ .tooltiptext = Compact
+appmenu-uidensity-default =
+ .tooltiptext = Default
+appmenu-uidensity-relaxed =
+ .tooltiptext = Relaxed
+appmenuitem-font-size-enlarge =
+ .tooltiptext = Increase Font Size
+appmenuitem-font-size-reduce =
+ .tooltiptext = Reduce Font Size
+# Variables:
+# $size (String) - The current font size.
+appmenuitem-font-size-reset =
+ .label = { $size }px
+ .tooltiptext = Reset Font Size
+
+## Tools
+
+appmenu-tools-panel-title =
+ .title = Tools
+appmenu-tools-panel =
+ .label = Tools
+ .accesskey = T
+appmenu-tools-import =
+ .label = Import
+ .accesskey = I
+appmenu-tools-export =
+ .label = Export
+ .accesskey = E
+appmenu-tools-message-search =
+ .label = Search Messages
+ .accesskey = S
+appmenu-tools-message-filters =
+ .label = Message Filters
+ .accesskey = F
+appmenu-tools-download-manager =
+ .label = Download Manager
+ .accesskey = D
+appmenu-tools-activity-manager =
+ .label = Activity Manager
+ .accesskey = A
+appmenu-tools-dev-tools =
+ .label = Developer Tools
+ .accesskey = T
+
+## Help
+
+appmenu-help-panel-title =
+ .title = Help
+appmenu-help-get-help =
+ .label = Get Help
+ .accesskey = H
+appmenu-help-explore-features =
+ .label = Explore Features
+ .accesskey = F
+appmenu-help-shortcuts =
+ .label = Keyboard Shortcuts
+ .accesskey = K
+appmenu-help-get-involved =
+ .label = Get Involved
+ .accesskey = G
+appmenu-help-donation =
+ .label = Make a Donation
+ .accesskey = D
+appmenu-help-share-feedback =
+ .label = Share Ideas and Feedback
+ .accesskey = S
+appmenu-help-enter-troubleshoot-mode2 =
+ .label = Troubleshoot Mode…
+ .accesskey = M
+appmenu-help-exit-troubleshoot-mode2 =
+ .label = Turn Troubleshoot Mode Off
+ .accesskey = M
+appmenu-help-troubleshooting-info =
+ .label = Troubleshooting Information
+ .accesskey = T
+appmenu-help-about-product =
+ .label = About { -brand-short-name }
+ .accesskey = A
+
+## Application Update
+
+appmenuitem-banner-update-downloading =
+ .label = Downloading { -brand-shorter-name } update
+appmenuitem-banner-update-available =
+ .label = Update available — download now
+appmenuitem-banner-update-manual =
+ .label = Update available — download now
+appmenuitem-banner-update-unsupported =
+ .label = Unable to update — system incompatible
+appmenuitem-banner-update-restart =
+ .label = Update available — restart now
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/chat-verifySession.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/chat-verifySession.ftl
new file mode 100644
index 0000000000..f231654bfa
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/chat-verifySession.ftl
@@ -0,0 +1,17 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+verify-window-title = Verify Identity
+
+# Variables:
+# $subject (String) - a human readable identifier for the other side of the verification flow.
+verify-window-subject-title = Verify Identity of { $subject }
+
+verify-dialog =
+ .buttonlabelaccept = They Match
+ .buttonaccesskeyaccept = M
+ .buttonlabelextra2 = They don’t match
+ .buttonaccesskeyextra2 = D
+
+challenge-label = Verify the displayed string matches the display on the other end.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/chat.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/chat.ftl
new file mode 100644
index 0000000000..0f1cd039a8
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/chat.ftl
@@ -0,0 +1,47 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+chat-joining-chat-icon2 =
+ .alt = Joining chat
+
+chat-left-chat-icon2 =
+ .alt = Left chat
+
+chat-participant-owner-role-icon2 =
+ .alt = Owner
+
+chat-participant-administrator-role-icon2 =
+ .alt = Administrator
+
+chat-participant-moderator-role-icon2 =
+ .alt = Moderator
+
+chat-participant-voiced-role-icon2 =
+ .alt = Participant can post messages
+
+chat-verify-identity =
+ .label = Verify Identity
+ .accesskey = I
+
+chat-identity-verified =
+ .label = Identity already verified
+
+chat-buddy-identity-status = Encryption Trust
+chat-buddy-identity-status-verified = Verified
+chat-buddy-identity-status-unverified = Unverified
+
+## Conversation invite notification box
+
+# This string appears in a notification bar at the top of the Contacts window
+# when someone invited the user to a multi user chat conversation, to request
+# the user to confirm they want to join the chat.
+# Variables:
+# $conversation (String) - Name of the conversation the user is invited to.
+chat-conv-invite-label = You have been invited to chat in { $conversation }
+chat-conv-invite-accept =
+ .label = Accept
+ .accesskey = A
+chat-conv-invite-deny =
+ .label = Reject
+ .accesskey = R
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000..7ca0ed70ca
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,20 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+compact-dialog-window-title =
+ .title = Compact folders
+compact-folders-dialog-title = Compact folders
+compact-dialog =
+ .buttonlabelaccept = Compact now
+ .buttonaccesskeyaccept = C
+ .buttonlabelcancel = Remind me later
+ .buttonaccesskeycancel = R
+ .buttonlabelextra1 = Learn more…
+ .buttonaccesskeyextra1 = L
+# Variables:
+# $data (String): The amount of space to be freed, formatted byte, MB, GB, etc., based on the size.
+compact-dialog-message = { -brand-short-name } needs to do regular file maintenance to improve the performance of your mail folders. This will recover { $data } of disk space without changing your messages. To let { -brand-short-name } do this automatically in the future without asking, check the box below before choosing ‘{ compact-dialog.buttonlabelaccept }’.
+compact-dialog-never-ask-checkbox =
+ .label = Compact folders automatically in the future
+ .accesskey = a
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/exportDialog.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/exportDialog.ftl
new file mode 100644
index 0000000000..e5a46f5d3f
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/exportDialog.ftl
@@ -0,0 +1,22 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+export-dialog-brand-name = { -brand-product-name }
+
+export-dialog-title = Export
+
+export-dialog =
+ .buttonlabelaccept = Next
+
+export-dialog-button-finish = Finish
+
+export-dialog-file-picker = Export to a zip file
+
+export-dialog-description1 = Export mail accounts, mail messages, address books, settings to a zip file.
+
+export-dialog-desc2 = When needed, you can import the zip file to restore your profile.
+
+export-dialog-exporting = Exporting…
+
+export-dialog-exported = Exported!
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/extensionPermissions.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/extensionPermissions.ftl
new file mode 100644
index 0000000000..da3410ba60
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/extensionPermissions.ftl
@@ -0,0 +1,24 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## Extension permission description keys are derived from permission names.
+## Permissions for which the message has been changed and the key updated
+## must have a corresponding entry in the `PERMISSION_L10N_ID_OVERRIDES` map.
+
+webext-perms-description-accountsFolders = Create, rename, or delete your mail account folders
+webext-perms-description-accountsIdentities = Create, modify or delete your mail account identities
+webext-perms-description-accountsRead = See your mail accounts, their identities and their folders
+webext-perms-description-addressBooks = Read and modify your address books and contacts
+webext-perms-description-compose = Read and modify your email messages as you compose and send them
+webext-perms-description-compose-send = Send composed email messages on your behalf
+webext-perms-description-compose-save = Save composed email messages as drafts or templates
+webext-perms-description-experiment = Have full, unrestricted access to { -brand-short-name }, and your computer
+webext-perms-description-messagesImport = Import messages into Thunderbird
+webext-perms-description-messagesModify = Read and modify your email messages as they are displayed to you
+webext-perms-description-messagesMove = Copy or move your email messages (including moving them to the trash folder)
+webext-perms-description-messagesDelete = Permanently delete your email messages
+webext-perms-description-messagesRead = Read your email messages and mark or tag them
+webext-perms-description-messagesTags = Create, modify and delete message tags
+webext-perms-description-sensitiveDataUpload = Transfer sensitive user data (if access has been granted) to a remote server for further processing
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/extensions/popup.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/extensions/popup.ftl
new file mode 100644
index 0000000000..f067abe561
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/extensions/popup.ftl
@@ -0,0 +1,14 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+close-shortcut =
+ .key = W
+# Variables:
+# $title (String): the title of the popup window
+extension-popup-title =
+ { PLATFORM() ->
+ [macos] { $title }
+ *[other] { $title } - { -brand-full-name }
+ }
+extension-popup-default-title = { -brand-full-name }
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/extensionsUI.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/extensionsUI.ftl
new file mode 100644
index 0000000000..3cf40118e3
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/extensionsUI.ftl
@@ -0,0 +1,9 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+webext-experiment-warning = Malicious add-ons can steal your private information or compromise your computer. Only install this add-on if you trust the source.
+webext-perms-learn-more = Learn more
+# Variables:
+# $addonName (String): localized named of the extension that was just installed.
+addon-post-install-message = { $addonName } was added.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/firefoxAccounts.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/firefoxAccounts.ftl
new file mode 100644
index 0000000000..669fd166f3
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/firefoxAccounts.ftl
@@ -0,0 +1,32 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# “Account” can be localized, “Firefox” must be treated as a brand,
+# and kept in English.
+-fxaccount-brand-name =
+ { $capitalization ->
+ [sentence] Firefox account
+ *[title] Firefox Account
+ }
+
+## These strings are shown in a desktop notification after the user requests we resend a verification email.
+
+fxa-verification-sent-title = Verification Sent
+# Variables:
+# $userEmail (String) - Email address of user's Firefox Account.
+fxa-verification-sent-body = A verification link has been sent to { $userEmail }.
+fxa-verification-not-sent-title = Unable to Send Verification
+fxa-verification-not-sent-body = We are unable to send a verification mail at this time, please try again later.
+
+## These strings are shown in a confirmation dialog when the user chooses to sign out.
+
+fxa-signout-dialog-title = Sign out of { -fxaccount-brand-name(capitalization: "sentence") }?
+fxa-signout-dialog-body = Synced data will remain in your account.
+fxa-signout-dialog-button = Sign out
+
+## These strings are shown in a confirmation dialog when the user chooses to stop syncing.
+
+sync-disconnect-dialog-title = Disconnect?
+sync-disconnect-dialog-body = { -brand-product-name } will stop syncing but won’t delete any of your data on this device.
+sync-disconnect-dialog-button = Disconnect
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/flatpak.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/flatpak.ftl
new file mode 100644
index 0000000000..56f61e90f3
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/flatpak.ftl
@@ -0,0 +1,24 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+### These messages are used by the Thunderbird Linux Flatpak "desktop" file.
+### An end user will see them associated with the application launcher icon
+
+# This is the label on the icon
+flatpak-desktop-name = { -brand-short-name }
+# Appears as a tooltip when hovering over application menu entry
+flatpak-desktop-comment = Send and receive mail with { -brand-product-name }
+# A generic description of Thunderbird
+flatpak-desktop-generic-name = Mail Client
+
+## Actions Section
+## These are alternative ways of starting Thunderbird, such as open the compose
+## window to write a message. Visible in a context menu after right clicking a
+## Thunderbird taskbar icon, possibly other places depending on the environment.
+
+flatpak-desktop-action-compose = Write New Message
+flatpak-desktop-action-addressbook = Open the Address Book
+flatpak-desktop-action-calendar = Open the Calendar
+flatpak-desktop-action-keymanager = Open the OpenPGP Key Manager
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/folderprops.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/folderprops.ftl
new file mode 100644
index 0000000000..23753240cb
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/folderprops.ftl
@@ -0,0 +1,10 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## Quota tab
+
+# Variables:
+# $percent (Number) - Usage percentage of the assigned IMAP quota.
+quota-percent-used = { $percent }% full
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/importDialog.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/importDialog.ftl
new file mode 100644
index 0000000000..a3c5f01cfa
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/importDialog.ftl
@@ -0,0 +1,30 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Short name of the import module
+thunderbird-import-name = Thunderbird
+
+# Description of the import module
+thunderbird-import-description = Import mail from a Thunderbird profile directory.
+
+import-from-thunderbird-zip =
+ .label = Thunderbird (exported profile backup; zip file smaller than 2GB)
+ .accesskey = Z
+
+import-from-thunderbird-dir =
+ .label = Thunderbird (profile folder)
+ .accesskey = T
+
+import-select-profile-zip = Select a zipped profile directory
+
+import-select-profile-dir = Select a profile directory
+
+zip-file-too-big-title = Zip File Too Big
+
+zip-file-too-big-message = The selected zip file is larger than 2GB. Please extract it first, then import from the extracted folder instead.
+
+wizardpage-failed =
+ .label = Import Failed
+
+wizardpage-failed-message = Import failed unexpectedly, more information may be available in the Error Console.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/mailWidgets.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/mailWidgets.ftl
new file mode 100644
index 0000000000..03dd32f877
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/mailWidgets.ftl
@@ -0,0 +1,15 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+apply-current-view-to-menu =
+ .label = Apply current view to…
+
+threadpane-apply-changes-prompt-title = Apply Changes?
+# Variables:
+# $name (String): The name of the folder to apply to.
+threadpane-apply-changes-prompt-no-children-text = Apply the current folder’s view to { $name }?
+# Variables:
+# $name (String): The name of the folder to apply to.
+threadpane-apply-changes-prompt-with-children-text = Apply the current folder’s view to { $name } and its children?
+
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/menubar.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/menubar.ftl
new file mode 100644
index 0000000000..82b1bd3ac0
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/menubar.ftl
@@ -0,0 +1,135 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+toolbar-context-menu-menu-bar =
+ .toolbarname = Menu Bar
+ .accesskey = M
+
+## Tools Menu
+
+menu-tools-settings =
+ .label = Settings
+ .accesskey = e
+menu-addons-and-themes =
+ .label = Add-ons and Themes
+ .accesskey = A
+
+## Help Menu
+
+menu-help-help-title =
+ .label = Help
+ .accesskey = H
+menu-help-get-help =
+ .label = Get Help
+ .accesskey = H
+menu-help-explore-features =
+ .label = Explore Features
+ .accesskey = F
+menu-help-shortcuts =
+ .label = Keyboard Shortcuts
+ .accesskey = K
+menu-help-get-involved =
+ .label = Get Involved
+ .accesskey = G
+menu-help-donation =
+ .label = Make a Donation
+ .accesskey = D
+menu-help-share-feedback =
+ .label = Share Ideas and Feedback
+ .accesskey = S
+menu-help-enter-troubleshoot-mode =
+ .label = Troubleshoot Mode…
+ .accesskey = T
+menu-help-exit-troubleshoot-mode =
+ .label = Turn Troubleshoot Mode Off
+ .accesskey = O
+menu-help-troubleshooting-info =
+ .label = Troubleshooting Information
+ .accesskey = T
+menu-help-about-product =
+ .label = About { -brand-short-name }
+ .accesskey = A
+# These menu-quit strings are only used on Windows and Linux.
+menu-quit =
+ .label =
+ { PLATFORM() ->
+ [windows] Exit
+ *[other] Quit
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [windows] x
+ *[other] Q
+ }
+# This menu-quit-mac string is only used on macOS.
+menu-quit-mac =
+ .label = Quit { -brand-shorter-name }
+quit-app-shortcut =
+ .key = Q
+
+## Mail Toolbar
+
+toolbar-junk-button =
+ .label = Junk
+ .tooltiptext = Mark the selected messages as junk
+toolbar-not-junk-button =
+ .label = Not Junk
+ .tooltiptext = Mark the selected messages as not junk
+toolbar-delete-button =
+ .label = Delete
+ .tooltiptext = Delete selected messages or folder
+toolbar-undelete-button =
+ .label = Undelete
+ .tooltiptext = Undelete selected messages
+
+## View
+
+menu-view-repair-text-encoding =
+ .label = Repair Text Encoding
+ .accesskey = c
+
+## View / Folders
+
+menu-view-folders-toggle-header =
+ .label = Folder Pane Header
+ .accesskey = F
+
+## View / Layout
+
+menu-view-toggle-thread-pane-header =
+ .label = Message List Header
+ .accesskey = H
+menu-font-size-label =
+ .label = Font Size
+ .accesskey = o
+menuitem-font-size-enlarge =
+ .label = Increase Font Size
+ .accesskey = I
+menuitem-font-size-reduce =
+ .label = Reduce Font Size
+ .accesskey = D
+menuitem-font-size-reset =
+ .label = Reset Font Size
+ .accesskey = R
+mail-uidensity-label =
+ .label = Density
+ .accesskey = D
+mail-uidensity-compact =
+ .label = Compact
+ .accesskey = C
+mail-uidensity-default =
+ .label = Default
+ .accesskey = D
+mail-uidensity-relaxed =
+ .label = Relaxed
+ .accesskey = R
+menu-spaces-toolbar-button =
+ .label = Spaces Toolbar
+ .accesskey = S
+
+## File
+
+file-new-newsgroup-account =
+ .label = Newsgroup Account…
+ .accesskey = N
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/messageheader/headerFields.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/messageheader/headerFields.ftl
new file mode 100644
index 0000000000..18ba37816f
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/messageheader/headerFields.ftl
@@ -0,0 +1,71 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## Header lists
+
+message-header-to-list-name = To
+
+message-header-from-list-name = From
+
+message-header-sender-list-name = Sender
+
+message-header-reply-to-list-name = Reply to
+
+message-header-cc-list-name = Cc
+
+message-header-bcc-list-name = Bcc
+
+message-header-newsgroups-list-name = Newsgroups
+
+message-header-tags-list-name = Tags
+
+## Other message headers.
+## The field-separator is for screen readers to separate the field name from the field value.
+
+message-header-author-field = Author<span data-l10n-name="field-separator">:</span>
+
+message-header-organization-field = Organization<span data-l10n-name="field-separator">:</span>
+
+message-header-subject-field = Subject<span data-l10n-name="field-separator">:</span>
+
+message-header-followup-to-field = Followup to<span data-l10n-name="field-separator">:</span>
+
+
+message-header-date-field = Date<span data-l10n-name="field-separator">:</span>
+
+message-header-user-agent-field = User agent<span data-l10n-name="field-separator">:</span>
+
+message-header-references-field = References<span data-l10n-name="field-separator">:</span>
+
+message-header-message-id-field = Message ID<span data-l10n-name="field-separator">:</span>
+
+message-header-in-reply-to-field = In reply to<span data-l10n-name="field-separator">:</span>
+
+message-header-website-field = Website<span data-l10n-name="field-separator">:</span>
+
+# An additional email header field that the user has chosen to display. Unlike
+# the other headers, the name of this header is not expected to be localised
+# because it is generated from the raw field name found in the email header.
+# $fieldName (String) - The field name.
+message-header-custom-field = { $fieldName }<span data-l10n-name="field-separator">:</span>
+
+##
+
+message-header-address-in-address-book-icon2 =
+ .alt = In the Address Book
+
+message-header-address-not-in-address-book-icon2 =
+ .alt = Not in the Address Book
+
+message-header-address-not-in-address-book-button =
+ .title = Save this address in the Address Book
+
+message-header-address-in-address-book-button =
+ .title = Edit contact
+
+message-header-field-show-more = More
+ .title = Show all recipients
+
+message-ids-field-show-all = Show all
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/messenger.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/messenger.ftl
new file mode 100644
index 0000000000..aecbd60b29
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/messenger.ftl
@@ -0,0 +1,411 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## Window controls
+
+messenger-window-minimize-button =
+ .tooltiptext = Minimize
+messenger-window-maximize-button =
+ .tooltiptext = Maximize
+messenger-window-restore-down-button =
+ .tooltiptext = Restore Down
+messenger-window-close-button =
+ .tooltiptext = Close
+# Variables:
+# $count (Number) - Number of unread messages.
+unread-messages-os-tooltip =
+ { $count ->
+ [one] 1 unread message
+ *[other] { $count } unread messages
+ }
+about-rights-notification-text = { -brand-short-name } is free and open source software, built by a community of thousands from all over the world.
+
+## Content tabs
+
+content-tab-page-loading-icon =
+ .alt = The page is loading
+content-tab-security-high-icon =
+ .alt = The connection is secure
+content-tab-security-broken-icon =
+ .alt = The connection is not secure
+
+# Back
+
+# Variables
+# $shortcut (String) - A keyboard shortcut for the Go Back command.
+content-tab-menu-back =
+ .tooltiptext = Go back one page ({ $shortcut })
+ .aria-label = Back
+ .accesskey = B
+# This menuitem is only visible on macOS
+content-tab-menu-back-mac =
+ .label = Back
+ .accesskey = B
+
+# Forward
+
+# Variables
+# $shortcut (String) - A keyboard shortcut for the Go Forward command.
+content-tab-menu-forward =
+ .tooltiptext = Go forward one page ({ $shortcut })
+ .aria-label = Forward
+ .accesskey = F
+# This menuitem is only visible on macOS
+content-tab-menu-forward-mac =
+ .label = Forward
+ .accesskey = F
+
+# Reload
+
+content-tab-menu-reload =
+ .tooltiptext = Reload page
+ .aria-label = Reload
+ .accesskey = R
+# This menuitem is only visible on macOS
+content-tab-menu-reload-mac =
+ .tooltiptext = Reload page
+ .label = Reload
+ .accesskey = R
+
+# Stop
+
+content-tab-menu-stop =
+ .tooltiptext = Stop page loading
+ .aria-label = Stop
+ .accesskey = S
+# This menuitem is only visible on macOS
+content-tab-menu-stop-mac =
+ .tooltiptext = Stop page loading
+ .label = Stop
+ .accesskey = S
+
+## Toolbar
+
+addons-and-themes-toolbarbutton =
+ .label = Add-ons and Themes
+ .tooltiptext = Manage your add-ons
+quick-filter-toolbarbutton =
+ .label = Quick Filter
+ .tooltiptext = Filter messages
+redirect-msg-button =
+ .label = Redirect
+ .tooltiptext = Redirect selected message
+
+## Folder Pane
+
+folder-pane-toolbar =
+ .toolbarname = Folder Pane Toolbar
+ .accesskey = F
+folder-pane-toolbar-options-button =
+ .tooltiptext = Folder Pane Options
+folder-pane-header-label = Folders
+
+## Folder Toolbar Header Popup
+
+folder-toolbar-hide-toolbar-toolbarbutton =
+ .label = Hide Toolbar
+ .accesskey = H
+show-all-folders-label =
+ .label = All Folders
+ .accesskey = A
+show-unread-folders-label =
+ .label = Unread Folders
+ .accesskey = n
+show-favorite-folders-label =
+ .label = Favourite Folders
+ .accesskey = F
+show-smart-folders-label =
+ .label = Unified Folders
+ .accesskey = U
+show-recent-folders-label =
+ .label = Recent Folders
+ .accesskey = R
+show-tags-folders-label =
+ .label = Tags
+ .accesskey = T
+folder-toolbar-toggle-folder-compact-view =
+ .label = Compact View
+ .accesskey = C
+
+## File Menu
+
+menu-file-save-as-file =
+ .label = File…
+ .accesskey = F
+
+## Edit Menu
+
+menu-edit-delete-folder =
+ .label = Delete Folder
+ .accesskey = D
+menu-edit-unsubscribe-newsgroup =
+ .label = Unsubscribe Newsgroup
+ .accesskey = b
+# Variables:
+# $count (Number) - Number of selected messages.
+menu-edit-delete-messages =
+ .label =
+ { $count ->
+ [one] Delete Message
+ *[other] Delete Selected Messages
+ }
+ .accesskey = D
+# Variables:
+# $count (Number) - Number of selected messages.
+menu-edit-undelete-messages =
+ .label =
+ { $count ->
+ [one] Undelete Message
+ *[other] Undelete Selected Messages
+ }
+ .accesskey = d
+menu-edit-properties =
+ .label = Properties
+ .accesskey = o
+menu-edit-folder-properties =
+ .label = Folder Properties
+ .accesskey = o
+menu-edit-newsgroup-properties =
+ .label = Newsgroup Properties
+ .accesskey = o
+
+## Message Menu
+
+redirect-msg-menuitem =
+ .label = Redirect
+ .accesskey = D
+
+## AppMenu
+
+appmenu-save-as-file =
+ .label = File…
+appmenu-settings =
+ .label = Settings
+appmenu-addons-and-themes =
+ .label = Add-ons and Themes
+
+## Context menu
+
+context-menu-redirect-msg =
+ .label = Redirect
+# This menu item is for canceling an NNTP message
+context-menu-cancel-msg =
+ .label = Cancel Message
+# Variables:
+# $count (Number) - Number of selected messages.
+mail-context-delete-messages =
+ .label =
+ { $count ->
+ [one] Delete message
+ *[other] Delete selected messages
+ }
+# Variables:
+# $count (Number) - Number of selected messages.
+mail-context-undelete-messages =
+ .label =
+ { $count ->
+ [one] Undelete Message
+ *[other] Undelete Selected Messages
+ }
+context-menu-decrypt-to-folder2 =
+ .label = Create Decrypted Copy In
+ .accesskey = y
+
+## Message header pane
+
+other-action-redirect-msg =
+ .label = Redirect
+message-header-msg-flagged =
+ .title = Starred
+ .aria-label = Starred
+# Variables:
+# $address (String) - The email address of the recipient this picture belongs to.
+message-header-recipient-avatar =
+ .alt = Profile picture of { $address }.
+
+## Message header cutomize panel
+
+message-header-customize-panel-title = Message Header Settings
+message-header-customize-button-style =
+ .value = Button style
+ .accesskey = B
+message-header-button-style-default =
+ .label = Icons and text
+message-header-button-style-text =
+ .label = Text
+message-header-button-style-icons =
+ .label = Icons
+message-header-show-sender-full-address =
+ .label = Always show sender’s full address
+ .accesskey = f
+message-header-show-sender-full-address-description = The email address will be shown underneath the display name.
+message-header-show-recipient-avatar =
+ .label = Show sender’s profile picture
+ .accesskey = p
+message-header-show-big-avatar =
+ .label = Larger profile picture
+ .accesskey = g
+message-header-hide-label-column =
+ .label = Hide labels column
+ .accesskey = l
+message-header-large-subject =
+ .label = Large subject
+ .accesskey = s
+message-header-all-headers =
+ .label = Show all headers
+ .accesskey = a
+
+## Action Button Context Menu
+
+toolbar-context-menu-manage-extension =
+ .label = Manage Extension
+ .accesskey = E
+toolbar-context-menu-remove-extension =
+ .label = Remove Extension
+ .accesskey = v
+
+## Add-on removal warning
+
+# Variables:
+# $name (String): The name of the add-on that will be removed.
+addon-removal-title = Remove { $name }?
+addon-removal-confirmation-button = Remove
+# Variables:
+# $name (String): The name of the add-on that will be removed.
+addon-removal-confirmation-message = Remove { $name } as well as its configuration and data from { -brand-short-name }?
+caret-browsing-prompt-title = Caret Browsing
+caret-browsing-prompt-text = Pressing F7 turns Caret Browsing on or off. This feature places a moveable cursor within some content, allowing you to select text with the keyboard. Do you want to turn Caret Browsing on?
+caret-browsing-prompt-check-text = Do not ask again.
+repair-text-encoding-button =
+ .label = Repair Text Encoding
+ .tooltiptext = Guess correct text encoding from message content
+
+## no-reply handling
+
+no-reply-title = Reply Not Supported
+# Variables:
+# $email (String) - Email address the reply will be sent to. Example: "noreply@example.com"
+no-reply-message = The reply address ({ $email }) does not appear to be a monitored address. Messages to this address will likely not be read by anyone.
+no-reply-reply-anyway-button = Reply Anyway
+
+## error messages
+
+# Variables:
+# $failures (Number) - Number of messages that could not be decrypted.
+# $total (Number) - Total number of messages that were attempted to be decrypted.
+decrypt-and-copy-failures-multiple =
+ { $failures ->
+ [one] { $failures } of { $total } messages could not be decrypted and was not copied.
+ *[other] { $failures } of { $total } messages could not be decrypted and were not copied.
+ }
+
+## Spaces toolbar
+
+spaces-toolbar-element =
+ .toolbarname = Spaces Toolbar
+ .aria-label = Spaces Toolbar
+ .aria-description = Vertical toolbar for switching between different spaces. Use the arrow keys to navigate the available buttons.
+spaces-toolbar-button-mail2 =
+ .title = Mail
+spaces-toolbar-button-address-book2 =
+ .title = Address Book
+spaces-toolbar-button-calendar2 =
+ .title = Calendar
+spaces-toolbar-button-tasks2 =
+ .title = Tasks
+spaces-toolbar-button-chat2 =
+ .title = Chat
+spaces-toolbar-button-overflow =
+ .title = More spaces…
+spaces-toolbar-button-settings2 =
+ .title = Settings
+spaces-toolbar-button-hide =
+ .title = Hide Spaces Toolbar
+spaces-toolbar-button-show =
+ .title = Show Spaces Toolbar
+spaces-context-new-tab-item =
+ .label = Open in new tab
+spaces-context-new-window-item =
+ .label = Open in new window
+# Variables:
+# $tabName (String) - The name of the tab this item will switch to.
+spaces-context-switch-tab-item =
+ .label = Switch to { $tabName }
+settings-context-open-settings-item2 =
+ .label = Settings
+settings-context-open-account-settings-item2 =
+ .label = Account Settings
+settings-context-open-addons-item2 =
+ .label = Add-ons and Themes
+
+## Spaces toolbar pinned tab menupopup
+
+spaces-toolbar-pinned-tab-button =
+ .tooltiptext = Open spaces menu
+spaces-pinned-button-menuitem-mail2 =
+ .label = { spaces-toolbar-button-mail2.title }
+spaces-pinned-button-menuitem-address-book2 =
+ .label = { spaces-toolbar-button-address-book2.title }
+spaces-pinned-button-menuitem-calendar2 =
+ .label = { spaces-toolbar-button-calendar2.title }
+spaces-pinned-button-menuitem-tasks2 =
+ .label = { spaces-toolbar-button-tasks2.title }
+spaces-pinned-button-menuitem-chat2 =
+ .label = { spaces-toolbar-button-chat2.title }
+spaces-pinned-button-menuitem-settings2 =
+ .label = { spaces-toolbar-button-settings2.title }
+spaces-pinned-button-menuitem-show =
+ .label = { spaces-toolbar-button-show.title }
+# Variables:
+# $count (Number) - Number of unread messages.
+chat-button-unread-messages = { $count }
+ .title =
+ { $count ->
+ [one] One unread message
+ *[other] { $count } unread messages
+ }
+
+## Spaces toolbar customize panel
+
+menuitem-customize-label =
+ .label = Customize…
+spaces-customize-panel-title = Spaces Toolbar Settings
+spaces-customize-background-color = Background colour
+spaces-customize-icon-color = Button colour
+# The background color used on the buttons of the spaces toolbar when they are
+# `current`, meaning the related space/tab is active and visible.
+spaces-customize-accent-background-color = Selected button background colour
+# The icon color used on the buttons of the spaces toolbar when they are
+# `current`, meaning the related space/tab is active and visible.
+spaces-customize-accent-text-color = Selected button colour
+spaces-customize-button-restore = Restore Defaults
+ .accesskey = R
+customize-panel-button-save = Done
+ .accesskey = D
+
+## Quick Filter Bar
+
+# The label to display for the "View... Toolbars..." menu item that controls
+# whether the quick filter bar is visible.
+quick-filter-bar-toggle =
+ .label = Quick Filter Bar
+ .accesskey = Q
+# This is the key used to show the quick filter bar.
+# This should match quick-filter-bar-textbox-shortcut in about3Pane.ftl.
+quick-filter-bar-show =
+ .key = k
+
+## OpenPGP
+
+openpgp-forget = Forget OpenPGP passphrases
+
+## Quota panel.
+
+# Variables:
+# $percent (Number) - Usage percentage of the assigned IMAP quota.
+# $usage (String) - Current quota usage (may include unit)
+# $limit (String) - Current quota limit (may include unit)
+quota-panel-percent-used = { $percent }% full
+ .title = IMAP quota: { $usage } used of { $limit } total
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/messengercompose/messengercompose.ftl
new file mode 100644
index 0000000000..c511896d8b
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/messengercompose/messengercompose.ftl
@@ -0,0 +1,411 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## Send Format
+
+compose-send-format-menu =
+ .label = Sending Format
+ .accesskey = F
+compose-send-auto-menu-item =
+ .label = Automatic
+ .accesskey = A
+compose-send-both-menu-item =
+ .label = Both HTML and Plain Text
+ .accesskey = B
+compose-send-html-menu-item =
+ .label = Only HTML
+ .accesskey = H
+compose-send-plain-menu-item =
+ .label = Only Plain Text
+ .accesskey = P
+
+## Addressing widget
+
+# $type (String) - the type of the addressing row
+remove-address-row-button =
+ .title = Remove the { $type } field
+# $type (String) - the type of the addressing row
+# $count (Number) - the number of address pills currently present in the addressing row
+address-input-type-aria-label =
+ { $count ->
+ [0] { $type }
+ [one] { $type } with one address, use left arrow key to focus on it.
+ *[other] { $type } with { $count } addresses, use left arrow key to focus on them.
+ }
+# $email (String) - the email address
+# $count (Number) - the number of address pills currently present in the addressing row
+pill-aria-label =
+ { $count ->
+ [one] { $email }: press Enter to edit, Delete to remove.
+ *[other] { $email }, 1 of { $count }: press Enter to edit, Delete to remove.
+ }
+# $email (String) - the email address
+pill-tooltip-invalid-address = { $email } is not a valid e-mail address
+# $email (String) - the email address
+pill-tooltip-not-in-address-book = { $email } is not in your address book
+pill-action-edit =
+ .label = Edit Address
+ .accesskey = e
+# $type (String) - the type of the addressing row, e.g. Cc, Bcc, etc.
+pill-action-select-all-sibling-pills =
+ .label = Select All Addresses in { $type }
+ .accesskey = A
+pill-action-select-all-pills =
+ .label = Select All Addresses
+ .accesskey = S
+pill-action-move-to =
+ .label = Move to To
+ .accesskey = t
+pill-action-move-cc =
+ .label = Move to Cc
+ .accesskey = c
+pill-action-move-bcc =
+ .label = Move to Bcc
+ .accesskey = b
+pill-action-expand-list =
+ .label = Expand List
+ .accesskey = x
+
+## Attachment widget
+
+ctrl-cmd-shift-pretty-prefix =
+ { PLATFORM() ->
+ [macos] ⇧ ⌘{ " " }
+ *[other] Ctrl+Shift+
+ }
+trigger-attachment-picker-key = A
+toggle-attachment-pane-key = M
+menuitem-toggle-attachment-pane =
+ .label = Attachment Pane
+ .accesskey = m
+ .acceltext = { ctrl-cmd-shift-pretty-prefix }{ toggle-attachment-pane-key }
+toolbar-button-add-attachment =
+ .label = Attach
+ .tooltiptext = Add an Attachment ({ ctrl-cmd-shift-pretty-prefix }{ trigger-attachment-picker-key })
+add-attachment-notification-reminder2 =
+ .label = Add Attachment…
+ .accesskey = A
+ .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
+menuitem-attach-files =
+ .label = File(s)…
+ .accesskey = F
+ .acceltext = { ctrl-cmd-shift-pretty-prefix }{ trigger-attachment-picker-key }
+context-menuitem-attach-files =
+ .label = Attach File(s)…
+ .accesskey = F
+ .acceltext = { ctrl-cmd-shift-pretty-prefix }{ trigger-attachment-picker-key }
+# Note: Do not translate the term 'vCard'.
+context-menuitem-attach-vcard =
+ .label = My vCard
+ .accesskey = C
+context-menuitem-attach-openpgp-key =
+ .label = My OpenPGP Public Key
+ .accesskey = K
+# $count (Number) - the number of attachments in the attachment bucket
+attachment-bucket-count-value =
+ { $count ->
+ [1] { $count } Attachment
+ [one] { $count } Attachment
+ *[other] { $count } Attachments
+ }
+attachment-area-show =
+ .title = Show the attachment pane ({ ctrl-cmd-shift-pretty-prefix }{ toggle-attachment-pane-key })
+attachment-area-hide =
+ .title = Hide the attachment pane ({ ctrl-cmd-shift-pretty-prefix }{ toggle-attachment-pane-key })
+
+## Variables:
+## $count (Number) - Number of files being dropped onto the composer.
+
+drop-file-label-attachment =
+ { $count ->
+ [one] Add as Attachment
+ *[other] Add as Attachments
+ }
+drop-file-label-inline =
+ { $count ->
+ [one] Append Inline
+ *[other] Append Inline
+ }
+
+## Reorder Attachment Panel
+
+move-attachment-first-panel-button =
+ .label = Move First
+move-attachment-left-panel-button =
+ .label = Move Left
+move-attachment-right-panel-button =
+ .label = Move Right
+move-attachment-last-panel-button =
+ .label = Move Last
+button-return-receipt =
+ .label = Receipt
+ .tooltiptext = Request a return receipt for this message
+
+## Encryption
+
+encryption-menu =
+ .label = Security
+ .accesskey = c
+encryption-toggle =
+ .label = Encrypt
+ .tooltiptext = Use end-to-end encryption for this message
+encryption-options-openpgp =
+ .label = OpenPGP
+ .tooltiptext = View or change OpenPGP encryption settings
+encryption-options-smime =
+ .label = S/MIME
+ .tooltiptext = View or change S/MIME encryption settings
+signing-toggle =
+ .label = Sign
+ .tooltiptext = Use digital signing for this message
+menu-openpgp =
+ .label = OpenPGP
+ .accesskey = O
+menu-smime =
+ .label = S/MIME
+ .accesskey = S
+menu-encrypt =
+ .label = Encrypt
+ .accesskey = E
+menu-encrypt-subject =
+ .label = Encrypt Subject
+ .accesskey = B
+menu-sign =
+ .label = Digitally Sign
+ .accesskey = i
+menu-manage-keys =
+ .label = Key Assistant
+ .accesskey = A
+menu-view-certificates =
+ .label = View Certificates Of Recipients
+ .accesskey = V
+menu-open-key-manager =
+ .label = Key Manager
+ .accesskey = M
+# Variables:
+# $addr (String) - Email address (which related to the currently selected
+# from address) which isn't set up to end-to-end encryption.
+openpgp-key-issue-notification-from = You are not set up to send end-to-end encrypted messages from { $addr }.
+# Variables:
+# $addr (String) - Email address with key issues.
+openpgp-key-issue-notification-single = End-to-end encryption requires resolving key issues for { $addr }.
+# Variables:
+# $count (Number) - Number of recipients with key issues.
+openpgp-key-issue-notification-multi =
+ { $count ->
+ *[other] End-to-end encryption requires resolving key issues for { $count } recipients.
+ }
+# Variables:
+# $addr (String) - mail address with certificate issues.
+smime-cert-issue-notification-single = End-to-end encryption requires resolving certificate issues for { $addr }.
+# Variables:
+# $count (Number) - Number of recipients with certificate issues.
+smime-cert-issue-notification-multi =
+ { $count ->
+ *[other] End-to-end encryption requires resolving certificate issues for { $count } recipients.
+ }
+key-notification-disable-encryption =
+ .label = Do Not Encrypt
+ .accesskey = D
+ .tooltiptext = Disable end-to-end encryption
+key-notification-resolve =
+ .label = Resolve…
+ .accesskey = R
+ .tooltiptext = Open the OpenPGP Key Assistant
+can-encrypt-smime-notification = S/MIME end-to-end encryption is possible.
+can-encrypt-openpgp-notification = OpenPGP end-to-end encryption is possible.
+can-e2e-encrypt-button =
+ .label = Encrypt
+ .accesskey = E
+
+## Addressing Area
+
+to-address-row-label =
+ .value = To
+# $key (String) - the shortcut key for this field
+show-to-row-main-menuitem =
+ .label = To Field
+ .accesskey = T
+ .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-to-row-button text.
+show-to-row-extra-menuitem =
+ .label = To
+ .accesskey = T
+# $key (String) - the shortcut key for this field
+show-to-row-button = To
+ .title = Show To Field ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+cc-address-row-label =
+ .value = Cc
+# $key (String) - the shortcut key for this field
+show-cc-row-main-menuitem =
+ .label = Cc Field
+ .accesskey = C
+ .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-cc-row-button text.
+show-cc-row-extra-menuitem =
+ .label = Cc
+ .accesskey = C
+# $key (String) - the shortcut key for this field
+show-cc-row-button = Cc
+ .title = Show Cc Field ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+bcc-address-row-label =
+ .value = Bcc
+# $key (String) - the shortcut key for this field
+show-bcc-row-main-menuitem =
+ .label = Bcc Field
+ .accesskey = B
+ .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-bcc-row-button text.
+show-bcc-row-extra-menuitem =
+ .label = Bcc
+ .accesskey = B
+# $key (String) - the shortcut key for this field
+show-bcc-row-button = Bcc
+ .title = Show Bcc Field ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+extra-address-rows-menu-button =
+ .title = Other addressing fields to show
+public-recipients-notice-single = Your message has a public recipient. You can avoid disclosing the recipient by using Bcc instead.
+# Variables:
+# $count (Number) - the count of addresses in the "To" and "Cc" fields.
+public-recipients-notice-multi =
+ { $count ->
+ *[other] The { $count } recipients in To and Cc will see each other’s address. You can avoid disclosing recipients by using Bcc instead.
+ }
+many-public-recipients-bcc =
+ .label = Use Bcc Instead
+ .accesskey = U
+many-public-recipients-ignore =
+ .label = Keep Recipients Public
+ .accesskey = K
+many-public-recipients-prompt-title = Too Many Public Recipients
+# $count (Number) - the count of addresses in the public recipients fields.
+many-public-recipients-prompt-msg =
+ { $count ->
+ [one] Your message has a public recipient. This may be a privacy concern. You can avoid this by moving the recipient from To/Cc to Bcc instead.
+ *[other] Your message has { $count } public recipients, who will be able to see each other’s addresses. This may be a privacy concern. You can avoid disclosing recipients by moving recipients from To/Cc to Bcc instead.
+ }
+many-public-recipients-prompt-cancel = Cancel Sending
+many-public-recipients-prompt-send = Send Anyway
+
+## Notifications
+
+# Variables:
+# $identity (string) - The name of the used identity, most likely an email address.
+compose-missing-identity-warning = A unique identity matching the From address was not found. The message will be sent using the current From field and settings from identity { $identity }.
+encrypted-bcc-warning = When sending an encrypted message, recipients in Bcc are not fully hidden. All recipients may be able to identify them.
+encrypted-bcc-ignore-button = Understood
+auto-disable-e2ee-warning = End-to-end encryption for this message was automatically disabled.
+
+## Editing
+
+
+# Tools
+
+compose-tool-button-remove-text-styling =
+ .tooltiptext = Remove Text Styling
+
+## Filelink
+
+# A text used in a tooltip of Filelink attachments, whose account has been
+# removed or is unknown.
+cloud-file-unknown-account-tooltip = Uploaded to an unknown Filelink account.
+
+# Placeholder file
+
+# Title for the html placeholder file.
+# $filename - name of the file
+cloud-file-placeholder-title = { $filename } - Filelink Attachment
+# A text describing that the file was attached as a Filelink and can be downloaded
+# from the link shown below.
+# $filename - name of the file
+cloud-file-placeholder-intro = The file { $filename } was attached as a Filelink. It can be downloaded from the link below.
+
+# Template
+
+# 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.
+# Variables:
+# $count (Number) - Number of files.
+cloud-file-count-header =
+ { $count ->
+ [one] I’ve linked { $count } file to this email:
+ *[other] I’ve linked { $count } files to this email:
+ }
+# A text used in a footer, instructing the reader where to find additional
+# information about the used service provider.
+# $link (string) - html a-tag for a link pointing to the web page of the provider
+cloud-file-service-provider-footer-single = Learn more about { $link }.
+# A text used in a footer, instructing the reader where to find additional
+# information about the used service providers. Links for the used providers are
+# split into a comma separated list of the first n-1 providers and a single entry
+# at the end.
+# $firstLinks (string) - comma separated list of html a-tags pointing to web pages
+# of the first n-1 used providers
+# $lastLink (string) - html a-tag pointing the web page of the n-th used provider
+cloud-file-service-provider-footer-multiple = Learn more about { $firstLinks } and { $lastLink }.
+# Tooltip for an icon, indicating that the link is protected by a password.
+cloud-file-tooltip-password-protected-link = Password protected link
+# Used in a list of stats about a specific file
+# Service - the used service provider to host the file (Filelink Service: BOX.com)
+# Size - the size of the file (Size: 4.2 MB)
+# Link - the link to the file (Link: https://some.provider.com)
+# Expiry Date - stating the date the link will expire (Expiry Date: 12.12.2022)
+# Download Limit - stating the maximum allowed downloads, before the link becomes invalid
+# (Download Limit: 6)
+cloud-file-template-service-name = Filelink Service:
+cloud-file-template-size = Size:
+cloud-file-template-link = Link:
+cloud-file-template-password-protected-link = Password Protected Link:
+cloud-file-template-expiry-date = Expiry Date:
+cloud-file-template-download-limit = Download Limit:
+
+# Messages
+
+cloud-file-connection-error-title = Connection Error
+# Variables:
+# $provider (string) - name of the online storage service that reported the error
+cloud-file-connection-error = { -brand-short-name } is offline. Could not connect to { $provider }.
+# Variables:
+# $provider (string) - name of the online storage service that reported the error
+# $filename (string) - name of the file that was uploaded and caused the error
+cloud-file-upload-error-with-custom-message-title = Uploading { $filename } to { $provider } Failed
+cloud-file-rename-error-title = Rename Error
+# Variables:
+# $provider (string) - name of the online storage service that reported the error
+# $filename (string) - name of the file that was renamed and caused the error
+cloud-file-rename-error = There was a problem renaming { $filename } on { $provider }.
+# Variables:
+# $provider (string) - name of the online storage service that reported the error
+# $filename (string) - name of the file that was renamed and caused the error
+cloud-file-rename-error-with-custom-message-title = Renaming { $filename } on { $provider } Failed
+# Variables:
+# $provider (string) - name of the online storage service that reported the error
+cloud-file-rename-not-supported = { $provider } does not support renaming already uploaded files.
+cloud-file-attachment-error-title = Filelink Attachment Error
+# Variables:
+# $filename (string) - name of the file that was renamed and caused the error
+cloud-file-attachment-error = Failed to update the Filelink attachment { $filename }, because its local file has been moved or deleted.
+cloud-file-account-error-title = Filelink Account Error
+# Variables:
+# $filename (string) - name of the file that was renamed and caused the error
+cloud-file-account-error = Failed to update the Filelink attachment { $filename }, because its Filelink account has been deleted.
+
+## Link Preview
+
+link-preview-title = Link Preview
+link-preview-description = { -brand-short-name } can add an embedded preview when pasting links.
+link-preview-autoadd = Automatically add link previews when possible
+link-preview-replace-now = Add a Link Preview for this link?
+link-preview-yes-replace = Yes
+
+## Dictionary selection popup
+
+spell-add-dictionaries =
+ .label = Add Dictionaries…
+ .accesskey = A
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/migration.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/migration.ftl
new file mode 100644
index 0000000000..9dceacc1b6
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/migration.ftl
@@ -0,0 +1,15 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+migration-progress-header = Getting { -brand-short-name } ready…
+
+## Migration tasks
+
+
+# These strings are displayed to the user if a migration is taking a long time.
+# They should be short (no more than a handful of words) and in the present tense.
+
+migration-task-test-fast = Testing a fast change
+migration-task-test-slow = Testing a slow change
+migration-task-test-progress = Testing the progress bar
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/multimessageview.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/multimessageview.ftl
new file mode 100644
index 0000000000..c014821fcd
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/multimessageview.ftl
@@ -0,0 +1,14 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+multi-message-window-title =
+ .title = Message Summary
+selected-messages-label =
+ .label = Selected Messages
+multi-message-archive-button =
+ .label = Archive
+ .tooltiptext = Archive
+multi-message-delete-button =
+ .label = Delete
+ .tooltiptext = Delete
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/backupKeyPassword.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/backupKeyPassword.ftl
new file mode 100644
index 0000000000..f9cd659fb4
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/backupKeyPassword.ftl
@@ -0,0 +1,17 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+set-password-window =
+ .title = Choose a password to backup your OpenPGP Key
+set-password-window-title = Choose a password to backup your OpenPGP Key
+set-password-legend = Choose a Password
+set-password-message = The password you set here protects the OpenPGP secret key backup file that you are about to create. You must set this password to proceed with the backup.
+set-password-backup-pw =
+ .value = Secret Key backup password:
+set-password-repeat-backup-pw =
+ .value = Secret Key backup password (again):
+set-password-backup-pw-label = Secret Key backup password:
+set-password-backup-pw2-label = Secret Key backup password (again):
+set-password-reminder = <b>Important!</b> If you forget your secret key backup password, you will not be able to restore this backup later. Please record it in a safe location.
+password-quality-meter = Password quality meter
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/changeExpiryDlg.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/changeExpiryDlg.ftl
new file mode 100644
index 0000000000..24638be781
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/changeExpiryDlg.ftl
@@ -0,0 +1,22 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+openpgp-change-key-expiry-title =
+ .title = Change Key Expiration
+openpgp-change-expiry-title = Change Key Expiration
+info-will-expire = This key is currently configured to expire on { $date }.
+info-already-expired = This key has already expired.
+info-does-not-expire = This key is currently configured to never expire.
+info-explanation-1 = <b>After a key expires</b>, it‘s no longer possible to use it for encryption or digital signing.
+info-explanation-2 = To use this key for a longer period of time, change its expiration date, and then share the public key with your conversation partners again.
+expire-dont-change =
+ .label = Do not change the expiry date
+expire-never-label =
+ .label = Key will never expire
+expire-in-label =
+ .label = Key will expire in:
+expire-in-months = Months
+expire-no-change-label = Do not change the expiry date
+expire-in-time-label = Key will expire in:
+expire-never-expire-label = Key will never expire
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/composeKeyStatus.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/composeKeyStatus.ftl
new file mode 100644
index 0000000000..ec47d403c8
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/composeKeyStatus.ftl
@@ -0,0 +1,24 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+openpgp-compose-key-status-intro-need-keys = To send an end-to-end encrypted message, you must obtain and accept a public key for each recipient.
+openpgp-compose-key-status-keys-heading = Availability of OpenPGP keys:
+openpgp-compose-key-status-title =
+ .title = OpenPGP Message Security
+openpgp-compose-key-status-recipient =
+ .label = Recipient
+openpgp-compose-key-status-status =
+ .label = Status
+openpgp-compose-key-status-open-details = Manage keys for selected recipient…
+openpgp-recip-good = ok
+openpgp-recip-missing = no key available
+openpgp-recip-none-accepted = no accepted key
+openpgp-compose-general-info-alias = { -brand-short-name } normally requires that the recipient’s public key contains a user ID with a matching email address. This can be overridden by using OpenPGP recipient alias rules.
+openpgp-compose-general-info-alias-learn-more = Learn more
+openpgp-compose-alias-status-direct =
+ { $count ->
+ [one] mapped to an alias key
+ *[other] mapped to { $count } alias keys
+ }
+openpgp-compose-alias-status-error = unusable/unavailable alias key
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/keyAssistant.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/keyAssistant.ftl
new file mode 100644
index 0000000000..ac75810cac
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/keyAssistant.ftl
@@ -0,0 +1,123 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+openpgp-key-assistant-title = OpenPGP Key Assistant
+openpgp-key-assistant-rogue-warning = Avoid accepting a counterfeit key. To ensure you have obtained the right key you should verify it. <a data-l10n-name="openpgp-link">Learn more…</a>
+
+## Encryption status
+
+openpgp-key-assistant-recipients-issue-header = Cannot Encrypt
+# Variables:
+# $count (Number) - The number of recipients that need attention.
+openpgp-key-assistant-recipients-issue-description =
+ { $count ->
+ [one] To encrypt, you must obtain and accept a usable key for one recipient. <a data-l10n-name="openpgp-link">Learn more…</a>
+ *[other] To encrypt, you must obtain and accept usable keys for { $count } recipients. <a data-l10n-name="openpgp-link">Learn more…</a>
+ }
+openpgp-key-assistant-info-alias = { -brand-short-name } normally requires that the recipient’s public key contains a user ID with a matching email address. This can be overridden by using OpenPGP recipient alias rules. <a data-l10n-name="openpgp-link">Learn more…</a>
+# Variables:
+# $count (Number) - The number of recipients that need attention.
+openpgp-key-assistant-recipients-description =
+ { $count ->
+ [one] You already have a usable and accepted key for one recipient.
+ *[other] You already have usable and accepted keys for { $count } recipients.
+ }
+openpgp-key-assistant-recipients-description-no-issues = This message can be encrypted. You have usable and accepted keys for all recipients.
+
+## Resolve section
+
+# Variables:
+# $recipient (String) - The email address of the recipient needing resolution.
+# $numKeys (Number) - The number of keys.
+openpgp-key-assistant-resolve-title =
+ { $numKeys ->
+ [one] { -brand-short-name } found the following key for { $recipient }.
+ *[other] { -brand-short-name } found the following keys for { $recipient }.
+ }
+openpgp-key-assistant-valid-description = Select the key that you want to accept
+# Variables:
+# $numKeys (Number) - The number of available keys.
+openpgp-key-assistant-invalid-title =
+ { $numKeys ->
+ [one] The following key cannot be used, unless you obtain an update.
+ *[other] The following keys cannot be used, unless you obtain an update.
+ }
+openpgp-key-assistant-no-key-available = No key available.
+openpgp-key-assistant-multiple-keys = Multiple keys are available.
+# Variables:
+# $count (Number) - The number of unaccepted keys.
+openpgp-key-assistant-key-unaccepted =
+ { $count ->
+ [one] A key is available, but it hasn’t been accepted yet.
+ *[other] Multiple keys are available, but none of them have been accepted yet.
+ }
+# Variables:
+# $date (String) - The expiration date of the key.
+openpgp-key-assistant-key-accepted-expired = An accepted key has expired on { $date }.
+openpgp-key-assistant-keys-accepted-expired = Multiple accepted keys have expired.
+# Variables:
+# $date (String) - The expiration date of the key.
+openpgp-key-assistant-this-key-accepted-expired = This key was previously accepted but expired on { $date }.
+# Variables:
+# $date (String) - The expiration date of the key.
+openpgp-key-assistant-key-unaccepted-expired-one = The key expired on { $date }.
+openpgp-key-assistant-key-unaccepted-expired-many = Multiple keys have expired.
+openpgp-key-assistant-key-fingerprint = Fingerprint
+# Variables:
+# $count (Number) - Number of key sources.
+openpgp-key-assistant-key-source =
+ { $count ->
+ [one] Source
+ *[other] Sources
+ }
+openpgp-key-assistant-key-collected-attachment = email attachment
+# Autocrypt is the name of a standard.
+openpgp-key-assistant-key-collected-autocrypt = Autocrypt header
+openpgp-key-assistant-key-collected-keyserver = keyserver
+# Web Key Directory (WKD) is a concept.
+openpgp-key-assistant-key-collected-wkd = Web Key Directory
+# Do not translate GnuPG, it's a name of other software.
+openpgp-key-assistant-key-collected-gnupg = GnuPG keyring
+# Variables:
+# $count (Number) - Number of found keys.
+openpgp-key-assistant-keys-has-collected =
+ { $count ->
+ [one] A key was found, but it hasn’t been accepted yet.
+ *[other] Multiple keys were found, but none of them have been accepted yet.
+ }
+openpgp-key-assistant-key-rejected = This key has been previously rejected.
+openpgp-key-assistant-key-accepted-other = This key has been previously accepted for a different email address.
+# Variables:
+# $recipient (String) - The email address of the recipient needing resolution.
+openpgp-key-assistant-resolve-discover-info = Discover additional or updated keys for { $recipient } online, or import them from a file.
+
+## Discovery section
+
+openpgp-key-assistant-discover-title = Online discovery in progress.
+# Variables:
+# $recipient (String) - The email address which we're discovering keys.
+openpgp-key-assistant-discover-keys = Discovering keys for { $recipient }…
+# Variables:
+# $recipient (String) - The email address which we're discovering keys.
+openpgp-key-assistant-expired-key-update =
+ An update was found for one of the previously accepted keys for { $recipient }.
+ It can now be used as it is no longer expired.
+
+## Dialog buttons
+
+openpgp-key-assistant-discover-online-button = Discover Public Keys Online…
+openpgp-key-assistant-import-keys-button = Import Public Keys From File…
+openpgp-key-assistant-issue-resolve-button = Resolve…
+openpgp-key-assistant-view-key-button = View Key…
+openpgp-key-assistant-recipients-show-button = Show
+openpgp-key-assistant-recipients-hide-button = Hide
+openpgp-key-assistant-cancel-button = Cancel
+openpgp-key-assistant-back-button = Back
+openpgp-key-assistant-accept-button = Accept
+openpgp-key-assistant-close-button = Close
+openpgp-key-assistant-disable-button = Disable Encryption
+openpgp-key-assistant-confirm-button = Send Encrypted
+# Variables:
+# $date (String) - The key creation date.
+openpgp-key-assistant-key-created = created on { $date }
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/keyWizard.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/keyWizard.ftl
new file mode 100644
index 0000000000..c8a78c6f3f
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/keyWizard.ftl
@@ -0,0 +1,135 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# $identity (String) - the email address of the currently selected identity
+key-wizard-dialog-window =
+ .title = Add a Personal OpenPGP Key for { $identity }
+key-wizard-dialog =
+ .buttonlabelaccept = Continue
+ .buttonlabelextra1 = Go back
+key-wizard-warning = <b>If you have an existing personal key</b> for this email address, you should import it. Otherwise you will not have access to your archives of encrypted emails, nor be able to read incoming encrypted emails from people who are still using your existing key.
+key-wizard-learn-more = Learn more
+radio-create-key =
+ .label = Create a new OpenPGP Key
+ .accesskey = C
+radio-import-key =
+ .label = Import an existing OpenPGP Key
+ .accesskey = I
+radio-gnupg-key =
+ .label = Use your external key through GnuPG (e.g. from a smartcard)
+ .accesskey = U
+
+## Generate key section
+
+openpgp-generate-key-title = Generate OpenPGP Key
+openpgp-keygen-secret-protection = Secret Key Protection
+radio-keygen-no-protection =
+ .label = Unprotected
+radio-keygen-protect-primary-pass =
+ .label = Protect with the Primary Password
+radio-keygen-passphrase-protection =
+ .label = Protect with a passphrase:
+openpgp-passphrase-repeat = Confirm the passphrase:
+openpgp-generate-key-info = <b>Key generation may take up to several minutes to complete.</b> Do not exit the application while key generation is in progress. Actively browsing or performing disk-intensive operations during key generation will replenish the “randomness pool” and speed-up the process. You will be alerted when key generation is completed.
+openpgp-keygen-expiry-title = Key expiry
+openpgp-keygen-expiry-description = Define the expiration time of your newly generated key. You can later control the date to extend it if necessary.
+radio-keygen-expiry =
+ .label = Key expires in
+ .accesskey = e
+radio-keygen-no-expiry =
+ .label = Key does not expire
+ .accesskey = d
+openpgp-keygen-days-label =
+ .label = days
+openpgp-keygen-months-label =
+ .label = months
+openpgp-keygen-years-label =
+ .label = years
+openpgp-keygen-advanced-title = Advanced settings
+openpgp-keygen-advanced-description = Control the advanced settings of your OpenPGP Key.
+openpgp-keygen-keytype =
+ .value = Key type:
+ .accesskey = t
+openpgp-keygen-keysize =
+ .value = Key size:
+ .accesskey = s
+openpgp-keygen-type-rsa =
+ .label = RSA
+openpgp-keygen-type-ecc =
+ .label = ECC (Elliptic Curve)
+openpgp-keygen-button = Generate key
+openpgp-keygen-progress-title = Generating your new OpenPGP Key…
+openpgp-keygen-import-progress-title = Importing your OpenPGP Keys…
+openpgp-import-success = OpenPGP Keys successfully imported!
+openpgp-import-success-title = Complete the import process
+openpgp-import-success-description = To start using your imported OpenPGP key for email encryption, close this dialog and access your Account Settings to select it.
+openpgp-keygen-confirm =
+ .label = Confirm
+openpgp-keygen-dismiss =
+ .label = Cancel
+openpgp-keygen-cancel =
+ .label = Cancel process…
+openpgp-keygen-import-complete =
+ .label = Close
+ .accesskey = C
+openpgp-keygen-missing-username = There is no name specified for the current account. Please enter a value in the field “Your name” in the account settings.
+openpgp-keygen-long-expiry = You cannot create a key that expires in more than 100 years.
+openpgp-keygen-short-expiry = Your key must be valid for at least one day.
+openpgp-keygen-ongoing = Key generation already in progress!
+openpgp-keygen-error-core = Unable to initialize OpenPGP Core Service
+openpgp-keygen-error-failed = OpenPGP Key generation unexpectedly failed
+# $key (String) - the ID of the newly generated OpenPGP key
+openpgp-keygen-error-revocation = OpenPGP Key created successfully, but failed to obtain revocation for key { $key }
+openpgp-keygen-abort-title = Abort key generation?
+openpgp-keygen-abort = OpenPGP Key generation currently in progress, are you sure you want to cancel it?
+# $identity (String) - the name and email address of the currently selected identity
+openpgp-key-confirm = Generate public and secret key for { $identity }?
+
+## Import Key section
+
+openpgp-import-key-title = Import an existing personal OpenPGP Key
+openpgp-import-key-legend = Select a previously backed up file.
+openpgp-import-key-description = You may import personal keys that were created with other OpenPGP software.
+openpgp-import-key-info = Other software might describe a personal key using alternative terms such as your own key, secret key, private key or key pair.
+# $count (Number) - the number of keys found in the selected files
+openpgp-import-key-list-amount-2 =
+ { $count ->
+ [one] { -brand-short-name } found one key that can be imported.
+ *[other] { -brand-short-name } found { $count } keys that can be imported.
+ }
+openpgp-import-key-list-description = Confirm which keys may be treated as your personal keys. Only keys that you created yourself and that show your own identity should be used as personal keys. You can change this option later in the Key Properties dialog.
+openpgp-import-key-list-caption = Keys marked to be treated as Personal Keys will be listed in the End-To-End Encryption section. The others will be available inside the Key Manager.
+openpgp-import-keep-passphrases =
+ .label = Keep passphrase protection for imported secret keys
+openpgp-passphrase-prompt-title = Passphrase required
+openpgp-import-key-button =
+ .label = Select File to Import…
+ .accesskey = S
+import-key-file = Import OpenPGP Key File
+import-key-personal-checkbox =
+ .label = Treat this key as a Personal Key
+gnupg-file = GnuPG Files
+import-error-file-size = <b>Error!</b> Files larger than 5MB are not supported.
+# $error (String) - the reported error from the failed key import method
+import-error-failed = <b>Error!</b> Failed to import file. { $error }
+# $error (String) - the reported error from the failed key import method
+openpgp-import-keys-failed = <b>Error!</b> Failed to import keys. { $error }
+openpgp-import-identity-label = Identity
+openpgp-import-fingerprint-label = Fingerprint
+openpgp-import-created-label = Created
+openpgp-import-bits-label = Bits
+openpgp-import-key-props =
+ .label = Key Properties
+ .accesskey = K
+
+## External Key section
+
+openpgp-external-key-title = External GnuPG Key
+openpgp-external-key-description = Configure an external GnuPG key by entering the Key ID
+openpgp-external-key-info = In addition, you must use Key Manager to import and accept the corresponding Public Key.
+openpgp-external-key-warning = <b>You may configure only one external GnuPG Key.</b> Your previous entry will be replaced.
+openpgp-save-external-button = Save key ID
+openpgp-external-key-label = Secret Key ID:
+openpgp-external-key-input =
+ .placeholder = 123456789341298340
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/msgReadStatus.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/msgReadStatus.ftl
new file mode 100644
index 0000000000..4363d9cd63
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/msgReadStatus.ftl
@@ -0,0 +1,81 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## Message Header Encryption Button
+
+message-header-show-security-info-key = S
+# $type (String) - the shortcut key defined in the message-header-show-security-info-key
+message-security-button =
+ .title =
+ { PLATFORM() ->
+ [macos] Show Message Security (⌘ ⌥ { message-header-show-security-info-key })
+ *[other] Show Message Security (Ctrl+Alt+{ message-header-show-security-info-key })
+ }
+openpgp-view-signer-key =
+ .label = View signer key
+openpgp-view-your-encryption-key =
+ .label = View your decryption key
+openpgp-openpgp = OpenPGP
+openpgp-no-sig = No Digital Signature
+openpgp-no-sig-info = This message does not include the sender’s digital signature. The absence of a digital signature means that the message could have been sent by someone pretending to have this email address. It is also possible that the message has been altered while in transit over the network.
+openpgp-uncertain-sig = Uncertain Digital Signature
+# Variables:
+# $date (String) - Date with time the signature was made in a short format.
+openpgp-uncertain-sig-with-date = Uncertain Digital Signature - Signed on { $date }
+openpgp-invalid-sig = Invalid Digital Signature
+# Variables:
+# $date (String) - Date with time the signature was made in a short format.
+openpgp-invalid-sig-with-date = Invalid Digital Signature - Signed on { $date }
+openpgp-good-sig = Good Digital Signature
+# Variables:
+# $date (String) - Date with time the signature was made in a short format.
+openpgp-good-sig-with-date = Good Digital Signature - Signed on { $date }
+openpgp-sig-uncertain-no-key = This message contains a digital signature, but it is uncertain if it is correct. To verify the signature, you need to obtain a copy of the sender’s public key.
+openpgp-sig-uncertain-uid-mismatch = This message contains a digital signature, but a mismatch was detected. The message was sent from an email address that doesn’t match the signer’s public key.
+openpgp-sig-uncertain-not-accepted = This message contains a digital signature, but you haven’t yet decided if the signer’s key is acceptable to you.
+openpgp-sig-invalid-rejected = This message contains a digital signature, but you have previously decided to reject the signer key.
+openpgp-sig-invalid-technical-problem = This message contains a digital signature, but a technical error was detected. Either the message has been corrupted, or the message has been modified by someone else.
+openpgp-sig-valid-unverified = This message includes a valid digital signature from a key that you have already accepted. However, you have not yet verified that the key is really owned by the sender.
+openpgp-sig-valid-verified = This message includes a valid digital signature from a verified key.
+openpgp-sig-valid-own-key = This message includes a valid digital signature from your personal key.
+# Variables:
+# $key (String) - The ID of the OpenPGP key used to create the signature.
+openpgp-sig-key-id = Signer key ID: { $key }
+# Variables:
+# $key (String) - The primary ID of the OpenPGP key used to create the signature.
+# $subkey (String) - A subkey of the primary key was used to create the signature, and this is the ID of that subkey.
+openpgp-sig-key-id-with-subkey-id = Signer key ID: { $key } (Sub key ID: { $subkey })
+# Variables:
+# $key (String) - The ID of the user's OpenPGP key used to decrypt the message.
+openpgp-enc-key-id = Your decryption key ID: { $key }
+# Variables:
+# $key (String) - The primary ID of the user's OpenPGP key used to decrypt the message.
+# $subkey (String) - A subkey of the primary key was used to decrypt the message, and this is the ID of that subkey.
+openpgp-enc-key-with-subkey-id = Your decryption key ID: { $key } (Sub key ID: { $subkey })
+openpgp-enc-none = Message Is Not Encrypted
+openpgp-enc-none-label = This message was not encrypted before it was sent. Information sent over the Internet without encryption can be seen by other people while in transit.
+openpgp-enc-invalid-label = Message Cannot Be Decrypted
+openpgp-enc-invalid = This message was encrypted before it was sent to you, but it cannot be decrypted.
+openpgp-enc-clueless = There are unknown problems with this encrypted message.
+openpgp-enc-valid-label = Message Is Encrypted
+openpgp-enc-valid = This message was encrypted before it was sent to you. Encryption ensures the message can only be read by the recipients it was intended for.
+openpgp-unknown-key-id = Unknown key
+openpgp-other-enc-additional-key-ids = In addition, the message was encrypted to the owners of the following keys:
+openpgp-other-enc-all-key-ids = The message was encrypted to the owners of the following keys:
+openpgp-message-header-encrypted-ok-icon =
+ .alt = Decryption successful
+openpgp-message-header-encrypted-notok-icon =
+ .alt = Decryption failed
+openpgp-message-header-signed-ok-icon =
+ .alt = Good signature
+# Mismatch icon is used for notok state as well
+openpgp-message-header-signed-mismatch-icon =
+ .alt = Bad signature
+openpgp-message-header-signed-unknown-icon =
+ .alt = Unknown signature status
+openpgp-message-header-signed-verified-icon =
+ .alt = Verified signature
+openpgp-message-header-signed-unverified-icon =
+ .alt = Unverified signature
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/oneRecipientStatus.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/oneRecipientStatus.ftl
new file mode 100644
index 0000000000..8345fb88c3
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/oneRecipientStatus.ftl
@@ -0,0 +1,50 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+openpgp-one-recipient-status-title =
+ .title = OpenPGP Message Security
+openpgp-one-recipient-status-status =
+ .label = Status
+openpgp-one-recipient-status-key-id =
+ .label = Key ID
+openpgp-one-recipient-status-created-date =
+ .label = Created
+openpgp-one-recipient-status-expires-date =
+ .label = Expires
+openpgp-one-recipient-status-open-details =
+ .label = Open details and edit acceptance…
+openpgp-one-recipient-status-discover =
+ .label = Discover new or updated key
+
+openpgp-one-recipient-status-instruction1 = To send an end-to-end encrypted message to a recipient, you need to obtain their OpenPGP public key and mark it as accepted.
+openpgp-one-recipient-status-instruction2 = To obtain their public key, import them from email they have sent to you and that includes it. Alternatively, you can try to discover their public key on a directory.
+
+openpgp-key-own = Accepted (personal key)
+openpgp-key-secret-not-personal = Not usable
+openpgp-key-verified = Accepted (verified)
+openpgp-key-unverified = Accepted (unverifed)
+openpgp-key-undecided = Not accepted (undecided)
+openpgp-key-rejected = Not accepted (rejected)
+openpgp-key-expired = Expired
+
+openpgp-intro = Available public keys for { $key }
+
+openpgp-pubkey-import-id = ID: { $kid }
+openpgp-pubkey-import-fpr = Fingerprint: { $fpr }
+
+openpgp-pubkey-import-intro =
+ { $num ->
+ [one] The file contains one public key as shown below:
+ *[other] The file contains { $num } public keys as shown below:
+ }
+
+openpgp-pubkey-import-accept =
+ { $num ->
+ [one] Do you accept this key for verifying digital signatures and for encrypting messages, for all shown email addresses?
+ *[other] Do you accept these keys for verifying digital signatures and for encrypting messages, for all shown email addresses?
+ }
+
+pubkey-import-button =
+ .buttonlabelaccept = Import
+ .buttonaccesskeyaccept = I
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/openpgp-frontend.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/openpgp-frontend.ftl
new file mode 100644
index 0000000000..45b1514001
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/openpgp-frontend.ftl
@@ -0,0 +1,54 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+openpgp-manage-keys-openpgp-cmd =
+ .label = OpenPGP Key Manager
+ .accesskey = O
+openpgp-ctx-decrypt-open =
+ .label = Decrypt and Open
+ .accesskey = D
+openpgp-ctx-decrypt-save =
+ .label = Decrypt and Save As…
+ .accesskey = C
+openpgp-ctx-import-key =
+ .label = Import OpenPGP Key
+ .accesskey = I
+openpgp-ctx-verify-att =
+ .label = Verify Signature
+ .accesskey = V
+openpgp-has-sender-key = This message claims to contain the sender’s OpenPGP public key.
+# Variables:
+# $email (String) - Email address with the problematic public key.
+openpgp-be-careful-new-key = Warning: The new OpenPGP public key in this message differs from the public keys that you previously accepted for { $email }.
+openpgp-import-sender-key =
+ .label = Import…
+openpgp-search-keys-openpgp =
+ .label = Discover OpenPGP Key
+openpgp-missing-signature-key = This message was signed with a key that you don’t yet have.
+openpgp-search-signature-key =
+ .label = Discover…
+# Don't translate the terms "OpenPGP" and "MS-Exchange"
+openpgp-broken-exchange-opened = This is an OpenPGP message that was apparently corrupted by MS-Exchange and it can't be repaired because it was opened from a local file. Copy the message into a mail folder to try an automatic repair.
+openpgp-broken-exchange-info = This is an OpenPGP message that was apparently corrupted by MS-Exchange. If the message contents isn’t shown as expected, you can try an automatic repair.
+openpgp-broken-exchange-repair =
+ .label = Repair message
+openpgp-broken-exchange-wait = Please wait…
+openpgp-has-nested-encrypted-parts = This message includes additional encrypted parts.
+openpgp-show-encrypted-parts = Decrypt and Show
+openpgp-cannot-decrypt-because-mdc =
+ This is an encrypted message that uses an old and vulnerable mechanism.
+ It could have been modified while in transit, with the intention to steal its contents.
+ To prevent this risk, the contents are not shown.
+openpgp-cannot-decrypt-because-missing-key = The secret key that is required to decrypt this message is not available.
+openpgp-partially-signed =
+ Only a subset of this message was digitally signed using OpenPGP.
+ If you click the verify button, the unprotected parts will be hidden, and the status of the digital signature will be shown.
+openpgp-partially-encrypted =
+ Only a subset of this message was encrypted using OpenPGP.
+ The readable parts of the message that are already shown were not encrypted.
+ If you click the decrypt button, the contents of the encrypted parts will be shown.
+openpgp-reminder-partial-display = Reminder: The message shown below is only a subset of the original message.
+openpgp-partial-verify-button = Verify
+openpgp-partial-decrypt-button = Decrypt
+openpgp-unexpected-key-for-you = Warning: This message contains an unknown OpenPGP key that refers to one of your own email addresses. If this isn’t one of your own keys, it could be an attempt to trick other correspondents.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/openpgp.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/openpgp.ftl
new file mode 100644
index 0000000000..648e4de6cd
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/openpgp/openpgp.ftl
@@ -0,0 +1,780 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+e2e-intro-description = To send encrypted or digitally signed messages, you need to configure an encryption technology, either OpenPGP or S/MIME.
+e2e-intro-description-more = Select your personal key to enable the use of OpenPGP, or your personal certificate to enable the use of S/MIME. For a personal key or certificate you own the corresponding secret key.
+e2e-signing-description = A digital signature allows recipients to verify that the message was sent by you and its content was not changed. Encrypted messages are always signed by default.
+e2e-sign-message =
+ .label = Sign unencrypted messages
+ .accesskey = u
+e2e-disable-enc =
+ .label = Disable encryption for new messages
+ .accesskey = D
+e2e-enable-enc =
+ .label = Enable encryption for new messages
+ .accesskey = n
+e2e-enable-description = You will be able to disable encryption for individual messages.
+e2e-advanced-section = Advanced settings
+e2e-attach-key =
+ .label = Attach my public key when adding an OpenPGP digital signature
+ .accesskey = p
+e2e-encrypt-subject =
+ .label = Encrypt the subject of OpenPGP messages
+ .accesskey = b
+e2e-encrypt-drafts =
+ .label = Store draft messages in encrypted format
+ .accesskey = r
+# Do not translate "Autocrypt", it's the name of a standard.
+e2e-autocrypt-headers =
+ .label = Send OpenPGP public key(s) in the email headers for compatibility with Autocrypt
+ .accesskey = t
+openpgp-key-created-label =
+ .label = Created
+openpgp-key-expiry-label =
+ .label = Expiry
+openpgp-key-id-label =
+ .label = Key ID
+openpgp-cannot-change-expiry = This is a key with a complex structure, changing its expiry date isn’t supported.
+openpgp-key-man-title =
+ .title = OpenPGP Key Manager
+openpgp-key-man-dialog-title = OpenPGP Key Manager
+openpgp-key-man-generate =
+ .label = New Key Pair
+ .accesskey = K
+openpgp-key-man-gen-revoke =
+ .label = Revocation Certificate
+ .accesskey = R
+openpgp-key-man-ctx-gen-revoke-label =
+ .label = Generate & Save Revocation Certificate
+openpgp-key-man-file-menu =
+ .label = File
+ .accesskey = F
+openpgp-key-man-edit-menu =
+ .label = Edit
+ .accesskey = E
+openpgp-key-man-view-menu =
+ .label = View
+ .accesskey = V
+openpgp-key-man-generate-menu =
+ .label = Generate
+ .accesskey = G
+openpgp-key-man-keyserver-menu =
+ .label = Keyserver
+ .accesskey = K
+openpgp-key-man-import-public-from-file =
+ .label = Import Public Key(s) From File
+ .accesskey = I
+openpgp-key-man-import-secret-from-file =
+ .label = Import Secret Key(s) From File
+openpgp-key-man-import-sig-from-file =
+ .label = Import Revocation(s) From File
+openpgp-key-man-import-from-clipbrd =
+ .label = Import Key(s) From Clipboard
+ .accesskey = I
+openpgp-key-man-import-from-url =
+ .label = Import Key(s) From URL
+ .accesskey = U
+openpgp-key-man-export-to-file =
+ .label = Export Public Key(s) To File
+ .accesskey = E
+openpgp-key-man-send-keys =
+ .label = Send Public Key(s) By Email
+ .accesskey = S
+openpgp-key-man-backup-secret-keys =
+ .label = Backup Secret Key(s) To File
+ .accesskey = B
+openpgp-key-man-discover-cmd =
+ .label = Discover Keys Online
+ .accesskey = D
+openpgp-key-man-publish-cmd =
+ .label = Publish
+ .accesskey = P
+openpgp-key-publish = Publish
+openpgp-key-man-discover-prompt = To discover OpenPGP keys online, on keyservers or using the WKD protocol, enter either an email address or a key ID.
+openpgp-key-man-discover-progress = Searching…
+# Variables:
+# $keyserver (String) - The address of a server that contains a directory of OpenPGP public keys
+openpgp-key-publish-ok = Public key sent to "{ $keyserver }".
+# Variables:
+# $keyserver (String) - The address of a server that contains a directory of OpenPGP public keys
+openpgp-key-publish-fail = Failed to send your public key to "{ $keyserver }".
+openpgp-key-copy-key =
+ .label = Copy Public Key
+ .accesskey = C
+openpgp-key-export-key =
+ .label = Export Public Key To File
+ .accesskey = E
+openpgp-key-backup-key =
+ .label = Backup Secret Key To File
+ .accesskey = B
+openpgp-key-send-key =
+ .label = Send Public Key Via Email
+ .accesskey = S
+# Variables:
+# $count (Number) - Number of keys ids to copy.
+openpgp-key-man-copy-key-ids =
+ .label =
+ { $count ->
+ [one] Copy Key ID To Clipboard
+ *[other] Copy Key IDs To Clipboard
+ }
+ .accesskey = K
+# Variables:
+# $count (Number) - Number of fingerprints to copy.
+openpgp-key-man-copy-fprs =
+ .label =
+ { $count ->
+ [one] Copy Fingerprint to Clipboard
+ *[other] Copy Fingerprints To Clipboard
+ }
+ .accesskey = F
+# Variables:
+# $count (Number) - Number of public keys to copy.
+openpgp-key-man-copy-to-clipboard =
+ .label =
+ { $count ->
+ [one] Copy Public Key To Clipboard
+ *[other] Copy Public Keys to Clipboard
+ }
+ .accesskey = P
+openpgp-key-man-ctx-expor-to-file-label =
+ .label = Export Keys To File
+openpgp-key-man-ctx-copy =
+ .label = Copy
+ .accesskey = C
+# Variables:
+# $count (Number) - Number of fingerprints.
+openpgp-key-man-ctx-copy-fprs =
+ .label =
+ { $count ->
+ [one] Fingerprint
+ *[other] Fingerprints
+ }
+ .accesskey = F
+# Variables:
+# $count (Number) - Number of key ids.
+openpgp-key-man-ctx-copy-key-ids =
+ .label =
+ { $count ->
+ [one] Key ID
+ *[other] Key IDs
+ }
+ .accesskey = K
+# Variables:
+# $count (Number) - Number of public keys.
+openpgp-key-man-ctx-copy-public-keys =
+ .label =
+ { $count ->
+ [one] Public Key
+ *[other] Public Keys
+ }
+ .accesskey = P
+openpgp-key-man-close =
+ .label = Close
+openpgp-key-man-reload =
+ .label = Reload Key Cache
+ .accesskey = R
+openpgp-key-man-change-expiry =
+ .label = Change Expiration Date
+ .accesskey = E
+openpgp-key-man-refresh-online =
+ .label = Refresh Online
+ .accesskey = R
+openpgp-key-man-ignored-ids =
+ .label = Email addresses
+openpgp-key-man-del-key =
+ .label = Delete Key(s)
+ .accesskey = D
+openpgp-delete-key =
+ .label = Delete Key
+ .accesskey = D
+openpgp-key-man-revoke-key =
+ .label = Revoke Key
+ .accesskey = R
+openpgp-key-man-key-props =
+ .label = Key Properties
+ .accesskey = K
+openpgp-key-man-key-more =
+ .label = More
+ .accesskey = M
+openpgp-key-man-view-photo =
+ .label = Photo ID
+ .accesskey = P
+openpgp-key-man-ctx-view-photo-label =
+ .label = View Photo ID
+openpgp-key-man-show-invalid-keys =
+ .label = Display invalid keys
+ .accesskey = D
+openpgp-key-man-show-others-keys =
+ .label = Display Keys From Other People
+ .accesskey = O
+openpgp-key-man-user-id-label =
+ .label = Name
+openpgp-key-man-fingerprint-label =
+ .label = Fingerprint
+openpgp-key-man-select-all =
+ .label = Select All Keys
+ .accesskey = A
+openpgp-key-man-empty-tree-tooltip =
+ .label = Enter search terms in the box above
+openpgp-key-man-nothing-found-tooltip =
+ .label = No keys match your search terms
+openpgp-key-man-please-wait-tooltip =
+ .label = Please wait while keys are being loaded…
+openpgp-key-man-filter-label =
+ .placeholder = Search for keys
+openpgp-key-man-select-all-key =
+ .key = A
+openpgp-key-man-key-details-key =
+ .key = I
+openpgp-ign-addr-intro = You accept using this key for the following selected email addresses:
+openpgp-key-details-doc-title = Key Properties
+openpgp-key-details-signatures-tab =
+ .label = Certifications
+openpgp-key-details-structure-tab =
+ .label = Structure
+openpgp-key-details-uid-certified-col =
+ .label = User ID / Certified by
+openpgp-key-details-key-id-label = Key ID
+openpgp-key-details-user-id3-label = Claimed Key Owner
+openpgp-key-details-id-label =
+ .label = ID
+openpgp-key-details-key-type-label = Type
+openpgp-key-details-key-part-label =
+ .label = Key Part
+openpgp-key-details-attr-ignored = Warning: This key might not work as expected, because some of its properties are unsafe and might be ignored.
+openpgp-key-details-attr-upgrade-sec = You should upgrade the unsafe properties.
+openpgp-key-details-attr-upgrade-pub = You should ask the owner of this key to upgrade the unsafe properties.
+openpgp-key-details-upgrade-unsafe =
+ .label = Upgrade Unsafe Properties
+ .accesskey = P
+openpgp-key-details-upgrade-ok = The key was successfully upgraded. You should share the upgraded public key with your correspondents.
+openpgp-key-details-algorithm-label =
+ .label = Algorithm
+openpgp-key-details-size-label =
+ .label = Size
+openpgp-key-details-created-label =
+ .label = Created
+openpgp-key-details-created-header = Created
+openpgp-key-details-expiry-label =
+ .label = Expiry
+openpgp-key-details-expiry-header = Expiry
+openpgp-key-details-usage-label =
+ .label = Usage
+openpgp-key-details-fingerprint-label = Fingerprint
+openpgp-key-details-legend-secret-missing = For keys marked with (!) the secret key is not available.
+openpgp-key-details-sel-action =
+ .label = Select action…
+ .accesskey = S
+openpgp-card-details-close-window-label =
+ .buttonlabelaccept = Close
+openpgp-acceptance-label =
+ .label = Your Acceptance
+openpgp-acceptance-rejected-label =
+ .label = No, reject this key.
+openpgp-acceptance-undecided-label =
+ .label = Not yet, maybe later.
+openpgp-acceptance-unverified-label =
+ .label = Yes, but I have not verified that it is the correct key.
+openpgp-acceptance-verified-label =
+ .label = Yes, I’ve verified in person this key has the correct fingerprint.
+key-accept-personal =
+ For this key, you have both the public and the secret part. You may use it as a personal key.
+ If this key was given to you by someone else, then don’t use it as a personal key.
+openpgp-personal-no-label =
+ .label = No, don’t use it as my personal key.
+openpgp-personal-yes-label =
+ .label = Yes, treat this key as a personal key.
+openpgp-passphrase-protection =
+ .label = Passphrase Protection
+openpgp-passphrase-status-unprotected = Unprotected
+openpgp-passphrase-status-primary-password = Protected by { -brand-short-name }’s Primary Password
+openpgp-passphrase-status-user-passphrase = Protected by a passphrase
+openpgp-passphrase-instruction-unprotected = Set a passphrase to protect this key
+openpgp-passphrase-instruction-primary-password = Alternatively protect this key with a separate passphrase
+openpgp-passphrase-instruction-user-passphrase = Unlock this key to change its protection.
+openpgp-passphrase-unlock = Unlock
+openpgp-passphrase-unlocked = Key successfully unlocked.
+openpgp-remove-protection = Remove passphrase protection
+openpgp-use-primary-password = Remove passphrase and protect with Primary Password
+openpgp-passphrase-new = New passphrase
+openpgp-passphrase-new-repeat = Confirm new passphrase
+openpgp-passphrase-set = Set passphrase
+openpgp-passphrase-change = Change passphrase
+openpgp-copy-cmd-label =
+ .label = Copy
+
+## e2e encryption settings
+
+# $identity (String) - the email address of the currently selected identity
+openpgp-description-no-key = { -brand-short-name } doesn’t have a personal OpenPGP key for <b>{ $identity }</b>
+# $count (Number) - the number of configured keys associated with the current identity
+# $identity (String) - the email address of the currently selected identity
+openpgp-description-has-keys =
+ { $count ->
+ [one] { -brand-short-name } found { $count } personal OpenPGP key associated with <b>{ $identity }</b>
+ *[other] { -brand-short-name } found { $count } personal OpenPGP keys associated with <b>{ $identity }</b>
+ }
+# $key (String) - the currently selected OpenPGP key
+openpgp-selection-status-have-key = Your current configuration uses key ID <b>{ $key }</b>
+# $key (String) - the currently selected OpenPGP key
+openpgp-selection-status-error = Your current configuration uses the key <b>{ $key }</b>, which has expired.
+openpgp-add-key-button =
+ .label = Add Key…
+ .accesskey = A
+e2e-learn-more = Learn more
+openpgp-keygen-success = OpenPGP Key created successfully!
+openpgp-keygen-import-success = OpenPGP Keys imported successfully!
+openpgp-keygen-external-success = External GnuPG Key ID saved!
+
+## OpenPGP Key selection area
+
+openpgp-radio-none =
+ .label = None
+openpgp-radio-none-desc = Do not use OpenPGP for this identity.
+openpgp-radio-key-not-usable = This key is not usable as a personal key, because the secret key is missing!
+openpgp-radio-key-not-accepted = To use this key you must approve it as a personal key!
+openpgp-radio-key-not-found = This key could not be found! If you want to use it you must import it to { -brand-short-name }.
+# $date (String) - the future expiration date of when the OpenPGP key will expire
+openpgp-radio-key-expires = Expires on: { $date }
+# $date (String) - the past expiration date of when the OpenPGP key expired
+openpgp-radio-key-expired = Expired on: { $date }
+openpgp-key-expires-within-6-months-icon =
+ .title = Key is expiring in less than 6 months
+openpgp-key-has-expired-icon =
+ .title = Key expired
+openpgp-suggest-publishing-key = Publishing the public key on a keyserver allows others to discover it.
+openpgp-key-expand-section =
+ .tooltiptext = More information
+openpgp-key-revoke-title = Revoke Key
+openpgp-key-edit-title = Change OpenPGP Key
+openpgp-key-edit-date-title = Extend Expiration Date
+openpgp-manager-description = Use the OpenPGP Key Manager to view and manage public keys of your correspondents and all other keys not listed above.
+openpgp-manager-button =
+ .label = OpenPGP Key Manager
+ .accesskey = K
+openpgp-key-remove-external =
+ .label = Remove External Key ID
+ .accesskey = E
+key-external-label = External GnuPG Key
+
+## Strings in keyDetailsDlg.xhtml
+
+key-type-public = public key
+key-type-primary = primary key
+key-type-subkey = subkey
+key-type-pair = key pair (secret key and public key)
+key-expiry-never = never
+key-usage-encrypt = Encrypt
+key-usage-sign = Sign
+key-usage-certify = Certify
+key-usage-authentication = Authentication
+key-does-not-expire = The key does not expire
+# Variables:
+# $keyExpiry (String) - Date the key expired on.
+key-expired-date = The key expired on { $keyExpiry }
+key-expired-simple = The key has expired
+key-revoked-simple = The key was revoked
+key-do-you-accept = Do you accept this key for verifying digital signatures and for encrypting messages?
+# Variables:
+# $addr (String) - Email address the key claims it belongs to.
+key-verification = Verify the fingerprint of the key using a secure communication channel other than email to make sure that it’s really the key of { $addr }.
+
+## Strings enigmailMsgComposeOverlay.js
+
+# Variables:
+# $problem (String) - Error message from key usability check.
+cannot-use-own-key-because = Unable to send the message, because there is a problem with your personal key. { $problem }
+window-locked = Compose window is locked; send cancelled
+
+## Strings in keyserver.jsm
+
+keyserver-error-aborted = Aborted
+keyserver-error-unknown = An unknown error occurred
+keyserver-error-server-error = The keyserver reported an error.
+keyserver-error-import-error = Failed to import the downloaded key.
+keyserver-error-unavailable = The keyserver is not available.
+keyserver-error-security-error = The keyserver does not support encrypted access.
+keyserver-error-certificate-error = The keyserver’s certificate is not valid.
+keyserver-error-unsupported = The keyserver is not supported.
+
+## Strings in mimeWkdHandler.jsm
+
+wkd-message-body-req =
+ Your email provider processed your request to upload your public key to the OpenPGP Web Key Directory.
+ Please confirm to complete the publishing of your public key.
+wkd-message-body-process =
+ This is an email related to the automatic processing to upload your public key to the OpenPGP Web Key Directory.
+ You do not need to take any manual action at this point.
+
+## Strings in persistentCrypto.jsm
+
+# Variables:
+# $subject (String) - Subject of the message.
+converter-decrypt-body-failed =
+ Could not decrypt message with subject
+ { $subject }.
+ Do you want to retry with a different passphrase or do you want to skip the message?
+
+## Strings filters.jsm
+
+filter-folder-required = You must select a target folder.
+filter-decrypt-move-warn-experimental =
+ Warning - the filter action “Decrypt permanently” may lead to destroyed messages.
+ We strongly recommend that you first try the “Create decrypted Copy” filter, test the result carefully, and only start using this filter once you are satisfied with the result.
+filter-term-pgpencrypted-label = OpenPGP Encrypted
+filter-key-required = You must select a recipient key.
+# Variables:
+# $desc (String) - Email address to look for a key of.
+filter-key-not-found = Could not find an encryption key for “{ $desc }”.
+# Variables:
+# $desc (String) - The ID of a secret key that is required to read the email after the user executes the current action.
+filter-warn-key-not-secret =
+ Warning - the filter action “Encrypt to key” replaces the recipients.
+ If you do not have the secret key for “{ $desc }” you will no longer be able to read the emails.
+
+## Strings filtersWrapper.jsm
+
+filter-decrypt-move-label = Decrypt permanently (OpenPGP)
+filter-decrypt-copy-label = Create decrypted Copy (OpenPGP)
+filter-encrypt-label = Encrypt to key (OpenPGP)
+
+## Strings in enigmailKeyImportInfo.js
+
+import-info-title =
+ .title = Success! Keys imported
+import-info-bits = Bits
+import-info-created = Created
+import-info-fpr = Fingerprint
+import-info-details = View Details and manage key acceptance
+import-info-no-keys = No keys imported.
+
+## Strings in enigmailKeyManager.js
+
+import-from-clip = Do you want to import some key(s) from clipboard?
+import-from-url = Download public key from this URL:
+copy-to-clipbrd-failed = Could not copy the selected key(s) to the clipboard.
+copy-to-clipbrd-ok = Key(s) copied to clipboard
+# Variables:
+# $userId (String) - User id of the key.
+delete-secret-key =
+ WARNING: You are about to delete a secret key!
+
+ If you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key, nor will you be able to revoke it.
+
+ Do you really want to delete BOTH, the secret key and the public key
+ “{ $userId }”?
+delete-mix =
+ WARNING: You are about to delete secret keys!
+ If you delete your secret key, you will no longer be able to decrypt any messages encrypted for that key.
+ Do you really want to delete BOTH, the selected secret and public keys?
+# Variables:
+# $userId (String) - User id of the key.
+delete-pub-key =
+ Do you want to delete the public key
+ “{ $userId }”?
+delete-selected-pub-key = Do you want to delete the public keys?
+refresh-all-question = You did not select any key. Would you like to refresh ALL keys?
+key-man-button-export-sec-key = Export &Secret Keys
+key-man-button-export-pub-key = Export &Public Keys Only
+key-man-button-refresh-all = &Refresh All Keys
+key-man-loading-keys = Loading keys, please wait…
+ascii-armor-file = ASCII Armoured Files (*.asc)
+no-key-selected = You should select at least one key in order to perform the selected operation
+export-to-file = Export Public Key To File
+export-keypair-to-file = Export Secret and Public Key To File
+export-secret-key = Do you want to include the secret key in the saved OpenPGP key file?
+save-keys-ok = The keys were successfully saved
+save-keys-failed = Saving the keys failed
+default-pub-key-filename = Exported-public-keys
+default-pub-sec-key-filename = Backup-of-secret-keys
+refresh-key-warn = Warning: depending on the number of keys and the connection speed, refreshing all keys could be quite a lengthy process!
+preview-failed = Can’t read public key file.
+# Variables:
+# $reason (String) - Error description.
+general-error = Error: { $reason }
+dlg-button-delete = &Delete
+
+## Account settings export output
+
+openpgp-export-public-success = <b>Public Key successfully exported!</b>
+openpgp-export-public-fail = <b>Unable to export the selected public key!</b>
+openpgp-export-secret-success = <b>Secret Key successfully exported!</b>
+openpgp-export-secret-fail = <b>Unable to export the selected secret key!</b>
+
+## Strings in keyObj.jsm
+## Variables:
+## $userId (String) - The name and/or email address that is mentioned in the key's information.
+## $keyId (String) - Key id for the key entry.
+
+key-ring-pub-key-revoked = The key { $userId } (key ID { $keyId }) is revoked.
+key-ring-pub-key-expired = The key { $userId } (key ID { $keyId }) has expired.
+key-ring-no-secret-key = You do not seem to have the secret key for { $userId } (key ID { $keyId }) on your keyring; you cannot use the key for signing.
+key-ring-pub-key-not-for-signing = The key { $userId } (key ID { $keyId }) cannot be used for signing.
+key-ring-pub-key-not-for-encryption = The key { $userId } (key ID { $keyId }) cannot be used for encryption.
+key-ring-sign-sub-keys-revoked = All signing-subkeys of key { $userId } (key ID { $keyId }) are revoked.
+key-ring-sign-sub-keys-expired = All signing-subkeys of key { $userId } (key ID { $keyId }) have expired.
+key-ring-enc-sub-keys-revoked = All encryption subkeys of key { $userId } (key ID { $keyId }) are revoked.
+key-ring-enc-sub-keys-expired = All encryption subkeys of key { $userId } (key ID { $keyId }) have expired.
+
+## Strings in gnupg-keylist.jsm
+
+keyring-photo = Photo
+user-att-photo = User attribute (JPEG image)
+
+## Strings in key.jsm
+
+already-revoked = This key has already been revoked.
+# $identity (String) - the id and associated user identity of the key being revoked
+revoke-key-question =
+ You are about to revoke the key “{ $identity }”.
+ You will no longer be able to sign with this key, and once distributed, others will no longer be able to encrypt with that key. You can still use the key to decrypt old messages.
+ Do you want to proceed?
+# $keyId (String) - the id of the key being revoked
+revoke-key-not-present =
+ You have no key (0x{ $keyId }) which matches this revocation certificate!
+ If you have lost your key, you must import it (e.g. from a keyserver) before importing the revocation certificate!
+# $keyId (String) - the id of the key being revoked
+revoke-key-already-revoked = The key 0x{ $keyId } has already been revoked.
+key-man-button-revoke-key = &Revoke Key
+openpgp-key-revoke-success = Key successfully revoked.
+after-revoke-info =
+ The key has been revoked.
+ Share this public key again, by sending it by email, or by uploading it to keyservers, to let others know that you revoked your key.
+ As soon as the software used by other people learns about the revocation, it will stop using your old key.
+ If you are using a new key for the same email address, and you attach the new public key to emails you send, then information about your revoked old key will be automatically included.
+
+## Strings in keyRing.jsm & decryption.jsm
+
+key-man-button-import = &Import
+delete-key-title = Delete OpenPGP Key
+delete-external-key-title = Remove the External GnuPG Key
+delete-external-key-description = Do you want to remove this External GnuPG key ID?
+key-in-use-title = OpenPGP Key currently in use
+delete-key-in-use-description = Unable to proceed! The Key you selected for deletion is currently being used by this identity. Select a different key, or select none, and try again.
+revoke-key-in-use-description = Unable to proceed! The Key you selected for revocation is currently being used by this identity. Select a different key, or select none, and try again.
+
+## Strings used in errorHandling.jsm
+
+# Variables:
+# $keySpec (String) - Email address.
+key-error-key-spec-not-found = The email address “{ $keySpec }” cannot be matched to a key on your keyring.
+# $keySpec (String) - Key id.
+key-error-key-id-not-found = The configured key ID “{ $keySpec }” cannot be found on your keyring.
+# $keySpec (String) - Key id.
+key-error-not-accepted-as-personal = You have not confirmed that the key with ID “{ $keySpec }” is your personal key.
+
+## Strings used in enigmailKeyManager.js & windows.jsm
+
+need-online = The function you have selected is not available in offline mode. Please go online and try again.
+
+## Strings used in keyRing.jsm & keyLookupHelper.jsm
+
+no-key-found2 = We couldn’t find any usable key matching the specified search criteria.
+no-update-found = You already have the keys that were discovered online.
+
+## Strings used in keyRing.jsm & GnuPGCryptoAPI.jsm
+
+fail-key-extract = Error - key extraction command failed
+
+## Strings used in keyRing.jsm
+
+fail-cancel = Error - Key receive cancelled by user
+not-first-block = Error - First OpenPGP block not public key block
+import-key-confirm = Import public key(s) embedded in message?
+fail-key-import = Error - key importing failed
+# Variables:
+# $output (String) - File that writing was attempted to.
+file-write-failed = Failed to write to file { $output }
+no-pgp-block = Error - No valid armoured OpenPGP data block found
+confirm-permissive-import = Import failed. The key you are trying to import might be corrupt or use unknown attributes. Would you like to attempt to import the parts that are correct? This might result in the import of incomplete and unusable keys.
+
+## Strings used in trust.jsm
+
+key-valid-unknown = unknown
+key-valid-invalid = invalid
+key-valid-disabled = disabled
+key-valid-revoked = revoked
+key-valid-expired = expired
+key-trust-untrusted = untrusted
+key-trust-marginal = marginal
+key-trust-full = trusted
+key-trust-ultimate = ultimate
+key-trust-group = (group)
+
+## Strings used in commonWorkflows.js
+
+import-key-file = Import OpenPGP Key File
+import-rev-file = Import OpenPGP Revocation File
+gnupg-file = GnuPG Files
+import-keys-failed = Importing the keys failed
+# Variables:
+# $key (String) - Key id to unlock.
+# $date (String) - The date on which the key was created
+# $username_and_email (String) - The user name, and/or the email address which the key owner has set for the key.
+passphrase-prompt2 = Enter the passphrase to unlock the secret key with ID { $key }, created { $date }, { $username_and_email }
+# Variables:
+# $subkey (String) - Key id to unlock, which is a subkey.
+# $key (String) - This is the main key, to which the subkey belongs.
+# $date (String) - The date on which the key was created
+# $username_and_email (String) - The user name, and/or the email address which the key owner has set for the key.
+passphrase-prompt2-sub = Enter the passphrase to unlock the secret key with ID { $subkey }, which is a subkey of key ID { $key }, created { $date }, { $username_and_email }
+file-to-big-to-import = This file is too big. Please don’t import a large set of keys at once.
+
+## Strings used in enigmailKeygen.js
+
+save-revoke-cert-as = Create & Save Revocation Certificate
+revoke-cert-ok = The revocation certificate has been successfully created. You can use it to invalidate your public key, e.g. in case you would lose your secret key.
+revoke-cert-failed = The revocation certificate could not be created.
+gen-going = Key generation already in progress!
+keygen-missing-user-name = There is no name specified for the selected account/identity. Please enter a value in the field “Your name” in the account settings.
+expiry-too-short = Your key must be valid for at least one day.
+expiry-too-long = You cannot create a key that expires in more than 100 years.
+# Variables:
+# $id (String) - Name and/or email address to generate keys for.
+key-confirm = Generate public and secret key for “{ $id }”?
+key-man-button-generate-key = &Generate Key
+key-abort = Abort key generation?
+key-man-button-generate-key-abort = &Abort Key Generation
+key-man-button-generate-key-continue = &Continue Key Generation
+
+## Strings used in enigmailMessengerOverlay.js
+
+failed-decrypt = Error - decryption failed
+fix-broken-exchange-msg-failed = Did not succeed to repair message.
+# Variables:
+# $attachment (String) - File name of the signature file.
+attachment-no-match-from-signature = Could not match signature file “{ $attachment }” to an attachment
+# Variables:
+# $attachment (String) - File name of the attachment.
+attachment-no-match-to-signature = Could not match attachment “{ $attachment }” to a signature file
+# Variables:
+# $attachment (String) - File name of the attachment
+signature-verified-ok = The signature for attachment { $attachment } was successfully verified
+# Variables:
+# $attachment (String) - File name of the attachment
+signature-verify-failed = The signature for attachment { $attachment } could not be verified
+decrypt-ok-no-sig =
+ Warning
+ Decryption was successful, but the signature could not be verified correctly
+msg-ovl-button-cont-anyway = &Continue Anyway
+enig-content-note = *Attachments to this message have not been signed nor encrypted*
+
+## Strings used in enigmailMsgComposeOverlay.js
+
+msg-compose-button-send = &Send Message
+msg-compose-details-button-label = Details…
+msg-compose-details-button-access-key = D
+send-aborted = Send operation aborted.
+# Variables:
+# $key (String) - Key id.
+key-not-trusted = Not enough trust for key “{ $key }”
+# Variables:
+# $key (String) - Key id.
+key-not-found = Key “{ $key }” not found
+# Variables:
+# $key (String) - Key id.
+key-revoked = Key “{ $key }” revoked
+# Variables:
+# $key (String) - Key id.
+key-expired = Key “{ $key }” expired
+msg-compose-internal-error = An internal error has occurred.
+keys-to-export = Select OpenPGP Keys to Insert
+msg-compose-partially-encrypted-inlinePGP =
+ The message you are replying to contained both unencrypted and encrypted parts. If the sender was not able to decrypt some message parts originally, you may be leaking confidential information that the sender was not able to originally decrypt themselves.
+ Please consider removing all quoted text from your reply to this sender.
+msg-compose-cannot-save-draft = Error while saving draft
+msg-compose-partially-encrypted-short = Beware of leaking sensitive information - partially encrypted email.
+quoted-printable-warn =
+ You have enabled “quoted-printable” encoding for sending messages. This may result in incorrect decryption and/or verification of your message.
+ Do you wish to turn off sending “quoted-printable” messages now?
+# Variables:
+# $width (Number) - Number of characters per line.
+minimal-line-wrapping =
+ You have set line wrapping to { $width } characters. For correct encryption and/or signing, this value needs to be at least 68.
+ Do you wish to change line wrapping to 68 characters now?
+sending-news =
+ Encrypted send operation aborted.
+ This message cannot be encrypted because there are newsgroup recipients. Please re-send the message without encryption.
+send-to-news-warning =
+ Warning: you are about to send an encrypted email to a newsgroup.
+ This is discouraged because it only makes sense if all members of the group can decrypt the message, i.e. the message needs to be encrypted with the keys of all group participants. Please send this message only if you know exactly what you are doing.
+ Continue?
+save-attachment-header = Save decrypted attachment
+possibly-pgp-mime = Possibly PGP/MIME encrypted or signed message; use “Decrypt/Verify” function to verify
+# Variables:
+# $key (String) - Sender email address.
+cannot-send-sig-because-no-own-key = Cannot digitally sign this message, because you haven’t yet configured end-to-end encryption for <{ $key }>
+# Variables:
+# $key (String) - Sender email address.
+cannot-send-enc-because-no-own-key = Cannot send this message encrypted, because you haven’t yet configured end-to-end encryption for <{ $key }>
+
+## Strings used in decryption.jsm
+
+# Variables:
+# $key (String) - Newline separated list of a tab character then name and/or email address mentioned in the key followed by the key id in parenthesis.
+do-import-multiple =
+ Import the following keys?
+ { $key }
+# Variables:
+# $name (String) - Name and/or email address mentioned in the key.
+# $id (String) - Key id of the key.
+do-import-one = Import { $name } ({ $id })?
+cant-import = Error importing public key
+unverified-reply = Indented message part (reply) was probably modified
+key-in-message-body = A key was found in the message body. Click Import Key to import the key
+sig-mismatch = Error - Signature mismatch
+invalid-email = Error - invalid email address(es)
+# Variables:
+# $name (String) - File name of the attachment.
+attachment-pgp-key =
+ The attachment “{ $name }” you are opening appears to be an OpenPGP key file.
+ Click Import to import the keys contained or View to view the file contents in a browser window
+dlg-button-view = &View
+
+## Strings used in enigmailMsgHdrViewOverlay.js
+
+decrypted-msg-with-format-error = Decrypted message (restored broken PGP email format probably caused by an old Exchange server, so that the result might not be perfect to read)
+
+## Strings used in encryption.jsm
+
+not-required = Error - no encryption required
+
+## Strings used in windows.jsm
+
+no-photo-available = No Photo available
+# Variables:
+# $photo (String) - Path of the photo in the key.
+error-photo-path-not-readable = Photo path “{ $photo }” is not readable
+debug-log-title = OpenPGP Debug Log
+
+## Strings used in dialog.jsm
+
+# This string is followed by either repeat-suffix-singular if $count is 1 or else
+# by repeat-suffix-plural.
+# Variables:
+# $count (Number) - Number of times the alert will repeat.
+repeat-prefix = This alert will repeat { $count }
+repeat-suffix-singular = more time.
+repeat-suffix-plural = more times.
+no-repeat = This alert will not be shown again.
+dlg-keep-setting = Remember my answer and do not ask me again
+dlg-button-ok = &OK
+dlg-button-close = &Close
+dlg-button-cancel = &Cancel
+dlg-no-prompt = Do not show me this dialog again
+enig-prompt = OpenPGP Prompt
+enig-confirm = OpenPGP Confirmation
+enig-alert = OpenPGP Alert
+enig-info = OpenPGP Information
+
+## Strings used in persistentCrypto.jsm
+
+dlg-button-retry = &Retry
+dlg-button-skip = &Skip
+
+## Strings used in enigmailMsgBox.js
+
+enig-alert-title =
+ .title = OpenPGP Alert
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/add-finger.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/add-finger.ftl
new file mode 100644
index 0000000000..5709168e2b
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/add-finger.ftl
@@ -0,0 +1,16 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+otr-add-finger-title = Add OTR Key Fingerprint
+
+# Variables:
+# $name (String) - name of a chat contact person
+# Do not translate 'OTR' (name of an encryption protocol)
+otr-add-finger-description = Enter the OTR key fingerprint for { $name }.
+
+otr-add-finger-fingerprint = Fingerprint:
+otr-add-finger-tooltip-error = Invalid character entered. Only letters ABCDEF and numbers are allowed
+
+otr-add-finger-input =
+ .placeholder = The 40 characters long OTR key fingerprint
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/am-im-otr.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/am-im-otr.ftl
new file mode 100644
index 0000000000..e418895721
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/am-im-otr.ftl
@@ -0,0 +1,26 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+account-encryption =
+ .label = End-to-end Encryption
+account-otr-label = Off-the-Record Messaging (OTR)
+account-otr-description2 = { -brand-short-name } supports end-to-end encryption of one-to-one conversations based on OTR. This prevents third parties from eavesdropping on a conversation. This kind of end-to-end encryption can only be used when the other person also uses software that supports OTR.
+otr-encryption-title = Verified Encryption
+otr-encryption-caption = To enable others to verify your identity in OTR chats, share your own OTR fingerprint using an outside (out-of-band) communication channel.
+otr-fingerprint-label = Your Fingerprint:
+view-fingerprint-button =
+ .label = Manage Fingerprints of Contacts
+ .accesskey = F
+otr-settings-title = OTR Settings
+otr-require-encryption =
+ .label = Require end-to-end encryption for one-to-one conversations
+otr-require-encryption-info =
+ When requiring end-to-end encryption, messages in one-to-one conversations
+ will not be sent unless they can be encrypted. Received unencrypted messages
+ will not be shown as part of the regular conversation, and not logged either.
+otr-verify-nudge =
+ .label = Always remind me to verify an unverified contact
+
+otr-not-yet-available = not yet available
+
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/auth.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/auth.ftl
new file mode 100644
index 0000000000..78857e290e
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/auth.ftl
@@ -0,0 +1,60 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+otr-auth =
+ .title = Verify contact's identity
+ .buttonlabelaccept = Verify
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+auth-title = Verify the identity of { $name }
+
+# Variables:
+# $own_name (String) - the user's own screen name
+auth-your-fp-value = Fingerprint for you, { $own_name }:
+
+# Variables:
+# $their_name (String) - the screen name of a chat contact
+auth-their-fp-value = Fingerprint for { $their_name }:
+
+auth-help = Verifying a contact’s identity helps ensure that the conversation is truly private, making it very difficult for a third party to eavesdrop or manipulate the conversation.
+
+auth-help-title = Verification help
+
+auth-question-received = This is the question asked by your contact:
+
+auth-yes =
+ .label = Yes
+
+auth-no =
+ .label = No
+
+auth-verified = I have verified that this is in fact the correct fingerprint.
+
+auth-manual-verification = Manual fingerprint verification
+auth-question-and-answer = Question and answer
+auth-shared-secret = Shared secret
+
+auth-manual-verification-label =
+ .label = { auth-manual-verification }
+
+auth-question-and-answer-label =
+ .label = { auth-question-and-answer }
+
+auth-shared-secret-label =
+ .label = { auth-shared-secret }
+
+auth-manual-instruction = Contact your intended conversation partner via some other authenticated channel, such as OpenPGP-signed email or over the phone. You should tell each other your fingerprints. (A fingerprint is a checksum that identifies an encryption key.) If the fingerprint matches, you should indicate in the dialogue below that you have verified the fingerprint.
+
+auth-how = How would you like to verify your contact’s identity?
+
+auth-qa-instruction = Think of a question to which the answer is known only to you and your contact. Enter the question and answer, then wait for your contact to enter the answer. If the answers do not match, the communication channel you are using may be under surveillance.
+
+auth-secret-instruction = Think of a secret known only to you and your contact. Do not use the same Internet connection to exchange the secret. Enter the secret, then wait for your contact to enter it. If the secrets do not match, the communication channel you are using may be under surveillance.
+
+auth-question = Enter a question:
+
+auth-answer = Enter the answer (case sensitive):
+
+auth-secret = Enter the secret:
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/chat.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/chat.ftl
new file mode 100644
index 0000000000..c7163781d3
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/chat.ftl
@@ -0,0 +1,19 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+state-label = Encryption Status:
+
+start-text = Start an encrypted conversation
+
+start-label =
+ .label = { start-text }
+
+start-tooltip =
+ .tooltiptext = { start-text }
+
+end-label =
+ .label = End the encrypted conversation
+
+auth-label =
+ .label = Verify your contact’s identity
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/finger-sync.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/finger-sync.ftl
new file mode 100644
index 0000000000..b3e731b979
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/finger-sync.ftl
@@ -0,0 +1,12 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+finger-yes = Verified
+finger-no = Unverified
+
+finger-subset-title = Remove Fingerprints
+finger-subset-message = At least one fingerprint couldn’t be removed, because the corresponding key is currently used in an active conversation.
+
+finger-remove-all-title = Remove All Fingerprints
+finger-remove-all-message = Are you sure you want to remove all previously seen fingerprints? All previous OTR identity verifications will be lost.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/finger.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/finger.ftl
new file mode 100644
index 0000000000..f411991085
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/finger.ftl
@@ -0,0 +1,20 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+otr-finger-title = Previously Seen OTR Fingerprints
+
+finger-intro = OTR key fingerprints from previous end-to-end encrypted conversations.
+
+finger-screen-name =
+ .label = Contact
+finger-verified =
+ .label = Verification Status
+finger-fingerprint =
+ .label = Fingerprint
+
+finger-remove =
+ .label = Remove Selected
+
+finger-remove-all =
+ .label = Remove All
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/otr.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/otr.ftl
new file mode 100644
index 0000000000..4b4e8ea3a4
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/otr.ftl
@@ -0,0 +1,97 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-encryption-required-part1 = You attempted to send an unencrypted message to { $name }. As a policy, unencrypted messages are not allowed.
+
+msgevent-encryption-required-part2 = Attempting to start a private conversation. Your message will be resent when the private conversation starts.
+msgevent-encryption-error = An error occurred when encrypting your message. The message was not sent.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-connection-ended = { $name } has already closed their encrypted connection to you. To avoid that you accidentally send a message without encryption, your message was not sent. Please end your encrypted conversation, or restart it.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-setup-error = An error occurred while setting up a private conversation with { $name }.
+
+# Do not translate 'OTR' (name of an encryption protocol)
+msgevent-msg-reflected = You are receiving your own OTR messages. You are either trying to talk to yourself, or someone is reflecting your messages back at you.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-msg-resent = The last message to { $name } was resent.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-rcvdmsg-not-private = The encrypted message received from { $name } is unreadable, as you are not currently communicating privately.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-rcvdmsg-unreadable = You received an unreadable encrypted message from { $name }.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-rcvdmsg-malformed = You received a malformed data message from { $name }.
+
+# A Heartbeat is a technical message used to keep a connection alive.
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-log-heartbeat-rcvd = Heartbeat received from { $name }.
+
+# A Heartbeat is a technical message used to keep a connection alive.
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-log-heartbeat-sent = Heartbeat sent to { $name }.
+
+# Do not translate 'OTR' (name of an encryption protocol)
+msgevent-rcvdmsg-general-err = An unexpected error occurred while trying to protect your conversation using OTR.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+# $msg (string) - the message that was received.
+msgevent-rcvdmsg-unencrypted = The following message received from { $name } was not encrypted: { $msg }
+
+# Do not translate 'OTR' (name of an encryption protocol)
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-rcvdmsg-unrecognized = You received an unrecognized OTR message from { $name }.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-rcvdmsg-for-other-instance = { $name } has sent a message intended for a different session. If you are logged in multiple times, another session may have received the message.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+context-gone-secure-private = Private conversation with { $name } started.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+context-gone-secure-unverified = Encrypted, but unverified conversation with { $name } started.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+context-still-secure = Successfully refreshed the encrypted conversation with { $name }.
+
+error-enc = An error occurred while encrypting the message.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+error-not-priv = You sent encrypted data to { $name }, who wasn’t expecting it.
+
+error-unreadable = You transmitted an unreadable encrypted message.
+error-malformed = You transmitted a malformed data message.
+
+resent = [resent]
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+tlv-disconnected = { $name } has ended their encrypted conversation with you; you should do the same.
+
+# Do not translate "Off-the-Record" and "OTR" which is the name of an encryption protocol
+# Make sure that this string does NOT contain any numbers, e.g. like "3".
+# Variables:
+# $name (String) - the screen name of a chat contact person
+query-msg = { $name } has requested an Off-the-Record (OTR) encrypted conversation. However, you do not have a plugin to support that. See https://en.wikipedia.org/wiki/Off-the-Record_Messaging for more information.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/otrUI.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/otrUI.ftl
new file mode 100644
index 0000000000..a079429e77
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/otr/otrUI.ftl
@@ -0,0 +1,87 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+start-label = Start an encrypted conversation
+refresh-label = Refresh the encrypted conversation
+auth-label = Verify your contact’s identity
+reauth-label = Reverify your contact’s identity
+
+auth-cancel = Cancel
+auth-cancel-access-key = C
+
+auth-error = An error occurred while verifying the identity of your contact.
+auth-success = Verifying your contact’s identity completed successfully.
+auth-success-them = Your contact has successfully verified your identity. You may want to verify their identity as well by asking your own question.
+auth-fail = Failed to verify the identity of your contact.
+auth-waiting = Waiting for the contact to complete the verification…
+
+finger-verify = Verify
+finger-verify-access-key = V
+
+finger-ignore = Ignore
+finger-ignore-access-key = I
+
+# Do not translate 'OTR' (name of an encryption protocol)
+buddycontextmenu-label = Add OTR Fingerprint
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+alert-start = Attempting to start an encrypted conversation with { $name }.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+alert-refresh = Attempting to refresh the encrypted conversation with { $name }.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+alert-gone-insecure = The encrypted conversation with { $name } ended.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+finger-unseen = The identity of { $name } has not been verified yet. Casual eavesdropping is not possible, but with some effort someone could be listening in. Prevent surveillance by verifying this contact’s identity.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+finger-seen = { $name } is contacting you from an unrecognized computer. Casual eavesdropping is not possible, but with some effort someone could be listening in. Prevent surveillance by verifying this contact’s identity.
+
+state-not-private = The current conversation is not private.
+state-generic-not-private = The current conversation is not private.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+state-unverified = The current conversation is encrypted but not private, since the identity of { $name } has not yet been verified.
+
+state-generic-unverified = The current conversation is encrypted but not private, since some identities have not yet been verified.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+state-private = The identity of { $name } has been verified. The current conversation is encrypted and private.
+
+state-generic-private = The current conversation is encrypted and private.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+state-finished = { $name } has ended their encrypted conversation with you; you should do the same.
+
+state-not-private-label = Insecure
+state-unverified-label = Unverified
+state-private-label = Private
+state-finished-label = Finished
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+verify-request = { $name } requested the verification of your identity.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+afterauth-private = You have verified the identity of { $name }.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+afterauth-unverified = The identity of { $name } has not been verified.
+
+# Do not translate 'OTR' (name of an encryption protocol)
+# Variables:
+# $error (String) - contains an error message that describes the cause of the failure
+otr-genkey-failed = Generating OTR private key failed: { $error }
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/policies/aboutPolicies.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/policies/aboutPolicies.ftl
new file mode 100644
index 0000000000..d5ef87a573
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/policies/aboutPolicies.ftl
@@ -0,0 +1,17 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+about-policies-title = Enterprise Policies
+
+# 'Active' is used to describe the policies that are currently active
+active-policies-tab = Active
+errors-tab = Errors
+documentation-tab = Documentation
+
+no-specified-policies-message = The Enterprise Policies service is active but there are no policies enabled.
+inactive-message = The Enterprise Policies service is inactive.
+
+policy-name = Policy Name
+policy-value = Policy Value
+policy-errors = Policy Errors
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/policies/policies-descriptions.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/policies/policies-descriptions.ftl
new file mode 100644
index 0000000000..b269d91b22
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/policies/policies-descriptions.ftl
@@ -0,0 +1,159 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## The Enterprise Policies feature is aimed at system administrators
+## who want to deploy these settings across several Thunderbird installations
+## all at once. This is traditionally done through the Windows Group Policy
+## feature, but the system also supports other forms of deployment.
+## These are short descriptions for individual policies, to be displayed
+## in the documentation section in about:policies.
+
+policy-3rdparty = Set policies that WebExtensions can access via chrome.storage.managed.
+
+policy-AppAutoUpdate = Enable or disable automatic application update.
+
+policy-AppUpdatePin = Prevent { -brand-short-name } from being updated beyond the specified version.
+
+policy-AppUpdateURL = Set custom app update URL.
+
+policy-Authentication = Configure integrated authentication for websites that support it.
+
+policy-BackgroundAppUpdate2 = Enable or disable the background updater.
+
+policy-BlockAboutAddons = Block access to the Add-ons Manager (about:addons).
+
+policy-BlockAboutConfig = Block access to the about:config page.
+
+policy-BlockAboutProfiles = Block access to the about:profiles page.
+
+policy-BlockAboutSupport = Block access to the about:support page.
+
+policy-CaptivePortal = Enable or disable captive portal support.
+
+policy-CertificatesDescription = Add certificates or use built-in certificates.
+
+policy-Cookies = Allow or deny websites to set cookies.
+
+policy-DisableBuiltinPDFViewer = Disable PDF.js, the built-in PDF viewer in { -brand-short-name }.
+
+policy-DisabledCiphers = Disable ciphers.
+
+policy-DefaultDownloadDirectory = Set the default download directory.
+
+policy-DisableAppUpdate = Prevent { -brand-short-name } from updating.
+
+policy-DisableDefaultClientAgent = Prevent the default client agent from taking any actions. Only applicable to Windows; other platforms don’t have the agent.
+
+policy-DisableDeveloperTools = Block access to the developer tools.
+
+policy-DisableFeedbackCommands = Disable commands to send feedback from the Help menu (Submit Feedback and Report Deceptive Site).
+
+policy-DisableForgetButton = Prevent access to the Forget button.
+
+policy-DisableFormHistory = Don’t remember search and form history.
+
+policy-DisableMasterPasswordCreation = If true, a master password can’t be created.
+
+policy-DisablePasswordReveal = Do not allow passwords to be revealed in saved logins.
+
+policy-DisableProfileImport = Disable the menu command to Import data from another application.
+
+policy-DisableSafeMode = Disable the feature to restart in Safe Mode. Note: the Shift key to enter Safe Mode can only be disabled on Windows using Group Policy.
+
+policy-DisableSecurityBypass = Prevent the user from bypassing certain security warnings.
+
+policy-DisableSystemAddonUpdate = Prevent { -brand-short-name } from installing and updating system add-ons.
+
+policy-DisableTelemetry = Turn off Telemetry.
+
+policy-DisplayMenuBar = Display the Menu Bar by default.
+
+policy-DNSOverHTTPS = Configure DNS over HTTPS.
+
+policy-DontCheckDefaultClient = Disable check for default client on startup.
+
+policy-DownloadDirectory = Set and lock the download directory.
+
+# “lock” means that the user won’t be able to change this setting
+policy-EnableTrackingProtection = Enable or disable Content Blocking and optionally lock it.
+
+# “lock” means that the user won’t be able to change this setting
+policy-EncryptedMediaExtensions = Enable or disable Encrypted Media Extensions and optionally lock it.
+
+# A “locked” extension can’t be disabled or removed by the user. This policy
+# takes 3 keys (“Install”, ”Uninstall”, ”Locked”), you can either keep them in
+# English or translate them as verbs.
+policy-Extensions = Install, uninstall or lock extensions. The Install option takes URLs or paths as parameters. The Uninstall and Locked options take extension IDs.
+
+policy-ExtensionSettings = Manage all aspects of extension installation.
+
+policy-ExtensionUpdate = Enable or disable automatic extension updates.
+
+policy-Handlers = Configure default application handlers.
+
+policy-HardwareAcceleration = If false, turn off hardware acceleration.
+
+policy-InstallAddonsPermission = Allow certain websites to install add-ons.
+
+policy-LegacyProfiles = Disable the feature enforcing a separate profile for each installation.
+
+## Do not translate "SameSite", it's the name of a cookie attribute.
+
+policy-LegacySameSiteCookieBehaviorEnabled = Enable default legacy SameSite cookie behaviour setting.
+
+policy-LegacySameSiteCookieBehaviorEnabledForDomainList = Revert to legacy SameSite behaviour for cookies on specified sites.
+
+##
+
+policy-LocalFileLinks = Allow specific websites to link to local files.
+
+policy-ManualAppUpdateOnly = Allow manual updates only and do not notify the user about updates.
+
+policy-NetworkPrediction = Enable or disable network prediction (DNS prefetching).
+
+policy-OfferToSaveLogins = Enforce the setting to allow { -brand-short-name } to offer to remember saved logins and passwords. Both true and false values are accepted.
+
+policy-OfferToSaveLoginsDefault = Set the default value for allowing { -brand-short-name } to offer to remember saved logins and passwords. Both true and false values are accepted.
+
+policy-OverrideFirstRunPage = Override the first run page. Set this policy to blank if you want to disable the first run page.
+
+policy-OverridePostUpdatePage = Override the post-update “What’s New” page. Set this policy to blank if you want to disable the post-update page.
+
+policy-PasswordManagerEnabled = Enable saving passwords to the password manager.
+
+# PDF.js and PDF should not be translated
+policy-PDFjs = Disable or configure PDF.js, the built-in PDF viewer in { -brand-short-name }.
+
+policy-Permissions2 = Configure permissions for camera, microphone, location, notifications, and autoplay.
+
+policy-Preferences = Set and lock the value for a subset of preferences.
+
+policy-PrimaryPassword = Require or prevent using a Primary Password.
+
+policy-PromptForDownloadLocation = Ask where to save files when downloading.
+
+policy-Proxy = Configure proxy settings.
+
+policy-RequestedLocales = Set the list of requested locales for the application in order of preference.
+
+policy-SanitizeOnShutdown2 = Clear navigation data on shutdown.
+
+policy-SearchEngines = Configure search engine settings. This policy is only available on the Extended Support Release (ESR) version.
+
+policy-SearchSuggestEnabled = Enable or disable search suggestions.
+
+# For more information, see https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/PKCS11/Module_Installation
+policy-SecurityDevices = Install PKCS #11 modules.
+
+policy-SSLVersionMax = Set the maximum SSL version.
+
+policy-SSLVersionMin = Set the minimum SSL version.
+
+policy-SupportMenu = Add a custom support menu item to the help menu.
+
+policy-UserMessaging = Don’t show certain messages to the user.
+
+# “format” refers to the format used for the value of this policy.
+policy-WebsiteFilter = Block websites from being visited. See documentation for more details on the format.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/am-copies.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000..24e0b6f29b
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/am-copies.ftl
@@ -0,0 +1,5 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+account-prefs-show-address-row-description = Leave the address field blank to always show the address row when starting a new message.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/am-im.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/am-im.ftl
new file mode 100644
index 0000000000..4daf7cec7d
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/am-im.ftl
@@ -0,0 +1,23 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+account-settings-title = Authentication Settings
+account-channel-title = Default Channels
+
+chat-autologin =
+ .label = Sign-on at startup
+
+chat-encryption-generic = Generic
+chat-encryption-log =
+ .label = Include end-to-end encrypted messages in conversation logs
+chat-encryption-label = Native End-to-end Encryption
+chat-encryption-description = { $protocol } provides end-to-end encryption for chat messages. This prevents third parties from eavesdropping on a conversation. Additional setup might be required below for the encryption to be operational.
+chat-encryption-status = Encryption Status
+chat-encryption-placeholder = Encryption not initialized.
+chat-encryption-sessions = Sessions
+chat-encryption-sessions-description = For end-to-end encryption to work correctly, you have to trust the other sessions currently logged in to your account. Interaction with the other client is required to verify a session. Verifying a session might lead to all sessions that it trusts to also be trusted by { -brand-short-name }.
+chat-encryption-session-verify = verify
+ .title = Verify the identity of this session
+chat-encryption-session-trusted = trusted
+ .title = This session’s identity is verified
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/application-manager.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/application-manager.ftl
new file mode 100644
index 0000000000..4f28c7f6f2
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/application-manager.ftl
@@ -0,0 +1,10 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+app-manager-window-dialog2 =
+ .title = Application Details
+app-manager-dialog-title = Application Details
+remove-app-button =
+ .label = Remove
+ .accesskey = R
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/attachment-reminder.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/attachment-reminder.ftl
new file mode 100644
index 0000000000..0d31a368f9
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/attachment-reminder.ftl
@@ -0,0 +1,21 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+attachment-reminder-window =
+ .title = Attachment Reminder Keywords
+attachment-reminder-dialog-title = Attachment Reminder Keywords
+attachment-reminder-label = { -brand-short-name } will warn you about missing attachments if you’re about to send an e-mail containing one of these keywords.
+keyword-new-button =
+ .label = New…
+ .accesskey = N
+keyword-edit-button =
+ .label = Edit…
+ .accesskey = E
+keyword-remove-button =
+ .label = Delete
+ .accesskey = D
+new-keyword-title = New Keyword
+new-keyword-label = Keyword:
+edit-keyword-title = Edit Keyword
+edit-keyword-label = Keyword:
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/colors.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/colors.ftl
new file mode 100644
index 0000000000..b61b077cb1
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/colors.ftl
@@ -0,0 +1,36 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+colors-dialog-window2 =
+ .title = Colours
+colors-dialog-title = Colours
+colors-dialog-legend = Text and Background
+text-color-label =
+ .value = Text:
+ .accesskey = T
+background-color-label =
+ .value = Background:
+ .accesskey = B
+use-system-colors =
+ .label = Use system colours
+ .accesskey = s
+colors-link-legend = Link Colours
+link-color-label =
+ .value = Unvisited Links:
+ .accesskey = L
+visited-link-color-label =
+ .value = Visited Links:
+ .accesskey = V
+underline-link-checkbox =
+ .label = Underline links
+ .accesskey = U
+override-color-label =
+ .value = Override the colours specified by the content with my selections above:
+ .accesskey = O
+override-color-always =
+ .label = Always
+override-color-auto =
+ .label = Only with High Contrast themes
+override-color-never =
+ .label = Never
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/connection.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/connection.ftl
new file mode 100644
index 0000000000..1480697ea1
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/connection.ftl
@@ -0,0 +1,88 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+connection-dns-over-https-url-resolver = Use Provider
+ .accesskey = r
+# Variables:
+# $name (String) - Display name or URL for the DNS over HTTPS provider
+connection-dns-over-https-url-item-default =
+ .label = { $name } (Default)
+ .tooltiptext = Use the default URL for resolving DNS over HTTPS
+connection-dns-over-https-url-custom =
+ .label = Custom
+ .accesskey = C
+ .tooltiptext = Enter your preferred URL for resolving DNS over HTTPS
+connection-dns-over-https-custom-label = Custom
+connection-dialog-window2 =
+ .title = Connection Settings
+connection-dialog-title = Connection Settings
+disable-extension-button = Disable Extension
+# Variables:
+# $name (String) - The extension that is controlling the proxy settings.
+#
+# The extension-icon is the extension's icon, or a fallback image. It should be
+# purely decoration for the actual extension name, with alt="".
+proxy-settings-controlled-by-extension = An extension, <img data-l10n-name="extension-icon" alt="" /> { $name }, is controlling how { -brand-short-name } connects to the Internet.
+connection-proxy-legend = Configure Proxies to Access the Internet
+proxy-type-no =
+ .label = No proxy
+ .accesskey = y
+proxy-type-wpad =
+ .label = Auto-detect proxy settings for this network
+ .accesskey = w
+proxy-type-system =
+ .label = Use system proxy settings
+ .accesskey = u
+proxy-type-manual =
+ .label = Manual proxy configuration:
+ .accesskey = m
+proxy-http-label =
+ .value = HTTP Proxy:
+ .accesskey = h
+http-port-label =
+ .value = Port:
+ .accesskey = p
+proxy-http-sharing =
+ .label = Also use this proxy for HTTPS
+ .accesskey = x
+proxy-https-label =
+ .value = HTTPS Proxy:
+ .accesskey = S
+ssl-port-label =
+ .value = Port:
+ .accesskey = o
+proxy-socks-label =
+ .value = SOCKS Host:
+ .accesskey = c
+socks-port-label =
+ .value = Port:
+ .accesskey = t
+proxy-socks4-label =
+ .label = SOCKS v4
+ .accesskey = k
+proxy-socks5-label =
+ .label = SOCKS v5
+ .accesskey = v
+proxy-type-auto =
+ .label = Automatic proxy configuration URL:
+ .accesskey = A
+proxy-reload-label =
+ .label = Reload
+ .accesskey = l
+no-proxy-label =
+ .value = No proxy for:
+ .accesskey = n
+no-proxy-example = Example: .mozilla.org, .net.nz, 192.168.1.0/24
+# Do not translate "localhost", "127.0.0.1/8" and "::1". (You can translate "and".)
+connection-proxy-noproxy-localhost-desc-2 = Connections to localhost, 127.0.0.1/8, and ::1 are never proxied.
+proxy-password-prompt =
+ .label = Do not prompt for authentication if password is saved
+ .accesskey = i
+ .tooltiptext = This option silently authenticates you to proxies when you have saved credentials for them. You will be prompted if authentication fails.
+proxy-remote-dns =
+ .label = Proxy DNS when using SOCKS v5
+ .accesskey = d
+proxy-enable-doh =
+ .label = Enable DNS over HTTPS
+ .accesskey = b
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/cookies.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/cookies.ftl
new file mode 100644
index 0000000000..ac2f3ab9cf
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/cookies.ftl
@@ -0,0 +1,43 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+cookies-window-dialog2 =
+ .title = Cookies
+window-close-key =
+ .key = w
+window-focus-search-key =
+ .key = f
+window-focus-search-alt-key =
+ .key = k
+filter-search-label =
+ .value = Search:
+ .accesskey = S
+cookies-on-system-label = The following cookies are stored on your computer:
+treecol-site-header =
+ .label = Site
+treecol-name-header =
+ .label = Cookie Name
+props-name-label =
+ .value = Name:
+props-value-label =
+ .value = Content:
+props-domain-label =
+ .value = Host:
+props-path-label =
+ .value = Path:
+props-secure-label =
+ .value = Send For:
+props-expires-label =
+ .value = Expires:
+props-container-label =
+ .value = Container:
+remove-cookie-button =
+ .label = Remove Cookie
+ .accesskey = R
+remove-all-cookies-button =
+ .label = Remove All Cookies
+ .accesskey = A
+cookie-close-button =
+ .label = Close
+ .accesskey = C
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/dock-options.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/dock-options.ftl
new file mode 100644
index 0000000000..437e13b67a
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/dock-options.ftl
@@ -0,0 +1,23 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+dock-options-window-dialog2 =
+ .title = App icon options
+dock-options-dialog-title = App icon options
+dock-options-show-badge =
+ .label = Show badge icon
+ .accesskey = b
+bounce-system-dock-icon =
+ .label = Animate the app icon when a new message arrives
+ .accesskey = i
+dock-icon-legend = App icon badge
+dock-icon-show-label =
+ .value = Badge app icon with:
+count-unread-messages-radio =
+ .label = Count of unread messages
+ .accesskey = u
+count-new-messages-radio =
+ .label = Count of new messages
+ .accesskey = n
+notification-settings-info2 = You can disable the badge on the Notification pane of System Settings.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/fonts.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/fonts.ftl
new file mode 100644
index 0000000000..f113cee3ba
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/fonts.ftl
@@ -0,0 +1,132 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+fonts-dialog-title = Fonts
+fonts-window-close =
+ .key = w
+# Variables:
+# $name {string, "Arial"} - Name of the default font
+fonts-label-default =
+ .label = Default ({ $name })
+fonts-label-default-unnamed =
+ .label = Default
+fonts-language-legend =
+ .value = Fonts for:
+ .accesskey = t
+fonts-proportional-label =
+ .value = Proportional:
+ .accesskey = P
+
+## Languages
+
+# Note: Translate "Latin" as the name of Latin (Roman) script, not as the name of the Latin language.
+font-language-group-latin =
+ .label = Latin
+font-language-group-japanese =
+ .label = Japanese
+font-language-group-trad-chinese =
+ .label = Traditional Chinese (Taiwan)
+font-language-group-simpl-chinese =
+ .label = Simplified Chinese
+font-language-group-trad-chinese-hk =
+ .label = Traditional Chinese (Hong Kong)
+font-language-group-korean =
+ .label = Korean
+font-language-group-cyrillic =
+ .label = Cyrillic
+font-language-group-el =
+ .label = Greek
+font-language-group-other =
+ .label = Other Writing Systems
+font-language-group-thai =
+ .label = Thai
+font-language-group-hebrew =
+ .label = Hebrew
+font-language-group-arabic =
+ .label = Arabic
+font-language-group-devanagari =
+ .label = Devanagari
+font-language-group-tamil =
+ .label = Tamil
+font-language-group-armenian =
+ .label = Armenian
+font-language-group-bengali =
+ .label = Bengali
+font-language-group-canadian =
+ .label = Unified Canadian Syllabary
+font-language-group-ethiopic =
+ .label = Ethiopic
+font-language-group-georgian =
+ .label = Georgian
+font-language-group-gujarati =
+ .label = Gujarati
+font-language-group-gurmukhi =
+ .label = Gurmukhi
+font-language-group-khmer =
+ .label = Khmer
+font-language-group-malayalam =
+ .label = Malayalam
+font-language-group-math =
+ .label = Mathematics
+font-language-group-odia =
+ .label = Odia
+font-language-group-telugu =
+ .label = Telugu
+font-language-group-kannada =
+ .label = Kannada
+font-language-group-sinhala =
+ .label = Sinhala
+font-language-group-tibetan =
+ .label = Tibetan
+
+## Default font type
+
+default-font-serif =
+ .label = Serif
+default-font-sans-serif =
+ .label = Sans Serif
+font-size-proportional-label =
+ .value = Size:
+ .accesskey = e
+font-size-monospace-label =
+ .value = Size:
+ .accesskey = i
+font-serif-label =
+ .value = Serif:
+ .accesskey = S
+font-sans-serif-label =
+ .value = Sans-serif:
+ .accesskey = n
+font-monospace-label =
+ .value = Monospace:
+ .accesskey = M
+font-min-size-label =
+ .value = Minimum font size:
+ .accesskey = z
+min-size-none =
+ .label = None
+
+## Fonts in message
+
+font-control-legend = Font Control
+use-document-fonts-checkbox =
+ .label = Allow messages to use other fonts
+ .accesskey = o
+use-fixed-width-plain-checkbox =
+ .label = Use fixed width font for plain text messages
+ .accesskey = x
+
+## Language settings
+
+text-encoding-legend = Text Encoding
+text-encoding-description = Set the default text encoding for sending and receiving mail
+font-outgoing-email-label =
+ .value = Outgoing Mail:
+ .accesskey = u
+font-incoming-email-label =
+ .value = Incoming Mail:
+ .accesskey = I
+default-font-reply-checkbox =
+ .label = When possible, use the default text encoding in replies
+ .accesskey = h
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/languages.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/languages.ftl
new file mode 100644
index 0000000000..ed533f8fcc
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/languages.ftl
@@ -0,0 +1,33 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+languages-customize-moveup =
+ .label = Move Up
+ .accesskey = U
+languages-customize-movedown =
+ .label = Move Down
+ .accesskey = D
+languages-customize-remove =
+ .label = Remove
+ .accesskey = R
+languages-customize-select-language =
+ .placeholder = Select a language to add…
+languages-customize-add =
+ .label = Add
+ .accesskey = A
+messenger-languages-window2 =
+ .title = { -brand-short-name } Language Settings
+messenger-languages-dialog-title = { -brand-short-name } Language Settings
+messenger-languages-description = { -brand-short-name } will display the first language as your default and will display alternate languages if necessary in the order they appear.
+messenger-languages-search = Search for more languages…
+messenger-languages-searching =
+ .label = Searching for languages…
+messenger-languages-downloading =
+ .label = Downloading…
+messenger-languages-select-language =
+ .label = Select a language to add…
+ .placeholder = Select a language to add…
+messenger-languages-installed-label = Installed languages
+messenger-languages-available-label = Available languages
+messenger-languages-error = { -brand-short-name } can’t update your languages right now. Check that you are connected to the internet or try again.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/new-tag.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/new-tag.ftl
new file mode 100644
index 0000000000..f0a9c82601
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/new-tag.ftl
@@ -0,0 +1,13 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+tag-dialog-window =
+ .title = New Tag
+tag-dialog-title = New Tag
+tag-name-label =
+ .value = Tag Name:
+ .accesskey = T
+tag-color-label =
+ .value = Colour:
+ .accesskey = C
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/notifications.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/notifications.ftl
new file mode 100644
index 0000000000..0220d647a0
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/notifications.ftl
@@ -0,0 +1,29 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+notifications-dialog-window =
+ .title = Customize New Mail Alert
+notifications-dialog-title = Customize New Mail Alert
+customize-alert-description = Choose which fields to show in the alert notification:
+preview-text-checkbox =
+ .label = Message Preview Text
+ .accesskey = M
+subject-checkbox =
+ .label = Subject
+ .accesskey = S
+sender-checkbox =
+ .label = Sender
+ .accesskey = e
+
+## Note: open-time-label-before is displayed first, then there's a field where
+## the user can enter a number, and open-time-label-after is displayed at the end
+## of the line. The translations of the open-time-label-before and open-time-label-after
+## parts don't have to mean the exact same thing as in English; please try instead
+## to translate the whole sentence.
+
+open-time-label-before =
+ .value = Show New Mail Alert for
+ .accesskey = N
+open-time-label-after =
+ .value = seconds
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/offline.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/offline.ftl
new file mode 100644
index 0000000000..3808eab962
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/offline.ftl
@@ -0,0 +1,43 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+offline-dialog-window =
+ .title = Offline Settings
+offline-dialog-title = Offline Settings
+autodetect-online-label =
+ .label = Automatically follow detected online state
+ .accesskey = d
+offline-preference-startup-label = Manual state when starting up:
+status-radio-remember =
+ .label = Remember previous online state
+ .accesskey = R
+status-radio-ask =
+ .label = Ask me for online state
+ .accesskey = k
+status-radio-always-online =
+ .label = Online
+ .accesskey = l
+status-radio-always-offline =
+ .label = Offline
+ .accesskey = f
+going-online-label = Send unsent messages when going online?
+going-online-auto =
+ .label = Yes
+ .accesskey = Y
+going-online-not =
+ .label = No
+ .accesskey = N
+going-online-ask =
+ .label = Ask me
+ .accesskey = s
+going-offline-label = Download messages for offline use when going offline?
+going-offline-auto =
+ .label = Yes
+ .accesskey = e
+going-offline-not =
+ .label = No
+ .accesskey = o
+going-offline-ask =
+ .label = Ask me
+ .accesskey = a
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/passwordManager.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/passwordManager.ftl
new file mode 100644
index 0000000000..1e2c74db14
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/passwordManager.ftl
@@ -0,0 +1,83 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+saved-logins =
+ .title = Saved Logins
+saved-logins-title = Saved Logins
+window-close =
+ .key = w
+focus-search-primary-shortcut =
+ .key = f
+focus-search-alt-shortcut =
+ .key = k
+copy-provider-url-cmd =
+ .label = Copy URL
+ .accesskey = y
+copy-username-cmd =
+ .label = Copy Username
+ .accesskey = U
+edit-username-cmd =
+ .label = Edit Username
+ .accesskey = d
+copy-password-cmd =
+ .label = Copy Password
+ .accesskey = C
+edit-password-cmd =
+ .label = Edit Password
+ .accesskey = E
+search-filter =
+ .accesskey = S
+ .placeholder = Search
+column-heading-provider =
+ .label = Provider
+column-heading-username =
+ .label = Username
+column-heading-password =
+ .label = Password
+column-heading-time-created =
+ .label = First Used
+column-heading-time-last-used =
+ .label = Last Used
+column-heading-time-password-changed =
+ .label = Last Changed
+column-heading-times-used =
+ .label = Times Used
+remove =
+ .label = Remove
+ .accesskey = R
+import =
+ .label = Import…
+ .accesskey = I
+password-close-button =
+ .label = Close
+ .accesskey = C
+show-passwords =
+ .label = Show Passwords
+ .accesskey = P
+hide-passwords =
+ .label = Hide Passwords
+ .accesskey = P
+logins-description-all = Logins for the following providers are stored on your computer
+logins-description-filtered = The following logins match your search:
+remove-all =
+ .label = Remove All
+ .accesskey = A
+remove-all-shown =
+ .label = Remove All Shown
+ .accesskey = A
+remove-all-passwords-prompt = Are you sure you wish to remove all passwords?
+remove-all-passwords-title = Remove all passwords
+no-master-password-prompt = Are you sure you wish to show your passwords?
+
+## OS Authentication dialog
+
+# This message can be seen by trying to show or copy the passwords.
+password-os-auth-dialog-message = Verify your identity to reveal the saved passwords.
+# This message can be seen by trying to show or copy the passwords.
+# The macOS strings are preceded by the operating system with "Thunderbird is trying to "
+# and includes subtitle of "Enter password for the user "xxx" to allow this." These
+# notes are only valid for English. Please test in your locale.
+password-os-auth-dialog-message-macosx = reveal the saved passwords
+# Don't change this label.
+password-os-auth-dialog-caption = { -brand-full-name }
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/permissions.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/permissions.ftl
new file mode 100644
index 0000000000..810261c805
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/permissions.ftl
@@ -0,0 +1,43 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+permissions-reminder-window2 =
+ .title = Exceptions
+permissions-dialog-title = Exceptions
+permission-preferences-close-window =
+ .key = w
+website-address-label =
+ .value = Address of website:
+ .accesskey = d
+block-button =
+ .label = Block
+ .accesskey = B
+allow-session-button =
+ .label = Allow for Session
+ .accesskey = n
+allow-button =
+ .label = Allow
+ .accesskey = A
+treehead-sitename-label =
+ .label = Site
+treehead-status-label =
+ .label = Status
+remove-site-button =
+ .label = Remove Site
+ .accesskey = R
+remove-all-site-button =
+ .label = Remove All Sites
+ .accesskey = e
+cancel-button =
+ .label = Cancel
+ .accesskey = C
+save-button =
+ .label = Save Changes
+ .accesskey = S
+permission-can-label = Allow
+permission-can-access-first-party-label = Allow first party only
+permission-can-session-label = Allow for Session
+permission-cannot-label = Block
+invalid-uri-message = Please enter a valid hostname
+invalid-uri-title = Invalid Hostname Entered
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/preferences.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/preferences.ftl
new file mode 100644
index 0000000000..b1b1ede212
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/preferences.ftl
@@ -0,0 +1,778 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+close-button =
+ .aria-label = Close
+preferences-doc-title2 = Settings
+category-list =
+ .aria-label = Categories
+pane-general-title = General
+category-general =
+ .tooltiptext = { pane-general-title }
+pane-compose-title = Composition
+category-compose =
+ .tooltiptext = Composition
+pane-privacy-title = Privacy & Security
+category-privacy =
+ .tooltiptext = Privacy & Security
+pane-chat-title = Chat
+category-chat =
+ .tooltiptext = Chat
+pane-calendar-title = Calendar
+category-calendar =
+ .tooltiptext = Calendar
+pane-sync-title = Sync
+category-sync =
+ .tooltiptext = Sync
+general-language-and-appearance-header = Language & Appearance
+general-incoming-mail-header = Incoming Mails
+general-files-and-attachment-header = Files & Attachments
+general-tags-header = Tags
+general-reading-and-display-header = Reading & Display
+general-updates-header = Updates
+general-network-and-diskspace-header = Network & Disk Space
+general-indexing-label = Indexing
+composition-category-header = Composition
+composition-attachments-header = Attachments
+composition-spelling-title = Spelling
+compose-html-style-title = HTML Style
+composition-addressing-header = Addressing
+privacy-main-header = Privacy
+privacy-passwords-header = Passwords
+privacy-junk-header = Junk
+collection-header = { -brand-short-name } Data Collection and Use
+collection-description = We strive to provide you with choices and collect only what we need to provide and improve { -brand-short-name } for everyone. We always ask permission before receiving personal information.
+collection-privacy-notice = Privacy Notice
+collection-health-report-telemetry-disabled = You’re no longer allowing { -vendor-short-name } to capture technical and interaction data. All past data will be deleted within 30 days.
+collection-health-report-telemetry-disabled-link = Learn more
+collection-health-report =
+ .label = Allow { -brand-short-name } to send technical and interaction data to { -vendor-short-name }
+ .accesskey = r
+collection-health-report-link = Learn more
+# This message is displayed above disabled data sharing options in developer builds
+# or builds with no Telemetry support available.
+collection-health-report-disabled = Data reporting is disabled for this build configuration
+collection-backlogged-crash-reports =
+ .label = Allow { -brand-short-name } to send backlogged crash reports on your behalf
+ .accesskey = c
+collection-backlogged-crash-reports-link = Learn more
+privacy-security-header = Security
+privacy-scam-detection-title = Scam Detection
+privacy-anti-virus-title = Antivirus
+privacy-certificates-title = Certificates
+chat-pane-header = Chat
+chat-status-title = Status
+chat-notifications-title = Notifications
+chat-pane-styling-header = Styling
+choose-messenger-language-description = Choose the languages used to display menus, messages, and notifications from { -brand-short-name }.
+manage-messenger-languages-button =
+ .label = Set Alternatives…
+ .accesskey = l
+confirm-messenger-language-change-description = Restart { -brand-short-name } to apply these changes
+confirm-messenger-language-change-button = Apply and Restart
+update-setting-write-failure-title = Error saving Update preferences
+# Variables:
+# $path (String) - Path to the configuration file
+# The newlines between the main text and the line containing the path is
+# intentional so the path is easier to identify.
+update-setting-write-failure-message =
+ { -brand-short-name } encountered an error and didn’t save this change. Note that setting this update preference requires permission to write to the file below. You or a system administrator may be able resolve the error by granting the Users group full control to this file.
+
+ Could not write to file: { $path }
+update-in-progress-title = Update In Progress
+update-in-progress-message = Do you want { -brand-short-name } to continue with this update?
+update-in-progress-ok-button = &Discard
+# Continue is the cancel button so pressing escape or using a platform standard
+# method of closing the UI will not discard the update.
+update-in-progress-cancel-button = &Continue
+account-button = Account Settings
+open-addons-sidebar-button = Add-ons and Themes
+
+## OS Authentication dialog
+
+# This message can be seen by trying to add a Primary Password.
+primary-password-os-auth-dialog-message-win = To create a Primary Password, enter your Windows login credentials. This helps protect the security of your accounts.
+# This message can be seen by trying to add a Primary Password.
+# The macOS strings are preceded by the operating system with "Thunderbird is trying to "
+# and includes subtitle of "Enter password for the user "xxx" to allow this." These
+# notes are only valid for English. Please test in your locale.
+primary-password-os-auth-dialog-message-macosx = create a Primary Password
+# Don't change this label.
+master-password-os-auth-dialog-caption = { -brand-full-name }
+
+## General Tab
+
+focus-search-shortcut =
+ .key = f
+focus-search-shortcut-alt =
+ .key = k
+general-legend = { -brand-short-name } Start Page
+start-page-label =
+ .label = When { -brand-short-name } launches, show the Start Page in the message area
+ .accesskey = W
+location-label =
+ .value = Location:
+ .accesskey = o
+restore-default-label =
+ .label = Restore Default
+ .accesskey = R
+default-search-engine = Default Search Engine
+add-web-search-engine =
+ .label = Add…
+ .accesskey = A
+remove-search-engine =
+ .label = Remove
+ .accesskey = v
+add-opensearch-provider-title = Add OpenSearch Provider
+add-opensearch-provider-text = Enter the URL of the OpenSearch provider to add. Either use the direct URL of the OpenSearch Description file, or a URL where it can be auto-discovered.
+adding-opensearch-provider-failed-title = Adding OpenSearch Provider Failed
+# Variables:
+# $url (String) - URL an OpenSearch provider was requested for.
+adding-opensearch-provider-failed-text = Could not add OpenSearch Provider for { $url }.
+minimize-to-tray-label =
+ .label = When { -brand-short-name } is minimized, move it to the tray
+ .accesskey = m
+new-message-arrival = When new messages arrive:
+mail-play-sound-label =
+ .label =
+ { PLATFORM() ->
+ [macos] Play the following sound file:
+ *[other] Play a sound
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [macos] d
+ *[other] d
+ }
+mail-play-button =
+ .label = Play
+ .accesskey = P
+change-dock-icon = Change preferences for the app icon
+app-icon-options =
+ .label = App Icon Options…
+ .accesskey = n
+notification-settings2 = Alerts and the default sound can be disabled on the Notification pane of System Settings.
+animated-alert-label =
+ .label = Show an alert
+ .accesskey = S
+customize-alert-label =
+ .label = Customize…
+ .accesskey = C
+biff-use-system-alert =
+ .label = Use the system notification
+tray-icon-unread-label =
+ .label = Show a tray icon for unread messages
+ .accesskey = t
+tray-icon-unread-description = Recommended when using small taskbar buttons
+mail-system-sound-label =
+ .label = Default system sound for new mail
+ .accesskey = D
+mail-custom-sound-label =
+ .label = Use the following sound file
+ .accesskey = U
+mail-browse-sound-button =
+ .label = Browse…
+ .accesskey = B
+enable-gloda-search-label =
+ .label = Enable Global Search and Indexer
+ .accesskey = G
+datetime-formatting-legend = Date and Time Formatting
+language-selector-legend = Language
+allow-hw-accel =
+ .label = Use hardware acceleration when available
+ .accesskey = h
+store-type-label =
+ .value = Message Store Type for new accounts:
+ .accesskey = T
+mbox-store-label =
+ .label = File per folder (mbox)
+maildir-store-label =
+ .label = File per message (maildir)
+scrolling-legend = Scrolling
+autoscroll-label =
+ .label = Use autoscrolling
+ .accesskey = U
+smooth-scrolling-label =
+ .label = Use smooth scrolling
+ .accesskey = m
+browsing-gtk-use-non-overlay-scrollbars =
+ .label = Always show scrollbars
+ .accesskey = c
+window-layout-legend = Window Layout
+draw-in-titlebar-label =
+ .label = Hide system window titlebar
+ .accesskey = H
+auto-hide-tabbar-label =
+ .label = Auto hide tab bar
+ .accesskey = A
+auto-hide-tabbar-description = Hide the tab bar when only a single tab is open
+system-integration-legend = System Integration
+always-check-default =
+ .label = Always check to see if { -brand-short-name } is the default mail client on startup
+ .accesskey = A
+check-default-button =
+ .label = Check Now…
+ .accesskey = N
+# Note: This is the search engine name for all the different platforms.
+# Platforms that don't support it should be left blank.
+search-engine-name =
+ { PLATFORM() ->
+ [macos] Spotlight
+ [windows] Windows Search
+ *[other] { "" }
+ }
+search-integration-label =
+ .label = Allow { search-engine-name } to search messages
+ .accesskey = S
+config-editor-button =
+ .label = Config Editor…
+ .accesskey = C
+return-receipts-description = Determine how { -brand-short-name } handles return receipts
+return-receipts-button =
+ .label = Return Receipts…
+ .accesskey = R
+update-app-legend = { -brand-short-name } Updates
+# Variables:
+# $version (String): version of Thunderbird, e.g. 68.0.1
+update-app-version = Version { $version }
+allow-description = Allow { -brand-short-name } to
+automatic-updates-label =
+ .label = Automatically install updates (recommended: improved security)
+ .accesskey = A
+check-updates-label =
+ .label = Check for updates, but let me choose whether to install them
+ .accesskey = C
+update-history-button =
+ .label = Show Update History
+ .accesskey = p
+use-service =
+ .label = Use a background service to install updates
+ .accesskey = b
+cross-user-udpate-warning = This setting will apply to all Windows accounts and { -brand-short-name } profiles using this installation of { -brand-short-name }.
+networking-legend = Connection
+proxy-config-description = Configure how { -brand-short-name } connects to the Internet
+network-settings-button =
+ .label = Settings…
+ .accesskey = S
+offline-legend = Offline
+offline-settings = Configure offline settings
+offline-settings-button =
+ .label = Offline…
+ .accesskey = O
+diskspace-legend = Disk Space
+offline-compact-folder =
+ .label = Compact all folders when it will save over
+ .accesskey = a
+offline-compact-folder-automatically =
+ .label = Ask every time before compacting
+ .accesskey = b
+compact-folder-size =
+ .value = MB in total
+
+## Note: The entities use-cache-before and use-cache-after appear on a single
+## line in preferences as follows:
+## use-cache-before [ textbox for cache size in MB ] use-cache-after
+
+use-cache-before =
+ .value = Use up to
+ .accesskey = U
+use-cache-after = MB of space for the cache
+
+##
+
+smart-cache-label =
+ .label = Override automatic cache management
+ .accesskey = v
+clear-cache-button =
+ .label = Clear Now
+ .accesskey = C
+clear-cache-shutdown-label =
+ .label = Clear cache on shutdown
+ .accesskey = s
+fonts-legend = Fonts & Colours
+default-font-label =
+ .value = Default font:
+ .accesskey = D
+default-size-label =
+ .value = Size:
+ .accesskey = S
+font-options-button =
+ .label = Advanced…
+ .accesskey = A
+color-options-button =
+ .label = Colours…
+ .accesskey = C
+display-width-legend = Plain Text Messages
+# Note : convert-emoticons-label 'Emoticons' are also known as 'Smileys', e.g. :-)
+convert-emoticons-label =
+ .label = Display emoticons as graphics
+ .accesskey = e
+display-text-label = When displaying quoted plain text messages:
+style-label =
+ .value = Style:
+ .accesskey = y
+regular-style-item =
+ .label = Regular
+bold-style-item =
+ .label = Bold
+italic-style-item =
+ .label = Italic
+bold-italic-style-item =
+ .label = Bold Italic
+size-label =
+ .value = Size:
+ .accesskey = z
+regular-size-item =
+ .label = Regular
+bigger-size-item =
+ .label = Bigger
+smaller-size-item =
+ .label = Smaller
+quoted-text-color =
+ .label = Colour:
+ .accesskey = o
+search-handler-table =
+ .placeholder = Filter content types and actions
+type-column-header = Content Type
+action-column-header = Action
+save-to-label =
+ .label = Save files to
+ .accesskey = S
+choose-folder-label =
+ .label =
+ { PLATFORM() ->
+ [macos] Choose…
+ *[other] Browse…
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [macos] C
+ *[other] B
+ }
+always-ask-label =
+ .label = Always ask me where to save files
+ .accesskey = A
+display-tags-text = Tags can be used to categorize and prioritize your messages.
+new-tag-button =
+ .label = New…
+ .accesskey = N
+edit-tag-button =
+ .label = Edit…
+ .accesskey = E
+delete-tag-button =
+ .label = Delete
+ .accesskey = D
+auto-mark-as-read =
+ .label = Automatically mark messages as read
+ .accesskey = A
+mark-read-no-delay =
+ .label = Immediately on display
+ .accesskey = o
+view-attachments-inline =
+ .label = View attachments inline
+ .accesskey = V
+
+## Note: This will concatenate to "After displaying for [___] seconds",
+## using (mark-read-delay) and a number (seconds-label).
+
+mark-read-delay =
+ .label = After displaying for
+ .accesskey = d
+seconds-label = seconds
+
+##
+
+open-msg-label =
+ .value = Open messages in:
+open-msg-tab =
+ .label = A new tab
+ .accesskey = t
+open-msg-window =
+ .label = A new message window
+ .accesskey = n
+open-msg-ex-window =
+ .label = An existing message window
+ .accesskey = e
+close-move-delete =
+ .label = Close message window/tab on move or delete
+ .accesskey = C
+display-name-label =
+ .value = Display name:
+condensed-addresses-label =
+ .label = Show only display name for people in my address book
+ .accesskey = S
+
+## Compose Tab
+
+forward-label =
+ .value = Forward messages:
+ .accesskey = F
+inline-label =
+ .label = Inline
+as-attachment-label =
+ .label = As Attachment
+extension-label =
+ .label = add extension to file name
+ .accesskey = e
+
+## Note: This will concatenate to "Auto Save every [___] minutes",
+## using (auto-save-label) and a number (auto-save-end).
+
+auto-save-label =
+ .label = Auto Save every
+ .accesskey = A
+auto-save-end = minutes
+
+##
+
+warn-on-send-accel-key =
+ .label = Confirm when using keyboard shortcut to send message
+ .accesskey = C
+add-link-previews =
+ .label = Add link previews when pasting URLs
+ .accesskey = i
+spellcheck-label =
+ .label = Check spelling before sending
+ .accesskey = C
+spellcheck-inline-label =
+ .label = Enable spellcheck as you type
+ .accesskey = E
+language-popup-label =
+ .value = Language:
+ .accesskey = L
+download-dictionaries-link = Download More Dictionaries
+font-label =
+ .value = Font:
+ .accesskey = n
+font-size-label =
+ .value = Size:
+ .accesskey = z
+default-colors-label =
+ .label = Use reader’s default colours
+ .accesskey = d
+font-color-label =
+ .value = Text Colour:
+ .accesskey = T
+bg-color-label =
+ .value = Background Colour:
+ .accesskey = B
+restore-html-label =
+ .label = Restore Defaults
+ .accesskey = R
+default-format-label =
+ .label = Use Paragraph format instead of Body Text by default
+ .accesskey = P
+compose-send-format-title = Sending Format
+compose-send-automatic-option =
+ .label = Automatic
+compose-send-automatic-description = If no styling is used in the message, send Plain Text. Otherwise, send HTML with a Plain Text fallback.
+compose-send-both-option =
+ .label = Both HTML and Plain Text
+compose-send-both-description = The recipient’s email application will determine which version to show.
+compose-send-html-option =
+ .label = Only HTML
+compose-send-html-description = Some recipients may not be able to read the message without a Plain Text fallback.
+compose-send-plain-option =
+ .label = Only Plain Text
+compose-send-plain-description = Some styling will be converted into a plain alternative, whilst other composition features will be disabled.
+autocomplete-description = When addressing messages, look for matching entries in:
+ab-label =
+ .label = Local Address Books
+ .accesskey = L
+directories-label =
+ .label = Directory Server:
+ .accesskey = D
+directories-none-label =
+ .none = None
+edit-directories-label =
+ .label = Edit Directories…
+ .accesskey = E
+email-picker-label =
+ .label = Automatically add outgoing e-mail addresses to my:
+ .accesskey = A
+default-directory-label =
+ .value = Default startup directory in the address book window:
+ .accesskey = S
+default-last-label =
+ .none = Last used directory
+attachment-label =
+ .label = Check for missing attachments
+ .accesskey = m
+attachment-options-label =
+ .label = Keywords…
+ .accesskey = K
+enable-cloud-share =
+ .label = Offer to share for files larger than
+cloud-share-size =
+ .value = MB
+add-cloud-account =
+ .label = Add…
+ .accesskey = A
+ .defaultlabel = Add…
+remove-cloud-account =
+ .label = Remove
+ .accesskey = R
+find-cloud-providers =
+ .value = Find more providers…
+cloud-account-description = Add a new Filelink storage service
+
+## Privacy Tab
+
+mail-content = Mail Content
+remote-content-label =
+ .label = Allow remote content in messages
+ .accesskey = m
+exceptions-button =
+ .label = Exceptions…
+ .accesskey = E
+remote-content-info =
+ .value = Learn more about the privacy issues of remote content
+web-content = Web Content
+history-label =
+ .label = Remember websites and links I’ve visited
+ .accesskey = R
+cookies-label =
+ .label = Accept cookies from sites
+ .accesskey = A
+third-party-label =
+ .value = Accept third-party cookies:
+ .accesskey = c
+third-party-always =
+ .label = Always
+third-party-never =
+ .label = Never
+third-party-visited =
+ .label = From visited
+cookies-button =
+ .label = Show Cookies…
+ .accesskey = S
+do-not-track-label =
+ .label = Send websites a “Do Not Track” signal that you don’t want to be tracked
+ .accesskey = n
+dnt-learn-more-button =
+ .value = Learn more
+passwords-description = { -brand-short-name } can remember passwords for all of your accounts.
+passwords-button =
+ .label = Saved Passwords…
+ .accesskey = S
+primary-password-description = A Primary Password protects all your passwords, but you must enter it once per session.
+primary-password-label =
+ .label = Use a Primary Password
+ .accesskey = U
+primary-password-button =
+ .label = Change Primary Password…
+ .accesskey = C
+forms-primary-pw-fips-title = You are currently in FIPS mode. FIPS requires a non-empty Primary Password.
+forms-master-pw-fips-desc = Password Change Failed
+junk-description = Set your default junk mail settings. Account-specific junk mail settings can be configured in Account Settings.
+junk-label =
+ .label = When I mark messages as junk:
+ .accesskey = W
+junk-move-label =
+ .label = Move them to the account’s "Junk" folder
+ .accesskey = o
+junk-delete-label =
+ .label = Delete them
+ .accesskey = D
+junk-read-label =
+ .label = Mark messages determined to be Junk as read
+ .accesskey = M
+junk-log-label =
+ .label = Enable adaptive junk filter logging
+ .accesskey = E
+junk-log-button =
+ .label = Show log
+ .accesskey = S
+reset-junk-button =
+ .label = Reset Training Data
+ .accesskey = R
+phishing-description = { -brand-short-name } can analyze messages for suspected email scams by looking for common techniques used to deceive you.
+phishing-label =
+ .label = Tell me if the message I’m reading is a suspected email scam
+ .accesskey = T
+antivirus-description = { -brand-short-name } can make it easy for antivirus software to analyze incoming mail messages for viruses before they are stored locally.
+antivirus-label =
+ .label = Allow antivirus clients to quarantine individual incoming messages
+ .accesskey = A
+certificate-description = When a server requests my personal certificate:
+certificate-auto =
+ .label = Select one automatically
+ .accesskey = S
+certificate-ask =
+ .label = Ask me every time
+ .accesskey = A
+ocsp-label =
+ .label = Query OCSP responder servers to confirm the current validity of certificates
+ .accesskey = Q
+certificate-button =
+ .label = Manage Certificates…
+ .accesskey = M
+security-devices-button =
+ .label = Security Devices…
+ .accesskey = D
+email-e2ee-header = Email End-To-End Encryption
+account-settings = Account Settings
+email-e2ee-enable-info = Set up email accounts and identities for End-To-End Encryption in Account Settings.
+email-e2ee-automatism = Automatic Use of Encryption
+email-e2ee-automatism-pre =
+ { -brand-short-name } can assist by automatically enabling or disabling encryption while composing an email.
+ Auto enabling/disabling is based on the availability of valid and accepted correspondents’ keys or certificates.
+email-e2ee-auto-on =
+ .label = Automatically enable encryption when possible
+email-e2ee-auto-off =
+ .label = Automatically disable encryption when recipients change and encryption is no longer possible
+email-e2ee-auto-off-notify =
+ .label = Show a notification whenever encryption is disabled automatically
+email-e2ee-automatism-post =
+ Automatic decisions may be overridden by manually enabling or disabling encryption when composing a message.
+ Note: encryption is always automatically enabled when replying to an encrypted message.
+
+## Chat Tab
+
+startup-label =
+ .value = When { -brand-short-name } starts:
+ .accesskey = s
+offline-label =
+ .label = Keep my Chat Accounts offline
+auto-connect-label =
+ .label = Connect my chat accounts automatically
+
+## Note: idle-label is displayed first, then there's a field where the user
+## can enter a number, and itemTime is displayed at the end of the line.
+## The translations of the idle-label and idle-time-label parts don't have
+## to mean the exact same thing as in English; please try instead to
+## translate the whole sentence.
+
+idle-label =
+ .label = Let my contacts know that I am Idle after
+ .accesskey = I
+idle-time-label = minutes of inactivity
+
+##
+
+away-message-label =
+ .label = and set my status to Away with this status message:
+ .accesskey = A
+send-typing-label =
+ .label = Send typing notifications in conversations
+ .accesskey = t
+notification-label = When messages directed at you arrive:
+show-notification-label =
+ .label = Show a notification:
+ .accesskey = c
+notification-all =
+ .label = with sender’s name and message preview
+notification-name =
+ .label = with sender’s name only
+notification-empty =
+ .label = without any info
+notification-type-label =
+ .label =
+ { PLATFORM() ->
+ [macos] Animate dock icon
+ *[other] Flash the taskbar item
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [macos] o
+ *[other] F
+ }
+chat-play-sound-label =
+ .label = Play a sound
+ .accesskey = d
+chat-play-button =
+ .label = Play
+ .accesskey = P
+chat-system-sound-label =
+ .label = Default system sound for new mail
+ .accesskey = D
+chat-custom-sound-label =
+ .label = Use the following sound file
+ .accesskey = U
+chat-browse-sound-button =
+ .label = Browse…
+ .accesskey = B
+theme-label =
+ .value = Theme:
+ .accesskey = T
+style-mail =
+ .label = { -brand-short-name }
+style-bubbles =
+ .label = Bubbles
+style-dark =
+ .label = Dark
+style-paper =
+ .label = Paper Sheets
+style-simple =
+ .label = Simple
+preview-label = Preview:
+no-preview-label = No preview available
+no-preview-description = This theme is not valid or is currently unavailable (disabled add-on, safe-mode, …).
+chat-variant-label =
+ .value = Variant:
+ .accesskey = V
+# This is used to determine the width of the search field in about:preferences,
+# in order to make the entire placeholder string visible
+#
+# Please keep the placeholder string short to avoid truncation.
+#
+# Notice: The value of the `.style` attribute is a CSS string, and the `width`
+# is the name of the CSS property. It is intended only to adjust the element's width.
+# Do not translate.
+search-preferences-input2 =
+ .style = width: 15.4em
+ .placeholder = Find in Settings
+
+## Settings UI Search Results
+
+search-results-header = Search Results
+# `<span data-l10n-name="query"></span>` will be replaced by the search term.
+search-results-empty-message2 =
+ { PLATFORM() ->
+ [windows] Sorry! There are no results in Options for “<span data-l10n-name="query"></span>”.
+ *[other] Sorry! There are no results in Settings for “<span data-l10n-name="query"></span>”.
+ }
+search-results-help-link = Need help? Visit <a data-l10n-name="url">{ -brand-short-name } Support</a>
+
+## Sync Tab
+
+sync-signedout-caption = Take Your Web With You
+sync-signedout-description = Synchronize your accounts, address books, calendars, add-ons, and settings across all your devices.
+# Note: "Sync" represents the Firefox Sync product so it shouldn't be translated.
+sync-signedout-account-signin-btn = Sign in to Sync…
+sync-pane-header = Sync
+# Variables:
+# $userEmail (String) - The email logged into Sync.
+sync-pane-email-not-verified = “{ $userEmail }” is not verified.
+# Variables:
+# $userEmail (String) - The email logged into Sync.
+sync-signedin-login-failure = Please sign in to reconnect “{ $userEmail }”
+sync-pane-resend-verification = Resend verification
+sync-pane-sign-in = Sign in
+sync-pane-remove-account = Remove account
+sync-pane-edit-photo =
+ .title = Change profile picture
+sync-pane-manage-account = Manage account
+sync-pane-sign-out = Sign out…
+sync-pane-device-name-title = Device Name
+sync-pane-change-device-name = Change device name
+sync-pane-cancel = Cancel
+sync-pane-save = Save
+sync-pane-show-synced-header-on = Syncing ON
+sync-pane-show-synced-header-off = Syncing OFF
+sync-pane-sync-now = Sync Now
+sync-panel-sync-now-syncing = Syncing…
+show-synced-list-heading = You are currently syncing these items:
+show-synced-learn-more = Learn more…
+show-synced-item-account = Email Accounts
+show-synced-item-address = Address Books
+show-synced-item-calendar = Calendars
+show-synced-item-identity = Identities
+show-synced-item-passwords = Passwords
+show-synced-change = Change…
+synced-acount-item-server-config = Server configuration
+synced-acount-item-filters = Filters
+synced-acount-item-keys = OpenPGP - S/MIME
+sync-disconnected-text = Synchronize your email accounts, address books, calendars, and identities across all your devices.
+sync-disconnected-turn-on-sync = Turn on Syncing…
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/receipts.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/receipts.ftl
new file mode 100644
index 0000000000..7587de5bc4
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/receipts.ftl
@@ -0,0 +1,39 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+receipts-dialog-window =
+ .title = Return Receipts
+receipts-dialog-title = Return Receipts
+return-receipt-checkbox-control =
+ .label = When sending messages, always request a return receipt
+ .accesskey = W
+receipt-arrive-label = When a receipt arrives:
+receipt-leave-radio-control =
+ .label = Leave it in my Inbox
+ .accesskey = i
+receipt-move-radio-control =
+ .label = Move it to my “Sent” folder
+ .accesskey = m
+receipt-request-label = When I receive a request for a return receipt:
+receipt-return-never-radio-control =
+ .label = Never send a return receipt
+ .accesskey = n
+receipt-return-some-radio-control =
+ .label = Allow return receipts for some messages
+ .accesskey = r
+receipt-not-to-cc-label =
+ .value = If I’m not in the To or Cc of the message:
+ .accesskey = f
+receipt-send-never-label =
+ .label = Never send
+receipt-send-always-label =
+ .label = Always send
+receipt-send-ask-label =
+ .label = Ask me
+sender-outside-domain-label =
+ .value = If the sender is outside my domain:
+ .accesskey = t
+other-cases-text-label =
+ .value = In all other cases:
+ .accesskey = a
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/sync-dialog.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/sync-dialog.ftl
new file mode 100644
index 0000000000..b461f27bc1
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/sync-dialog.ftl
@@ -0,0 +1,11 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+config-sync-dailog-title =
+ .title = Choose what to sync
+sync-dialog =
+ .buttonlabelaccept = Save Changes
+ .buttonaccesskeyaccept = S
+ .buttonlabelextra2 = Disconnect…
+ .buttonaccesskeyextra2 = D
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/system-integration.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/system-integration.ftl
new file mode 100644
index 0000000000..607796004b
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/preferences/system-integration.ftl
@@ -0,0 +1,39 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+system-integration-title =
+ .title = System Integration
+system-integration-dialog-title = System Integration
+system-integration-dialog =
+ .buttonlabelaccept = Set as Default
+ .buttonlabelcancel = Skip Integration
+ .buttonlabelcancel2 = Cancel
+default-client-intro = Use { -brand-short-name } as the default client for:
+unset-default-tooltip = It is not possible to unset { -brand-short-name } as the default client within { -brand-short-name }. To make another application the default you must use its ‘Set as default’ dialog.
+checkbox-email-label =
+ .label = E-Mail
+ .tooltiptext = { unset-default-tooltip }
+checkbox-newsgroups-label =
+ .label = Newsgroups
+ .tooltiptext = { unset-default-tooltip }
+checkbox-feeds-label =
+ .label = Feeds
+ .tooltiptext = { unset-default-tooltip }
+checkbox-calendar-label =
+ .label = Calendar
+ .tooltiptext = { unset-default-tooltip }
+# Note: This is the search engine name for all the different platforms.
+# Platforms that don't support it should be left blank.
+system-search-engine-name =
+ { PLATFORM() ->
+ [macos] Spotlight
+ [windows] Windows Search
+ *[other] { "" }
+ }
+system-search-integration-label =
+ .label = Allow { system-search-engine-name } to search messages
+ .accesskey = S
+check-on-startup-label =
+ .label = Always perform this check when starting { -brand-short-name }
+ .accesskey = A
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/shortcuts.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/shortcuts.ftl
new file mode 100644
index 0000000000..672a161a05
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/shortcuts.ftl
@@ -0,0 +1,113 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## Shortcuts
+
+# Variables:
+# $key (String) - The shortcut key.
+shortcut-key = { $key }
+
+meta-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌘ { $key }
+ *[other] Meta+{ $key }
+ }
+
+ctrl-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌃ { $key }
+ *[other] Ctrl+{ $key }
+ }
+
+shift-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⇧ { $key }
+ *[other] Shift+{ $key }
+ }
+
+alt-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌥ { $key }
+ *[other] Alt+{ $key }
+ }
+
+meta-ctrl-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌃ ⌘ { $key }
+ *[other] Meta+Ctrl+{ $key }
+ }
+
+meta-alt-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌥ ⌘ { $key }
+ *[other] Meta+Alt+{ $key }
+ }
+
+ctrl-alt-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌃ ⌥ { $key }
+ *[other] Ctrl+Alt+{ $key }
+ }
+
+meta-ctrl-alt-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌃ ⌥ ⌘ { $key }
+ *[other] Meta+Ctrl+Alt+{ $key }
+ }
+
+meta-shift-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⇧ ⌘ { $key }
+ *[other] Meta+Shift+{ $key }
+ }
+
+ctrl-shift-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌃ ⇧ { $key }
+ *[other] Ctrl+Shift+{ $key }
+ }
+
+meta-ctrl-shift-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌃ ⇧ ⌘ { $key }
+ *[other] Meta+Ctrl+Shift+{ $key }
+ }
+
+alt-shift-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌥ ⇧ { $key }
+ *[other] Alt+Shift+{ $key }
+ }
+
+meta-shift-alt-shortcut-key2 =
+ { PLATFORM() ->
+ [macos] ⌥ ⇧ ⌘ { $key }
+ *[other] Meta+Alt+Shift+{ $key }
+ }
+
+ctrl-shift-alt-shortcut-key2 =
+ { PLATFORM() ->
+ [macos] ⌃ ⌥ ⇧ { $key }
+ *[other] Ctrl+Alt+Shift+{ $key }
+ }
+
+meta-ctrl-shift-alt-shortcut-key2 =
+ { PLATFORM() ->
+ [macos] ⌃ ⌥ ⇧ ⌘ { $key }
+ *[other] Meta+Ctrl+Alt+Shift+{ $key }
+ }
+
+# Variables:
+# $title (String): The title coming from the original element.
+# $shortcut (String): The shortcut generated from the keystroke combination.
+button-shortcut-string =
+ .title = { $title } ({ $shortcut })
+
+# Variables:
+# $label (String): The text label coming from the original element.
+# $shortcut (String): The shortcut generated from the keystroke combination.
+menuitem-shortcut-string =
+ .label = { $label }
+ .acceltext = { $shortcut }
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/syncAccounts.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/syncAccounts.ftl
new file mode 100644
index 0000000000..9b46df0f79
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/syncAccounts.ftl
@@ -0,0 +1,27 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+# The strings in this file relate to the configuration of Mozilla accounts for sync.
+
+
+## These strings are shown in a desktop notification after the user requests we resend a verification email.
+
+sync-verification-sent-title = Verification Sent
+# Variables:
+# $userEmail (String) - Email address of the account used for sync.
+sync-verification-sent-body = A verification link has been sent to { $userEmail }.
+sync-verification-not-sent-title = Unable to Send Verification
+sync-verification-not-sent-body = We are unable to send a verification mail at this time, please try again later.
+
+## These strings are shown in a confirmation dialog when the user chooses to sign out.
+
+sync-signout-dialog-body = Synced data will remain in your account.
+sync-signout-dialog-button = Sign out
+
+## These strings are shown in a confirmation dialog when the user chooses to stop syncing.
+
+sync-disconnect-dialog-title = Disconnect?
+sync-disconnect-dialog-body = { -brand-product-name } will stop syncing but won’t delete any of your data on this device.
+sync-disconnect-dialog-button = Disconnect
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/treeView.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/treeView.ftl
new file mode 100644
index 0000000000..ef2489b827
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/treeView.ftl
@@ -0,0 +1,53 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## Table
+
+tree-list-view-row-select =
+ .alt = Checkbox to toggle select the current row
+ .title = Select the current row
+tree-list-view-row-deselect =
+ .alt = Checkbox to toggle select the current row
+ .title = Deselect the current row
+tree-list-view-row-delete =
+ .title = Delete the current row
+tree-list-view-row-restore =
+ .title = Restore the current row
+tree-list-view-column-picker =
+ .title = Select columns to display
+tree-list-view-column-picker-restore =
+ .label = Restore column order
+tree-list-view-row-thread-button =
+ .title = This is a threaded message
+tree-list-view-row-ignored-thread = Thread ignored
+tree-list-view-row-ignored-thread-button =
+ .title = This threaded message is ignored
+tree-list-view-row-ignored-subthread = Subthread ignored
+tree-list-view-row-ignored-subthread-button =
+ .title = This subthread is ignored
+tree-list-view-row-watched-thread = Thread watched
+tree-list-view-row-watched-thread-button =
+ .title = This threaded message is watched
+tree-list-view-row-flagged =
+ .alt = Starred message indicator
+ .title = Message starred
+tree-list-view-row-flag =
+ .alt = Starred message indicator
+ .title = Message not starred
+tree-list-view-row-attach =
+ .alt = Attachment indicator
+ .title = Message contains attachments
+tree-list-view-row-spam =
+ .alt = Spam status indicator
+ .title = Message marked as spam
+tree-list-view-row-not-spam =
+ .alt = Spam status indicator
+ .title = Message not marked as spam
+tree-list-view-row-read =
+ .alt = Read status indicator
+ .title = Message read status
+tree-list-view-row-not-read =
+ .alt = Unread status indicator
+ .title = Message unread status
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/troubleshootMode.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/troubleshootMode.ftl
new file mode 100644
index 0000000000..0bf5bd0615
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/troubleshootMode.ftl
@@ -0,0 +1,33 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+troubleshoot-mode-window =
+ .title = { -brand-short-name } Troubleshoot Mode
+ .style = width: 37em;
+troubleshoot-mode-dialog-title = { -brand-short-name } Troubleshoot Mode
+troubleshoot-mode-description = Use { -brand-short-name } troubleshooting mode to diagnose issues. Your add-ons and customizations will be temporarily disabled.
+troubleshoot-mode-description2 = You can make some or all of these changes permanent:
+troubleshoot-mode-disable-addons =
+ .label = Disable all add-ons
+ .accesskey = D
+troubleshoot-mode-reset-toolbars =
+ .label = Reset toolbars and controls
+ .accesskey = R
+troubleshoot-mode-change-and-restart =
+ .label = Make Changes and Restart
+ .accesskey = M
+troubleshoot-mode-continue =
+ .label = Continue in Troubleshoot Mode
+ .accesskey = C
+troubleshoot-mode-quit =
+ .label =
+ { PLATFORM() ->
+ [windows] Exit
+ *[other] Quit
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [windows] x
+ *[other] Q
+ }
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/unifiedToolbar.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/unifiedToolbar.ftl
new file mode 100644
index 0000000000..8bf7d7c9d9
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/unifiedToolbar.ftl
@@ -0,0 +1,100 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+### Unified Toolbar strings
+
+
+## Search bar
+
+search-bar-button =
+ .alt = Search
+search-bar-item =
+ .label = Search:
+search-bar-placeholder = Search…
+# Search bar placeholder with formatted key shortcut hint (platform dependent).
+# The key after the control modifier should match the key from quickSearchCmd.key
+# in messenger.dtd.
+search-bar-placeholder-with-key2 =
+ { PLATFORM() ->
+ [macos] { search-bar-placeholder } <kbd>⌘</kbd> <kbd>K</kbd>
+ *[other] { search-bar-placeholder } <kbd>Ctrl</kbd> + <kbd>K</kbd>
+ }
+
+## Unified toolbar context menu
+
+customize-menu-customize =
+ .label = Customize…
+
+# Unified toolbar get messages button context menu
+
+toolbar-get-all-messages-menuitem =
+ .label = Get All New Messages
+ .accesskey = G
+
+## Unified Toolbar customization
+
+customize-title = Customize Toolbars
+customize-space-tab-mail = Mail
+ .title = Mail
+customize-space-tab-addressbook = Address Book
+ .title = Address Book
+customize-space-tab-calendar = Calendar
+ .title = Calendar
+customize-space-tab-tasks = Tasks
+ .title = Tasks
+customize-space-tab-chat = Chat
+ .title = Chat
+customize-space-tab-settings = Settings
+ .title = Settings
+customize-restore-default = Restore default
+customize-change-appearance = Change appearance…
+customize-button-style-label = Button style:
+customize-button-style-icons-beside-text-option = Icons beside Text
+customize-button-style-icons-above-text-option = Icons above text
+customize-button-style-icons-only-option = Icons only
+customize-button-style-text-only-option = Text only
+customize-cancel = Cancel
+customize-save = Save
+customize-unsaved-changes = Unsaved changes in other spaces
+customize-search-bar =
+ .label = Search toolbar buttons…
+customize-spaces-tabs =
+ .aria-label = Spaces
+customize-main-toolbar-target =
+ .aria-label = Main toolbar
+customize-palette-generic-title = Available for all Spaces
+customize-palette-mail-specific-title = Available for Mail Space only
+customize-palette-addressbook-specific-title = Available for Address Book Space only
+customize-palette-calendar-specific-title = Available for Calendar Space only
+customize-palette-tasks-specific-title = Available for Tasks Space only
+customize-palette-chat-specific-title = Available for Chat Space only
+customize-palette-settings-specific-title = Available for Settings Space only
+customize-palette-extension-specific-title = Available for this Space only
+
+## Unified toolbar customization palette context menu
+
+# Variables:
+# $target (String) - Name of the target the item should be added to.
+customize-palette-add-to =
+ .label = Add to { $target }
+customize-palette-add-everywhere =
+ .label = Add to all toolbars
+
+## Unified toolbar customization target context menu
+
+customize-target-forward =
+ .label = Move forward
+customize-target-backward =
+ .label = Move backward
+customize-target-remove =
+ .label = Remove
+customize-target-remove-everywhere =
+ .label = Remove from all toolbars
+customize-target-add-everywhere =
+ .label = Add to all toolbars
+customize-target-start =
+ .label = Move to the start
+customize-target-end =
+ .label = Move to the end
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/unifiedToolbarItems.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/unifiedToolbarItems.ftl
new file mode 100644
index 0000000000..624bd37988
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/unifiedToolbarItems.ftl
@@ -0,0 +1,144 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+### Unified Toolbar Item Label strings
+
+spacer-label = Flexible Space
+search-bar-label = Search
+toolbar-write-message-label = Write
+toolbar-write-message =
+ .title = Create a new message
+toolbar-move-to-label = Move to
+toolbar-move-to =
+ .title = Move selected message
+toolbar-unifinder-label = Find Events
+toolbar-unifinder =
+ .title = Toggle the find events pane
+toolbar-folder-location-label = Folder Location
+toolbar-folder-location =
+ .title = Switch to folder
+toolbar-edit-event-label = Edit
+toolbar-edit-event =
+ .title = Edit selected event or task
+toolbar-get-messages-label = Get Messages
+toolbar-get-messages =
+ .title = Fetch new messages for all accounts
+toolbar-reply-label = Reply
+toolbar-reply =
+ .title = Reply to the message
+toolbar-reply-all-label = Reply All
+toolbar-reply-all =
+ .title = Reply to sender and all recipients
+toolbar-reply-to-list-label = Reply to List
+toolbar-reply-to-list =
+ .title = Reply to mailing list
+toolbar-redirect-label = Redirect
+toolbar-redirect =
+ .title = Redirect selected message
+toolbar-archive-label = Archive
+toolbar-archive =
+ .title = Archive selected messages
+toolbar-conversation-label = Conversation
+toolbar-conversation =
+ .title = Show conversation of selected message
+toolbar-previous-unread-label = Previous Unread
+toolbar-previous-unread =
+ .title = Move to the previous unread message
+toolbar-previous-label = Previous
+toolbar-previous =
+ .title = Move to the previous message
+toolbar-next-unread-label = Next Unread
+toolbar-next-unread =
+ .title = Move to the next unread message
+toolbar-next-label = Next
+toolbar-next =
+ .title = Move to the next message
+toolbar-junk-label = Junk
+toolbar-junk =
+ .title = Mark the selected messages as junk
+toolbar-delete-label = Delete
+toolbar-delete-title =
+ .title = Delete the selected messages
+toolbar-undelete-label = Undelete
+toolbar-undelete =
+ .title = Undelete the selected messages
+toolbar-compact-label = Compact
+toolbar-compact =
+ .title = Remove deleted messages from selected folder
+toolbar-add-as-event-label = Add as event
+toolbar-add-as-event =
+ .title = Extract calendaring information from the message and add it to your calendar as an event
+toolbar-add-as-task-label = Add as task
+toolbar-add-as-task =
+ .title = Extract calendaring information from the message and add it to your calendar as a task
+toolbar-tag-message-label = Tag
+toolbar-tag-message =
+ .title = Tag messages
+toolbar-forward-inline-label = Forward
+toolbar-forward-inline =
+ .title = Forward selected message as inline text
+toolbar-forward-attachment-label = Forward As Attachment
+toolbar-forward-attachment =
+ .title = Forward selected message as an attachment
+toolbar-mark-as-label = Mark
+toolbar-mark-as =
+ .title = Mark messages
+toolbar-view-picker-label = View
+toolbar-view-picker =
+ .title = Customize view of current folder
+toolbar-address-book-label = Address Book
+toolbar-address-book =
+ .title = Go to the address book
+toolbar-chat-label = Chat
+toolbar-chat =
+ .title = Show the Chat tab
+toolbar-add-ons-and-themes-label = Add-ons and Themes
+toolbar-add-ons-and-themes =
+ .title = Manage your add-ons
+toolbar-calendar-label = Calendar
+toolbar-calendar =
+ .title = Switch to the calendar tab
+toolbar-tasks-label = Tasks
+toolbar-tasks =
+ .title = Switch to the tasks tab
+toolbar-mail-label = Mail
+toolbar-mail =
+ .title = Switch to the mail tab
+toolbar-print-label = Print
+toolbar-print =
+ .title = Print this message
+toolbar-quick-filter-bar-label = Quick Filter
+toolbar-quick-filter-bar =
+ .title = Filter messages
+toolbar-synchronize-label = Synchronize
+toolbar-synchronize =
+ .title = Reload calendars and synchronize changes
+toolbar-delete-event-label = Delete
+toolbar-delete-event =
+ .title = Delete selected events or tasks
+toolbar-go-to-today-label = Go to Today
+toolbar-go-to-today =
+ .title = Go to Today
+toolbar-print-event-label = Print
+toolbar-print-event =
+ .title = Print events or tasks
+toolbar-new-event-label = Event
+toolbar-new-event =
+ .title = Create a new event
+toolbar-new-task-label = Task
+toolbar-new-task =
+ .title = Create a new task
+toolbar-go-back-label = Back
+toolbar-go-back =
+ .title = Go back one message
+toolbar-go-forward-label = Forward
+toolbar-go-forward =
+ .title = Go forward one message
+toolbar-stop-label = Stop
+toolbar-stop =
+ .title = Stop the current transfer
+toolbar-throbber-label = Activity Indicator
+toolbar-throbber =
+ .title = Activity Indicator
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/messenger/viewSource.ftl b/thunderbird-l10n/en-CA/localization/en-CA/messenger/viewSource.ftl
new file mode 100644
index 0000000000..51e110d48c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/messenger/viewSource.ftl
@@ -0,0 +1,19 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+context-text-action-find =
+ .label = Find
+ .accesskey = F
+
+context-text-action-find-again =
+ .label = Find Again
+ .accesskey = g
+
+text-action-find =
+ .label = Find
+ .accesskey = F
+
+text-action-find-again =
+ .label = Find Again
+ .accesskey = g
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/security/certificates/certManager.ftl b/thunderbird-l10n/en-CA/localization/en-CA/security/certificates/certManager.ftl
new file mode 100644
index 0000000000..5cdc64e8e5
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/security/certificates/certManager.ftl
@@ -0,0 +1,182 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+certmgr-title =
+ .title = Certificate Manager
+certmgr-tab-mine =
+ .label = Your Certificates
+certmgr-tab-remembered =
+ .label = Authentication Decisions
+certmgr-tab-people =
+ .label = People
+certmgr-tab-servers =
+ .label = Servers
+certmgr-tab-ca =
+ .label = Authorities
+certmgr-mine = You have certificates from these organizations that identify you
+certmgr-remembered = These certificates are used to identify you to websites
+certmgr-people = You have certificates on file that identify these people
+certmgr-server = These entries identify server certificate error exceptions
+certmgr-ca = You have certificates on file that identify these certificate authorities
+certmgr-edit-ca-cert2 =
+ .title = Edit CA certificate trust settings
+ .style = min-width: 48em;
+certmgr-edit-cert-edit-trust = Edit trust settings:
+certmgr-edit-cert-trust-ssl =
+ .label = This certificate can identify websites.
+certmgr-edit-cert-trust-email =
+ .label = This certificate can identify mail users.
+certmgr-delete-cert2 =
+ .title = Delete Certificate
+ .style = min-width: 48em; min-height: 24em;
+certmgr-cert-host =
+ .label = Host
+certmgr-cert-name =
+ .label = Certificate Name
+certmgr-cert-server =
+ .label = Server
+certmgr-token-name =
+ .label = Security Device
+certmgr-begins-label =
+ .label = Begins On
+certmgr-expires-label =
+ .label = Expires On
+certmgr-email =
+ .label = Email Address
+certmgr-serial =
+ .label = Serial Number
+certmgr-fingerprint-sha-256 =
+ .label = SHA-256 Fingerprint
+certmgr-view =
+ .label = View…
+ .accesskey = V
+certmgr-edit =
+ .label = Edit Trust…
+ .accesskey = E
+certmgr-export =
+ .label = Export…
+ .accesskey = x
+certmgr-delete =
+ .label = Delete…
+ .accesskey = D
+certmgr-delete-builtin =
+ .label = Delete or Distrust…
+ .accesskey = D
+certmgr-backup =
+ .label = Backup…
+ .accesskey = B
+certmgr-backup-all =
+ .label = Backup All…
+ .accesskey = k
+certmgr-restore =
+ .label = Import…
+ .accesskey = m
+certmgr-add-exception =
+ .label = Add Exception…
+ .accesskey = x
+exception-mgr =
+ .title = Add Security Exception
+exception-mgr-extra-button =
+ .label = Confirm Security Exception
+ .accesskey = C
+exception-mgr-supplemental-warning = Legitimate banks, stores, and other public sites will not ask you to do this.
+exception-mgr-cert-location-url =
+ .value = Location:
+exception-mgr-cert-location-download =
+ .label = Get Certificate
+ .accesskey = G
+exception-mgr-cert-status-view-cert =
+ .label = View…
+ .accesskey = V
+exception-mgr-permanent =
+ .label = Permanently store this exception
+ .accesskey = P
+pk11-bad-password = The password entered was incorrect.
+pkcs12-decode-err = Failed to decode the file. Either it is not in PKCS #12 format, has been corrupted, or the password you entered was incorrect.
+pkcs12-unknown-err-restore = Failed to restore the PKCS #12 file for unknown reasons.
+pkcs12-unknown-err-backup = Failed to create the PKCS #12 backup file for unknown reasons.
+pkcs12-unknown-err = The PKCS #12 operation failed for unknown reasons.
+pkcs12-info-no-smartcard-backup = It is not possible to back up certificates from a hardware security device such as a smart card.
+pkcs12-dup-data = The certificate and private key already exist on the security device.
+
+## PKCS#12 file dialogs
+
+choose-p12-backup-file-dialog = File Name to Backup
+file-browse-pkcs12-spec = PKCS12 Files
+choose-p12-restore-file-dialog = Certificate File to Import
+
+## Import certificate(s) file dialog
+
+file-browse-certificate-spec = Certificate Files
+import-ca-certs-prompt = Select File containing CA certificate(s) to import
+import-email-cert-prompt = Select File containing somebody’s Email certificate to import
+
+## For editing certificates trust
+
+# Variables:
+# $certName: the name of certificate
+edit-trust-ca = The certificate “{ $certName }” represents a Certificate Authority.
+
+## For Deleting Certificates
+
+delete-user-cert-title =
+ .title = Delete your Certificates
+delete-user-cert-confirm = Are you sure you want to delete these certificates?
+delete-user-cert-impact = If you delete one of your own certificates, you can no longer use it to identify yourself.
+delete-ssl-override-title =
+ .title = Delete Server Certificate Exception
+delete-ssl-override-confirm = Are you sure you want to delete this server exception?
+delete-ssl-override-impact = If you delete a server exception, you restore the usual security checks for that server and require it uses a valid certificate.
+delete-ca-cert-title =
+ .title = Delete or Distrust CA Certificates
+delete-ca-cert-confirm = You have asked to delete these CA certificates. For built-in certificates all trust will be removed, which has the same effect. Are you sure you want to delete or distrust?
+delete-ca-cert-impact = If you delete or distrust a certificate authority (CA) certificate, this application will no longer trust any certificates issued by that CA.
+delete-email-cert-title =
+ .title = Delete Email Certificates
+delete-email-cert-confirm = Are you sure you want to delete these people’s email certificates?
+delete-email-cert-impact = If you delete a person’s email certificate, you will no longer be able to send encrypted email to that person.
+# Used for semi-uniquely representing a cert.
+#
+# Variables:
+# $serialNumber : the serial number of the cert in AA:BB:CC hex format.
+cert-with-serial =
+ .value = Certificate with serial number: { $serialNumber }
+# Used to indicate that the user chose not to send a client authentication certificate to a server that requested one in a TLS handshake.
+send-no-client-certificate = Send no client certificate
+# Used when no cert is stored for an override
+no-cert-stored-for-override = (Not Stored)
+# When a certificate is unavailable (for example, it has been deleted or the token it exists on has been removed).
+certificate-not-available = (Unavailable)
+
+## Used to show whether an override is temporary or permanent
+
+permanent-override = Permanent
+temporary-override = Temporary
+
+## Add Security Exception dialog
+
+add-exception-branded-warning = You are about to override how { -brand-short-name } identifies this site.
+add-exception-invalid-header = This site attempts to identify itself with invalid information.
+add-exception-domain-mismatch-short = Wrong Site
+add-exception-domain-mismatch-long = The certificate belongs to a different site, which could mean that someone is trying to impersonate this site.
+add-exception-expired-short = Outdated Information
+add-exception-expired-long = The certificate is not currently valid. It may have been stolen or lost, and could be used by someone to impersonate this site.
+add-exception-unverified-or-bad-signature-short = Unknown Identity
+add-exception-unverified-or-bad-signature-long = The certificate is not trusted because it hasn’t been verified as issued by a trusted authority using a secure signature.
+add-exception-valid-short = Valid Certificate
+add-exception-valid-long = This site provides valid, verified identification. There is no need to add an exception.
+add-exception-checking-short = Checking Information
+add-exception-checking-long = Attempting to identify this site…
+add-exception-no-cert-short = No Information Available
+add-exception-no-cert-long = Unable to obtain identification status for this site.
+
+## Certificate export "Save as" and error dialogs
+
+save-cert-as = Save Certificate To File
+cert-format-base64 = X.509 Certificate (PEM)
+cert-format-base64-chain = X.509 Certificate with chain (PEM)
+cert-format-der = X.509 Certificate (DER)
+cert-format-pkcs7 = X.509 Certificate (PKCS#7)
+cert-format-pkcs7-chain = X.509 Certificate with chain (PKCS#7)
+write-file-failure = File Error
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/security/certificates/deviceManager.ftl b/thunderbird-l10n/en-CA/localization/en-CA/security/certificates/deviceManager.ftl
new file mode 100644
index 0000000000..def53c8623
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/security/certificates/deviceManager.ftl
@@ -0,0 +1,133 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## Strings used for device manager
+
+devmgr-window =
+ .title = Device Manager
+ .style = min-width: 67em; min-height: 32em;
+
+devmgr-devlist =
+ .label = Security Modules and Devices
+
+devmgr-header-details =
+ .label = Details
+
+devmgr-header-value =
+ .label = Value
+
+devmgr-button-login =
+ .label = Log In
+ .accesskey = n
+
+devmgr-button-logout =
+ .label = Log Out
+ .accesskey = O
+
+devmgr-button-changepw =
+ .label = Change Password
+ .accesskey = P
+
+devmgr-button-load =
+ .label = Load
+ .accesskey = L
+
+devmgr-button-unload =
+ .label = Unload
+ .accesskey = U
+
+devmgr-button-enable-fips =
+ .label = Enable FIPS
+ .accesskey = F
+
+devmgr-button-disable-fips =
+ .label = Disable FIPS
+ .accesskey = F
+
+## Strings used for load device
+
+load-device =
+ .title = Load PKCS#11 Device Driver
+
+load-device-info = Enter the information for the module you want to add.
+
+load-device-modname =
+ .value = Module Name
+ .accesskey = M
+
+load-device-modname-default =
+ .value = New PKCS#11 Module
+
+load-device-filename =
+ .value = Module filename
+ .accesskey = f
+
+load-device-browse =
+ .label = Browse…
+ .accesskey = B
+
+## Token Manager
+
+devinfo-status =
+ .label = Status
+
+devinfo-status-disabled =
+ .label = Disabled
+
+devinfo-status-not-present =
+ .label = Not Present
+
+devinfo-status-uninitialized =
+ .label = Uninitialized
+
+devinfo-status-not-logged-in =
+ .label = Not Signed In
+
+devinfo-status-logged-in =
+ .label = Signed In
+
+devinfo-status-ready =
+ .label = Ready
+
+devinfo-desc =
+ .label = Description
+
+devinfo-man-id =
+ .label = Manufacturer
+
+devinfo-hwversion =
+ .label = HW Version
+devinfo-fwversion =
+ .label = FW Version
+
+devinfo-modname =
+ .label = Module
+
+devinfo-modpath =
+ .label = Path
+
+login-failed = Failed to Sign in
+
+devinfo-label =
+ .label = Label
+
+devinfo-serialnum =
+ .label = Serial Number
+
+fips-nonempty-primary-password-required = FIPS mode requires that you have a Primary Password set for each security device. Please set the password before trying to enable FIPS mode.
+unable-to-toggle-fips = Unable to change the FIPS mode for the security device. It is recommended that you exit and restart this application.
+load-pk11-module-file-picker-title = Choose a PKCS#11 device driver to load
+
+# Load Module Dialog
+load-module-help-empty-module-name =
+ .value = The module name cannot be empty.
+
+# Do not translate 'Root Certs'
+load-module-help-root-certs-module-name =
+ .value = “Root Certs” is reserved and cannot be used as the module name.
+
+add-module-failure = Unable to add module
+del-module-warning = Are you sure you want to delete this security module?
+del-module-error = Unable to delete module
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/security/pippki/pippki.ftl b/thunderbird-l10n/en-CA/localization/en-CA/security/pippki/pippki.ftl
new file mode 100644
index 0000000000..a46fb6c57c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/security/pippki/pippki.ftl
@@ -0,0 +1,106 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+password-quality-meter = Password quality meter
+
+## Change Password dialog
+
+change-device-password-window =
+ .title = Change Password
+# Variables:
+# $tokenName (String) - Security device of the change password dialog
+change-password-token = Security Device: { $tokenName }
+change-password-old = Current password:
+change-password-new = New password:
+change-password-reenter = New password (again):
+pippki-failed-pw-change = Unable to change password.
+pippki-incorrect-pw = You did not enter the correct current password. Please try again.
+pippki-pw-change-ok = Password successfully changed.
+pippki-pw-empty-warning = Your stored passwords and private keys will not be protected.
+pippki-pw-erased-ok = You have deleted your password. { pippki-pw-empty-warning }
+pippki-pw-not-wanted = Warning! You have decided not to use a password. { pippki-pw-empty-warning }
+pippki-pw-change2empty-in-fips-mode = You are currently in FIPS mode. FIPS requires a non-empty password.
+
+## Reset Primary Password dialog
+
+reset-primary-password-window2 =
+ .title = Reset Primary Password
+ .style = min-width: 40em
+reset-password-button-label =
+ .label = Reset
+reset-primary-password-text = If you reset your Primary Password, all your stored web and e-mail passwords, personal certificates, and private keys will be forgotten. Are you sure you want to reset your Primary Password?
+pippki-reset-password-confirmation-title = Reset Primary Password
+pippki-reset-password-confirmation-message = Your Primary Password has been reset.
+
+## Downloading cert dialog
+
+download-cert-window2 =
+ .title = Downloading Certificate
+ .style = min-width: 46em
+download-cert-message = You have been asked to trust a new Certificate Authority (CA).
+download-cert-trust-ssl =
+ .label = Trust this CA to identify websites.
+download-cert-trust-email =
+ .label = Trust this CA to identify email users.
+download-cert-message-desc = Before trusting this CA for any purpose, you should examine its certificate and its policy and procedures (if available).
+download-cert-view-cert =
+ .label = View
+download-cert-view-text = Examine CA certificate
+
+## Client Authorization Ask dialog
+
+
+## Client Authentication Ask dialog
+
+client-auth-window =
+ .title = User Identification Request
+client-auth-site-description = This site has requested that you identify yourself with a certificate:
+client-auth-choose-cert = Choose a certificate to present as identification:
+client-auth-send-no-certificate =
+ .label = Don’t send a certificate
+# Variables:
+# $hostname (String) - The domain name of the site requesting the client authentication certificate
+client-auth-site-identification = “{ $hostname }” has requested that you identify yourself with a certificate:
+client-auth-cert-details = Details of selected certificate:
+# Variables:
+# $issuedTo (String) - The subject common name of the currently-selected client authentication certificate
+client-auth-cert-details-issued-to = Issued to: { $issuedTo }
+# Variables:
+# $serialNumber (String) - The serial number of the certificate (hexadecimal of the form "AA:BB:...")
+client-auth-cert-details-serial-number = Serial number: { $serialNumber }
+# Variables:
+# $notBefore (String) - The date before which the certificate is not valid (e.g. Apr 21, 2023, 1:47:53 PM UTC)
+# $notAfter (String) - The date after which the certificate is not valid
+client-auth-cert-details-validity-period = Valid from { $notBefore } to { $notAfter }
+# Variables:
+# $keyUsages (String) - A list of already-localized key usages for which the certificate may be used
+client-auth-cert-details-key-usages = Key Usages: { $keyUsages }
+# Variables:
+# $emailAddresses (String) - A list of email addresses present in the certificate
+client-auth-cert-details-email-addresses = Email addresses: { $emailAddresses }
+# Variables:
+# $issuedBy (String) - The issuer common name of the certificate
+client-auth-cert-details-issued-by = Issued by: { $issuedBy }
+# Variables:
+# $storedOn (String) - The name of the token holding the certificate (for example, "OS Client Cert Token (Modern)")
+client-auth-cert-details-stored-on = Stored on: { $storedOn }
+client-auth-cert-remember-box =
+ .label = Remember this decision
+
+## Set password (p12) dialog
+
+set-password-window =
+ .title = Choose a Certificate Backup Password
+set-password-message = The certificate backup password you set here protects the backup file that you are about to create. You must set this password to proceed with the backup.
+set-password-backup-pw =
+ .value = Certificate backup password:
+set-password-repeat-backup-pw =
+ .value = Certificate backup password (again):
+set-password-reminder = Important: If you forget your certificate backup password, you will not be able to restore this backup later. Please record it in a safe location.
+
+## Protected authentication alert
+
+# Variables:
+# $tokenName (String) - The name of the token to authenticate to (for example, "OS Client Cert Token (Modern)")
+protected-auth-alert = Please authenticate to the token “{ $tokenName }”. How to do so depends on the token (for example, using a fingerprint reader or entering a code with a keypad).
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/services/accounts.ftl b/thunderbird-l10n/en-CA/localization/en-CA/services/accounts.ftl
new file mode 100644
index 0000000000..cda566e024
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/services/accounts.ftl
@@ -0,0 +1,8 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Variables:
+# $user (String): the user name (e.g. "Ed")
+# $system (String): the operating system (e.g. "Android")
+account-client-name = { $user }’s { -brand-short-name } on { $system }
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutAbout.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutAbout.ftl
new file mode 100644
index 0000000000..ce2a311736
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutAbout.ftl
@@ -0,0 +1,9 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+about-about-title = About About
+about-about-note =
+ This is a list of “about” pages for your convenience.<br/>
+ Some of them might be confusing. Some are for diagnostic purposes only.<br/>
+ And some are omitted because they require query strings.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutAddons.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutAddons.ftl
new file mode 100644
index 0000000000..2c20c8e668
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutAddons.ftl
@@ -0,0 +1,498 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+addons-page-title = Add-ons Manager
+search-header =
+ .placeholder = Search addons.mozilla.org
+ .searchbuttonlabel = Search
+
+## Variables
+## $domain - Domain name where add-ons are available (e.g. addons.mozilla.org)
+
+list-empty-get-extensions-message = Get extensions and themes on <a data-l10n-name="get-extensions">{ $domain }</a>
+list-empty-get-dictionaries-message = Get dictionaries on <a data-l10n-name="get-extensions">{ $domain }</a>
+list-empty-get-language-packs-message = Get language packs on <a data-l10n-name="get-extensions">{ $domain }</a>
+
+##
+
+list-empty-installed =
+ .value = You don’t have any add-ons of this type installed
+list-empty-available-updates =
+ .value = No updates found
+list-empty-recent-updates =
+ .value = You haven’t recently updated any add-ons
+list-empty-find-updates =
+ .label = Check For Updates
+list-empty-button =
+ .label = Learn more about add-ons
+help-button = Add-ons Support
+sidebar-help-button-title =
+ .title = Add-ons Support
+addons-settings-button = { -brand-short-name } Settings
+sidebar-settings-button-title =
+ .title = { -brand-short-name } Settings
+show-unsigned-extensions-button =
+ .label = Some extensions could not be verified
+show-all-extensions-button =
+ .label = Show all extensions
+detail-version =
+ .label = Version
+detail-last-updated =
+ .label = Last Updated
+addon-detail-description-expand = Show more
+addon-detail-description-collapse = Show less
+detail-contributions-description = The developer of this add-on asks that you help support its continued development by making a small contribution.
+detail-contributions-button = Contribute
+ .title = Contribute to the development of this add-on
+ .accesskey = C
+detail-update-type =
+ .value = Automatic Updates
+detail-update-default =
+ .label = Default
+ .tooltiptext = Automatically install updates only if that’s the default
+detail-update-automatic =
+ .label = On
+ .tooltiptext = Automatically install updates
+detail-update-manual =
+ .label = Off
+ .tooltiptext = Don’t automatically install updates
+# Used as a description for the option to allow or block an add-on in private windows.
+detail-private-browsing-label = Run in Private Windows
+# Some add-ons may elect to not run in private windows by setting incognito: not_allowed in the manifest. This
+# cannot be overridden by the user.
+detail-private-disallowed-label = Not Allowed in Private Windows
+detail-private-disallowed-description2 = This extension does not run while private browsing. <a data-l10n-name="learn-more">Learn more</a>
+# Some special add-ons are privileged, run in private windows automatically, and this permission can't be revoked
+detail-private-required-label = Requires Access to Private Windows
+detail-private-required-description2 = This extension has access to your online activities while private browsing. <a data-l10n-name="learn-more">Learn more</a>
+detail-private-browsing-on =
+ .label = Allow
+ .tooltiptext = Enable in Private Browsing
+detail-private-browsing-off =
+ .label = Don’t Allow
+ .tooltiptext = Disable in Private Browsing
+detail-home =
+ .label = Homepage
+detail-home-value =
+ .value = { detail-home.label }
+detail-repository =
+ .label = Add-on Profile
+detail-repository-value =
+ .value = { detail-repository.label }
+detail-check-for-updates =
+ .label = Check for Updates
+ .accesskey = U
+ .tooltiptext = Check for updates for this add-on
+detail-show-preferences =
+ .label =
+ { PLATFORM() ->
+ [windows] Options
+ *[other] Preferences
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [windows] O
+ *[other] P
+ }
+ .tooltiptext =
+ { PLATFORM() ->
+ [windows] Change this add-on’s options
+ *[other] Change this add-on’s preferences
+ }
+detail-rating =
+ .value = Rating
+addon-restart-now =
+ .label = Restart now
+disabled-unsigned-heading =
+ .value = Some add-ons have been disabled
+disabled-unsigned-description = The following add-ons have not been verified for use in { -brand-short-name }. You can <label data-l10n-name="find-addons">find replacements</label> or ask the developer to get them verified.
+disabled-unsigned-learn-more = Learn more about our efforts to help keep you safe online.
+disabled-unsigned-devinfo = Developers interested in getting their add-ons verified can continue by reading our <label data-l10n-name="learn-more">manual</label>.
+plugin-deprecation-description = Missing something? Some plugins are no longer supported by { -brand-short-name }. <label data-l10n-name="learn-more">Learn More.</label>
+legacy-warning-show-legacy = Show legacy extensions
+legacy-extensions =
+ .value = Legacy Extensions
+legacy-extensions-description = These extensions do not meet current { -brand-short-name } standards so they have been deactivated. <label data-l10n-name="legacy-learn-more">Learn about the changes to add-ons</label>
+private-browsing-description2 =
+ { -brand-short-name } is changing how extensions work in private browsing. Any new extensions you add to
+ { -brand-short-name } won’t run by default in Private Windows. Unless you allow it in settings, the
+ extension won’t work while private browsing, and won’t have access to your online activities
+ there. We’ve made this change to keep your private browsing private.
+ <label data-l10n-name="private-browsing-learn-more">Learn how to manage extension settings</label>
+addon-category-discover = Recommendations
+addon-category-discover-title =
+ .title = Recommendations
+addon-category-extension = Extensions
+addon-category-extension-title =
+ .title = Extensions
+addon-category-theme = Themes
+addon-category-theme-title =
+ .title = Themes
+addon-category-plugin = Plugins
+addon-category-plugin-title =
+ .title = Plugins
+addon-category-dictionary = Dictionaries
+addon-category-dictionary-title =
+ .title = Dictionaries
+addon-category-locale = Languages
+addon-category-locale-title =
+ .title = Languages
+addon-category-available-updates = Available Updates
+addon-category-available-updates-title =
+ .title = Available Updates
+addon-category-recent-updates = Recent Updates
+addon-category-recent-updates-title =
+ .title = Recent Updates
+addon-category-sitepermission = Site Permissions
+addon-category-sitepermission-title =
+ .title = Site Permissions
+# String displayed in about:addons in the Site Permissions section
+# Variables:
+# $host (string) - DNS host name for which the webextension enables permissions
+addon-sitepermission-host = Site Permissions for { $host }
+
+## These are global warnings
+
+extensions-warning-safe-mode = All add-ons have been disabled by safe mode.
+extensions-warning-check-compatibility = Add-on compatibility checking is disabled. You may have incompatible add-ons.
+extensions-warning-safe-mode2 =
+ .message = All add-ons have been disabled by safe mode.
+extensions-warning-check-compatibility2 =
+ .message = Add-on compatibility checking is disabled. You may have incompatible add-ons.
+extensions-warning-check-compatibility-button = Enable
+ .title = Enable add-on compatibility checking
+extensions-warning-update-security = Add-on update security checking is disabled. You may be compromised by updates.
+extensions-warning-update-security2 =
+ .message = Add-on update security checking is disabled. You may be compromised by updates.
+extensions-warning-update-security-button = Enable
+ .title = Enable add-on update security checking
+extensions-warning-imported-addons2 =
+ .message = Please finalize the installation of extensions that were imported to { -brand-short-name }.
+extensions-warning-imported-addons-button = Install Extensions
+
+## Strings connected to add-on updates
+
+addon-updates-check-for-updates = Check for Updates
+ .accesskey = C
+addon-updates-view-updates = View Recent Updates
+ .accesskey = V
+
+# This menu item is a checkbox that toggles the default global behavior for
+# add-on update checking.
+
+addon-updates-update-addons-automatically = Update Add-ons Automatically
+ .accesskey = A
+
+## Specific add-ons can have custom update checking behaviors ("Manually",
+## "Automatically", "Use default global behavior"). These menu items reset the
+## update checking behavior for all add-ons to the default global behavior
+## (which itself is either "Automatically" or "Manually", controlled by the
+## extensions-updates-update-addons-automatically.label menu item).
+
+addon-updates-reset-updates-to-automatic = Reset All Add-ons to Update Automatically
+ .accesskey = R
+addon-updates-reset-updates-to-manual = Reset All Add-ons to Update Manually
+ .accesskey = R
+
+## Status messages displayed when updating add-ons
+
+addon-updates-updating = Updating add-ons
+addon-updates-installed = Your add-ons have been updated.
+addon-updates-none-found = No updates found
+addon-updates-manual-updates-found = View Available Updates
+
+## Add-on install/debug strings for page options menu
+
+addon-install-from-file = Install Add-on From File…
+ .accesskey = I
+addon-install-from-file-dialog-title = Select add-on to install
+addon-install-from-file-filter-name = Add-ons
+addon-open-about-debugging = Debug Add-ons
+ .accesskey = b
+
+## Extension shortcut management
+
+# This is displayed in the page options menu
+addon-manage-extensions-shortcuts = Manage Extension Shortcuts
+ .accesskey = S
+shortcuts-no-addons = You don’t have any extensions enabled.
+shortcuts-no-commands = The following extensions do not have shortcuts:
+shortcuts-input =
+ .placeholder = Type a shortcut
+shortcuts-browserAction2 = Activate toolbar button
+shortcuts-pageAction = Activate page action
+shortcuts-sidebarAction = Toggle the sidebar
+shortcuts-modifier-mac = Include Ctrl, Alt, or ⌘
+shortcuts-modifier-other = Include Ctrl or Alt
+shortcuts-invalid = Invalid combination
+shortcuts-letter = Type a letter
+shortcuts-system = Can’t override a { -brand-short-name } shortcut
+# String displayed in warning label when there is a duplicate shortcut
+shortcuts-duplicate = Duplicate shortcut
+# String displayed when a keyboard shortcut is already assigned to more than one add-on
+# Variables:
+# $shortcut (string) - Shortcut string for the add-on
+shortcuts-duplicate-warning-message = { $shortcut } is being used as a shortcut in more than one case. Duplicate shortcuts may cause unexpected behaviour.
+# String displayed when a keyboard shortcut is already assigned to more than one add-on
+# Variables:
+# $shortcut (string) - Shortcut string for the add-on
+shortcuts-duplicate-warning-message2 =
+ .message = { $shortcut } is being used as a shortcut in more than one case. Duplicate shortcuts may cause unexpected behaviour.
+# String displayed when a keyboard shortcut is already used by another add-on
+# Variables:
+# $addon (string) - Name of the add-on
+shortcuts-exists = Already in use by { $addon }
+# Variables:
+# $numberToShow (number) - Number of other elements available to show
+shortcuts-card-expand-button =
+ { $numberToShow ->
+ *[other] Show { $numberToShow } More
+ }
+shortcuts-card-collapse-button = Show Less
+header-back-button =
+ .title = Go back
+
+## Recommended add-ons page
+
+# Explanatory introduction to the list of recommended add-ons. The action word
+# ("recommends") in the final sentence is a link to external documentation.
+discopane-intro =
+ Extensions and themes are like apps for your browser, and they let you
+ protect passwords, download videos, find deals, block annoying ads, change
+ how your browser looks, and much more. These small software programs are
+ often developed by a third party. Here’s a selection { -brand-product-name }
+ <a data-l10n-name="learn-more-trigger">recommends</a> for exceptional
+ security, performance, and functionality.
+# Notice to make user aware that the recommendations are personalized.
+discopane-notice-recommendations =
+ Some of these recommendations are personalized. They are based on other
+ extensions you’ve installed, profile preferences, and usage statistics.
+# Notice to make user aware that the recommendations are personalized.
+discopane-notice-recommendations2 =
+ .message =
+ Some of these recommendations are personalized. They are based on other
+ extensions you’ve installed, profile preferences, and usage statistics.
+discopane-notice-learn-more = Learn more
+privacy-policy = Privacy Policy
+# Refers to the author of an add-on, shown below the name of the add-on.
+# Variables:
+# $author (string) - The name of the add-on developer.
+created-by-author = by <a data-l10n-name="author">{ $author }</a>
+# Shows the number of daily users of the add-on.
+# Variables:
+# $dailyUsers (number) - The number of daily users.
+user-count = Users: { $dailyUsers }
+install-extension-button = Add to { -brand-product-name }
+install-theme-button = Install Theme
+# The label of the button that appears after installing an add-on. Upon click,
+# the detailed add-on view is opened, from where the add-on can be managed.
+manage-addon-button = Manage
+find-more-addons = Find more add-ons
+find-more-themes = Find more themes
+# This is a label for the button to open the "more options" menu, it is only
+# used for screen readers.
+addon-options-button =
+ .aria-label = More Options
+
+## Add-on actions
+
+report-addon-button = Report
+remove-addon-button = Remove
+# The link will always be shown after the other text.
+remove-addon-disabled-button = Can’t Be Removed <a data-l10n-name="link">Why?</a>
+disable-addon-button = Disable
+enable-addon-button = Enable
+# This is used for the toggle on the extension card, it's a checkbox and this
+# is always its label.
+extension-enable-addon-button-label =
+ .aria-label = Enable
+preferences-addon-button =
+ { PLATFORM() ->
+ [windows] Options
+ *[other] Preferences
+ }
+details-addon-button = Details
+release-notes-addon-button = Release Notes
+permissions-addon-button = Permissions
+extension-enabled-heading = Enabled
+extension-disabled-heading = Disabled
+theme-enabled-heading = Enabled
+theme-disabled-heading2 = Saved Themes
+plugin-enabled-heading = Enabled
+plugin-disabled-heading = Disabled
+dictionary-enabled-heading = Enabled
+dictionary-disabled-heading = Disabled
+locale-enabled-heading = Enabled
+locale-disabled-heading = Disabled
+sitepermission-enabled-heading = Enabled
+sitepermission-disabled-heading = Disabled
+always-activate-button = Always Activate
+never-activate-button = Never Activate
+addon-detail-author-label = Author
+addon-detail-version-label = Version
+addon-detail-last-updated-label = Last Updated
+addon-detail-homepage-label = Homepage
+addon-detail-rating-label = Rating
+# Message for add-ons with a staged pending update.
+install-postponed-message = This extension will be updated when { -brand-short-name } restarts.
+# Message for add-ons with a staged pending update.
+install-postponed-message2 =
+ .message = This extension will be updated when { -brand-short-name } restarts.
+install-postponed-button = Update Now
+# The average rating that the add-on has received.
+# Variables:
+# $rating (number) - A number between 0 and 5. The translation should show at most one digit after the comma.
+five-star-rating =
+ .title = Rated { NUMBER($rating, maximumFractionDigits: 1) } out of 5
+# This string is used to show that an add-on is disabled.
+# Variables:
+# $name (string) - The name of the add-on
+addon-name-disabled = { $name } (disabled)
+# The number of reviews that an add-on has received on AMO.
+# Variables:
+# $numberOfReviews (number) - The number of reviews received
+addon-detail-reviews-link =
+ { $numberOfReviews ->
+ [one] { $numberOfReviews } review
+ *[other] { $numberOfReviews } reviews
+ }
+
+## Pending uninstall message bar
+
+# Variables:
+# $addon (string) - Name of the add-on
+pending-uninstall-description = <span data-l10n-name="addon-name">{ $addon }</span> has been removed.
+# Variables:
+# $addon (string) - Name of the add-on
+pending-uninstall-description2 =
+ .message = { $addon } has been removed.
+pending-uninstall-undo-button = Undo
+addon-detail-updates-label = Allow automatic updates
+addon-detail-updates-radio-default = Default
+addon-detail-updates-radio-on = On
+addon-detail-updates-radio-off = Off
+addon-detail-update-check-label = Check for Updates
+install-update-button = Update
+# aria-label associated to the updates row to help screen readers to announce the group
+# of input controls being entered.
+addon-detail-group-label-updates =
+ .aria-label = { addon-detail-updates-label }
+# This is the tooltip text for the private browsing badge in about:addons. The
+# badge is the private browsing icon included next to the extension's name.
+addon-badge-private-browsing-allowed2 =
+ .title = Allowed in private windows
+ .aria-label = { addon-badge-private-browsing-allowed2.title }
+addon-detail-private-browsing-help = When allowed, the extension will have access to your online activities while private browsing. <a data-l10n-name="learn-more">Learn more</a>
+addon-detail-private-browsing-allow = Allow
+addon-detail-private-browsing-disallow = Don’t Allow
+# aria-label associated to the private browsing row to help screen readers to announce the group
+# of input controls being entered.
+addon-detail-group-label-private-browsing =
+ .aria-label = { detail-private-browsing-label }
+
+## "sites with restrictions" (internally called "quarantined") are special domains
+## where add-ons are normally blocked for security reasons.
+
+# Used as a description for the option to allow or block an add-on on quarantined domains.
+addon-detail-quarantined-domains-label = Run on sites with restrictions
+# Used as help text part of the quarantined domains UI controls row.
+addon-detail-quarantined-domains-help = When allowed, the extension will have access to sites restricted by { -vendor-short-name }. Allow only if you trust this extension.
+# Used as label and tooltip text on the radio inputs associated to the quarantined domains UI controls.
+addon-detail-quarantined-domains-allow = Allow
+addon-detail-quarantined-domains-disallow = Don’t Allow
+# aria-label associated to the quarantined domains exempt row to help screen readers to announce the group.
+addon-detail-group-label-quarantined-domains =
+ .aria-label = { addon-detail-quarantined-domains-label }
+
+## This is the tooltip text for the recommended badges for an extension in about:addons. The
+## badge is a small icon displayed next to an extension when it is recommended on AMO.
+
+addon-badge-recommended2 =
+ .title = { -brand-product-name } only recommends extensions that meet our standards for security and performance
+ .aria-label = { addon-badge-recommended2.title }
+# We hard code "Mozilla" in the string below because the extensions are built
+# by Mozilla and we don't want forks to display "by Fork".
+addon-badge-line3 =
+ .title = Official extension built by Mozilla. Meets security and performance standards
+ .aria-label = { addon-badge-line3.title }
+addon-badge-verified2 =
+ .title = This extension has been reviewed to meet our standards for security and performance
+ .aria-label = { addon-badge-verified2.title }
+
+##
+
+available-updates-heading = Available Updates
+recent-updates-heading = Recent Updates
+release-notes-loading = Loading…
+release-notes-error = Sorry, but there was an error loading the release notes.
+addon-permissions-empty = This extension doesn’t require any permissions
+addon-permissions-required = Required permissions for core functionality:
+addon-permissions-optional = Optional permissions for added functionality:
+addon-permissions-learnmore = Learn more about permissions
+recommended-extensions-heading = Recommended Extensions
+recommended-themes-heading = Recommended Themes
+# Variables:
+# $hostname (string) - Host where the permissions are granted
+addon-sitepermissions-required = Grants the following capabilities to <span data-l10n-name="hostname">{ $hostname }</span>:
+# A recommendation for the Firefox Color theme shown at the bottom of the theme
+# list view. The "Firefox Color" name itself should not be translated.
+recommended-theme-1 = Feeling creative? <a data-l10n-name="link">Build your own theme with Firefox Color.</a>
+
+## Page headings
+
+extension-heading = Manage Your Extensions
+theme-heading = Manage Your Themes
+plugin-heading = Manage Your Plugins
+dictionary-heading = Manage Your Dictionaries
+locale-heading = Manage Your Languages
+updates-heading = Manage Your Updates
+sitepermission-heading = Manage Your Site Permissions
+discover-heading = Personalize Your { -brand-short-name }
+shortcuts-heading = Manage Extension Shortcuts
+default-heading-search-label = Find more add-ons
+addons-heading-search-input =
+ .placeholder = Search addons.mozilla.org
+addon-page-options-button =
+ .title = Tools for all add-ons
+
+## Detail notifications
+## Variables:
+## $name (string) - Name of the add-on.
+
+# Variables:
+# $version (string) - Application version.
+details-notification-incompatible = { $name } is incompatible with { -brand-short-name } { $version }.
+# Variables:
+# $version (string) - Application version.
+details-notification-incompatible2 =
+ .message = { $name } is incompatible with { -brand-short-name } { $version }.
+details-notification-incompatible-link = More Information
+details-notification-unsigned-and-disabled = { $name } could not be verified for use in { -brand-short-name } and has been disabled.
+details-notification-unsigned-and-disabled2 =
+ .message = { $name } could not be verified for use in { -brand-short-name } and has been disabled.
+details-notification-unsigned-and-disabled-link = More Information
+details-notification-unsigned = { $name } could not be verified for use in { -brand-short-name }. Proceed with caution.
+details-notification-unsigned2 =
+ .message = { $name } could not be verified for use in { -brand-short-name }. Proceed with caution.
+details-notification-unsigned-link = More Information
+details-notification-blocked = { $name } has been disabled due to security or stability issues.
+details-notification-blocked2 =
+ .message = { $name } has been disabled due to security or stability issues.
+details-notification-blocked-link = More Information
+details-notification-softblocked = { $name } is known to cause security or stability issues.
+details-notification-softblocked2 =
+ .message = { $name } is known to cause security or stability issues.
+details-notification-softblocked-link = More Information
+details-notification-gmp-pending = { $name } will be installed shortly.
+details-notification-gmp-pending2 =
+ .message = { $name } will be installed shortly.
+
+## Gecko Media Plugins (GMPs)
+
+plugins-gmp-license-info = Licence information
+plugins-gmp-privacy-info = Privacy Information
+plugins-openh264-name = OpenH264 Video Codec provided by Cisco Systems, Inc.
+plugins-openh264-description = This plugin is automatically installed by Mozilla to comply with the WebRTC specification and to enable WebRTC calls with devices that require the H.264 video codec. Visit https://www.openh264.org/ to view the codec source code and learn more about the implementation.
+plugins-widevine-name = Widevine Content Decryption Module provided by Google Inc.
+plugins-widevine-description = This plugin enables playback of encrypted media in compliance with the Encrypted Media Extensions specification. Encrypted media is typically used by sites to protect against copying of premium media content. Visit https://www.w3.org/TR/encrypted-media/ for more information on Encrypted Media Extensions.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutCompat.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutCompat.ftl
new file mode 100644
index 0000000000..f91382a89c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutCompat.ftl
@@ -0,0 +1,22 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+label-disable = Disable
+label-enable = Enable
+label-interventions = Interventions
+label-more-information = More Information: Bug { $bug }
+label-overrides = User Agent Overrides
+text-disabled-in-about-config = This feature has been disabled in about:config
+text-no-interventions = No interventions are being used
+text-no-overrides = No UA overrides are being used
+text-title = about:compat
+
+## Do not translate "SmartBlock". For reference, SmartBlock is a feature
+## of Firefox anti-tracking which fixes website breakage caused when
+## trackers are blocked, by acting just enough like those trackers to fix the
+## breakage. SmartBlock also contains special fixes for sites broken by
+## Firefox's Total Cookie Protection feature.
+
+label-smartblock = SmartBlock Fixes
+text-no-smartblock = No SmartBlock fixes are being used
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutGlean.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutGlean.ftl
new file mode 100644
index 0000000000..bf32952a67
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutGlean.ftl
@@ -0,0 +1,92 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+### "FOG", "Glean", and "Glean SDK" should remain in English.
+
+-fog-brand-name = FOG
+-glean-brand-name = Glean
+glean-sdk-brand-name = { -glean-brand-name } SDK
+glean-debug-ping-viewer-brand-name = { -glean-brand-name } Debug Ping Viewer
+about-glean-page-title2 = About { -glean-brand-name }
+about-glean-header = About { -glean-brand-name }
+about-glean-interface-description =
+ The <a data-l10n-name="glean-sdk-doc-link">{ glean-sdk-brand-name }</a>
+ is a data collection library used in { -vendor-short-name } projects.
+ This interface is designed to be used by developers and testers to manually
+ <a data-l10n-name="fog-link">test instrumentation</a>.
+about-glean-upload-enabled = Data upload is enabled.
+about-glean-upload-disabled = Data upload is disabled.
+about-glean-upload-enabled-local = Data upload is enabled only for sending to a local server.
+about-glean-upload-fake-enabled =
+ Data upload is disabled,
+ but we’re lying and telling the { glean-sdk-brand-name } it is enabled
+ so that data is still recorded locally.
+ Note: If you set a debug tag, pings will be uploaded to the
+ <a data-l10n-name="glean-debug-ping-viewer">{ glean-debug-ping-viewer-brand-name }</a> regardless of settings.
+# This message is followed by a bulleted list.
+about-glean-prefs-and-defines = Relevant <a data-l10n-name="fog-prefs-and-defines-doc-link">preferences and defines</a> include:
+# Variables:
+# $data-upload-pref-value (String): the value of the datareporting.healthreport.uploadEnabled pref. Typically "true", sometimes "false"
+# Do not translate strings between <code> </code> tags.
+about-glean-data-upload = <code>datareporting.healthreport.uploadEnabled</code>: { $data-upload-pref-value }
+# Variables:
+# $local-port-pref-value (Integer): the value of the telemetry.fog.test.localhost_port pref. Typically 0. Can be negative.
+# Do not translate strings between <code> </code> tags.
+about-glean-local-port = <code>telemetry.fog.test.localhost_port</code>: { $local-port-pref-value }
+# Variables:
+# $glean-android-define-value (Boolean): the value of the MOZ_GLEAN_ANDROID define. Typically "false", sometimes "true".
+# Do not translate strings between <code> </code> tags.
+about-glean-glean-android = <code>MOZ_GLEAN_ANDROID</code>: { $glean-android-define-value }
+# Variables:
+# $moz-official-define-value (Boolean): the value of the MOZILLA_OFFICIAL define.
+# Do not translate strings between <code> </code> tags.
+about-glean-moz-official = <code>MOZILLA_OFFICIAL</code>: { $moz-official-define-value }
+about-glean-about-testing-header = About Testing
+# This message is followed by a numbered list.
+about-glean-manual-testing =
+ Full instructions are documented in the
+ <a data-l10n-name="fog-instrumentation-test-doc-link">{ -fog-brand-name } instrumentation testing docs</a>
+ and in the <a data-l10n-name="glean-sdk-doc-link">{ glean-sdk-brand-name } documentation</a>,
+ but, in short, to manually test that your instrumentation works, you should:
+# This message is an option in a dropdown filled with untranslated names of pings.
+about-glean-no-ping-label = (don’t submit any ping)
+# An in-line text input field precedes this string.
+about-glean-label-for-tag-pings = In the preceding field ensure there is a memorable debug tag so you can recognize your pings later.
+# An in-line drop down list precedes this string.
+# Do not translate strings between <code> </code> tags.
+about-glean-label-for-ping-names =
+ Select from the preceding list the ping your instrumentation is in.
+ If it’s in a <a data-l10n-name="custom-ping-link">custom ping</a>, choose that one.
+ Otherwise, the default for <code>event</code> metrics is
+ the <code>events</code> ping
+ and the default for all other metrics is
+ the <code>metrics</code> ping.
+# An in-line check box precedes this string.
+about-glean-label-for-log-pings =
+ (Optional. Check the preceding box if you want pings to also be logged when they are submitted.
+ You will additionally need to <a data-l10n-name="enable-logging-link">enable logging</a>.)
+# Variables
+# $debug-tag (String): The user-set value of the debug tag input on this page. Like "about-glean-kV"
+# An in-line button labeled "Apply settings and submit ping" precedes this string.
+about-glean-label-for-controls-submit =
+ Press the preceding button to tag all { -glean-brand-name } pings with your tag and submit the selected ping.
+ (All pings submitted from then until you restart the application will be tagged with
+ <code>{ $debug-tag }</code>.)
+about-glean-li-for-visit-gdpv =
+ <a data-l10n-name="gdpv-tagged-pings-link">Visit the { glean-debug-ping-viewer-brand-name } page for pings with your tag</a>.
+ It shouldn’t take more than a few seconds from pushing the button to your ping arriving.
+ Sometimes it may take a small handful of minutes.
+# Do not translate strings between <code> </code> tags.
+about-glean-adhoc-explanation =
+ For more <i>ad hoc</i> testing,
+ you can also determine the current value of a particular piece of instrumentation
+ by opening a devtools console here on <code>about:glean</code>
+ and using the <code>testGetValue()</code> API like
+ <code>Glean.metricCategory.metricName.testGetValue()</code>.
+controls-button-label-verbose = Apply settings and submit ping
+about-glean-about-data-header = About Data
+about-glean-about-data-explanation =
+ To browse the list of collected data, please consult the
+ <a data-l10n-name="glean-dictionary-link">{ -glean-brand-name } Dictionary</a>.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutHttpsOnlyError.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutHttpsOnlyError.ftl
new file mode 100644
index 0000000000..2ea112bd8e
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutHttpsOnlyError.ftl
@@ -0,0 +1,30 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+about-httpsonly-title-alert = HTTPS-Only Mode Alert
+about-httpsonly-title-site-not-available = Secure Site Not Available
+
+# Variables:
+# $websiteUrl (String) - Url of the website that failed to load. Example: www.example.com
+about-httpsonly-explanation-unavailable2 = You’ve enabled HTTPS-Only Mode for enhanced security, and a HTTPS version of <em>{ $websiteUrl }</em> is not available.
+about-httpsonly-explanation-question = What could be causing this?
+about-httpsonly-explanation-nosupport = Most likely, the website simply does not support HTTPS.
+about-httpsonly-explanation-risk = It’s also possible that an attacker is involved. If you decide to visit the website, you should not enter any sensitive information like passwords, emails, or credit card details.
+about-httpsonly-explanation-continue = If you continue, HTTPS-Only Mode will be turned off temporarily for this site.
+
+about-httpsonly-button-continue-to-site = Continue to HTTP Site
+about-httpsonly-button-go-back = Go Back
+about-httpsonly-link-learn-more = Learn More…
+
+## Suggestion Box that only shows up if a secure connection to www can be established
+## Variables:
+## $websiteUrl (String) - Url of the website that can be securely loded with these alternatives. Example: example.com
+
+## Suggestion Box that only shows up if a secure connection to www can be established
+## Variables:
+## $websiteUrl (String) - Url of the website that can be securely loaded with these alternatives. Example: example.com
+
+about-httpsonly-suggestion-box-header = Possible Alternative
+about-httpsonly-suggestion-box-www-text = There is a secure version of <em>www.{ $websiteUrl }</em>. You can visit this page instead of <em>{ $websiteUrl }</em>.
+about-httpsonly-suggestion-box-www-button = Go to www.{ $websiteUrl }
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutLogging.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutLogging.ftl
new file mode 100644
index 0000000000..203c706431
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutLogging.ftl
@@ -0,0 +1,64 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# This is the title of the page
+about-logging-title = About Logging
+about-logging-page-title = Logging manager
+about-logging-current-log-file = Current log file:
+about-logging-new-log-file = New log file:
+about-logging-currently-enabled-log-modules = Currently enabled log modules:
+about-logging-log-tutorial = See <a data-l10n-name="logging">HTTP Logging</a> for instructions on how to use this tool.
+# This message is used as a button label, "Open" indicates an action.
+about-logging-open-log-file-dir = Open directory
+about-logging-set-log-file = Set Log File
+about-logging-set-log-modules = Set Log Modules
+about-logging-start-logging = Start Logging
+about-logging-stop-logging = Stop Logging
+about-logging-buttons-disabled = Logging configured via environment variables, dynamic configuration unavailable.
+about-logging-some-elements-disabled = Logging configured via URL, some configuration options are unavailable
+about-logging-info = Info:
+about-logging-log-modules-selection = Log module selection
+about-logging-new-log-modules = New log modules:
+about-logging-logging-output-selection = Logging output
+about-logging-logging-to-file = Logging to a file
+about-logging-logging-to-profiler = Logging to the { -profiler-brand-name }
+about-logging-no-log-modules = None
+about-logging-no-log-file = None
+about-logging-logging-preset-selector-text = Logging preset:
+about-logging-with-profiler-stacks-checkbox = Enable stack traces for log messages
+
+## Logging presets
+
+about-logging-preset-networking-label = Networking
+about-logging-preset-networking-description = Log modules to diagnose networking issues
+about-logging-preset-networking-cookie-label = Cookies
+about-logging-preset-networking-cookie-description = Log modules to diagnose cookie issues
+about-logging-preset-networking-websocket-label = WebSockets
+about-logging-preset-networking-websocket-description = Log modules to diagnose WebSocket issues
+about-logging-preset-networking-http3-label = HTTP/3
+about-logging-preset-networking-http3-description = Log modules to diagnose HTTP/3 and QUIC issues
+about-logging-preset-media-playback-label = Media playback
+about-logging-preset-media-playback-description = Log modules to diagnose media playback issues (not video-conferencing issues)
+about-logging-preset-webrtc-label = WebRTC
+about-logging-preset-webrtc-description = Log modules to diagnose WebRTC calls
+about-logging-preset-webgpu-label = WebGPU
+about-logging-preset-webgpu-description = Log modules to diagnose WebGPU issues
+about-logging-preset-gfx-label = Graphics
+about-logging-preset-gfx-description = Log modules to diagnose graphics issues
+about-logging-preset-custom-label = Custom
+about-logging-preset-custom-description = Log modules manually selected
+# Error handling
+about-logging-error = Error:
+
+## Variables:
+## $k (String) - Variable name
+## $v (String) - Variable value
+
+about-logging-invalid-output = Invalid value “{ $v }“ for key “{ $k }“
+about-logging-unknown-logging-preset = Unknown logging preset “{ $v }“
+about-logging-unknown-profiler-preset = Unknown profiler preset “{ $v }“
+about-logging-unknown-option = Unknown about:logging option “{ $k }“
+about-logging-configuration-url-ignored = Configuration URL ignored
+about-logging-file-and-profiler-override = Can’t force file output and override profiler options at the same time
+about-logging-configured-via-url = Option configured via URL
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutMozilla.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutMozilla.ftl
new file mode 100644
index 0000000000..f0d0f336e5
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutMozilla.ftl
@@ -0,0 +1,11 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+about-mozilla-title-6-27 = The Book of Mozilla, 6:27
+about-mozilla-quote-6-27 =
+ The Beast continued its studies with renewed <em>Focus</em>, building great <em>Reference</em>
+ works and contemplating new <em>Realities</em>. The Beast brought forth its followers and
+ acolytes to create a renewed smaller form of itself and, through <em>Mischievous</em> means,
+ sent it out across the world.
+about-mozilla-from-6-27 = from <strong>The Book of Mozilla,</strong> 6:27
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutNetworking.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutNetworking.ftl
new file mode 100644
index 0000000000..21652876a3
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutNetworking.ftl
@@ -0,0 +1,68 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+about-networking-title = About Networking
+about-networking-http = HTTP
+about-networking-sockets = Sockets
+about-networking-dns = DNS
+about-networking-dns-clear-cache-button = Clear DNS Cache
+about-networking-dns-trr-url = DoH URL
+about-networking-dns-trr-mode = DoH Mode
+about-networking-dns-suffix = DNS suffix
+about-networking-websockets = WebSockets
+about-networking-refresh = Refresh
+about-networking-auto-refresh = Autorefresh every 3 seconds
+about-networking-hostname = Hostname
+about-networking-port = Port
+about-networking-http-version = HTTP Version
+about-networking-ssl = SSL
+about-networking-active = Active
+about-networking-idle = Idle
+about-networking-host = Host
+about-networking-type = Type
+about-networking-sent = Sent
+about-networking-received = Received
+about-networking-family = Family
+about-networking-trr = TRR
+about-networking-addresses = Addresses
+about-networking-expires = Expires (Seconds)
+about-networking-originAttributesSuffix = Isolation Key
+about-networking-flags = Extra flags
+about-networking-messages-sent = Messages Sent
+about-networking-messages-received = Messages Received
+about-networking-bytes-sent = Bytes Sent
+about-networking-bytes-received = Bytes Received
+about-networking-logging = Logging
+about-networking-dns-lookup = DNS Lookup
+about-networking-dns-lookup-button = Resolve
+about-networking-dns-domain = Domain:
+about-networking-dns-lookup-table-column = IPs
+about-networking-dns-https-rr-lookup-table-column = HTTP RRs
+about-networking-rcwn = RCWN Stats
+about-networking-rcwn-status = RCWN Status
+about-networking-rcwn-cache-won-count = Cache won count
+about-networking-rcwn-net-won-count = Net won count
+about-networking-total-network-requests = Total network request count
+about-networking-rcwn-operation = Cache Operation
+about-networking-rcwn-perf-open = Open
+about-networking-rcwn-perf-read = Read
+about-networking-rcwn-perf-write = Write
+about-networking-rcwn-perf-entry-open = Entry Open
+about-networking-rcwn-avg-short = Short Average
+about-networking-rcwn-avg-long = Long Average
+about-networking-rcwn-std-dev-long = Long Standard Deviation
+about-networking-rcwn-cache-slow = Cache slow count
+about-networking-rcwn-cache-not-slow = Cache not slow count
+about-networking-networkid = Network ID
+about-networking-networkid-id = Network ID
+# Note: do not translate about:logging, as it is a URL.
+about-networking-moved-about-logging = This page has been moved to <a data-l10n-name="about-logging-url">about:logging</a>.
+
+## Link is intended as "network link"
+
+about-networking-networkid-is-up = Link is up
+about-networking-networkid-status-known = Link status is known
+
+##
+
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutPerformance.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutPerformance.ftl
new file mode 100644
index 0000000000..1b2d6e8493
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutPerformance.ftl
@@ -0,0 +1,67 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Page title
+about-performance-title = Task Manager
+
+## Column headers
+
+column-name = Name
+column-type = Type
+column-energy-impact = Energy Impact
+column-memory = Memory
+
+## Special values for the Name column
+
+ghost-windows = Recently closed tabs
+# Variables:
+# $title (String) - the title of the preloaded page, typically 'New Tab'
+preloaded-tab = Preloaded: { $title }
+
+## Values for the Type column
+
+type-tab = Tab
+type-subframe = Subframe
+type-tracker = Tracker
+type-addon = Add-on
+type-browser = Browser
+type-worker = Worker
+type-other = Other
+
+## Values for the Energy Impact column
+##
+## Variables:
+## $value (Number) - Value of the energy impact, eg. 0.25 (low),
+## 5.38 (medium), 105.38 (high)
+
+energy-impact-high = High ({ $value })
+energy-impact-medium = Medium ({ $value })
+energy-impact-low = Low ({ $value })
+
+## Values for the Memory column
+##
+## Variables:
+## $value (Number) - How much memory is used
+
+size-KB = { $value } KB
+size-MB = { $value } MB
+size-GB = { $value } GB
+
+## Tooltips for the action buttons
+
+close-tab =
+ .title = Close tab
+show-addon =
+ .title = Show in Add-ons Manager
+
+# Tooltip when hovering an item of the about:performance table
+# Variables:
+# $totalDispatches (Number) - how many dispatches occured for this page since it loaded
+# $totalDuration (Number) - how much CPU time was used by this page since it loaded
+# $dispatchesSincePrevious (Number) - how many dispatches occured in the last 2 seconds
+# $durationSincePrevious (Number) - how much CPU time was used in the last 2 seconds
+item =
+ .title =
+ Dispatches since load: { $totalDispatches } ({ $totalDuration }ms)
+ Dispatches in the last seconds: { $dispatchesSincePrevious } ({ $durationSincePrevious }ms)
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutPlugins.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutPlugins.ftl
new file mode 100644
index 0000000000..7aeb078a92
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutPlugins.ftl
@@ -0,0 +1,43 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+title-label = About Plugins
+installed-plugins-label = Installed plugins
+no-plugins-are-installed-label = No installed plugins found
+deprecation-description = Missing something? Some plugins are no longer supported. <a data-l10n-name="deprecation-link">Learn More.</a>
+deprecation-description2 =
+ .message = Missing something? Some plugins are no longer supported.
+
+## The information of plugins
+##
+## Variables:
+## $pluginLibraries: the plugin library
+## $pluginFullPath: path of the plugin
+## $version: version of the plugin
+
+file-dd = <span data-l10n-name="file">File:</span> { $pluginLibraries }
+path-dd = <span data-l10n-name="path">Path:</span> { $pluginFullPath }
+version-dd = <span data-l10n-name="version">Version:</span> { $version }
+
+## These strings describe the state of plugins
+##
+## Variables:
+## $blockListState: show some special state of the plugin, such as blocked, outdated
+
+state-dd-enabled = <span data-l10n-name="state">State:</span> Enabled
+state-dd-enabled-block-list-state = <span data-l10n-name="state">State:</span> Enabled ({ $blockListState })
+state-dd-Disabled = <span data-l10n-name="state">State:</span> Disabled
+state-dd-Disabled-block-list-state = <span data-l10n-name="state">State:</span> Disabled ({ $blockListState })
+mime-type-label = MIME Type
+description-label = Description
+suffixes-label = Suffixes
+
+## Gecko Media Plugins (GMPs)
+
+plugins-gmp-license-info = Licence information
+plugins-gmp-privacy-info = Privacy Information
+plugins-openh264-name = OpenH264 Video Codec provided by Cisco Systems, Inc.
+plugins-openh264-description = This plugin is automatically installed by Mozilla to comply with the WebRTC specification and to enable WebRTC calls with devices that require the H.264 video codec. Visit https://www.openh264.org/ to view the codec source code and learn more about the implementation.
+plugins-widevine-name = Widevine Content Decryption Module provided by Google Inc.
+plugins-widevine-description = This plugin enables playback of encrypted media in compliance with the Encrypted Media Extensions specification. Encrypted media is typically used by sites to protect against copying of premium media content. Visit https://www.w3.org/TR/encrypted-media/ for more information on Encrypted Media Extensions.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutProcesses.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutProcesses.ftl
new file mode 100644
index 0000000000..ba0c69f924
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutProcesses.ftl
@@ -0,0 +1,200 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Page title
+about-processes-title = Process Manager
+
+# The Actions column
+about-processes-column-action =
+ .title = Actions
+
+## Tooltips
+
+about-processes-shutdown-process =
+ .title = Unload tabs and kill process
+about-processes-shutdown-tab =
+ .title = Close tab
+
+# Profiler icons
+# Variables:
+# $duration (Number) The time in seconds during which the profiler will be running.
+# The value will be an integer, typically less than 10.
+about-processes-profile-process =
+ .title =
+ { $duration ->
+ [one] Profile all threads of this process for { $duration } second
+ *[other] Profile all threads of this process for { $duration } seconds
+ }
+
+## Column headers
+
+about-processes-column-name = Name
+about-processes-column-memory-resident = Memory
+about-processes-column-cpu-total = CPU
+
+## Process names
+## Variables:
+## $pid (String) The process id of this process, assigned by the OS.
+
+about-processes-browser-process = { -brand-short-name } ({ $pid })
+about-processes-web-process = Shared Web Process ({ $pid })
+about-processes-file-process = Files ({ $pid })
+about-processes-extension-process = Extensions ({ $pid })
+about-processes-privilegedabout-process = About pages ({ $pid })
+about-processes-plugin-process = Plugins ({ $pid })
+about-processes-privilegedmozilla-process = { -vendor-short-name } sites ({ $pid })
+about-processes-gmp-plugin-process = Gecko Media Plugins ({ $pid })
+about-processes-gpu-process = GPU ({ $pid })
+about-processes-vr-process = VR ({ $pid })
+about-processes-rdd-process = Data Decoder ({ $pid })
+about-processes-socket-process = Network ({ $pid })
+about-processes-remote-sandbox-broker-process = Remote Sandbox Broker ({ $pid })
+about-processes-fork-server-process = Fork Server ({ $pid })
+about-processes-preallocated-process = Preallocated ({ $pid })
+about-processes-utility-process = Utility ({ $pid })
+
+# Unknown process names
+# Variables:
+# $pid (String) The process id of this process, assigned by the OS.
+# $type (String) The raw type for this process.
+about-processes-unknown-process = Other: { $type } ({ $pid })
+
+## Isolated process names
+## Variables:
+## $pid (String) The process id of this process, assigned by the OS.
+## $origin (String) The domain name for this process.
+
+about-processes-web-isolated-process = { $origin } ({ $pid })
+about-processes-web-serviceworker = { $origin } ({ $pid }, serviceworker)
+about-processes-with-coop-coep-process = { $origin } ({ $pid }, cross-origin isolated)
+about-processes-web-isolated-process-private = { $origin } — Private ({ $pid })
+about-processes-with-coop-coep-process-private = { $origin } — Private ({ $pid }, cross-origin isolated)
+
+## Details within processes
+
+# Single-line summary of threads (non-idle process)
+# Variables:
+# $number (Number) The number of threads in the process. Typically larger
+# than 30. We don't expect to ever have processes with less
+# than 5 threads.
+# $active (Number) The number of active threads in the process.
+# The value will be greater than 0 and will never be
+# greater than $number.
+# $list (String) Comma separated list of active threads.
+# Can be an empty string if the process is idle.
+about-processes-active-threads =
+ { $active ->
+ [one] { $active } active thread out of { $number }: { $list }
+ *[other] { $active } active threads out of { $number }: { $list }
+ }
+
+# Single-line summary of threads (idle process)
+# Variables:
+# $number (Number) The number of threads in the process. Typically larger
+# than 30. We don't expect to ever have processes with less
+# than 5 threads.
+# The process is idle so all threads are inactive.
+about-processes-inactive-threads =
+ { $number ->
+ [one] { $number } inactive thread
+ *[other] { $number } inactive threads
+ }
+
+# Thread details
+# Variables:
+# $name (String) The name assigned to the thread.
+# $tid (String) The thread id of this thread, assigned by the OS.
+about-processes-thread-name-and-id = { $name }
+ .title = Thread id: { $tid }
+
+# Tab
+# Variables:
+# $name (String) The name of the tab (typically the title of the page, might be the url while the page is loading).
+about-processes-tab-name = Tab: { $name }
+about-processes-preloaded-tab = Preloaded New Tab
+
+# Single subframe
+# Variables:
+# $url (String) The full url of this subframe.
+about-processes-frame-name-one = Subframe: { $url }
+
+# Group of subframes
+# Variables:
+# $number (Number) The number of subframes in this group. Always ≥ 1.
+# $shortUrl (String) The shared prefix for the subframes in the group.
+about-processes-frame-name-many = Subframes ({ $number }): { $shortUrl }
+
+## Utility process actor names
+
+about-processes-utility-actor-unknown = Unknown actor
+about-processes-utility-actor-audio-decoder-generic = Generic Audio Decoder
+about-processes-utility-actor-audio-decoder-applemedia = Apple Media Audio Decoder
+about-processes-utility-actor-audio-decoder-wmf = Windows Media Framework Audio Decoder
+about-processes-utility-actor-mf-media-engine = Windows Media Foundation Media Engine CDM
+# "Oracle" refers to an internal Firefox process and should be kept in English
+about-processes-utility-actor-js-oracle = JavaScript Oracle
+about-processes-utility-actor-windows-utils = Windows Utils
+
+## Displaying CPU (percentage and total)
+## Variables:
+## $percent (Number) The percentage of CPU used by the process or thread.
+## Always > 0, generally <= 200.
+## $total (Number) The amount of time used by the process or thread since
+## its start.
+## $unit (String) The unit in which to display $total. See the definitions
+## of `duration-unit-*`.
+
+# Common case.
+about-processes-cpu = { NUMBER($percent, maximumSignificantDigits: 2, style: "percent") }
+ .title = Total CPU time: { NUMBER($total, maximumFractionDigits: 0) }{ $unit }
+
+# Special case: data is not available yet.
+about-processes-cpu-user-and-kernel-not-ready = (measuring)
+
+# Special case: process or thread is almost idle (using less than 0.1% of a CPU core).
+# This case only occurs on Windows where the precision of the CPU times is low.
+about-processes-cpu-almost-idle = < 0.1%
+ .title = Total CPU time: { NUMBER($total, maximumFractionDigits: 0) }{ $unit }
+
+# Special case: process or thread is currently idle.
+about-processes-cpu-fully-idle = idle
+ .title = Total CPU time: { NUMBER($total, maximumFractionDigits: 0) }{ $unit }
+
+## Displaying Memory (total and delta)
+## Variables:
+## $total (Number) The amount of memory currently used by the process.
+## $totalUnit (String) The unit in which to display $total. See the definitions
+## of `memory-unit-*`.
+## $delta (Number) The absolute value of the amount of memory added recently.
+## $deltaSign (String) Either "+" if the amount of memory has increased
+## or "-" if it has decreased.
+## $deltaUnit (String) The unit in which to display $delta. See the definitions
+## of `memory-unit-*`.
+
+# Common case.
+about-processes-total-memory-size-changed = { NUMBER($total, maximumFractionDigits: 0) }{ $totalUnit }
+ .title = Evolution: { $deltaSign }{ NUMBER($delta, maximumFractionDigits: 0) }{ $deltaUnit }
+
+# Special case: no change.
+about-processes-total-memory-size-no-change = { NUMBER($total, maximumFractionDigits: 0) }{ $totalUnit }
+
+## Duration units
+
+duration-unit-ns = ns
+duration-unit-us = µs
+duration-unit-ms = ms
+duration-unit-s = s
+duration-unit-m = m
+duration-unit-h = h
+duration-unit-d = d
+
+## Memory units
+
+memory-unit-B = B
+memory-unit-KB = KB
+memory-unit-MB = MB
+memory-unit-GB = GB
+memory-unit-TB = TB
+memory-unit-PB = PB
+memory-unit-EB = EB
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutProfiles.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutProfiles.ftl
new file mode 100644
index 0000000000..c11b89b321
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutProfiles.ftl
@@ -0,0 +1,74 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+profiles-title = About Profiles
+profiles-subtitle = This page helps you to manage your profiles. Each profile is a separate world which contains separate history, bookmarks, settings and add-ons.
+profiles-create = Create a New Profile
+profiles-restart-title = Restart
+profiles-restart-in-safe-mode = Restart with Add-ons Disabled…
+profiles-restart-normal = Restart normally…
+profiles-conflict = Another copy of { -brand-product-name } has made changes to profiles. You must restart { -brand-short-name } before making more changes.
+profiles-flush-fail-title = Changes not saved
+profiles-flush-conflict = { profiles-conflict }
+profiles-flush-failed = An unexpected error has prevented your changes from being saved.
+profiles-flush-restart-button = Restart { -brand-short-name }
+
+# Variables:
+# $name (String) - Name of the profile
+profiles-name = Profile: { $name }
+profiles-is-default = Default Profile
+profiles-rootdir = Root Directory
+
+# localDir is used to show the directory corresponding to
+# the main profile directory that exists for the purpose of storing data on the
+# local filesystem, including cache files or other data files that may not
+# represent critical user data. (e.g., this directory may not be included as
+# part of a backup scheme.)
+# In case localDir and rootDir are equal, localDir is not shown.
+profiles-localdir = Local Directory
+profiles-current-profile = This is the profile in use and it cannot be deleted.
+profiles-in-use-profile = This profile is in use in another application and it cannot be deleted.
+
+profiles-rename = Rename
+profiles-remove = Remove
+profiles-set-as-default = Set as default profile
+profiles-launch-profile = Launch profile in new browser
+
+profiles-cannot-set-as-default-title = Unable to set default
+profiles-cannot-set-as-default-message = The default profile cannot be changed for { -brand-short-name }.
+
+profiles-yes = yes
+profiles-no = no
+
+profiles-rename-profile-title = Rename Profile
+# Variables:
+# $name (String) - Name of the profile
+profiles-rename-profile = Rename profile { $name }
+
+profiles-invalid-profile-name-title = Invalid profile name
+# Variables:
+# $name (String) - Name of the profile
+profiles-invalid-profile-name = The profile name “{ $name }” is not allowed.
+
+profiles-delete-profile-title = Delete Profile
+# Variables:
+# $dir (String) - Path to be displayed
+profiles-delete-profile-confirm =
+ Deleting a profile will remove the profile from the list of available profiles and cannot be undone.
+ You may also choose to delete the profile data files, including your settings, certificates and other user-related data. This option will delete the folder “{ $dir }” and cannot be undone.
+ Would you like to delete the profile data files?
+profiles-delete-files = Delete Files
+profiles-dont-delete-files = Don’t Delete Files
+
+profiles-delete-profile-failed-title = Error
+profiles-delete-profile-failed-message = There was an error while attempting to delete this profile.
+
+
+profiles-opendir =
+ { PLATFORM() ->
+ [macos] Show in Finder
+ [windows] Open Folder
+ *[other] Open Directory
+ }
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutReader.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutReader.ftl
new file mode 100644
index 0000000000..38b0299c16
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutReader.ftl
@@ -0,0 +1,52 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+about-reader-loading = Loading…
+about-reader-load-error = Failed to load article from page
+
+about-reader-color-scheme-light = Light
+ .title = Colour Scheme Light
+about-reader-color-scheme-dark = Dark
+ .title = Colour Scheme Dark
+about-reader-color-scheme-sepia = Sepia
+ .title = Colour Scheme Sepia
+about-reader-color-scheme-auto = Auto
+ .title = Color Scheme Auto
+
+# An estimate for how long it takes to read an article,
+# expressed as a range covering both slow and fast readers.
+# Variables:
+# $rangePlural (String): The plural category of the range, using the same set as for numbers.
+# $range (String): The range of minutes as a localised string. Examples: "3-7", "~1".
+about-reader-estimated-read-time =
+ { $rangePlural ->
+ [one] { $range } minute
+ *[other] { $range } minutes
+ }
+
+## These are used as tooltips in Type Control
+
+about-reader-toolbar-minus =
+ .title = Decrease Font Size
+about-reader-toolbar-plus =
+ .title = Increase Font Size
+about-reader-toolbar-contentwidthminus =
+ .title = Decrease Content Width
+about-reader-toolbar-contentwidthplus =
+ .title = Increase Content Width
+about-reader-toolbar-lineheightminus =
+ .title = Decrease Line Height
+about-reader-toolbar-lineheightplus =
+ .title = Increase Line Height
+
+## These are the styles of typeface that are options in the reader view controls.
+
+about-reader-font-type-serif = Serif
+about-reader-font-type-sans-serif = Sans-serif
+
+## Reader View toolbar buttons
+
+about-reader-toolbar-close = Close Reader View
+about-reader-toolbar-type-controls = Type controls
+about-reader-toolbar-savetopocket = Save To { -pocket-brand-name }
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutRights.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutRights.ftl
new file mode 100644
index 0000000000..c95607428c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutRights.ftl
@@ -0,0 +1,56 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+rights-title = About Your Rights
+rights-intro = { -brand-full-name } is free and open source software, built by a community of thousands from all over the world. There are a few things you should know:
+rights-intro-point-1 = { -brand-short-name } is made available to you under the terms of the <a data-l10n-name="mozilla-public-license-link">Mozilla Public Licence</a>. This means you may use, copy and distribute { -brand-short-name } to others. You are also welcome to modify the source code of { -brand-short-name } as you want to meet your needs. The Mozilla Public Licence also gives you the right to distribute your modified versions.
+rights-intro-point-2 = You are not granted any trademark rights or licences to the trademarks of the Mozilla Foundation or any party, including without limitation the Firefox name or logo. Additional information on trademarks may be found <a data-l10n-name="mozilla-trademarks-link">here</a>.
+rights-intro-point-3 = Some features in { -brand-short-name }, such as the Crash Reporter, give you the option to provide feedback to { -vendor-short-name }. By choosing to submit feedback, you give { -vendor-short-name } permission to use the feedback to improve its products, to publish the feedback on its websites, and to distribute the feedback.
+rights-intro-point-4 = How we use your personal information and feedback submitted to { -vendor-short-name } through { -brand-short-name } is described in the <a data-l10n-name="mozilla-privacy-policy-link">{ -brand-short-name } Privacy Policy</a>.
+rights-intro-point-4-unbranded = Any applicable privacy policies for this product should be listed here.
+rights-intro-point-5 = Some { -brand-short-name } features make use of web-based information services, however, we cannot guarantee they are 100% accurate or error-free. More details, including information on how to disable the features that use these services, can be found in the <a data-l10n-name="mozilla-service-terms-link">service terms</a>.
+rights-intro-point-5-unbranded =
+ If this product incorporates web services, any applicable service terms for
+ the service(s) should be linked to the
+ <a data-l10n-name="mozilla-website-services-link"> Website Services</a>
+ section.
+rights-intro-point-6 = In order to play back certain types of video content, { -brand-short-name } downloads certain content decryption modules from third parties.
+rights-webservices-header = { -brand-full-name } Web-Based Information Services
+rights-webservices =
+ { -brand-full-name } uses web-based information services (“Services”) to
+ provide some of the features provided for your use with this binary version
+ of { -brand-short-name } under the terms described below. If you do not
+ want to use one or more of the Services or the terms below are
+ unacceptable, you may disable the feature or Service(s). Instructions on
+ how to disable a particular feature or Service may be found
+ <a data-l10n-name="mozilla-disable-service-link">here</a>. Other features
+ and Services can be disabled in the application preferences.
+rights-safebrowsing = <strong>SafeBrowsing: </strong>Disabling the Safe Browsing feature is not recommended as it may result in you going to unsafe sites. If you wish to disable the feature completely, follow these steps:
+rights-safebrowsing-term-1 = Open the application preferences
+rights-safebrowsing-term-2 = Select the Security selection
+rights-safebrowsing-term-3 = Uncheck the option to “{ enableSafeBrowsing-label }”
+enableSafeBrowsing-label = Block dangerous and deceptive content
+rights-safebrowsing-term-4 = Safe Browsing is now disabled
+rights-locationawarebrowsing = <strong>Location Aware Browsing: </strong>is always opt-in. No location information is ever sent without your permission. If you wish to disable the feature completely, follow these steps:
+rights-locationawarebrowsing-term-1 = In the URL bar, type <code>about:config</code>
+rights-locationawarebrowsing-term-2 = Type geo.enabled
+rights-locationawarebrowsing-term-3 = Double click on the geo.enabled preference
+rights-locationawarebrowsing-term-4 = Location-Aware Browsing is now disabled
+rights-webservices-unbranded = An overview of the website services the product incorporates, along with instructions on how to disable them, if applicable, should be included here.
+rights-webservices-term-unbranded = Any applicable service terms for this product should be listed here.
+rights-webservices-term-1 = { -vendor-short-name } and its contributors, licensors and partners work to provide the most accurate and up-to-date Services. However, we cannot guarantee that this information is comprehensive and error-free. For example, the Safe Browsing Service may not identify some risky sites and may identify some safe sites in error and the Location Aware Service all locations returned by our service providers are estimates only and neither we nor our service providers guarantee the accuracy of the locations provided.
+rights-webservices-term-2 = { -vendor-short-name } may discontinue or change the Services at its discretion.
+rights-webservices-term-3 = You are welcome to use these Services with the accompanying version of { -brand-short-name }, and { -vendor-short-name } grants you its rights to do so. { -vendor-short-name } and its licensors reserve all other rights in the Services. These terms are not intended to limit any rights granted under open source licences applicable to { -brand-short-name } and to corresponding source code versions of { -brand-short-name }.
+rights-webservices-term-4 =
+ <strong>The Services are provided “as-is.” { -vendor-short-name }, its
+ contributors, licensors, and distributors, disclaim all warranties, whether
+ express or implied, including without limitation, warranties that the
+ Services are merchantable and fit for your particular purposes. You bear
+ the entire risk as to selecting the Services for your purposes and as to
+ the quality and performance of the Services. Some jurisdictions do not
+ allow the exclusion or limitation of implied warranties, so this disclaimer
+ may not apply to you.</strong>
+rights-webservices-term-5 = <strong>Except as required by law, { -vendor-short-name }, its contributors, licensors, and distributors will not be liable for any indirect, special, incidental, consequential, punitive, or exemplary damages arising out of or in any way relating to the use of { -brand-short-name } and the Services. The collective liability under these terms will not exceed $500 (five hundred dollars). Some jurisdictions do not allow the exclusion or limitation of certain damages, so this exclusion and limitation may not apply to you.</strong>
+rights-webservices-term-6 = { -vendor-short-name } may update these terms as necessary from time to time. These terms may not be modified or cancelled without { -vendor-short-name }’s written agreement.
+rights-webservices-term-7 = These terms are governed by the laws of the state of California, U.S.A., excluding its conflict of law provisions. If any portion of these terms is held to be invalid or unenforceable, the remaining portions will remain in full force and effect. In the event of a conflict between a translated version of these terms and the English language version, the English language version shall control.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutServiceWorkers.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutServiceWorkers.ftl
new file mode 100644
index 0000000000..edf2fed9f1
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutServiceWorkers.ftl
@@ -0,0 +1,40 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+### The term "Service Workers" and "Workers" should not be translated
+
+about-service-workers-title = About Service Workers
+about-service-workers-main-title = Registered Service Workers
+about-service-workers-warning-not-enabled = Service Workers are not enabled.
+about-service-workers-warning-no-service-workers = No Service Workers registered.
+
+# The original title of service workers' information
+#
+# Variables:
+# $originTitle: original title
+origin-title = Origin: { $originTitle }
+
+## These strings are for showing the information of workers.
+##
+## Variables:
+## $name: the name of scope, active cache, waiting cache and the push end point.
+## $url: the url of script specification and current worker.
+
+scope = <strong>Scope:</strong> { $name }
+script-spec = <strong>Script Spec:</strong> <a data-l10n-name="link">{ $url }</a>
+current-worker-url = <strong>Current Worker URL:</strong> <a data-l10n-name="link">{ $url }</a>
+active-cache-name = <strong>Active Cache Name:</strong> { $name }
+waiting-cache-name = <strong>Waiting Cache Name:</strong> { $name }
+push-end-point-waiting = <strong>Push Endpoint:</strong> { waiting }
+push-end-point-result = <strong>Push Endpoint:</strong> { $name }
+
+# This term is used as a button label (verb, not noun).
+update-button = Update
+
+unregister-button = Unregister
+
+unregister-error = Failed to unregister this Service Worker.
+
+waiting = Waiting…
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutSupport.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutSupport.ftl
new file mode 100644
index 0000000000..626f95e3ad
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutSupport.ftl
@@ -0,0 +1,414 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+page-title = Troubleshooting Information
+page-subtitle =
+ This page contains technical information that might be useful when you’re
+ trying to solve a problem. If you are looking for answers to common questions
+ about { -brand-short-name }, check out our <a data-l10n-name="support-link">support website</a>.
+crashes-title = Crash Reports
+crashes-id = Report ID
+crashes-send-date = Submitted
+crashes-all-reports = All Crash Reports
+crashes-no-config = This application has not been configured to display crash reports.
+support-addons-title = Add-ons
+support-addons-name = Name
+support-addons-type = Type
+support-addons-enabled = Enabled
+support-addons-version = Version
+support-addons-id = ID
+legacy-user-stylesheets-title = Legacy User Stylesheets
+legacy-user-stylesheets-enabled = Active
+legacy-user-stylesheets-stylesheet-types = Stylesheets
+legacy-user-stylesheets-no-stylesheets-found = No stylesheets found
+security-software-title = Security Software
+security-software-type = Type
+security-software-name = Name
+security-software-antivirus = Antivirus
+security-software-antispyware = Antispyware
+security-software-firewall = Firewall
+features-title = { -brand-short-name } Features
+features-name = Name
+features-version = Version
+features-id = ID
+processes-title = Remote Processes
+processes-type = Type
+processes-count = Count
+app-basics-title = Application Basics
+app-basics-name = Name
+app-basics-version = Version
+app-basics-build-id = Build ID
+app-basics-distribution-id = Distribution ID
+app-basics-update-channel = Update Channel
+# This message refers to the folder used to store updates on the device,
+# as in "Folder for updates". "Update" is a noun, not a verb.
+app-basics-update-dir =
+ { PLATFORM() ->
+ [linux] Update Directory
+ *[other] Update Folder
+ }
+app-basics-update-history = Update History
+app-basics-show-update-history = Show Update History
+# Represents the path to the binary used to start the application.
+app-basics-binary = Application Binary
+app-basics-profile-dir =
+ { PLATFORM() ->
+ [linux] Profile Directory
+ *[other] Profile Folder
+ }
+app-basics-enabled-plugins = Enabled Plugins
+app-basics-build-config = Build Configuration
+app-basics-user-agent = User Agent
+app-basics-os = OS
+app-basics-os-theme = OS Theme
+# Rosetta is Apple's translation process to run apps containing x86_64
+# instructions on Apple Silicon. This should remain in English.
+app-basics-rosetta = Rosetta Translated
+app-basics-memory-use = Memory Use
+app-basics-performance = Performance
+app-basics-service-workers = Registered Service Workers
+app-basics-third-party = Third-party Modules
+app-basics-profiles = Profiles
+app-basics-launcher-process-status = Launcher Process
+app-basics-multi-process-support = Multiprocess Windows
+app-basics-fission-support = Fission Windows
+app-basics-remote-processes-count = Remote Processes
+app-basics-enterprise-policies = Enterprise Policies
+app-basics-location-service-key-google = Google Location Service Key
+app-basics-safebrowsing-key-google = Google Safebrowsing Key
+app-basics-key-mozilla = Mozilla Location Service Key
+app-basics-safe-mode = Safe Mode
+app-basics-memory-size = Memory Size (RAM)
+app-basics-disk-available = Disk Space Available
+app-basics-pointing-devices = Pointing Devices
+# Variables:
+# $value (number) - Amount of data being stored
+# $unit (string) - The unit of data being stored (e.g. MB)
+app-basics-data-size = { $value } { $unit }
+show-dir-label =
+ { PLATFORM() ->
+ [macos] Show in Finder
+ [windows] Open Folder
+ *[other] Open Directory
+ }
+environment-variables-title = Environment Variables
+environment-variables-name = Name
+environment-variables-value = Value
+experimental-features-title = Experimental Features
+experimental-features-name = Name
+experimental-features-value = Value
+modified-key-prefs-title = Important Modified Preferences
+modified-prefs-name = Name
+modified-prefs-value = Value
+user-js-title = user.js Preferences
+user-js-description = Your profile folder contains a <a data-l10n-name="user-js-link">user.js file</a>, which includes preferences that were not created by { -brand-short-name }.
+locked-key-prefs-title = Important Locked Preferences
+locked-prefs-name = Name
+locked-prefs-value = Value
+graphics-title = Graphics
+graphics-features-title = Features
+graphics-diagnostics-title = Diagnostics
+graphics-failure-log-title = Failure Log
+graphics-gpu1-title = GPU #1
+graphics-gpu2-title = GPU #2
+graphics-decision-log-title = Decision Log
+graphics-crash-guards-title = Crash Guard Disabled Features
+graphics-workarounds-title = Workarounds
+graphics-device-pixel-ratios = Window Device Pixel Ratios
+# Windowing system in use on Linux (e.g. X11, Wayland).
+graphics-window-protocol = Window Protocol
+# Desktop environment in use on Linux (e.g. GNOME, KDE, XFCE, etc).
+graphics-desktop-environment = Desktop Environment
+place-database-title = Places Database
+place-database-stats = Statistics
+place-database-stats-show = Show Statistics
+place-database-stats-hide = Hide Statistics
+place-database-stats-entity = Entity
+place-database-stats-count = Count
+place-database-stats-size-kib = Size (KiB)
+place-database-stats-size-perc = Size (%)
+place-database-stats-efficiency-perc = Efficiency (%)
+place-database-stats-sequentiality-perc = Sequentiality (%)
+place-database-integrity = Integrity
+place-database-verify-integrity = Verify Integrity
+a11y-title = Accessibility
+a11y-activated = Activated
+a11y-force-disabled = Prevent Accessibility
+a11y-handler-used = Accessible Handler Used
+a11y-instantiator = Accessibility Instantiator
+library-version-title = Library Versions
+copy-text-to-clipboard-label = Copy text to clipboard
+copy-raw-data-to-clipboard-label = Copy raw data to clipboard
+sandbox-title = Sandbox
+sandbox-sys-call-log-title = Rejected System Calls
+sandbox-sys-call-index = #
+sandbox-sys-call-age = Seconds Ago
+sandbox-sys-call-pid = PID
+sandbox-sys-call-tid = TID
+sandbox-sys-call-proc-type = Process Type
+sandbox-sys-call-number = Syscall
+sandbox-sys-call-args = Arguments
+troubleshoot-mode-title = Diagnose issues
+restart-in-troubleshoot-mode-label = Troubleshoot Mode…
+clear-startup-cache-title = Try clearing the startup cache
+clear-startup-cache-label = Clear startup cache…
+startup-cache-dialog-title2 = Restart { -brand-short-name } to clear startup cache?
+startup-cache-dialog-body2 = This will not change your settings or remove extensions.
+restart-button-label = Restart
+
+## Media titles
+
+audio-backend = Audio Backend
+max-audio-channels = Max Channels
+sample-rate = Preferred Sample Rate
+roundtrip-latency = Roundtrip latency (standard deviation)
+media-title = Media
+media-output-devices-title = Output Devices
+media-input-devices-title = Input Devices
+media-device-name = Name
+media-device-group = Group
+media-device-vendor = Vendor
+media-device-state = State
+media-device-preferred = Preferred
+media-device-format = Format
+media-device-channels = Channels
+media-device-rate = Rate
+media-device-latency = Latency
+media-capabilities-title = Media Capabilities
+media-codec-support-info = Codec Support Information
+# List all the entries of the database.
+media-capabilities-enumerate = Enumerate database
+
+## Codec support table
+
+media-codec-support-sw-decoding = Software Decoding
+media-codec-support-hw-decoding = Hardware Decoding
+media-codec-support-codec-name = Codec Name
+media-codec-support-supported = Supported
+media-codec-support-unsupported = Unsupported
+media-codec-support-error = Codec support information unavailable. Try again after playing back a media file.
+
+##
+
+intl-title = Internationalization & Localization
+intl-app-title = Application Settings
+intl-locales-requested = Requested Locales
+intl-locales-available = Available Locales
+intl-locales-supported = App Locales
+intl-locales-default = Default Locale
+intl-os-title = Operating System
+intl-os-prefs-system-locales = System Locales
+intl-regional-prefs = Regional Preferences
+
+## Remote Debugging
+##
+## The Firefox remote protocol provides low-level debugging interfaces
+## used to inspect state and control execution of documents,
+## browser instrumentation, user interaction simulation,
+## and for subscribing to browser-internal events.
+##
+## See also https://firefox-source-docs.mozilla.org/remote/
+
+remote-debugging-title = Remote Debugging (Chromium Protocol)
+remote-debugging-accepting-connections = Accepting Connections
+remote-debugging-url = URL
+
+##
+
+# Variables
+# $days (Integer) - Number of days of crashes to log
+report-crash-for-days =
+ { $days ->
+ [one] Crash Reports for the Last { $days } Day
+ *[other] Crash Reports for the Last { $days } Days
+ }
+# Variables
+# $minutes (integer) - Number of minutes since crash
+crashes-time-minutes =
+ { $minutes ->
+ [one] { $minutes } minute ago
+ *[other] { $minutes } minutes ago
+ }
+# Variables
+# $hours (integer) - Number of hours since crash
+crashes-time-hours =
+ { $hours ->
+ [one] { $hours } hour ago
+ *[other] { $hours } hours ago
+ }
+# Variables
+# $days (integer) - Number of days since crash
+crashes-time-days =
+ { $days ->
+ [one] { $days } day ago
+ *[other] { $days } days ago
+ }
+# Variables
+# $reports (integer) - Number of pending reports
+pending-reports =
+ { $reports ->
+ [one] All Crash Reports (including { $reports } pending crash in the given time range)
+ *[other] All Crash Reports (including { $reports } pending crashes in the given time range)
+ }
+raw-data-copied = Raw data copied to clipboard
+text-copied = Text copied to clipboard
+
+## The verb "blocked" here refers to a graphics feature such as "Direct2D" or "OpenGL layers".
+
+blocked-driver = Blocked for your graphics driver version.
+blocked-gfx-card = Blocked for your graphics card because of unresolved driver issues.
+blocked-os-version = Blocked for your operating system version.
+blocked-mismatched-version = Blocked for your graphics driver version mismatch between registry and DLL.
+# Variables
+# $driverVersion - The graphics driver version string
+try-newer-driver = Blocked for your graphics driver version. Try updating your graphics driver to version { $driverVersion } or newer.
+# "ClearType" is a proper noun and should not be translated. Feel free to leave English strings if
+# there are no good translations, these are only used in about:support
+clear-type-parameters = ClearType Parameters
+compositing = Compositing
+hardware-h264 = Hardware H264 Decoding
+main-thread-no-omtc = main thread, no OMTC
+yes = Yes
+no = No
+unknown = Unknown
+virtual-monitor-disp = Virtual Monitor Display
+
+## The following strings indicate if an API key has been found.
+## In some development versions, it's expected for some API keys that they are
+## not found.
+
+found = Found
+missing = Missing
+gpu-process-pid = GPUProcessPid
+gpu-process = GPUProcess
+gpu-description = Description
+gpu-vendor-id = Vendor ID
+gpu-device-id = Device ID
+gpu-subsys-id = Subsys ID
+gpu-drivers = Drivers
+gpu-ram = RAM
+gpu-driver-vendor = Driver Vendor
+gpu-driver-version = Driver Version
+gpu-driver-date = Driver Date
+gpu-active = Active
+webgl1-wsiinfo = WebGL 1 Driver WSI Info
+webgl1-renderer = WebGL 1 Driver Renderer
+webgl1-version = WebGL 1 Driver Version
+webgl1-driver-extensions = WebGL 1 Driver Extensions
+webgl1-extensions = WebGL 1 Extensions
+webgl2-wsiinfo = WebGL 2 Driver WSI Info
+webgl2-renderer = WebGL 2 Driver Renderer
+webgl2-version = WebGL 2 Driver Version
+webgl2-driver-extensions = WebGL 2 Driver Extensions
+webgl2-extensions = WebGL 2 Extensions
+webgpu-default-adapter = WebGPU Default Adapter
+webgpu-fallback-adapter = WebGPU Fallback Adapter
+# Variables
+# $bugNumber (string) - Bug number on Bugzilla
+support-blocklisted-bug = Blocklisted due to known issues: <a data-l10n-name="bug-link">bug { $bugNumber }</a>
+# Variables
+# $failureCode (string) - String that can be searched in the source tree.
+unknown-failure = Blocklisted; failure code { $failureCode }
+d3d11layers-crash-guard = D3D11 Compositor
+glcontext-crash-guard = OpenGL
+wmfvpxvideo-crash-guard = WMF VPX Video Decoder
+reset-on-next-restart = Reset on Next Restart
+gpu-process-kill-button = Terminate GPU Process
+gpu-device-reset = Device Reset
+gpu-device-reset-button = Trigger Device Reset
+uses-tiling = Uses Tiling
+content-uses-tiling = Uses Tiling (Content)
+off-main-thread-paint-enabled = Off Main Thread Painting Enabled
+off-main-thread-paint-worker-count = Off Main Thread Painting Worker Count
+target-frame-rate = Target Frame Rate
+min-lib-versions = Expected minimum version
+loaded-lib-versions = Version in use
+has-seccomp-bpf = Seccomp-BPF (System Call Filtering)
+has-seccomp-tsync = Seccomp Thread Synchronization
+has-user-namespaces = User Namespaces
+has-privileged-user-namespaces = User Namespaces for privileged processes
+can-sandbox-content = Content Process Sandboxing
+can-sandbox-media = Media Plugin Sandboxing
+content-sandbox-level = Content Process Sandbox Level
+effective-content-sandbox-level = Effective Content Process Sandbox Level
+content-win32k-lockdown-state = Win32k Lockdown State for Content Process
+support-sandbox-gpu-level = GPU Process Sandbox Level
+sandbox-proc-type-content = content
+sandbox-proc-type-file = file content
+sandbox-proc-type-media-plugin = media plugin
+sandbox-proc-type-data-decoder = data decoder
+startup-cache-title = Startup Cache
+startup-cache-disk-cache-path = Disk Cache Path
+startup-cache-ignore-disk-cache = Ignore Disk Cache
+startup-cache-found-disk-cache-on-init = Found Disk Cache on Init
+startup-cache-wrote-to-disk-cache = Wrote to Disk Cache
+launcher-process-status-0 = Enabled
+launcher-process-status-1 = Disabled due to failure
+launcher-process-status-2 = Disabled forcibly
+launcher-process-status-unknown = Unknown status
+# Variables
+# $remoteWindows (integer) - Number of remote windows
+# $totalWindows (integer) - Number of total windows
+multi-process-windows = { $remoteWindows }/{ $totalWindows }
+# Variables
+# $fissionWindows (integer) - Number of remote windows
+# $totalWindows (integer) - Number of total windows
+fission-windows = { $fissionWindows }/{ $totalWindows }
+fission-status-experiment-control = Disabled by experiment
+fission-status-experiment-treatment = Enabled by experiment
+fission-status-disabled-by-e10s-env = Disabled by environment
+fission-status-enabled-by-env = Enabled by environment
+fission-status-disabled-by-env = Disabled by environment
+fission-status-enabled-by-default = Enabled by default
+fission-status-disabled-by-default = Disabled by default
+fission-status-enabled-by-user-pref = Enabled by user
+fission-status-disabled-by-user-pref = Disabled by user
+fission-status-disabled-by-e10s-other = E10s disabled
+fission-status-enabled-by-rollout = Enabled by phased rollout
+async-pan-zoom = Asynchronous Pan/Zoom
+apz-none = none
+wheel-enabled = wheel input enabled
+touch-enabled = touch input enabled
+drag-enabled = scrollbar drag enabled
+keyboard-enabled = keyboard enabled
+autoscroll-enabled = autoscroll enabled
+zooming-enabled = smooth pinch-zoom enabled
+
+## Variables
+## $preferenceKey (string) - String ID of preference
+
+wheel-warning = async wheel input disabled due to unsupported pref: { $preferenceKey }
+touch-warning = async touch input disabled due to unsupported pref: { $preferenceKey }
+
+## Strings representing the status of the Enterprise Policies engine.
+
+policies-inactive = Inactive
+policies-active = Active
+policies-error = Error
+
+## Printing section
+
+support-printing-title = Printing
+support-printing-troubleshoot = Troubleshooting
+support-printing-clear-settings-button = Clear saved print settings
+support-printing-modified-settings = Modified print settings
+support-printing-prefs-name = Name
+support-printing-prefs-value = Value
+
+## Normandy sections
+
+support-remote-experiments-title = Remote Experiments
+support-remote-experiments-name = Name
+support-remote-experiments-branch = Experiment Branch
+support-remote-experiments-see-about-studies = See <a data-l10n-name="support-about-studies-link">about:studies</a> for more information, including how to disable individual experiments or to disable { -brand-short-name } from running this type of experiment in the future.
+support-remote-features-title = Remote Features
+support-remote-features-name = Name
+support-remote-features-status = Status
+
+## Pointing devices
+
+pointing-device-mouse = Mouse
+pointing-device-touchscreen = Touchscreen
+pointing-device-pen-digitizer = Pen Digitizer
+pointing-device-none = No pointing devices
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutTelemetry.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutTelemetry.ftl
new file mode 100644
index 0000000000..8ec1e01bc4
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutTelemetry.ftl
@@ -0,0 +1,136 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+about-telemetry-ping-data-source = Ping data source:
+about-telemetry-show-current-data = Current data
+about-telemetry-show-archived-ping-data = Archived ping data
+about-telemetry-show-subsession-data = Show subsession data
+about-telemetry-choose-ping = Choose ping:
+about-telemetry-archive-ping-type = Ping Type
+about-telemetry-archive-ping-header = Ping
+about-telemetry-option-group-today = Today
+about-telemetry-option-group-yesterday = Yesterday
+about-telemetry-option-group-older = Older
+about-telemetry-previous-ping = <<
+about-telemetry-next-ping = >>
+about-telemetry-page-title = Telemetry Data
+about-telemetry-current-store = Current Store:
+about-telemetry-more-information = Looking for more information?
+about-telemetry-firefox-data-doc = The <a data-l10n-name="data-doc-link">Firefox Data Documentation</a> contains guides about how to work with our data tools.
+about-telemetry-telemetry-client-doc = The <a data-l10n-name="client-doc-link">Firefox Telemetry client documentation</a> includes definitions for concepts, API documentation and data references.
+about-telemetry-telemetry-dashboard = The <a data-l10n-name="dashboard-link">Telemetry dashboards</a> allow you to visualize the data Mozilla receives via Telemetry.
+about-telemetry-telemetry-probe-dictionary = The <a data-l10n-name="probe-dictionary-link">Probe Dictionary</a> provides details and descriptions for the probes collected by Telemetry.
+about-telemetry-show-in-Firefox-json-viewer = Open in the JSON viewer
+about-telemetry-home-section = Home
+about-telemetry-general-data-section = General Data
+about-telemetry-environment-data-section = Environment Data
+about-telemetry-session-info-section = Session Information
+about-telemetry-scalar-section = Scalars
+about-telemetry-keyed-scalar-section = Keyed Scalars
+about-telemetry-histograms-section = Histograms
+about-telemetry-keyed-histogram-section = Keyed Histograms
+about-telemetry-events-section = Events
+about-telemetry-simple-measurements-section = Simple Measurements
+about-telemetry-slow-sql-section = Slow SQL Statements
+about-telemetry-addon-details-section = Add-on Details
+about-telemetry-late-writes-section = Late Writes
+about-telemetry-raw-payload-section = Raw Payload
+about-telemetry-raw = Raw JSON
+about-telemetry-full-sql-warning = NOTE: Slow SQL debugging is enabled. Full SQL strings may be displayed below but they will not be submitted to Telemetry.
+about-telemetry-fetch-stack-symbols = Fetch function names for stacks
+about-telemetry-hide-stack-symbols = Show raw stack data
+# Selects the correct release version
+# Variables:
+# $channel (String): represents the corresponding release data string
+about-telemetry-data-type =
+ { $channel ->
+ [release] release data
+ *[prerelease] pre-release data
+ }
+# Selects the correct upload string
+# Variables:
+# $uploadcase (String): represents a corresponding upload string
+about-telemetry-upload-type =
+ { $uploadcase ->
+ [enabled] enabled
+ *[disabled] disabled
+ }
+# Example Output: 1 sample, average = 0, sum = 0
+# Variables:
+# $sampleCount (Integer): amount of histogram samples
+# $prettyAverage (Integer): average of histogram samples
+# $sum (Integer): sum of histogram samples
+about-telemetry-histogram-stats =
+ { $sampleCount ->
+ [one] { $sampleCount } sample, average = { $prettyAverage }, sum = { $sum }
+ *[other] { $sampleCount } samples, average = { $prettyAverage }, sum = { $sum }
+ }
+# Variables:
+# $telemetryServerOwner (String): the value of the toolkit.telemetry.server_owner preference. Typically "Mozilla"
+about-telemetry-page-subtitle = This page shows the information about performance, hardware, usage and customizations collected by Telemetry. This information is submitted to { $telemetryServerOwner } to help improve { -brand-full-name }.
+about-telemetry-settings-explanation = Telemetry is collecting { about-telemetry-data-type } and upload is <a data-l10n-name="upload-link">{ about-telemetry-upload-type }</a>.
+# Variables:
+# $name (String): ping name, e.g. “saved-session”
+# $timeStamp (String): ping localized timestamp, e.g. “2017/07/08 10:40:46”
+about-telemetry-ping-details = Each piece of information is sent bundled into “<a data-l10n-name="ping-link">pings</a>”. You are looking at the { $name }, { $timestamp } ping.
+about-telemetry-data-details-current = Each piece of information is sent bundled into “<a data-l10n-name="ping-link">pings</a>“. You are looking at the current data.
+# string used as a placeholder for the search field
+# More info about it can be found here:
+# https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/data/main-ping.html
+# Variables:
+# $selectedTitle (String): the section name from the structure of the ping.
+about-telemetry-filter-placeholder =
+ .placeholder = Find in { $selectedTitle }
+about-telemetry-filter-all-placeholder =
+ .placeholder = Find in all sections
+# Variables:
+# $searchTerms (String): the searched terms
+about-telemetry-results-for-search = Results for “{ $searchTerms }”
+# More info about it can be found here: https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/data/main-ping.html
+# Variables:
+# $sectionName (String): the section name from the structure of the ping.
+# $currentSearchText (String): the current text in the search input
+about-telemetry-no-search-results = Sorry! There are no results in { $sectionName } for “{ $currentSearchText }”
+# Variables:
+# $searchTerms (String): the searched terms
+about-telemetry-no-search-results-all = Sorry! There are no results in any sections for “{ $searchTerms }”
+# This message is displayed when a section is empty.
+# Variables:
+# $sectionName (String): is replaced by the section name.
+about-telemetry-no-data-to-display = Sorry! There is currently no data available in “{ $sectionName }”
+# used as a tooltip for the “current” ping title in the sidebar
+about-telemetry-current-data-sidebar = current data
+# used in the “Ping Type” select
+about-telemetry-telemetry-ping-type-all = all
+# button label to copy the histogram
+about-telemetry-histogram-copy = Copy
+# these strings are used in the “Slow SQL Statements” section
+about-telemetry-slow-sql-main = Slow SQL Statements on Main Thread
+about-telemetry-slow-sql-other = Slow SQL Statements on Helper Threads
+about-telemetry-slow-sql-hits = Hits
+about-telemetry-slow-sql-average = Avg. Time (ms)
+about-telemetry-slow-sql-statement = Statement
+# these strings are used in the “Add-on Details” section
+about-telemetry-addon-table-id = Add-on ID
+about-telemetry-addon-table-details = Details
+# Variables:
+# $addonProvider (String): the name of an Add-on Provider (e.g. “XPI”, “Plugin”)
+about-telemetry-addon-provider = { $addonProvider } Provider
+about-telemetry-keys-header = Property
+about-telemetry-names-header = Name
+about-telemetry-values-header = Value
+# Variables:
+# $lateWriteCount (Integer): the number of the late writes
+about-telemetry-late-writes-title = Late Write #{ $lateWriteCount }
+about-telemetry-stack-title = Stack:
+about-telemetry-memory-map-title = Memory map:
+about-telemetry-error-fetching-symbols = An error occurred while fetching symbols. Check that you are connected to the Internet and try again.
+about-telemetry-time-stamp-header = timestamp
+about-telemetry-category-header = category
+about-telemetry-method-header = method
+about-telemetry-object-header = object
+about-telemetry-extra-header = extra
+# Variables:
+# $process (String): type of process in subsection headers ( e.g. "content", "parent" )
+about-telemetry-process = { $process } process
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutThirdParty.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutThirdParty.ftl
new file mode 100644
index 0000000000..e647a069bf
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutThirdParty.ftl
@@ -0,0 +1,85 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+third-party-page-title = Third-party Module Information
+third-party-section-title = List of third-party modules in { -brand-short-name }
+third-party-intro =
+ This page shows the third-party modules which were injected into your
+ { -brand-short-name }. Any module that is not signed by Microsoft or
+ { -vendor-short-name } is considered to be a third-party module.
+third-party-message-empty = No third-party modules were detected.
+third-party-message-no-duration = Not recorded
+third-party-detail-version = File version
+third-party-detail-vendor = Vendor info
+third-party-detail-occurrences = Occurrences
+ .title = How many times this module was loaded.
+third-party-detail-duration = Avg. Blocking time (ms)
+ .title = How long this module blocked the application.
+third-party-detail-app = Application
+third-party-detail-publisher = Publisher
+third-party-th-process = Process
+third-party-th-duration = Loading Duration (ms)
+third-party-th-status = Status
+third-party-tag-ime = IME
+ .title = This type of module is loaded when you use a third-party IME.
+third-party-tag-shellex = Shell Extension
+ .title = This type of module is loaded when you open the system file dialog.
+third-party-tag-background = Background
+ .title =
+ This module did not block the application because it was loaded
+ in the background.
+third-party-icon-unsigned =
+ .title = This module is not signed
+ .alt = This module is not signed
+third-party-icon-warning =
+ .title = { -brand-short-name } crashed in code from this module
+ .alt = { -brand-short-name } crashed in code from this module
+third-party-status-loaded = Loaded
+third-party-status-blocked = Blocked
+third-party-status-redirected = Redirected
+third-party-button-copy-to-clipboard = Copy raw data to clipboard
+third-party-loading-data =
+ .alt = Loading system information…
+ .title = Loading system information…
+third-party-button-reload = Reload with system info
+ .title = Reload with system information
+third-party-button-open =
+ .title = Open file location…
+third-party-button-to-block =
+ .title = Block this module
+ .aria-label = Block this module
+third-party-button-to-unblock =
+ .title = Currently blocked. Click to unblock it.
+ .aria-label = Currently blocked. Click to unblock it.
+third-party-button-to-unblock-disabled =
+ .title =
+ Currently marked as blocked, although the blocklist is disabled for this run
+ of { -brand-short-name }. Click to unblock it.
+ .aria-label =
+ Currently marked as blocked, although the blocklist is disabled for this run
+ of { -brand-short-name }. Click to unblock it.
+third-party-button-to-block-module = Block this module
+ .title = Block this module
+ .aria-label = Block this module
+third-party-button-to-unblock-module = Unblock this module
+ .title = Currently blocked. Click to unblock it.
+ .aria-label = Currently blocked. Click to unblock it.
+third-party-button-to-unblock-module-disabled = Unblock this module (blocklist currently disabled)
+ .title =
+ Currently marked as blocked, although the blocklist is disabled for this run
+ of { -brand-short-name }. Click to unblock it.
+ .aria-label =
+ Currently marked as blocked, although the blocklist is disabled for this run
+ of { -brand-short-name }. Click to unblock it.
+third-party-button-expand =
+ .title = Show detailed information
+third-party-button-collapse =
+ .title = Collapse detailed information
+third-party-blocking-requires-restart = To block a third-party module, { -brand-short-name } must restart.
+third-party-should-restart-title = Restart { -brand-short-name }
+third-party-restart-now = Restart now
+third-party-restart-later = Restart later
+third-party-blocked-by-builtin =
+ .title = Blocked by { -brand-short-name }
+ .alt = Blocked by { -brand-short-name }
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutWebauthn.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutWebauthn.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutWebauthn.ftl
@@ -0,0 +1,3 @@
+# 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 http://mozilla.org/MPL/2.0/.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutWebrtc.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutWebrtc.ftl
new file mode 100644
index 0000000000..b9c23aa974
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutWebrtc.ftl
@@ -0,0 +1,316 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+### Localization for about:webrtc, a troubleshooting and diagnostic page
+### for WebRTC calls. See https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API.
+
+# The text "WebRTC" is a proper noun and should not be translated.
+about-webrtc-document-title = WebRTC Internals
+# "about:webrtc" is a internal browser URL and should not be
+# translated. This string is used as a title for a file save dialog box.
+about-webrtc-save-page-dialog-title = save about:webrtc as
+
+## These labels are for a disclosure which contains the information for closed PeerConnection sections
+
+about-webrtc-closed-peerconnection-disclosure-show-msg = Show Closed PeerConnections
+about-webrtc-closed-peerconnection-disclosure-hide-msg = Hide Closed PeerConnections
+
+## AEC is an abbreviation for Acoustic Echo Cancellation.
+
+about-webrtc-aec-logging-msg-label = AEC Logging
+about-webrtc-aec-logging-off-state-label = Start AEC Logging
+about-webrtc-aec-logging-on-state-label = Stop AEC Logging
+about-webrtc-aec-logging-on-state-msg = AEC logging active (speak with the caller for a few minutes and then stop the capture)
+about-webrtc-aec-logging-toggled-on-state-msg = AEC logging active (speak with the caller for a few minutes and then stop the capture)
+about-webrtc-aec-logging-unavailable-sandbox = The environment variable MOZ_DISABLE_CONTENT_SANDBOX=1 is required to export AEC logs. Only set this variable if you understand the possible risks.
+# Variables:
+# $path (String) - The path to which the aec log file is saved.
+about-webrtc-aec-logging-toggled-off-state-msg = Captured log files can be found in: { $path }
+
+##
+
+# The autorefresh checkbox causes a stats section to autorefresh its content when checked
+about-webrtc-auto-refresh-label = Auto Refresh
+# Determines the default state of the Auto Refresh check boxes
+about-webrtc-auto-refresh-default-label = Auto Refresh By Default
+# A button which forces a refresh of displayed statistics
+about-webrtc-force-refresh-button = Refresh
+# "PeerConnection" is a proper noun associated with the WebRTC module. "ID" is
+# an abbreviation for Identifier. This string should not normally be translated
+# and is used as a data label.
+about-webrtc-peerconnection-id-label = PeerConnection ID:
+# The number of DataChannels that a PeerConnection has opened
+about-webrtc-data-channels-opened-label = Data Channels Opened:
+# The number of once open DataChannels that a PeerConnection has closed
+about-webrtc-data-channels-closed-label = Data Channels Closed:
+
+## "SDP" is an abbreviation for Session Description Protocol, an IETF standard.
+## See http://wikipedia.org/wiki/Session_Description_Protocol
+
+about-webrtc-sdp-heading = SDP
+about-webrtc-local-sdp-heading = Local SDP
+about-webrtc-local-sdp-heading-offer = Local SDP (Offer)
+about-webrtc-local-sdp-heading-answer = Local SDP (Answer)
+about-webrtc-remote-sdp-heading = Remote SDP
+about-webrtc-remote-sdp-heading-offer = Remote SDP (Offer)
+about-webrtc-remote-sdp-heading-answer = Remote SDP (Answer)
+about-webrtc-sdp-history-heading = SDP History
+about-webrtc-sdp-parsing-errors-heading = SDP Parsing Errors
+
+##
+
+# "RTP" is an abbreviation for the Real-time Transport Protocol, an IETF
+# specification, and should not normally be translated. "Stats" is an
+# abbreviation for Statistics.
+about-webrtc-rtp-stats-heading = RTP Stats
+
+## "ICE" is an abbreviation for Interactive Connectivity Establishment, which
+## is an IETF protocol, and should not normally be translated.
+
+about-webrtc-ice-state = ICE State
+# "Stats" is an abbreviation for Statistics.
+about-webrtc-ice-stats-heading = ICE Stats
+about-webrtc-ice-restart-count-label = ICE restarts:
+about-webrtc-ice-rollback-count-label = ICE rollbacks:
+about-webrtc-ice-pair-bytes-sent = Bytes sent:
+about-webrtc-ice-pair-bytes-received = Bytes received:
+about-webrtc-ice-component-id = Component ID
+
+## These adjectives are used to label a line of statistics collected for a peer
+## connection. The data represents either the local or remote end of the
+## connection.
+
+about-webrtc-type-local = Local
+about-webrtc-type-remote = Remote
+
+##
+
+# This adjective is used to label a table column. Cells in this column contain
+# the localized javascript string representation of "true" or are left blank.
+about-webrtc-nominated = Nominated
+# This adjective is used to label a table column. Cells in this column contain
+# the localized javascript string representation of "true" or are left blank.
+# This represents an attribute of an ICE candidate.
+about-webrtc-selected = Selected
+about-webrtc-save-page-label = Save Page
+about-webrtc-debug-mode-msg-label = Debug Mode
+about-webrtc-debug-mode-off-state-label = Start Debug Mode
+about-webrtc-debug-mode-on-state-label = Stop Debug Mode
+about-webrtc-enable-logging-label = Enable WebRTC Log Preset
+about-webrtc-stats-heading = Session Statistics
+about-webrtc-stats-clear = Clear History
+about-webrtc-log-heading = Connection Log
+about-webrtc-log-clear = Clear Log
+about-webrtc-log-show-msg = show log
+ .title = click to expand this section
+about-webrtc-log-hide-msg = hide log
+ .title = click to collapse this section
+about-webrtc-log-section-show-msg = Show Log
+ .title = Click to expand this section
+about-webrtc-log-section-hide-msg = Hide Log
+ .title = Click to collapse this section
+about-webrtc-copy-report-button = Copy Report
+about-webrtc-copy-report-history-button = Copy Report History
+
+## These are used to display a header for a PeerConnection.
+## Variables:
+## $browser-id (Number) - A numeric id identifying the browser tab for the PeerConnection.
+## $id (String) - A globally unique identifier for the PeerConnection.
+## $url (String) - The url of the site which opened the PeerConnection.
+## $now (Date) - The JavaScript timestamp at the time the report was generated.
+
+about-webrtc-connection-open = [ { $browser-id } | { $id } ] { $url } { $now }
+about-webrtc-connection-closed = [ { $browser-id } | { $id } ] { $url } (closed) { $now }
+
+## These are used to indicate what direction media is flowing.
+## Variables:
+## $codecs - a list of media codecs
+
+about-webrtc-short-send-receive-direction = Send / Receive: { $codecs }
+about-webrtc-short-send-direction = Send: { $codecs }
+about-webrtc-short-receive-direction = Receive: { $codecs }
+
+##
+
+about-webrtc-local-candidate = Local Candidate
+about-webrtc-remote-candidate = Remote Candidate
+about-webrtc-raw-candidates-heading = All Raw Candidates
+about-webrtc-raw-local-candidate = Raw Local Candidate
+about-webrtc-raw-remote-candidate = Raw Remote Candidate
+about-webrtc-raw-cand-show-msg = show raw candidates
+ .title = click to expand this section
+about-webrtc-raw-cand-hide-msg = hide raw candidates
+ .title = click to collapse this section
+about-webrtc-raw-cand-section-show-msg = Show Raw Candidates
+ .title = Click to expand this section
+about-webrtc-raw-cand-section-hide-msg = Hide Raw Candidates
+ .title = Click to collapse this section
+about-webrtc-priority = Priority
+about-webrtc-fold-show-msg = show details
+ .title = click to expand this section
+about-webrtc-fold-hide-msg = hide details
+ .title = click to collapse this section
+about-webrtc-fold-default-show-msg = Show Details
+ .title = Click to expand this section
+about-webrtc-fold-default-hide-msg = Hide Details
+ .title = Click to collapse this section
+about-webrtc-dropped-frames-label = Dropped frames:
+about-webrtc-discarded-packets-label = Discarded packets:
+about-webrtc-decoder-label = Decoder
+about-webrtc-encoder-label = Encoder
+about-webrtc-show-tab-label = Show tab
+about-webrtc-current-framerate-label = Framerate
+about-webrtc-width-px = Width (px)
+about-webrtc-height-px = Height (px)
+about-webrtc-consecutive-frames = Consecutive Frames
+about-webrtc-time-elapsed = Time Elapsed (s)
+about-webrtc-estimated-framerate = Estimated Framerate
+about-webrtc-rotation-degrees = Rotation (degrees)
+about-webrtc-first-frame-timestamp = First Frame Reception Timestamp
+about-webrtc-last-frame-timestamp = Last Frame Reception Timestamp
+
+## SSRCs are identifiers that represent endpoints in an RTP stream
+
+# This is an SSRC on the local side of the connection that is receiving RTP
+about-webrtc-local-receive-ssrc = Local Receiving SSRC
+# This is an SSRC on the remote side of the connection that is sending RTP
+about-webrtc-remote-send-ssrc = Remote Sending SSRC
+
+## These are displayed on the button that shows or hides the
+## PeerConnection configuration disclosure
+
+about-webrtc-pc-configuration-show-msg = Show Configuration
+about-webrtc-pc-configuration-hide-msg = Hide Configuration
+
+##
+
+# An option whose value will not be displayed but instead noted as having been
+# provided
+about-webrtc-configuration-element-provided = Provided
+# An option whose value will not be displayed but instead noted as having not
+# been provided
+about-webrtc-configuration-element-not-provided = Not Provided
+# The options set by the user in about:config that could impact a WebRTC call
+about-webrtc-custom-webrtc-configuration-heading = User Set WebRTC Preferences
+# Section header for estimated bandwidths of WebRTC media flows
+about-webrtc-bandwidth-stats-heading = Estimated Bandwidth
+# The ID of the MediaStreamTrack
+about-webrtc-track-identifier = Track Identifier
+# The estimated bandwidth available for sending WebRTC media in bytes per second
+about-webrtc-send-bandwidth-bytes-sec = Send Bandwidth (bytes/sec)
+# The estimated bandwidth available for receiving WebRTC media in bytes per second
+about-webrtc-receive-bandwidth-bytes-sec = Receive Bandwidth (bytes/sec)
+# Maximum number of bytes per second that will be padding zeros at the ends of packets
+about-webrtc-max-padding-bytes-sec = Maximum Padding (bytes/sec)
+# The amount of time inserted between packets to keep them spaced out
+about-webrtc-pacer-delay-ms = Pacer Delay ms
+# The amount of time it takes for a packet to travel from the local machine to the remote machine,
+# and then have a packet return
+about-webrtc-round-trip-time-ms = RTT ms
+# This is a section heading for video frame statistics for a MediaStreamTrack.
+# see https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.
+# Variables:
+# $track-identifier (String) - The unique identifier for the MediaStreamTrack.
+about-webrtc-frame-stats-heading = Video Frame Statistics - MediaStreamTrack ID: { $track-identifier }
+
+## These are paths used for saving the about:webrtc page or log files so
+## they can be attached to bug reports.
+## Variables:
+## $path (String) - The path to which the file is saved.
+
+about-webrtc-save-page-msg = page saved to: { $path }
+about-webrtc-debug-mode-off-state-msg = trace log can be found at: { $path }
+about-webrtc-debug-mode-on-state-msg = debug mode active, trace log at: { $path }
+about-webrtc-aec-logging-off-state-msg = captured log files can be found in: { $path }
+# This path is used for saving the about:webrtc page so it can be attached to
+# bug reports.
+# Variables:
+# $path (String) - The path to which the file is saved.
+about-webrtc-save-page-complete-msg = Page saved to: { $path }
+# This is the total number of frames encoded or decoded over an RTP stream.
+# Variables:
+# $frames (Number) - The number of frames encoded or decoded.
+about-webrtc-frames =
+ { $frames ->
+ [one] { $frames } frame
+ *[other] { $frames } frames
+ }
+# This is the number of audio channels encoded or decoded over an RTP stream.
+# Variables:
+# $channels (Number) - The number of channels encoded or decoded.
+about-webrtc-channels =
+ { $channels ->
+ [one] { $channels } channel
+ *[other] { $channels } channels
+ }
+# This is the total number of packets received on the PeerConnection.
+# Variables:
+# $packets (Number) - The number of packets received.
+about-webrtc-received-label =
+ { $packets ->
+ [one] Received { $packets } packet
+ *[other] Received { $packets } packets
+ }
+# This is the total number of packets lost by the PeerConnection.
+# Variables:
+# $packets (Number) - The number of packets lost.
+about-webrtc-lost-label =
+ { $packets ->
+ [one] Lost { $packets } packet
+ *[other] Lost { $packets } packets
+ }
+# This is the total number of packets sent by the PeerConnection.
+# Variables:
+# $packets (Number) - The number of packets sent.
+about-webrtc-sent-label =
+ { $packets ->
+ [one] Sent { $packets } packet
+ *[other] Sent { $packets } packets
+ }
+# Jitter is the variance in the arrival time of packets.
+# See: https://w3c.github.io/webrtc-stats/#dom-rtcreceivedrtpstreamstats-jitter
+# Variables:
+# $jitter (Number) - The jitter.
+about-webrtc-jitter-label = Jitter { $jitter }
+# ICE candidates arriving after the remote answer arrives are considered trickled
+# (an attribute of an ICE candidate). These are highlighted in the ICE stats
+# table with light blue background.
+about-webrtc-trickle-caption-msg = Trickled candidates (arriving after answer) are highlighted in blue
+
+## "SDP" is an abbreviation for Session Description Protocol, an IETF standard.
+## See http://wikipedia.org/wiki/Session_Description_Protocol
+
+# This is used as a header for local SDP.
+# Variables:
+# $timestamp (Number) - The Unix Epoch time at which the SDP was set.
+about-webrtc-sdp-set-at-timestamp-local = Set Local SDP at timestamp { NUMBER($timestamp, useGrouping: "false") }
+# This is used as a header for remote SDP.
+# Variables:
+# $timestamp (Number) - The Unix Epoch time at which the SDP was set.
+about-webrtc-sdp-set-at-timestamp-remote = Set Remote SDP at timestamp { NUMBER($timestamp, useGrouping: "false") }
+# This is used as a header for an SDP section contained in two columns allowing for side-by-side comparisons.
+# Variables:
+# $timestamp (Number) - The Unix Epoch time at which the SDP was set.
+# $relative-timestamp (Number) - The timestamp relative to the timestamp of the earliest received SDP.
+about-webrtc-sdp-set-timestamp = Timestamp { NUMBER($timestamp, useGrouping: "false") } (+ { $relative-timestamp } ms)
+
+## These are displayed on the button that shows or hides the SDP information disclosure
+
+about-webrtc-show-msg-sdp = Show SDP
+about-webrtc-hide-msg-sdp = Hide SDP
+
+##
+
+
+## These are displayed on the button that shows or hides the Media Context information disclosure.
+## The Media Context is the set of preferences and detected capabilities that informs
+## the negotiated CODEC settings.
+
+about-webrtc-media-context-show-msg = Show Media Context
+about-webrtc-media-context-hide-msg = Hide Media Context
+about-webrtc-media-context-heading = Media Context
+
+##
+
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutWindowsMessages.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutWindowsMessages.ftl
new file mode 100644
index 0000000000..9bd049a6ac
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutWindowsMessages.ftl
@@ -0,0 +1,20 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+### Localization for the about:windows-messages page, which is only available
+### on the Windows operating system.
+### This page records and shows messages sent from the operating system to
+### individual browser windows. These messages can be useful in debugging
+### hard-to-reproduce issues with window sizing and position.
+
+# Windows refers to the operating system
+windows-messages-page-title = Windows Messages Information
+windows-messages-intro =
+ This page shows the most recent messages sent by Windows
+ to the { -brand-short-name } browser windows. The
+ bolded entry represents this window. Note that this page shows
+ the most recent messages at the time the page was loaded;
+ to see current ones you will need to refresh the page.
+windows-messages-copy-to-clipboard = Copy to clipboard
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/abuseReports.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/abuseReports.ftl
new file mode 100644
index 0000000000..957ee49474
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/abuseReports.ftl
@@ -0,0 +1,116 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Localized string used as the dialog window title.
+# "Report" is a noun in this case, "Report for AddonName".
+#
+# Variables:
+# $addon-name (string) - Name of the add-on being reported
+abuse-report-dialog-title = Report for { $addon-name }
+abuse-report-title-extension = Report This Extension to { -vendor-short-name }
+abuse-report-title-sitepermission = Report This Site Permissions add-on to { -vendor-short-name }
+abuse-report-title-theme = Report This Theme to { -vendor-short-name }
+abuse-report-subtitle = What’s the issue?
+# Variables:
+# $author-name (string) - Name of the add-on author
+abuse-report-addon-authored-by = by <a data-l10n-name="author-name">{ $author-name }</a>
+abuse-report-learnmore =
+ Unsure what issue to select?
+ <a data-l10n-name="learnmore-link">Learn more about reporting extensions and themes</a>
+abuse-report-learnmore-intro = Unsure what issue to select?
+abuse-report-learnmore-link = Learn more about reporting extensions and themes
+abuse-report-submit-description = Describe the problem (optional)
+abuse-report-textarea =
+ .placeholder = It’s easier for us to address a problem if we have specifics. Please describe what you’re experiencing. Thank you for helping us keep the web healthy.
+abuse-report-submit-note =
+ Note: Don’t include personal information (such as name, email address, phone number, physical address).
+ { -vendor-short-name } keeps a permanent record of these reports.
+
+## Panel buttons.
+
+abuse-report-cancel-button = Cancel
+abuse-report-next-button = Next
+abuse-report-goback-button = Go back
+abuse-report-submit-button = Submit
+
+## Message bars descriptions.
+##
+## Variables:
+## $addon-name (string) - Name of the add-on
+
+abuse-report-messagebar-aborted = Report for <span data-l10n-name="addon-name">{ $addon-name }</span> cancelled.
+abuse-report-messagebar-submitting = Sending report for <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-submitted = Thank you for submitting a report. Do you want to remove <span data-l10n-name="addon-name">{ $addon-name }</span>?
+abuse-report-messagebar-submitted-noremove = Thank you for submitting a report.
+abuse-report-messagebar-removed-extension = Thank you for submitting a report. You’ve removed the extension <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-removed-sitepermission = Thank you for submitting a report. You’ve removed the Site Permissions add-on <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-removed-theme = Thank you for submitting a report. You’ve removed the theme <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-error = There was an error sending the report for <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-error-recent-submit = The report for <span data-l10n-name="addon-name">{ $addon-name }</span> wasn’t sent because another report was submitted recently.
+abuse-report-messagebar-aborted2 =
+ .message = Report for { $addon-name } cancelled.
+abuse-report-messagebar-submitting2 =
+ .message = Sending report for { $addon-name }.
+abuse-report-messagebar-submitted2 =
+ .message = Thank you for submitting a report. Do you want to remove { $addon-name }?
+abuse-report-messagebar-submitted-noremove2 =
+ .message = Thank you for submitting a report.
+abuse-report-messagebar-removed-extension2 =
+ .message = Thank you for submitting a report. You’ve removed the extension { $addon-name }.
+abuse-report-messagebar-removed-sitepermission2 =
+ .message = Thank you for submitting a report. You’ve removed the Site Permissions add-on { $addon-name }.
+abuse-report-messagebar-removed-theme2 =
+ .message = Thank you for submitting a report. You’ve removed the theme { $addon-name }.
+abuse-report-messagebar-error2 =
+ .message = There was an error sending the report for { $addon-name }.
+abuse-report-messagebar-error-recent-submit2 =
+ .message = The report for { $addon-name } wasn’t sent because another report was submitted recently.
+
+## Message bars actions.
+
+abuse-report-messagebar-action-remove-extension = Yes, Remove It
+abuse-report-messagebar-action-keep-extension = No, I’ll Keep It
+abuse-report-messagebar-action-remove-sitepermission = Yes, Remove It
+abuse-report-messagebar-action-keep-sitepermission = No, I’ll Keep It
+abuse-report-messagebar-action-remove-theme = Yes, Remove It
+abuse-report-messagebar-action-keep-theme = No, I’ll Keep It
+abuse-report-messagebar-action-retry = Retry
+abuse-report-messagebar-action-cancel = Cancel
+
+## Abuse report reasons (optionally paired with related examples and/or suggestions)
+
+abuse-report-damage-reason-v2 = It damaged my computer or compromised my data
+abuse-report-damage-example = Example: Injected malware or stole data
+abuse-report-spam-reason-v2 = It contains spam or inserts unwanted advertising
+abuse-report-spam-example = Example: Insert ads on webpages
+abuse-report-settings-reason-v2 = It changed my search engine, homepage, or new tab without informing or asking me
+abuse-report-settings-suggestions = Before reporting the extension, you can try changing your settings:
+abuse-report-settings-suggestions-search = Change your default search settings
+abuse-report-settings-suggestions-homepage = Change your homepage and new tab
+abuse-report-deceptive-reason-v2 = It claims to be something it’s not
+abuse-report-deceptive-example = Example: Misleading description or imagery
+abuse-report-broken-reason-extension-v2 = It doesn’t work, breaks websites, or slows down { -brand-product-name }
+abuse-report-broken-reason-sitepermission-v2 = It doesn’t work, breaks websites, or slows down { -brand-product-name }
+abuse-report-broken-reason-theme-v2 = It doesn’t work or breaks browser display
+abuse-report-broken-example = Example: Features are slow, hard to use, or don’t work; parts of websites won’t load or look unusual
+abuse-report-broken-suggestions-extension =
+ It sounds like you’ve identified a bug. In addition to submitting a report here, the best way
+ to get a functionality issue resolved is to contact the extension developer.
+ <a data-l10n-name="support-link">Visit the extension’s website</a> to get the developer information.
+abuse-report-broken-suggestions-sitepermission =
+ It sounds like you’ve identified a bug. In addition to submitting a report here, the best way
+ to get a functionality issue resolved is to contact the website developer.
+ <a data-l10n-name="support-link">Visit the website</a> to get the developer information.
+abuse-report-broken-suggestions-theme =
+ It sounds like you’ve identified a bug. In addition to submitting a report here, the best way
+ to get a functionality issue resolved is to contact the theme developer.
+ <a data-l10n-name="support-link">Visit the theme’s website</a> to get the developer information.
+abuse-report-policy-reason-v2 = It contains hateful, violent, or illegal content
+abuse-report-policy-suggestions =
+ Note: Copyright and trademark issues must be reported in a separate process.
+ <a data-l10n-name="report-infringement-link">Use these instructions</a> to
+ report the problem.
+abuse-report-unwanted-reason-v2 = I never wanted it and don’t know how to get rid of it
+abuse-report-unwanted-example = Example: An application installed it without my permission
+abuse-report-other-reason = Something else
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/certviewer.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/certviewer.ftl
new file mode 100644
index 0000000000..2cbd46009a
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/certviewer.ftl
@@ -0,0 +1,122 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+certificate-viewer-certificate-section-title = Certificate
+
+## Error messages
+
+certificate-viewer-error-message = We were unable to find the certificate information, or the certificate is corrupted. Please try again.
+certificate-viewer-error-title = Something went wrong.
+
+## Certificate information labels
+
+certificate-viewer-algorithm = Algorithm
+certificate-viewer-certificate-authority = Certificate Authority
+certificate-viewer-cipher-suite = Cipher Suite
+certificate-viewer-common-name = Common Name
+certificate-viewer-email-address = Email Address
+# Variables:
+# $firstCertName (String) - Common Name for the displayed certificate
+certificate-viewer-tab-title = Certificate for { $firstCertName }
+# Inc. means Incorporated, e.g GitHub is incorporated in Delaware
+certificate-viewer-inc-country = Inc. Country
+certificate-viewer-country = Country
+certificate-viewer-curve = Curve
+certificate-viewer-distribution-point = Distribution Point
+certificate-viewer-dns-name = DNS Name
+certificate-viewer-ip-address = IP Address
+certificate-viewer-other-name = Other Name
+certificate-viewer-exponent = Exponent
+certificate-viewer-id = ID
+certificate-viewer-key-exchange-group = Key Exchange Group
+certificate-viewer-key-id = Key ID
+certificate-viewer-key-size = Key Size
+# Inc. means Incorporated, e.g GitHub is incorporated in Delaware
+certificate-viewer-inc-locality = Inc. Locality
+certificate-viewer-locality = Locality
+certificate-viewer-location = Location
+certificate-viewer-logid = Log ID
+certificate-viewer-method = Method
+certificate-viewer-modulus = Modulus
+certificate-viewer-name = Name
+certificate-viewer-not-after = Not After
+certificate-viewer-not-before = Not Before
+certificate-viewer-organization = Organization
+certificate-viewer-organizational-unit = Organizational Unit
+certificate-viewer-policy = Policy
+certificate-viewer-protocol = Protocol
+certificate-viewer-public-value = Public Value
+certificate-viewer-purposes = Purposes
+certificate-viewer-qualifier = Qualifier
+certificate-viewer-qualifiers = Qualifiers
+certificate-viewer-required = Required
+certificate-viewer-unsupported = &lt;unsupported&gt;
+# Inc. means Incorporated, e.g GitHub is incorporated in Delaware
+certificate-viewer-inc-state-province = Inc. State/Province
+certificate-viewer-state-province = State/Province
+certificate-viewer-sha-1 = SHA-1
+certificate-viewer-sha-256 = SHA-256
+certificate-viewer-serial-number = Serial Number
+certificate-viewer-signature-algorithm = Signature Algorithm
+certificate-viewer-signature-scheme = Signature Scheme
+certificate-viewer-timestamp = Timestamp
+certificate-viewer-value = Value
+certificate-viewer-version = Version
+certificate-viewer-business-category = Business Category
+certificate-viewer-subject-name = Subject Name
+certificate-viewer-issuer-name = Issuer Name
+certificate-viewer-validity = Validity
+certificate-viewer-subject-alt-names = Subject Alt Names
+certificate-viewer-public-key-info = Public Key Info
+certificate-viewer-miscellaneous = Miscellaneous
+certificate-viewer-fingerprints = Fingerprints
+certificate-viewer-basic-constraints = Basic Constraints
+certificate-viewer-key-usages = Key Usages
+certificate-viewer-extended-key-usages = Extended Key Usages
+certificate-viewer-ocsp-stapling = OCSP Stapling
+certificate-viewer-subject-key-id = Subject Key ID
+certificate-viewer-authority-key-id = Authority Key ID
+certificate-viewer-authority-info-aia = Authority Info (AIA)
+certificate-viewer-certificate-policies = Certificate Policies
+certificate-viewer-embedded-scts = Embedded SCTs
+certificate-viewer-crl-endpoints = CRL Endpoints
+
+# This message is used as a row header in the Miscellaneous section.
+# The associated data cell contains links to download the certificate.
+certificate-viewer-download = Download
+# This message is used to replace boolean values (true/false) in several certificate fields, e.g. Certificate Authority
+# Variables:
+# $boolean (String) - true/false value for the specific field
+certificate-viewer-boolean =
+ { $boolean ->
+ [true] Yes
+ *[false] No
+ }
+
+## Variables:
+## $fileName (String) - The file name to save the PEM data in, derived from the common name from the certificate being displayed.
+
+certificate-viewer-download-pem = PEM (cert)
+ .download = { $fileName }.pem
+certificate-viewer-download-pem-chain = PEM (chain)
+ .download = { $fileName }-chain.pem
+
+# The title attribute for Critical Extension icon
+certificate-viewer-critical-extension =
+ .title = This extension has been marked as critical, meaning that clients must reject the certificate if they do not understand it.
+certificate-viewer-export = Export
+ .download = { $fileName }.pem
+
+##
+
+# Label for a tab where we haven't found a better label:
+certificate-viewer-unknown-group-label = (unknown)
+
+## Labels for tabs displayed in stand-alone about:certificate page
+
+certificate-viewer-tab-mine = Your Certificates
+certificate-viewer-tab-people = People
+certificate-viewer-tab-servers = Servers
+certificate-viewer-tab-ca = Authorities
+certificate-viewer-tab-unkonwn = Unknown
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/config.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/config.ftl
new file mode 100644
index 0000000000..d06fc251f2
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/config.ftl
@@ -0,0 +1,55 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## These strings appear on the warning you see when first visiting about:config.
+
+about-config-intro-warning-title = Proceed with Caution
+about-config-intro-warning-text = Changing advanced configuration preferences can impact { -brand-short-name } performance or security.
+about-config-intro-warning-checkbox = Warn me when I attempt to access these preferences
+about-config-intro-warning-button = Accept the Risk and Continue
+
+##
+
+# This is shown on the page before searching but after the warning is accepted.
+about-config-caution-text = Changing these preferences can impact { -brand-short-name } performance or security.
+
+about-config-page-title = Advanced Preferences
+
+about-config-search-input1 =
+ .placeholder = Search preference name
+about-config-show-all = Show All
+
+about-config-show-only-modified = Show only modified preferences
+
+about-config-pref-add-button =
+ .title = Add
+about-config-pref-toggle-button =
+ .title = Toggle
+about-config-pref-edit-button =
+ .title = Edit
+about-config-pref-save-button =
+ .title = Save
+about-config-pref-reset-button =
+ .title = Reset
+about-config-pref-delete-button =
+ .title = Delete
+
+## Labels for the type selection radio buttons shown when adding preferences.
+
+about-config-pref-add-type-boolean = Boolean
+about-config-pref-add-type-number = Number
+about-config-pref-add-type-string = String
+
+## Preferences with a non-default value are differentiated visually, and at the
+## same time the state is made accessible to screen readers using an aria-label
+## that won't be visible or copied to the clipboard.
+##
+## Variables:
+## $value (String): The full value of the preference.
+
+about-config-pref-accessible-value-default =
+ .aria-label = { $value } (default)
+about-config-pref-accessible-value-custom =
+ .aria-label = { $value } (custom)
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/url-classifier.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/url-classifier.ftl
new file mode 100644
index 0000000000..5d518142f3
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/url-classifier.ftl
@@ -0,0 +1,58 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+url-classifier-title = URL Classifier Information
+url-classifier-search-title = Search
+url-classifier-search-result-title = Results
+url-classifier-search-result-uri = URI: { $uri }
+url-classifier-search-result-list = List of tables: { $list }
+url-classifier-search-input = URL
+url-classifier-search-error-invalid-url = Invalid URL
+url-classifier-search-error-no-features = No features selected
+url-classifier-search-btn = Start searching
+url-classifier-search-features = Features
+url-classifier-search-listType = List type
+url-classifier-provider-title = Provider
+url-classifier-provider = Provider
+url-classifier-provider-last-update-time = Last update time
+url-classifier-provider-next-update-time = Next update time
+url-classifier-provider-back-off-time = Back-off time
+url-classifier-provider-last-update-status = Last update status
+url-classifier-provider-update-btn = Update
+url-classifier-cache-title = Cache
+url-classifier-cache-refresh-btn = Refresh
+url-classifier-cache-clear-btn = Clear
+url-classifier-cache-table-name = Table name
+url-classifier-cache-ncache-entries = Number of negative cache entries
+url-classifier-cache-pcache-entries = Number of positive cache entries
+url-classifier-cache-show-entries = Show entries
+url-classifier-cache-entries = Cache Entries
+url-classifier-cache-prefix = Prefix
+url-classifier-cache-ncache-expiry = Negative cache expiry
+url-classifier-cache-fullhash = Full hash
+url-classifier-cache-pcache-expiry = Positive cache expiry
+url-classifier-debug-title = Debug
+url-classifier-debug-module-btn = Set Log Modules
+url-classifier-debug-file-btn = Set Log File
+url-classifier-debug-js-log-chk = Set JS Log
+url-classifier-debug-sb-modules = Safe Browsing log modules
+url-classifier-debug-modules = Current log modules
+url-classifier-debug-sbjs-modules = Safe Browsing JS log
+url-classifier-debug-file = Current log file
+
+url-classifier-trigger-update = Trigger Update
+url-classifier-not-available = N/A
+url-classifier-disable-sbjs-log = Disable Safe Browsing JS Log
+url-classifier-enable-sbjs-log = Enable Safe Browsing JS Log
+url-classifier-enabled = Enabled
+url-classifier-disabled = Disabled
+url-classifier-updating = updating
+url-classifier-cannot-update = cannot update
+url-classifier-success = success
+
+## Variables
+## $error (string) - Error message
+
+url-classifier-update-error = update error ({ $error })
+url-classifier-download-error = download error ({ $error })
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/branding/accounts.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/branding/accounts.ftl
new file mode 100644
index 0000000000..d01a1e149f
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/branding/accounts.ftl
@@ -0,0 +1,11 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# “Account” can be localized, “Firefox” must be treated as a brand,
+# and kept in English.
+-fxaccount-brand-name =
+ { $capitalization ->
+ [sentence] Firefox account
+ *[title] Firefox Account
+ }
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/branding/brandings.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/branding/brandings.ftl
new file mode 100644
index 0000000000..ef3b2fdedb
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/branding/brandings.ftl
@@ -0,0 +1,45 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## The following feature names must be treated as a brand.
+##
+## They cannot be:
+## - Transliterated.
+## - Translated.
+##
+## Declension should be avoided where possible, leaving the original
+## brand unaltered in prominent UI positions.
+##
+## For further details, consult:
+## https://mozilla-l10n.github.io/styleguides/mozilla_general/#brands-copyright-and-trademark
+
+-facebook-container-brand-name = Facebook Container
+-lockwise-brand-name = Firefox Lockwise
+-lockwise-brand-short-name = Lockwise
+-monitor-brand-name = Firefox Monitor
+-monitor-brand-short-name = Monitor
+-pocket-brand-name = Pocket
+-send-brand-name = Firefox Send
+-screenshots-brand-name = Firefox Screenshots
+-mozilla-vpn-brand-name = Mozilla VPN
+-profiler-brand-name = Firefox Profiler
+-translations-brand-name = Firefox Translations
+-focus-brand-name = Firefox Focus
+-relay-brand-name = Firefox Relay
+-relay-brand-short-name = Relay
+-fakespot-brand-name = Fakespot
+# Note the name of the website is capitalized.
+-fakespot-website-name = Fakespot.com
+# The particle "by" can be localized, "Fakespot" and "Mozilla" should not be localized or transliterated.
+-fakespot-brand-full-name = Fakespot by Mozilla
+# “Suggest” can be localized, “Firefox” must be treated as a brand
+# and kept in English.
+-firefox-suggest-brand-name = Firefox Suggest
+# ”Home" can be localized, “Firefox” must be treated as a brand
+# and kept in English.
+-firefox-home-brand-name = Firefox Home
+# View" can be localized, “Firefox” must be treated as a brand
+# and kept in English.
+-firefoxview-brand-name = Firefox View
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/contentanalysis/contentanalysis.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/contentanalysis/contentanalysis.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/contentanalysis/contentanalysis.ftl
@@ -0,0 +1,3 @@
+# 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 http://mozilla.org/MPL/2.0/.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/downloads/downloadUI.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/downloads/downloadUI.ftl
new file mode 100644
index 0000000000..27f1006c4d
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/downloads/downloadUI.ftl
@@ -0,0 +1,51 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+download-ui-confirm-title = Cancel All Downloads?
+
+## Variables:
+## $downloadsCount (Number): The current downloads count.
+
+download-ui-confirm-quit-cancel-downloads =
+ { $downloadsCount ->
+ [1] If you exit now, 1 download will be cancelled. Are you sure you want to exit?
+ *[other] If you exit now, { $downloadsCount } downloads will be cancelled. Are you sure you want to exit?
+ }
+download-ui-confirm-quit-cancel-downloads-mac =
+ { $downloadsCount ->
+ [1] If you quit now, 1 download will be cancelled. Are you sure you want to quit?
+ *[other] If you quit now, { $downloadsCount } downloads will be cancelled. Are you sure you want to quit?
+ }
+download-ui-dont-quit-button =
+ { PLATFORM() ->
+ [mac] Don’t Quit
+ *[other] Don’t Exit
+ }
+
+download-ui-confirm-offline-cancel-downloads =
+ { $downloadsCount ->
+ [1] If you go offline now, 1 download will be cancelled. Are you sure you want to go offline?
+ *[other] If you go offline now, { $downloadsCount } downloads will be cancelled. Are you sure you want to go offline?
+ }
+download-ui-dont-go-offline-button = Stay Online
+
+download-ui-confirm-leave-private-browsing-windows-cancel-downloads =
+ { $downloadsCount ->
+ [1] If you close all Private Browsing windows now, 1 download will be cancelled. Are you sure you want to leave Private Browsing?
+ *[other] If you close all Private Browsing windows now, { $downloadsCount } downloads will be cancelled. Are you sure you want to leave Private Browsing?
+ }
+download-ui-dont-leave-private-browsing-button = Stay in Private Browsing
+
+download-ui-cancel-downloads-ok =
+ { $downloadsCount ->
+ [1] Cancel 1 Download
+ *[other] Cancel { $downloadsCount } Downloads
+ }
+
+##
+
+download-ui-file-executable-security-warning-title = Open Executable File?
+# Variables:
+# $executable (String): The executable file to be opened.
+download-ui-file-executable-security-warning = “{ $executable }” is an executable file. Executable files may contain viruses or other malicious code that could harm your computer. Use caution when opening this file. Are you sure you want to launch “{ $executable }”?
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/downloads/downloadUtils.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/downloads/downloadUtils.ftl
new file mode 100644
index 0000000000..889a7de3ec
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/downloads/downloadUtils.ftl
@@ -0,0 +1,106 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+## Variables:
+## $timeValue (number) - Number of units of time
+
+# Short form for seconds
+download-utils-short-seconds =
+ { $timeValue ->
+ [one] s
+ *[other] s
+ }
+# Short form for minutes
+download-utils-short-minutes =
+ { $timeValue ->
+ [one] m
+ *[other] m
+ }
+# Short form for hours
+download-utils-short-hours =
+ { $timeValue ->
+ [one] h
+ *[other] h
+ }
+# Short form for days
+download-utils-short-days =
+ { $timeValue ->
+ [one] d
+ *[other] d
+ }
+
+##
+
+# — is the "em dash" (long dash)
+# example: 4 minutes left — 1.1 of 11.1 GB (2.2 MB/sec)
+# Variables:
+# $timeLeft (String): time left.
+# $transfer (String): transfer progress.
+# $rate (String): rate number.
+# $unit (String): rate unit.
+download-utils-status = { $timeLeft } — { $transfer } ({ $rate } { $unit }/sec)
+# If download speed is a JavaScript Infinity value, this phrase is used
+# — is the "em dash" (long dash)
+# example: 4 minutes left — 1.1 of 11.1 GB (Really fast)
+# Variables:
+# $timeLeft (String): time left.
+# $transfer (String): transfer progress.
+download-utils-status-infinite-rate = { $timeLeft } — { $transfer } (Really fast)
+# — is the "em dash" (long dash)
+# example: 4 minutes left — 1.1 of 11.1 GB
+# Variables:
+# $timeLeft (String): time left.
+# $transfer (String): transfer progress.
+download-utils-status-no-rate = { $timeLeft } — { $transfer }
+
+download-utils-bytes = bytes
+download-utils-kilobyte = kB
+download-utils-megabyte = MB
+download-utils-gigabyte = GB
+
+# example: 1.1 of 333 MB
+# Variables:
+# $progress (String): progress number.
+# $total (String): total number.
+# $totalUnits (String): total unit.
+download-utils-transfer-same-units = { $progress } of { $total } { $totalUnits }
+# example: 11.1 MB of 3.3 GB
+# Variables:
+# $progress (String): progress number.
+# $progressUnits (String): progress unit.
+# $total (String): total number.
+# $totalUnits (String): total unit.
+download-utils-transfer-diff-units = { $progress } { $progressUnits } of { $total } { $totalUnits }
+# example: 111 KB
+# Variables:
+# $progress (String): progress number.
+# $progressUnits (String): unit.
+download-utils-transfer-no-total = { $progress } { $progressUnits }
+
+# examples: 1m; 11h
+# Variables:
+# $time (String): time number.
+# $unit (String): time unit.
+download-utils-time-pair = { $time }{ $unit }
+# examples: 1m left; 11h left
+# Variables:
+# $time (String): time left, including a unit
+download-utils-time-left-single = { $time } left
+# examples: 11h 2m left; 1d 22h left
+# Variables:
+# $time1 (String): time left, including a unit
+# $time2 (String): smaller measure of time left, including a unit
+download-utils-time-left-double = { $time1 } { $time2 } left
+download-utils-time-few-seconds = A few seconds left
+download-utils-time-unknown = Unknown time left
+
+# Variables:
+# $scheme (String): URI scheme like data: jar: about:
+download-utils-done-scheme = { $scheme } resource
+# Special case of done-scheme for file:
+# This is used as an eTLD replacement for local files, so make it lower case
+download-utils-done-file-scheme = local file
+
+# Displayed time for files finished yesterday
+download-utils-yesterday = Yesterday
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/featuregates/features.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/featuregates/features.ftl
new file mode 100644
index 0000000000..f419ea5591
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/featuregates/features.ftl
@@ -0,0 +1,48 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# The title of the experiment should be kept in English as it may be referenced
+# by various online articles and is technical in nature.
+experimental-features-css-masonry2 =
+ .label = CSS: Masonry Layout
+experimental-features-css-masonry-description = Enables support for the experimental CSS Masonry Layout feature. See the <a data-l10n-name="explainer">explainer</a> for a high level description of the feature. To provide feedback, please comment in <a data-l10n-name="w3c-issue">this GitHub issue</a> or <a data-l10n-name="bug">this bug</a>.
+# The title of the experiment should be kept in English as it may be referenced
+# by various online articles and is technical in nature.
+experimental-features-web-gpu2 =
+ .label = Web API: WebGPU
+experimental-features-web-gpu-description3 = The <a data-l10n-name="wikipedia-webgpu">WebGPU API</a> provides low-level support for performing computation and graphics rendering using the <a data-l10n-name="wikipedia-gpu">Graphics Processing Unit (GPU)</a> of the user’s device or computer. The first version of the <a data-l10n-name="spec">specification</a> is nearing finalization. See <a data-l10n-name="bugzilla">bug 1616739</a> for more details.
+# The title of the experiment should be kept in English as it may be referenced
+# by various online articles and is technical in nature.
+experimental-features-media-jxl =
+ .label = Media: JPEG XL
+experimental-features-media-jxl-description = With this feature enabled, { -brand-short-name } supports the JPEG XL (JXL) format. This is an enhanced image file format that supports lossless transition from traditional JPEG files. See <a data-l10n-name="bugzilla">bug 1539075</a> for more details.
+experimental-features-devtools-compatibility-panel =
+ .label = Developer Tools: Compatibility Panel
+experimental-features-devtools-compatibility-panel-description = A side panel for the Page Inspector that shows you information detailing your app’s cross-browser compatibility status. See <a data-l10n-name="bugzilla">bug 1584464</a> for more details.
+# Do not translate 'SameSite', 'Lax' and 'None'.
+experimental-features-cookie-samesite-none-requires-secure2 =
+ .label = Cookies: SameSite=None requires secure attribute
+experimental-features-cookie-samesite-none-requires-secure2-description = Cookies with “SameSite=None” attribute require the secure attribute. This feature requires “Cookies: SameSite=Lax by default”.
+# about:home should be kept in English, as it refers to the the URI for
+# the internal default home page.
+experimental-features-abouthome-startup-cache =
+ .label = about:home startup cache
+experimental-features-abouthome-startup-cache-description = A cache for the initial about:home document that is loaded by default at startup. The purpose of the cache is to improve startup performance.
+# "Service Worker" is an API name and is usually not translated.
+experimental-features-devtools-serviceworker-debugger-support =
+ .label = Developer Tools: Service Worker debugging
+# "Service Worker" is an API name and is usually not translated.
+experimental-features-devtools-serviceworker-debugger-support-description = Enables experimental support for Service Workers in the Debugger panel. This feature may slow the Developer Tools down and increase memory consumption.
+# WebRTC global mute toggle controls
+experimental-features-webrtc-global-mute-toggles =
+ .label = WebRTC Global Mute Toggles
+experimental-features-webrtc-global-mute-toggles-description = Add controls to the WebRTC global sharing indicator that allow users to globally mute their microphone and camera feeds.
+# JS JIT Warp project
+experimental-features-js-warp =
+ .label = JavaScript JIT: Warp
+experimental-features-js-warp-description = Enable Warp, a project to improve JavaScript performance and memory usage.
+# Search during IME
+experimental-features-ime-search =
+ .label = Address Bar: show results during IME composition
+experimental-features-ime-search-description = An IME (Input Method Editor) is a tool that allows you to enter complex symbols, such as those used in East Asian or Indic written languages, using a standard keyboard. Enabling this experiment will keep the address bar panel open, showing search results and suggestions, while using IME to input text. Note that the IME might display a panel that covers the address bar results, therefore this preference is only suggested for IME not using this type of panel.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/formautofill/formAutofill.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/formautofill/formAutofill.ftl
new file mode 100644
index 0000000000..a9f0c4783c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/formautofill/formAutofill.ftl
@@ -0,0 +1,16 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## OS Prompt Dialog
+
+# The links lead users to Form Autofill browser preferences.
+autofill-options-link = Form Autofill Options
+autofill-options-link-osx = Form Autofill Preferences
+
+## The credit card capture doorhanger
+
+
+# Used on the doorhanger when an credit card change is detected.
+
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/alert.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/alert.ftl
new file mode 100644
index 0000000000..f0061d4446
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/alert.ftl
@@ -0,0 +1,12 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+alert-close =
+ .tooltiptext = Close this notification
+alert-settings-title =
+ .tooltiptext = Settings
+
+## Reminder Notifications
+
+notification-default-dismiss = Dismiss
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/appPicker.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/appPicker.ftl
new file mode 100644
index 0000000000..0a85c9b839
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/appPicker.ftl
@@ -0,0 +1,10 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+app-picker-browse-button =
+ .buttonlabelextra2 = Browse…
+app-picker-send-msg =
+ .value = Send this item to:
+app-picker-no-app-found =
+ .value = No applications were found for this file type.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/browser-utils.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/browser-utils.ftl
new file mode 100644
index 0000000000..8add6af511
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/browser-utils.ftl
@@ -0,0 +1,10 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Used for data: URLs where we don't have any useful origin information
+browser-utils-url-data = (data)
+# Used for extension URLs
+# Variables:
+# $extension (string) - Name of the extension that generated the URL
+browser-utils-url-extension = Extension ({ $extension })
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/commonDialog.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/commonDialog.ftl
new file mode 100644
index 0000000000..e7d4322820
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/commonDialog.ftl
@@ -0,0 +1,20 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+common-dialog-title-null = This page says
+common-dialog-title-system = { -brand-short-name }
+# Title displayed when the origin of a web dialog is unknown.
+common-dialog-title-unknown = Unknown
+
+common-dialog-username =
+ .value = Username
+common-dialog-password =
+ .value = Password
+
+common-dialog-copy-cmd =
+ .label = Copy
+ .accesskey = C
+common-dialog-select-all-cmd =
+ .label = Select All
+ .accesskey = A
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/contextual-identity.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/contextual-identity.ftl
new file mode 100644
index 0000000000..f9f0fbb406
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/contextual-identity.ftl
@@ -0,0 +1,29 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## Names of the default containers in Firefox.
+## See https://support.mozilla.org/kb/how-use-firefox-containers
+
+user-context-personal =
+ .label = Personal
+ .accesskey = P
+user-context-work =
+ .label = Work
+ .accesskey = W
+user-context-banking =
+ .label = Banking
+ .accesskey = B
+user-context-shopping =
+ .label = Shopping
+ .accesskey = S
+
+##
+
+user-context-none =
+ .label = No Container
+ .accesskey = N
+user-context-manage-containers =
+ .label = Manage containers
+ .accesskey = O
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/cookieBannerHandling.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/cookieBannerHandling.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/cookieBannerHandling.ftl
@@ -0,0 +1,3 @@
+# 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 http://mozilla.org/MPL/2.0/.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/createProfileWizard.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/createProfileWizard.ftl
new file mode 100644
index 0000000000..35ca78fe3b
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/createProfileWizard.ftl
@@ -0,0 +1,53 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+create-profile-window2 =
+ .title = Create Profile Wizard
+ .style = min-width: 45em; min-height: 32em;
+
+## First wizard page
+
+create-profile-first-page-header2 =
+ { PLATFORM() ->
+ [macos] Introduction
+ *[other] Welcome to the { create-profile-window2.title }
+ }
+
+profile-creation-explanation-1 = { -brand-short-name } stores information about your settings and preferences in your personal profile.
+
+profile-creation-explanation-2 = If you are sharing this copy of { -brand-short-name } with other users, you can use profiles to keep each user’s information separate. To do this, each user should create his or her own profile.
+
+profile-creation-explanation-3 = If you are the only person using this copy of { -brand-short-name }, you must have at least one profile. If you would like, you can create multiple profiles for yourself to store different sets of settings and preferences. For example, you may want to have separate profiles for business and personal use.
+
+profile-creation-explanation-4 =
+ { PLATFORM() ->
+ [macos] To begin creating your profile, click Continue.
+ *[other] To begin creating your profile, click Next.
+ }
+
+## Second wizard page
+
+create-profile-last-page-header2 =
+ { PLATFORM() ->
+ [macos] Conclusion
+ *[other] Completing the { create-profile-window2.title }
+ }
+
+profile-creation-intro = If you create several profiles you can tell them apart by the profile names. You may use the name provided here or use one of your own.
+
+profile-prompt = Enter new profile name:
+ .accesskey = E
+
+profile-default-name =
+ .value = Default User
+
+profile-directory-explanation = Your user settings, preferences and other user-related data will be stored in:
+
+create-profile-choose-folder =
+ .label = Choose Folder…
+ .accesskey = C
+
+create-profile-use-default =
+ .label = Use Default Folder
+ .accesskey = U
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/cspErrors.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/cspErrors.ftl
new file mode 100644
index 0000000000..6ff293c1c5
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/cspErrors.ftl
@@ -0,0 +1,32 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Variables:
+# $directive (String): the name of a CSP directive, such as "script-src".
+csp-error-missing-directive = Policy is missing a required ‘{ $directive }’ directive
+
+# Variables:
+# $directive (String): the name of a CSP directive, such as "script-src".
+# $keyword (String): the name of a CSP keyword, usually 'unsafe-inline'.
+csp-error-illegal-keyword = “{ $directive }” directive contains a forbidden { $keyword } keyword
+
+# Variables:
+# $directive (String): the name of a CSP directive, such as "script-src".
+# $scheme (String): a protocol name, such as "http", which appears as "http:", as it would in a URL.
+csp-error-illegal-protocol = “{ $directive }” directive contains a forbidden { $scheme }: protocol source
+
+# Variables:
+# $directive (String): the name of a CSP directive, such as "script-src".
+# $scheme (String): a protocol name, such as "http", which appears as "http:", as it would in a URL.
+csp-error-missing-host = { $scheme }: protocol requires a host in “{ $directive }” directives
+
+# Variables:
+# $directive (String): the name of a CSP directive, such as "script-src".
+# $source (String): the name of a CSP source, usually 'self'.
+csp-error-missing-source = “{ $directive }” must include the source { $source }
+
+# Variables:
+# $directive (String): the name of a CSP directive, such as "script-src".
+# $scheme (String): a protocol name, such as "http", which appears as "http:", as it would in a URL.
+csp-error-illegal-host-wildcard = { $scheme }: wildcard sources in “{ $directive }” directives must include at least one non-generic sub-domain (e.g., *.example.com rather than *.com)
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/datepicker.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/datepicker.ftl
new file mode 100644
index 0000000000..1cb16ad16c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/datepicker.ftl
@@ -0,0 +1,50 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+### Datepicker - Dialog for default HTML's <input type="date">
+
+
+## These labels are used by screenreaders and other assistive technology
+## to indicate the purpose of a date picker calendar and a month-year selection
+## spinner dialogs for HTML's <input type="date">
+
+date-picker-label =
+ .aria-label = Choose a date
+date-spinner-label =
+ .aria-label = Choose a month and a year
+
+## Text of the clear button
+
+date-picker-clear-button = Clear
+
+## These labels are used by screenreaders and other assistive technology
+## to indicate the purpose of buttons that leaf through months of a calendar
+
+date-picker-previous =
+ .aria-label = Previous month
+date-picker-next =
+ .aria-label = Next month
+
+## These labels are used by screenreaders and other assistive technology
+## to indicate the type of a value/unit that is being selected within a
+## Month/Year date spinner dialogs on a datepicker calendar dialog
+
+date-spinner-month =
+ .aria-label = Month
+date-spinner-year =
+ .aria-label = Year
+
+## These labels are used by screenreaders and other assistive technology
+## to indicate the purpose of buttons that leaf through either months
+## or years of a Month/Year date spinner on a datepicker calendar dialog
+
+date-spinner-month-previous =
+ .aria-label = Previous month
+date-spinner-month-next =
+ .aria-label = Next month
+date-spinner-year-previous =
+ .aria-label = Previous year
+date-spinner-year-next =
+ .aria-label = Next year
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/datetimebox.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/datetimebox.ftl
new file mode 100644
index 0000000000..60a2bf8147
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/datetimebox.ftl
@@ -0,0 +1,42 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+## Placeholders for date and time inputs
+
+datetime-year-placeholder = yyyy
+datetime-month-placeholder = mm
+datetime-day-placeholder = dd
+datetime-time-placeholder = --
+
+## Field labels for input type=date
+
+datetime-year =
+ .aria-label = Year
+datetime-month =
+ .aria-label = Month
+datetime-day =
+ .aria-label = Day
+
+## Field labels for input type=time
+
+datetime-hour =
+ .aria-label = Hours
+datetime-minute =
+ .aria-label = Minutes
+datetime-second =
+ .aria-label = Seconds
+datetime-millisecond =
+ .aria-label = Milliseconds
+datetime-dayperiod =
+ .aria-label = AM/PM
+
+## Calendar button for input type=date
+
+
+# This label is used by screenreaders and other assistive technology
+# to indicate the purpose of a toggle button inside of the <input type="date">
+# field that opens/closes a date picker calendar dialog
+
+datetime-calendar =
+ .aria-label = Calendar
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/extensionPermissions.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/extensionPermissions.ftl
new file mode 100644
index 0000000000..1675f6e19e
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/extensionPermissions.ftl
@@ -0,0 +1,33 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## Extension permission description keys are derived from permission names.
+## Permissions for which the message has been changed and the key updated
+## must have a corresponding entry in the `PERMISSION_L10N_ID_OVERRIDES` map.
+
+webext-perms-description-bookmarks = Read and modify bookmarks
+webext-perms-description-browserSettings = Read and modify browser settings
+webext-perms-description-browsingData = Clear recent browsing history, cookies, and related data
+webext-perms-description-clipboardRead = Get data from the clipboard
+webext-perms-description-clipboardWrite = Input data to the clipboard
+webext-perms-description-declarativeNetRequest = Block content on any page
+webext-perms-description-declarativeNetRequestFeedback = Read your browsing history
+webext-perms-description-devtools = Extend developer tools to access your data in open tabs
+webext-perms-description-downloads = Download files and read and modify the browser’s download history
+webext-perms-description-downloads-open = Open files downloaded to your computer
+webext-perms-description-find = Read the text of all open tabs
+webext-perms-description-geolocation = Access your location
+webext-perms-description-history = Access browsing history
+webext-perms-description-management = Monitor extension usage and manage themes
+webext-perms-description-nativeMessaging = Exchange messages with programs other than { -brand-short-name }
+webext-perms-description-notifications = Display notifications to you
+webext-perms-description-pkcs11 = Provide cryptographic authentication services
+webext-perms-description-privacy = Read and modify privacy settings
+webext-perms-description-proxy = Control browser proxy settings
+webext-perms-description-sessions = Access recently closed tabs
+webext-perms-description-tabs = Access browser tabs
+webext-perms-description-tabHide = Hide and show browser tabs
+webext-perms-description-topSites = Access browsing history
+webext-perms-description-webNavigation = Access browser activity during navigation
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/extensions.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/extensions.ftl
new file mode 100644
index 0000000000..84d1dfaa8d
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/extensions.ftl
@@ -0,0 +1,105 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## Headers used in the webextension permissions dialog,
+## See https://bug1308309.bmoattachments.org/attachment.cgi?id=8814612
+## for an example of the full dialog.
+## Note: This string will be used as raw markup. Avoid characters like <, >, &
+## Variables:
+## $extension (String): replaced with the localized name of the extension.
+
+webext-perms-header = Add { $extension }?
+webext-perms-header-with-perms = Add { $extension }? This extension will have permission to:
+webext-perms-header-unsigned = Add { $extension }? This extension is unverified. Malicious extensions can steal your private information or compromise your computer. Only add it if you trust the source.
+webext-perms-header-unsigned-with-perms = Add { $extension }? This extension is unverified. Malicious extensions can steal your private information or compromise your computer. Only add it if you trust the source. This extension will have permission to:
+webext-perms-sideload-header = { $extension } added
+webext-perms-optional-perms-header = { $extension } requests additional permissions.
+
+##
+
+webext-perms-add =
+ .label = Add
+ .accesskey = A
+webext-perms-cancel =
+ .label = Cancel
+ .accesskey = C
+webext-perms-sideload-text = Another program on your computer installed an add-on that may affect your browser. Please review this add-on’s permissions requests and choose to Enable or Cancel (to leave it disabled).
+webext-perms-sideload-text-no-perms = Another program on your computer installed an add-on that may affect your browser. Please choose to Enable or Cancel (to leave it disabled).
+webext-perms-sideload-enable =
+ .label = Enable
+ .accesskey = E
+webext-perms-sideload-cancel =
+ .label = Cancel
+ .accesskey = C
+# Variables:
+# $extension (String): replaced with the localized name of the extension.
+webext-perms-update-text = { $extension } has been updated. You must approve new permissions before the updated version will install. Choosing “Cancel” will maintain your current extension version. This extension will have permission to:
+webext-perms-update-accept =
+ .label = Update
+ .accesskey = U
+webext-perms-optional-perms-list-intro = It wants to:
+webext-perms-optional-perms-allow =
+ .label = Allow
+ .accesskey = A
+webext-perms-optional-perms-deny =
+ .label = Deny
+ .accesskey = D
+webext-perms-host-description-all-urls = Access your data for all websites
+# Variables:
+# $domain (String): will be replaced by the DNS domain for which a webextension is requesting access (e.g., mozilla.org)
+webext-perms-host-description-wildcard = Access your data for sites in the { $domain } domain
+# Variables:
+# $domainCount (Number): Integer indicating the number of additional
+# hosts for which this webextension is requesting permission.
+webext-perms-host-description-too-many-wildcards =
+ { $domainCount ->
+ [one] Access your data in { $domainCount } other domain
+ *[other] Access your data in { $domainCount } other domains
+ }
+# Variables:
+# $domain (String): will be replaced by the DNS host name for which a webextension is requesting access (e.g., www.mozilla.org)
+webext-perms-host-description-one-site = Access your data for { $domain }
+# Variables:
+# $domainCount (Number): Integer indicating the number of additional
+# hosts for which this webextension is requesting permission.
+webext-perms-host-description-too-many-sites =
+ { $domainCount ->
+ [one] Access your data on { $domainCount } other site
+ *[other] Access your data on { $domainCount } other sites
+ }
+
+## Headers used in the webextension permissions dialog for synthetic add-ons.
+## The part of the string describing what privileges the extension gives should be consistent
+## with the value of webext-site-perms-description-gated-perms-{sitePermission}.
+## Note, this string will be used as raw markup. Avoid characters like <, >, &
+## Variables:
+## $hostname (String): the hostname of the site the add-on is being installed from.
+
+webext-site-perms-header-with-gated-perms-midi = This add-on gives { $hostname } access to your MIDI devices.
+webext-site-perms-header-with-gated-perms-midi-sysex = This add-on gives { $hostname } access to your MIDI devices (with SysEx support).
+
+##
+
+# This string is used as description in the webextension permissions dialog for synthetic add-ons.
+# Note, the empty line is used to create a line break between the two sections.
+# Note, this string will be used as raw markup. Avoid characters like <, >, &
+webext-site-perms-description-gated-perms-midi =
+ These are usually plug-in devices like audio synthesizers, but might also be built into your computer.
+
+ Websites are normally not allowed to access MIDI devices. Improper usage could cause damage or compromise security.
+
+## Headers used in the webextension permissions dialog.
+## Note: This string will be used as raw markup. Avoid characters like <, >, &
+## Variables:
+## $extension (String): replaced with the localized name of the extension being installed.
+## $hostname (String): will be replaced by the DNS host name for which a webextension enables permissions.
+
+webext-site-perms-header-with-perms = Add { $extension }? This extension grants the following capabilities to { $hostname }:
+webext-site-perms-header-unsigned-with-perms = Add { $extension }? This extension is unverified. Malicious extensions can steal your private information or compromise your computer. Only add it if you trust the source. This extension grants the following capabilities to { $hostname }:
+
+## These should remain in sync with permissions.NAME.label in sitePermissions.properties
+
+webext-site-perms-midi = Access MIDI devices
+webext-site-perms-midi-sysex = Access MIDI devices with SysEx support
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/handlerDialog.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/handlerDialog.ftl
new file mode 100644
index 0000000000..606f5e54d0
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/handlerDialog.ftl
@@ -0,0 +1,68 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## Permission Dialog
+## Variables:
+## $host (string) - The hostname that is initiating the request
+## $scheme (string) - The type of link that's being opened.
+## $appName (string) - Name of the application that will be opened.
+## $extension (string) - Name of extension that initiated the request
+
+permission-dialog-description = Allow this site to open the { $scheme } link?
+permission-dialog-description-file = Allow this file to open the { $scheme } link?
+permission-dialog-description-host = Allow { $host } to open the { $scheme } link?
+permission-dialog-description-extension = Allow the extension { $extension } to open the { $scheme } link?
+permission-dialog-description-app = Allow this site to open the { $scheme } link with { $appName }?
+permission-dialog-description-host-app = Allow { $host } to open the { $scheme } link with { $appName }?
+permission-dialog-description-file-app = Allow this file to open the { $scheme } link with { $appName }?
+permission-dialog-description-extension-app = Allow the extension { $extension } to open the { $scheme } link with { $appName }?
+
+## Please keep the emphasis around the hostname and scheme (ie the
+## `<strong>` HTML tags). Please also keep the hostname as close to the start
+## of the sentence as your language's grammar allows.
+## Variables:
+## $host (string) - The hostname that is initiating the request
+## $scheme (string) - The type of link that's being opened.
+
+permission-dialog-remember = Always allow <strong>{ $host }</strong> to open <strong>{ $scheme }</strong> links
+permission-dialog-remember-file = Always allow this file to open <strong>{ $scheme }</strong> links
+permission-dialog-remember-extension = Always allow this extension to open <strong>{ $scheme }</strong> links
+
+##
+
+permission-dialog-btn-open-link =
+ .label = Open Link
+ .accessKey = O
+permission-dialog-btn-choose-app =
+ .label = Choose Application
+ .accessKey = A
+permission-dialog-unset-description = You’ll need to choose an application.
+permission-dialog-set-change-app-link = Choose a different application.
+
+## Chooser dialog
+## Variables:
+## $scheme (string) - The type of link that's being opened.
+
+chooser-window =
+ .title = Choose Application
+ .style = min-width: 26em; min-height: 26em;
+chooser-dialog =
+ .buttonlabelaccept = Open Link
+ .buttonaccesskeyaccept = O
+chooser-dialog-description = Choose an application to open the { $scheme } link.
+# Please keep the emphasis around the scheme (ie the `<strong>` HTML tags).
+chooser-dialog-remember = Always use this application to open <strong>{ $scheme }</strong> links
+chooser-dialog-remember-extra =
+ { PLATFORM() ->
+ [windows] This can be changed in { -brand-short-name }’s options.
+ *[other] This can be changed in { -brand-short-name }’s preferences.
+ }
+choose-other-app-description = Choose other Application
+choose-app-btn =
+ .label = Choose…
+ .accessKey = C
+choose-other-app-window-title = Another Application…
+# Displayed under the name of a protocol handler in the Launch Application dialog.
+choose-dialog-privatebrowsing-disabled = Disabled in Private Windows
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/htmlForm.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/htmlForm.ftl
new file mode 100644
index 0000000000..690b0c4557
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/htmlForm.ftl
@@ -0,0 +1,14 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# This string is shown at the end of the tooltip text for
+# <input type='file' multiple> when there are more than 21 files selected
+# (when we will only list the first 20, plus an "and X more" line).
+# Variables:
+# $fileCount (Number): The number of remaining files.
+input-file-and-more-files =
+ { $fileCount ->
+ [one] and one more
+ *[other] and { $fileCount } more
+ }
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/mozCard.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/mozCard.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/mozCard.ftl
@@ -0,0 +1,3 @@
+# 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 http://mozilla.org/MPL/2.0/.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/mozFiveStar.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/mozFiveStar.ftl
new file mode 100644
index 0000000000..79e408238b
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/mozFiveStar.ftl
@@ -0,0 +1,9 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# The rating out of 5 stars.
+# Variables:
+# $rating (number) - A number between 0 and 5. The translation should show at most one digit after the comma.
+moz-five-star-rating =
+ .title = Rated { NUMBER($rating, maximumFractionDigits: 1) } out of 5
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/mozMessageBar.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/mozMessageBar.ftl
new file mode 100644
index 0000000000..de32a2a88d
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/mozMessageBar.ftl
@@ -0,0 +1,15 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+moz-message-bar-icon-info =
+ .alt = Info
+moz-message-bar-icon-warning =
+ .alt = Warning
+moz-message-bar-icon-success =
+ .alt = Success
+moz-message-bar-icon-error =
+ .alt = Error
+moz-message-bar-close-button =
+ .aria-label = Close
+ .title = Close
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/mozSupportLink.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/mozSupportLink.ftl
new file mode 100644
index 0000000000..0cfaf42816
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/mozSupportLink.ftl
@@ -0,0 +1,5 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+moz-support-link-text = Learn more
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/notification.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/notification.ftl
new file mode 100644
index 0000000000..82bd27fd97
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/notification.ftl
@@ -0,0 +1,16 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+notification-learnmore-default-label =
+ .value = Learn more
+
+# This label is read by screen readers when focusing the close button for an
+# "infobar" (message shown when for example a popup is blocked),
+# and shown when hovering over the button
+notification-close-button =
+ .aria-label = Close
+ .title = Close
+
+close-notification-message =
+ .tooltiptext = Close this message
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/popupnotification.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/popupnotification.ftl
new file mode 100644
index 0000000000..bf353bcd6f
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/popupnotification.ftl
@@ -0,0 +1,10 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+popup-notification-learn-more = Learn more
+popup-notification-more-actions-button =
+ .aria-label = More actions
+popup-notification-default-button =
+ .label = OK!
+ .accesskey = O
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/processTypes.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/processTypes.ftl
new file mode 100644
index 0000000000..be45ec8832
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/processTypes.ftl
@@ -0,0 +1,61 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+##
+## Localization for remote types defined in RemoteType.h
+##
+
+process-type-web = Web Content
+
+# process used to run privileged about pages,
+# such as about:home
+process-type-privilegedabout = Privileged About
+
+# process used to run privileged mozilla pages,
+# such as accounts.firefox.com
+process-type-privilegedmozilla = Privileged Mozilla Content
+
+process-type-extension = Extension
+
+# process used to open file:// URLs
+process-type-file = Local File
+
+# process used to isolate a webpage from other web pages
+# to improve security
+process-type-webisolated = Isolated Web Content
+
+# process used to isolate a ServiceWorker to improve
+# performance
+process-type-webserviceworker = Isolated Service Worker
+
+# process preallocated; may change to other types
+process-type-prealloc = Preallocated
+
+##
+## Localization for Gecko process types defined in GeckoProcessTypes.h
+##
+
+process-type-default = Main
+process-type-tab = Tab
+
+# process used to communicate with the GPU for
+# graphics acceleration
+process-type-gpu = GPU
+
+# process used to perform network operations
+process-type-socket = Socket
+
+# process used to decode media
+process-type-rdd = RDD
+
+# process used to run some IPC actor in their own sandbox
+process-type-utility = Sandboxed IPC Actor
+
+##
+## Other
+##
+
+# fallback
+process-type-unknown = Unknown
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/profileDowngrade.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/profileDowngrade.ftl
new file mode 100644
index 0000000000..9660c952aa
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/profileDowngrade.ftl
@@ -0,0 +1,18 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+profiledowngrade-window2 =
+ .title = You’ve launched an older version of { -brand-product-name }
+ .style = min-width: 490px;
+profiledowngrade-window-create =
+ .label = Create New Profile
+profiledowngrade-sync = Using an older version of { -brand-product-name } can corrupt bookmarks and browsing history already saved to an existing { -brand-product-name } profile. To protect your information, create a new profile for this installation of { -brand-short-name }. You can always sign in with a { -fxaccount-brand-name } to sync your bookmarks and browsing history between profiles.
+profiledowngrade-sync2 = Using an older version of { -brand-product-name } can corrupt bookmarks and browsing history already saved to an existing { -brand-product-name } profile. To protect your information, create a new profile for this installation of { -brand-short-name }. You can always sign in with an account to sync your bookmarks and browsing history between profiles.
+profiledowngrade-nosync = Using an older version of { -brand-product-name } can corrupt bookmarks and browsing history already saved to an existing { -brand-product-name } profile. To protect your information, create a new profile for this installation of { -brand-short-name }.
+profiledowngrade-quit =
+ .label =
+ { PLATFORM() ->
+ [windows] Exit
+ *[other] Quit
+ }
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/profileSelection.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/profileSelection.ftl
new file mode 100644
index 0000000000..34bd5c9ce5
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/profileSelection.ftl
@@ -0,0 +1,38 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+profile-selection-window =
+ .title = { -brand-short-name } - Choose User Profile
+
+profile-selection-button-accept =
+ .label = Start { -brand-short-name }
+
+profile-selection-button-cancel =
+ .label = Exit
+
+profile-selection-new-button =
+ .label = Create Profile…
+ .accesskey = C
+
+profile-selection-rename-button =
+ .label = Rename Profile…
+ .accesskey = R
+
+profile-selection-delete-button =
+ .label = Delete Profile…
+ .accesskey = D
+
+profile-selection-conflict-message = Another copy of { -brand-product-name } has made changes to profiles. You must restart { -brand-short-name } before making more changes.
+
+## Messages used in the profile manager
+
+profile-manager-description = { -brand-short-name } stores information about your settings, preferences, and other user items in your user profile.
+
+profile-manager-work-offline =
+ .label = Work offline
+ .accesskey = o
+
+profile-manager-use-selected =
+ .label = Use the selected profile without asking at startup
+ .accesskey = s
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/resetProfile.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/resetProfile.ftl
new file mode 100644
index 0000000000..0289312da4
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/resetProfile.ftl
@@ -0,0 +1,15 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+refresh-profile-dialog-title = Refresh { -brand-short-name } to its default settings?
+refresh-profile-dialog-button =
+ .label = Refresh { -brand-short-name }
+refresh-profile-dialog-description = Start fresh to fix performance issues. This will remove your extensions and customizations. You won’t lose essential information like bookmarks and passwords.
+refresh-profile = Give { -brand-short-name } a tune up
+refresh-profile-button = Refresh { -brand-short-name }…
+refresh-profile-learn-more = Learn more
+
+refresh-profile-progress =
+ .title = Refresh { -brand-short-name }
+refresh-profile-progress-description = Almost done…
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/resistFingerPrinting.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/resistFingerPrinting.ftl
new file mode 100644
index 0000000000..a9936281ca
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/resistFingerPrinting.ftl
@@ -0,0 +1,6 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Spoof Accept-Language prompt
+privacy-spoof-english = Changing your language setting to English will make you more difficult to identify and enhance your privacy. Do you want to request English language versions of web pages?
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000..5baa3622c3
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,28 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-title = Finish installing { -brand-short-name }?
+prompt-to-install-message = Complete this one-step installation to help keep { -brand-short-name } up to date and prevent data loss. { -brand-short-name } will be added to your Applications folder and Dock.
+prompt-to-install-yes-button = Install
+prompt-to-install-no-button = Don’t Install
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = { -brand-short-name } installation failed.
+install-failed-message = { -brand-short-name } failed to install but will continue to run.
+
+## Strings for a dialog that recommends to the user to start an existing
+## installation of the app in the Applications directory if one is detected,
+## rather than the app that was double-clicked in a .dmg.
+
+prompt-to-launch-existing-app-title = Open existing { -brand-short-name } application?
+prompt-to-launch-existing-app-message = You already have { -brand-short-name } installed. Use the installed application to stay up to date and prevent data loss.
+prompt-to-launch-existing-app-yes-button = Open existing
+prompt-to-launch-existing-app-no-button = No thanks
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/tabprompts.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/tabprompts.ftl
new file mode 100644
index 0000000000..26eefa368b
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/tabprompts.ftl
@@ -0,0 +1,13 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+tabmodalprompt-username =
+ .value = User Name:
+tabmodalprompt-password =
+ .value = Password:
+
+tabmodalprompt-ok-button =
+ .label = OK
+tabmodalprompt-cancel-button =
+ .label = Cancel
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/textActions.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/textActions.ftl
new file mode 100644
index 0000000000..a8153024aa
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/textActions.ftl
@@ -0,0 +1,64 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+text-action-undo =
+ .label = Undo
+ .accesskey = U
+text-action-undo-shortcut =
+ .key = Z
+text-action-redo =
+ .label = Redo
+ .accesskey = R
+text-action-redo-shortcut =
+ .key = Y
+text-action-cut =
+ .label = Cut
+ .accesskey = t
+text-action-cut-shortcut =
+ .key = X
+text-action-copy =
+ .label = Copy
+ .accesskey = C
+text-action-copy-shortcut =
+ .key = C
+# This command copies the link, removing additional
+# query parameters used to track users across sites.
+text-action-strip-on-share =
+ .label = Copy Without Site Tracking
+ .accesskey = n
+text-action-paste =
+ .label = Paste
+ .accesskey = P
+text-action-paste-no-formatting =
+ .label = Paste Without Formatting
+ .accesskey = m
+text-action-paste-shortcut =
+ .key = V
+text-action-delete =
+ .label = Delete
+ .accesskey = D
+text-action-select-all =
+ .label = Select All
+ .accesskey = A
+text-action-select-all-shortcut =
+ .key = A
+text-action-spell-no-suggestions =
+ .label = No Spelling Suggestions
+text-action-spell-add-to-dictionary =
+ .label = Add to Dictionary
+ .accesskey = o
+text-action-spell-undo-add-to-dictionary =
+ .label = Undo Add To Dictionary
+ .accesskey = n
+text-action-spell-check-toggle =
+ .label = Check Spelling
+ .accesskey = g
+text-action-spell-add-dictionaries =
+ .label = Add Dictionaries…
+ .accesskey = A
+text-action-spell-dictionaries =
+ .label = Languages
+ .accesskey = L
+text-action-search-text-box-clear =
+ .title = Clear
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/timepicker.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/timepicker.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/timepicker.ftl
@@ -0,0 +1,3 @@
+# 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 http://mozilla.org/MPL/2.0/.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/tree.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/tree.ftl
new file mode 100644
index 0000000000..aa009fd56a
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/tree.ftl
@@ -0,0 +1,6 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+tree-columnpicker-restore-order =
+ .label = Restore Column Order
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/unknownContentType.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/unknownContentType.ftl
new file mode 100644
index 0000000000..fb29727c0b
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/unknownContentType.ftl
@@ -0,0 +1,42 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+unknowncontenttype-handleinternally =
+ .label = Open with { -brand-short-name }
+ .accesskey = e
+
+unknowncontenttype-settingschange =
+ .value =
+ { PLATFORM() ->
+ [windows] Settings can be changed in { -brand-short-name }’s Options.
+ *[other] Settings can be changed in { -brand-short-name }’s Preferences.
+ }
+
+unknowncontenttype-intro = You have chosen to open:
+unknowncontenttype-which-is = which is:
+unknowncontenttype-from = from:
+unknowncontenttype-prompt = Would you like to save this file?
+unknowncontenttype-action-question = What should { -brand-short-name } do with this file?
+unknowncontenttype-open-with =
+ .label = Open with
+ .accesskey = O
+unknowncontenttype-other =
+ .label = Other…
+unknowncontenttype-choose-handler =
+ .label =
+ { PLATFORM() ->
+ [macos] Choose…
+ *[other] Browse…
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [macos] C
+ *[other] B
+ }
+unknowncontenttype-save-file =
+ .label = Save File
+ .accesskey = S
+unknowncontenttype-remember-choice =
+ .label = Do this automatically for files like this from now on.
+ .accesskey = a
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/videocontrols.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/videocontrols.ftl
new file mode 100644
index 0000000000..ac9c64f235
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/videocontrols.ftl
@@ -0,0 +1,71 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# This label is used by screenreaders and other assistive technology to indicate
+# to users how much of the video has been loaded from the network. It will be
+# followed by the percentage of the video that has loaded (e.g. "Loading: 13%").
+videocontrols-buffer-bar-label = Loading:
+videocontrols-volume-control =
+ .aria-label = Volume
+videocontrols-closed-caption-button =
+ .aria-label = Closed Captions
+
+videocontrols-play-button =
+ .aria-label = Play
+videocontrols-pause-button =
+ .aria-label = Pause
+videocontrols-mute-button =
+ .aria-label = Mute
+videocontrols-unmute-button =
+ .aria-label = Unmute
+videocontrols-enterfullscreen-button =
+ .aria-label = Full Screen
+videocontrols-exitfullscreen-button =
+ .aria-label = Exit Full Screen
+videocontrols-casting-button-label =
+ .aria-label = Cast to Screen
+videocontrols-closed-caption-off =
+ .offlabel = Off
+
+# This string is used as part of the Picture-in-Picture video toggle button when
+# the mouse is hovering it.
+videocontrols-picture-in-picture-label = Picture-in-Picture
+
+# This string is used as the label for a variation of the Picture-in-Picture video
+# toggle button when the mouse is hovering over the video.
+videocontrols-picture-in-picture-toggle-label2 = Pop out this video
+
+videocontrols-picture-in-picture-explainer3 = More screens are more fun. Play this video while you do other things.
+
+videocontrols-error-aborted = Video loading stopped.
+videocontrols-error-network = Video playback aborted due to a network error.
+videocontrols-error-decode = Video can’t be played because the file is corrupt.
+videocontrols-error-src-not-supported = Video format or MIME type is not supported.
+videocontrols-error-no-source = No video with supported format and MIME type found.
+videocontrols-error-generic = Video playback aborted due to an unknown error.
+videocontrols-status-picture-in-picture = This video is playing in Picture-in-Picture mode.
+
+# This message shows the current position and total video duration
+#
+# Variables:
+# $position (String): The current media position
+# $duration (String): The total video duration
+#
+# For example, when at the 5 minute mark in a 6 hour long video,
+# $position would be "5:00" and $duration would be "6:00:00", result
+# string would be "5:00 / 6:00:00". Note that $duration is not always
+# available. For example, when at the 5 minute mark in an unknown
+# duration video, $position would be "5:00" and the string which is
+# surrounded by <span> would be deleted, result string would be "5:00".
+videocontrols-position-and-duration-labels = { $position }<span data-l10n-name="position-duration-format"> / { $duration }</span>
+
+# This is a plain text version of the videocontrols-position-and-duration-labels
+# string, used by screenreaders.
+#
+# Variables:
+# $position (String): The current media position
+# $duration (String): The total video duration
+videocontrols-scrubber-position-and-duration =
+ .aria-label = Position
+ .aria-valuetext = { $position } / { $duration }
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/wizard.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/wizard.ftl
new file mode 100644
index 0000000000..21f524bbb5
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/wizard.ftl
@@ -0,0 +1,37 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+wizard-macos-button-back =
+ .label = Go Back
+ .accesskey = B
+wizard-linux-button-back =
+ .label = Back
+ .accesskey = B
+wizard-win-button-back =
+ .label = < Back
+ .accesskey = B
+
+wizard-macos-button-next =
+ .label = Continue
+ .accesskey = C
+wizard-linux-button-next =
+ .label = Next
+ .accesskey = N
+wizard-win-button-next =
+ .label = Next >
+ .accesskey = N
+
+wizard-macos-button-finish =
+ .label = Done
+wizard-linux-button-finish =
+ .label = Finish
+wizard-win-button-finish =
+ .label = Finish
+
+wizard-macos-button-cancel =
+ .label = Cancel
+wizard-linux-button-cancel =
+ .label = Cancel
+wizard-win-button-cancel =
+ .label = Cancel
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/intl/languageNames.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/intl/languageNames.ftl
new file mode 100644
index 0000000000..a7d76b7d98
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/intl/languageNames.ftl
@@ -0,0 +1,215 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+language-name-aa = Afar
+language-name-ab = Abkhazian
+language-name-ach = Acholi
+language-name-ae = Avestan
+language-name-af = Afrikaans
+language-name-ak = Akan
+language-name-am = Amharic
+language-name-an = Aragonese
+language-name-ar = Arabic
+language-name-as = Assamese
+language-name-ast = Asturian
+language-name-av = Avaric
+language-name-ay = Aymara
+language-name-az = Azerbaijani
+language-name-ba = Bashkir
+language-name-be = Belarusian
+language-name-bg = Bulgarian
+language-name-bh = Bihari
+language-name-bi = Bislama
+language-name-bm = Bambara
+language-name-bn = Bengali
+language-name-bo = Tibetan
+language-name-br = Breton
+language-name-bs = Bosnian
+language-name-ca = Catalan
+language-name-cak = Kaqchikel
+language-name-ce = Chechen
+language-name-ch = Chamorro
+language-name-co = Corsican
+language-name-cr = Cree
+language-name-crh = Crimean Tatar
+language-name-cs = Czech
+language-name-csb = Kashubian
+language-name-cu = Church Slavic
+language-name-cv = Chuvash
+language-name-cy = Welsh
+language-name-da = Danish
+language-name-de = German
+language-name-dsb = Lower Sorbian
+language-name-dv = Divehi
+language-name-dz = Dzongkha
+language-name-ee = Ewe
+language-name-el = Greek
+language-name-en = English
+language-name-eo = Esperanto
+language-name-es = Spanish
+language-name-et = Estonian
+language-name-eu = Basque
+language-name-fa = Persian
+language-name-ff = Fulah
+language-name-fi = Finnish
+language-name-fj = Fijian
+language-name-fo = Faroese
+language-name-fr = French
+language-name-fur = Friulian
+language-name-fy = Frisian
+language-name-ga = Irish
+language-name-gd = Scottish Gaelic
+language-name-gl = Galician
+language-name-gn = Guarani
+language-name-gu = Gujarati
+language-name-gv = Manx
+language-name-ha = Hausa
+language-name-haw = Hawaiian
+language-name-he = Hebrew
+language-name-hi = Hindi
+language-name-hil = Hiligaynon
+language-name-ho = Hiri Motu
+language-name-hr = Croatian
+language-name-hsb = Upper Sorbian
+language-name-ht = Haitian
+language-name-hu = Hungarian
+language-name-hy = Armenian
+language-name-hz = Herero
+language-name-ia = Interlingua
+language-name-id = Indonesian
+language-name-ie = Interlingue
+language-name-ig = Igbo
+language-name-ii = Sichuan Yi
+language-name-ik = Inupiaq
+language-name-io = Ido
+language-name-is = Icelandic
+language-name-it = Italian
+language-name-iu = Inuktitut
+language-name-ja = Japanese
+language-name-jv = Javanese
+language-name-ka = Georgian
+language-name-kab = Kabyle
+language-name-kg = Kongo
+language-name-ki = Kikuyu
+language-name-kj = Kuanyama
+language-name-kk = Kazakh
+language-name-kl = Greenlandic
+language-name-km = Khmer
+language-name-kn = Kannada
+language-name-ko = Korean
+language-name-kok = Konkani
+language-name-kr = Kanuri
+language-name-ks = Kashmiri
+language-name-ku = Kurdish
+language-name-kv = Komi
+language-name-kw = Cornish
+language-name-ky = Kirghiz
+language-name-la = Latin
+language-name-lb = Luxembourgish
+language-name-lg = Ganda
+language-name-li = Limburgan
+language-name-lij = Ligurian
+language-name-ln = Lingala
+language-name-lo = Lao
+language-name-lt = Lithuanian
+language-name-ltg = Latgalian
+language-name-lu = Luba-Katanga
+language-name-lv = Latvian
+language-name-mai = Maithili
+language-name-meh = Southwestern Tlaxiaco Mixtec
+language-name-mg = Malagasy
+language-name-mh = Marshallese
+language-name-mi = Maori
+language-name-mix = Mixtepec Mixtec
+language-name-mk = Macedonian
+language-name-ml = Malayalam
+language-name-mn = Mongolian
+language-name-mr = Marathi
+language-name-ms = Malay
+language-name-mt = Maltese
+language-name-my = Burmese
+language-name-na = Nauru
+language-name-nb = Norwegian Bokmål
+language-name-nd = Ndebele, North
+language-name-ne = Nepali
+language-name-ng = Ndonga
+language-name-nl = Dutch
+language-name-nn = Norwegian Nynorsk
+language-name-no = Norwegian
+language-name-nr = Ndebele, South
+language-name-nso = Sotho, Northern
+language-name-nv = Navajo
+language-name-ny = Chichewa
+language-name-oc = Occitan
+language-name-oj = Ojibwa
+language-name-om = Oromo
+language-name-or = Odia
+language-name-os = Ossetian
+language-name-pa = Punjabi
+language-name-pi = Pali
+language-name-pl = Polish
+language-name-ps = Pashto
+language-name-pt = Portuguese
+language-name-qu = Quechua
+language-name-rm = Rhaeto-Romanic
+language-name-rn = Kirundi
+language-name-ro = Romanian
+language-name-ru = Russian
+language-name-rw = Kinyarwanda
+language-name-sa = Sanskrit
+language-name-sat = Santali
+language-name-sc = Sardinian
+language-name-sco = Scots
+language-name-sd = Sindhi
+language-name-se = Northern Sami
+language-name-sg = Sango
+language-name-si = Sinhala
+language-name-sk = Slovak
+language-name-sl = Slovenian
+language-name-sm = Samoan
+language-name-sn = Shona
+language-name-so = Somali
+language-name-son = Songhay
+language-name-sq = Albanian
+language-name-sr = Serbian
+language-name-ss = Siswati
+language-name-st = Sotho, Southern
+language-name-su = Sundanese
+language-name-sv = Swedish
+language-name-sw = Swahili
+language-name-szl = Silesian
+language-name-ta = Tamil
+language-name-te = Telugu
+language-name-tg = Tajik
+language-name-th = Thai
+language-name-ti = Tigrinya
+language-name-tig = Tigre
+language-name-tk = Turkmen
+language-name-tl = Tagalog
+language-name-tlh = Klingon
+language-name-tn = Tswana
+language-name-to = Tonga
+language-name-tr = Turkish
+language-name-trs = Triqui
+language-name-ts = Tsonga
+language-name-tt = Tatar
+language-name-tw = Twi
+language-name-ty = Tahitian
+language-name-ug = Uighur
+language-name-uk = Ukrainian
+language-name-ur = Urdu
+language-name-uz = Uzbek
+language-name-ve = Venda
+language-name-vi = Vietnamese
+language-name-vo = Volapük
+language-name-wa = Walloon
+language-name-wen = Sorbian
+language-name-wo = Wolof
+language-name-xh = Xhosa
+language-name-yi = Yiddish
+language-name-yo = Yoruba
+language-name-za = Zhuang
+language-name-zam = Miahuatlán Zapotec
+language-name-zh = Chinese
+language-name-zu = Zulu
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/intl/regionNames.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/intl/regionNames.ftl
new file mode 100644
index 0000000000..6914f8c949
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/intl/regionNames.ftl
@@ -0,0 +1,280 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+### Notice: If you're updating this list, you should also
+### update the list in mozIntl.js.
+
+region-name-ad = Andorra
+region-name-ae = United Arab Emirates
+region-name-af = Afghanistan
+region-name-ag = Antigua and Barbuda
+region-name-ai = Anguilla
+region-name-al = Albania
+region-name-am = Armenia
+region-name-ao = Angola
+region-name-aq = Antarctica
+region-name-ar = Argentina
+region-name-as = American Samoa
+region-name-at = Austria
+region-name-au = Australia
+region-name-aw = Aruba
+region-name-az = Azerbaijan
+region-name-ba = Bosnia and Herzegovina
+region-name-bb = Barbados
+region-name-bd = Bangladesh
+region-name-be = Belgium
+region-name-bf = Burkina Faso
+region-name-bg = Bulgaria
+region-name-bh = Bahrain
+region-name-bi = Burundi
+region-name-bj = Benin
+region-name-bl = Saint Barthélemy
+region-name-bm = Bermuda
+region-name-bn = Brunei
+region-name-bo = Bolivia
+region-name-bq-2018 = Caribbean Netherlands
+region-name-br = Brazil
+region-name-bs = Bahamas, The
+region-name-bt = Bhutan
+region-name-bv = Bouvet Island
+region-name-bw = Botswana
+region-name-by = Belarus
+region-name-bz = Belize
+region-name-ca = Canada
+region-name-cc = Cocos (Keeling) Islands
+region-name-cd = Congo (Kinshasa)
+region-name-cf = Central African Republic
+region-name-cg = Congo (Brazzaville)
+region-name-ch = Switzerland
+region-name-ci = Côte d’Ivoire
+region-name-ck = Cook Islands
+region-name-cl = Chile
+region-name-cm = Cameroon
+region-name-cn = China
+region-name-co = Colombia
+region-name-cp = Clipperton Island
+region-name-cr = Costa Rica
+region-name-cu = Cuba
+region-name-cv-2020 = Cape Verde
+region-name-cw = Curaçao
+region-name-cx = Christmas Island
+region-name-cy = Cyprus
+region-name-cz-2019 = Czechia
+region-name-de = Germany
+region-name-dg = Diego Garcia
+region-name-dj = Djibouti
+region-name-dk = Denmark
+region-name-dm = Dominica
+region-name-do = Dominican Republic
+region-name-dz = Algeria
+region-name-ec = Ecuador
+region-name-ee = Estonia
+region-name-eg = Egypt
+region-name-eh = Western Sahara
+region-name-er = Eritrea
+region-name-es = Spain
+region-name-et = Ethiopia
+region-name-fi = Finland
+region-name-fj = Fiji
+region-name-fk = Falkland Islands (Islas Malvinas)
+region-name-fm = Micronesia, Federated States of
+region-name-fo = Faroe Islands
+region-name-fr = France
+region-name-ga = Gabon
+region-name-gb = United Kingdom
+region-name-gd = Grenada
+region-name-ge = Georgia
+region-name-gf = French Guiana
+region-name-gg = Guernsey
+region-name-gh = Ghana
+region-name-gi = Gibraltar
+region-name-gl = Greenland
+region-name-gm = Gambia, The
+region-name-gn = Guinea
+region-name-gp = Guadeloupe
+region-name-gq = Equatorial Guinea
+region-name-gr = Greece
+region-name-gs = South Georgia and South Sandwich Islands
+region-name-gt = Guatemala
+region-name-gu = Guam
+region-name-gw = Guinea-Bissau
+region-name-gy = Guyana
+region-name-hk = Hong Kong
+region-name-hm = Heard Island and McDonald Islands
+region-name-hn = Honduras
+region-name-hr = Croatia
+region-name-ht = Haiti
+region-name-hu = Hungary
+region-name-id = Indonesia
+region-name-ie = Ireland
+region-name-il = Israel
+region-name-im = Isle of Man
+region-name-in = India
+region-name-io = British Indian Ocean Territory
+region-name-iq = Iraq
+region-name-ir = Iran
+region-name-is = Iceland
+region-name-it = Italy
+region-name-je = Jersey
+region-name-jm = Jamaica
+region-name-jo = Jordan
+region-name-jp = Japan
+region-name-ke = Kenya
+region-name-kg = Kyrgyzstan
+region-name-kh = Cambodia
+region-name-ki = Kiribati
+region-name-km = Comoros
+region-name-kn = Saint Kitts and Nevis
+region-name-kp = Korea, North
+region-name-kr = Korea, South
+region-name-kw = Kuwait
+region-name-ky = Cayman Islands
+region-name-kz = Kazakhstan
+region-name-la = Laos
+region-name-lb = Lebanon
+region-name-lc = Saint Lucia
+region-name-li = Liechtenstein
+region-name-lk = Sri Lanka
+region-name-lr = Liberia
+region-name-ls = Lesotho
+region-name-lt = Lithuania
+region-name-lu = Luxembourg
+region-name-lv = Latvia
+region-name-ly = Libya
+region-name-ma = Morocco
+region-name-mc = Monaco
+region-name-md = Moldova
+region-name-me = Montenegro
+region-name-mf = Saint Martin
+region-name-mg = Madagascar
+region-name-mh = Marshall Islands
+region-name-mk-2019 = North Macedonia
+region-name-ml = Mali
+region-name-mm = Burma
+region-name-mn = Mongolia
+region-name-mo = Macau
+region-name-mp = Northern Mariana Islands
+region-name-mq = Martinique
+region-name-mr = Mauritania
+region-name-ms = Montserrat
+region-name-mt = Malta
+region-name-mu = Mauritius
+region-name-mv = Maldives
+region-name-mw = Malawi
+region-name-mx = Mexico
+region-name-my = Malaysia
+region-name-mz = Mozambique
+region-name-na = Namibia
+region-name-nc = New Caledonia
+region-name-ne = Niger
+region-name-nf = Norfolk Island
+region-name-ng = Nigeria
+region-name-ni = Nicaragua
+region-name-nl = Netherlands
+region-name-no = Norway
+region-name-np = Nepal
+region-name-nr = Nauru
+region-name-nu = Niue
+region-name-nz = New Zealand
+region-name-om = Oman
+region-name-pa = Panama
+region-name-pe = Peru
+region-name-pf = French Polynesia
+region-name-pg = Papua New Guinea
+region-name-ph = Philippines
+region-name-pk = Pakistan
+region-name-pl = Poland
+region-name-pm = Saint Pierre and Miquelon
+region-name-pn = Pitcairn Islands
+region-name-pr = Puerto Rico
+region-name-pt = Portugal
+region-name-pw = Palau
+region-name-py = Paraguay
+region-name-qa = Qatar
+region-name-qm = Midway Islands
+region-name-qs = Bassas da India
+region-name-qu = Juan de Nova Island
+region-name-qw = Wake Island
+region-name-qx = Glorioso Islands
+region-name-qz = Akrotiri
+region-name-re = Réunion
+region-name-ro = Romania
+region-name-rs = Serbia
+region-name-ru = Russia
+region-name-rw = Rwanda
+region-name-sa = Saudi Arabia
+region-name-sb = Solomon Islands
+region-name-sc = Seychelles
+region-name-sd = Sudan
+region-name-se = Sweden
+region-name-sg = Singapore
+region-name-sh = Saint Helena, Ascension, and Tristan da Cunha
+region-name-si = Slovenia
+region-name-sk = Slovakia
+region-name-sl = Sierra Leone
+region-name-sm = San Marino
+region-name-sn = Senegal
+region-name-so = Somalia
+region-name-sr = Suriname
+region-name-ss = South Sudan
+region-name-st = São Tomé and Príncipe
+region-name-sv = El Salvador
+region-name-sx = Sint Maarten
+region-name-sy = Syria
+region-name-sz-2019 = Eswatini
+region-name-tc = Turks and Caicos Islands
+region-name-td = Chad
+region-name-tf = French Southern and Antarctic Lands
+region-name-tg = Togo
+region-name-th = Thailand
+region-name-tj = Tajikistan
+region-name-tk = Tokelau
+region-name-tl = Timor-Leste
+region-name-tm = Turkmenistan
+region-name-tn = Tunisia
+region-name-to = Tonga
+region-name-tr = Turkey
+region-name-tt = Trinidad and Tobago
+region-name-tv = Tuvalu
+region-name-tw = Taiwan
+region-name-tz = Tanzania
+region-name-ua = Ukraine
+region-name-ug = Uganda
+region-name-us = United States
+region-name-uy = Uruguay
+region-name-uz = Uzbekistan
+region-name-va = Vatican City
+region-name-vc = Saint Vincent and the Grenadines
+region-name-ve = Venezuela
+region-name-vg = Virgin Islands, British
+region-name-vi = Virgin Islands, U.S.
+region-name-vn = Vietnam
+region-name-vu = Vanuatu
+region-name-wf = Wallis and Futuna
+region-name-ws = Samoa
+region-name-xa = Ashmore and Cartier Islands
+region-name-xb = Baker Island
+region-name-xc = Coral Sea Islands
+region-name-xd = Dhekelia
+region-name-xe = Europa Island
+region-name-xg = Gaza Strip
+region-name-xh = Howland Island
+region-name-xj = Jan Mayen
+region-name-xk = Kosovo
+region-name-xl = Palmyra Atoll
+region-name-xm = Kingman Reef
+region-name-xp = Paracel Islands
+region-name-xq = Jarvis Island
+region-name-xr = Svalbard
+region-name-xs = Spratly Islands
+region-name-xt = Tromelin Island
+region-name-xu = Johnston Atoll
+region-name-xv = Navassa Island
+region-name-xw = West Bank
+region-name-ye = Yemen
+region-name-yt = Mayotte
+region-name-za = South Africa
+region-name-zm = Zambia
+region-name-zw = Zimbabwe
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/main-window/autocomplete.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/main-window/autocomplete.ftl
new file mode 100644
index 0000000000..2154f0fda8
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/main-window/autocomplete.ftl
@@ -0,0 +1,23 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## Import Logins Autocomplete
+
+## Variables:
+## $host (String) - Host name of the current site.
+
+autocomplete-import-logins-chrome =
+ <div data-l10n-name="line1">Import your login from Google Chrome</div>
+ <div data-l10n-name="line2">for { $host } and other sites</div>
+autocomplete-import-logins-chromium =
+ <div data-l10n-name="line1">Import your login from Chromium</div>
+ <div data-l10n-name="line2">for { $host } and other sites</div>
+autocomplete-import-logins-chromium-edge =
+ <div data-l10n-name="line1">Import your login from Microsoft Edge</div>
+ <div data-l10n-name="line2">for { $host } and other sites</div>
+
+##
+
+autocomplete-import-learn-more = Learn more
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/main-window/findbar.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/main-window/findbar.ftl
new file mode 100644
index 0000000000..841e7253e0
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/main-window/findbar.ftl
@@ -0,0 +1,76 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+### This file contains the entities needed to use the Find Bar.
+
+findbar-next =
+ .tooltiptext = Find the next occurrence of the phrase
+findbar-previous =
+ .tooltiptext = Find the previous occurrence of the phrase
+
+findbar-find-button-close =
+ .tooltiptext = Close find bar
+
+findbar-highlight-all2 =
+ .label = Highlight All
+ .accesskey =
+ { PLATFORM() ->
+ [macos] l
+ *[other] a
+ }
+ .tooltiptext = Highlight all occurrences of the phrase
+
+findbar-case-sensitive =
+ .label = Match Case
+ .accesskey = c
+ .tooltiptext = Search with case sensitivity
+
+findbar-match-diacritics =
+ .label = Match Diacritics
+ .accesskey = i
+ .tooltiptext = Distinguish between accented letters and their base letters (for example, when searching for “resume”, “résumé” will not be matched)
+
+findbar-entire-word =
+ .label = Whole Words
+ .accesskey = W
+ .tooltiptext = Search whole words only
+
+findbar-not-found = Phrase not found
+
+findbar-wrapped-to-top = Reached end of page, continued from top
+findbar-wrapped-to-bottom = Reached top of page, continued from bottom
+
+findbar-normal-find =
+ .placeholder = Find in page
+findbar-fast-find =
+ .placeholder = Quick find
+findbar-fast-find-links =
+ .placeholder = Quick find (links only)
+
+findbar-case-sensitive-status =
+ .value = (Case sensitive)
+findbar-match-diacritics-status =
+ .value = (Matching diacritics)
+findbar-entire-word-status =
+ .value = (Whole words only)
+
+# Variables:
+# $current (Number): Index of the currently selected match
+# $total (Number): Total count of matches
+findbar-found-matches =
+ .value =
+ { $total ->
+ [one] { $current } of { $total } match
+ *[other] { $current } of { $total } matches
+ }
+
+# Variables:
+# $limit (Number): Total count of matches allowed before counting stops
+findbar-found-matches-count-limit =
+ .value =
+ { $limit ->
+ [one] More than { $limit } match
+ *[other] More than { $limit } matches
+ }
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/neterror/certError.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/neterror/certError.ftl
new file mode 100644
index 0000000000..d2b4d82962
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/neterror/certError.ftl
@@ -0,0 +1,110 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+cert-error-intro = { $hostname } uses an invalid security certificate.
+cert-error-mitm-intro = Websites prove their identity via certificates, which are issued by certificate authorities.
+cert-error-mitm-mozilla = { -brand-short-name } is backed by the non-profit Mozilla, which administers a completely open certificate authority (CA) store. The CA store helps ensure that certificate authorities are following best practices for user security.
+cert-error-mitm-connection = { -brand-short-name } uses the Mozilla CA store to verify that a connection is secure, rather than certificates supplied by the user’s operating system. So, if an antivirus program or a network is intercepting a connection with a security certificate issued by a CA that is not in the Mozilla CA store, the connection is considered unsafe.
+cert-error-trust-unknown-issuer-intro = Someone could be trying to impersonate the site and you should not continue.
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+cert-error-trust-unknown-issuer = Websites prove their identity via certificates. { -brand-short-name } does not trust { $hostname } because its certificate issuer is unknown, the certificate is self-signed, or the server is not sending the correct intermediate certificates.
+cert-error-trust-cert-invalid = The certificate is not trusted because it was issued by an invalid CA certificate.
+cert-error-trust-untrusted-issuer = The certificate is not trusted because the issuer certificate is not trusted.
+cert-error-trust-signature-algorithm-disabled = The certificate is not trusted because it was signed using a signature algorithm that was disabled because that algorithm is not secure.
+cert-error-trust-expired-issuer = The certificate is not trusted because the issuer certificate has expired.
+cert-error-trust-self-signed = The certificate is not trusted because it is self-signed.
+cert-error-trust-symantec = Certificates issued by GeoTrust, RapidSSL, Symantec, Thawte, and VeriSign are no longer considered safe because these certificate authorities failed to follow security practices in the past.
+cert-error-untrusted-default = The certificate does not come from a trusted source.
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+cert-error-domain-mismatch = Websites prove their identity via certificates. { -brand-short-name } does not trust this site because it uses a certificate that is not valid for { $hostname }.
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+# $alt-name (string) - Alternate domain name for which the cert is valid.
+cert-error-domain-mismatch-single = Websites prove their identity via certificates. { -brand-short-name } does not trust this site because it uses a certificate that is not valid for { $hostname }. The certificate is only valid for <a data-l10n-name="domain-mismatch-link">{ $alt-name }</a>.
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+# $alt-name (string) - Alternate domain name for which the cert is valid.
+cert-error-domain-mismatch-single-nolink = Websites prove their identity via certificates. { -brand-short-name } does not trust this site because it uses a certificate that is not valid for { $hostname }. The certificate is only valid for { $alt-name }.
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+# $subject-alt-names (string) - Alternate domain names for which the cert is valid.
+cert-error-domain-mismatch-multiple = Websites prove their identity via certificates. { -brand-short-name } does not trust this site because it uses a certificate that is not valid for { $hostname }. The certificate is only valid for the following names: { $subject-alt-names }
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+# $not-after-local-time (Date) - Certificate is not valid after this time.
+cert-error-expired-now = Websites prove their identity via certificates, which are valid for a set time period. The certificate for { $hostname } expired on { $not-after-local-time }.
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+# $not-before-local-time (Date) - Certificate is not valid before this time.
+cert-error-not-yet-valid-now = Websites prove their identity via certificates, which are valid for a set time period. The certificate for { $hostname } will not be valid until { $not-before-local-time }.
+# Variables:
+# $error (string) - NSS error code string that specifies type of cert error. e.g. unknown issuer, invalid cert, etc.
+cert-error-code-prefix = Error code: { $error }
+# Variables:
+# $error (string) - NSS error code string that specifies type of cert error. e.g. unknown issuer, invalid cert, etc.
+cert-error-code-prefix-link = Error code: <a data-l10n-name="error-code-link">{ $error }</a>
+# Variables:
+# $hostname (string) - Hostname of the website with SSL error.
+# $errorMessage (string) - Error message corresponding to the type of error we are experiencing.
+cert-error-ssl-connection-error = An error occurred during a connection to { $hostname }. { $errorMessage }
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+cert-error-symantec-distrust-description = Websites prove their identity via certificates, which are issued by certificate authorities. Most browsers no longer trust certificates issued by GeoTrust, RapidSSL, Symantec, Thawte, and VeriSign. { $hostname } uses a certificate from one of these authorities and so the website’s identity cannot be proven.
+cert-error-symantec-distrust-admin = You may notify the website’s administrator about this problem.
+cert-error-old-tls-version = This website might not support the TLS 1.2 protocol, which is the minimum version supported by { -brand-short-name }.
+# Variables:
+# $hasHSTS (Boolean) - Indicates whether HSTS header is present.
+cert-error-details-hsts-label = HTTP Strict Transport Security: { $hasHSTS }
+# Variables:
+# $hasHPKP (Boolean) - Indicates whether HPKP header is present.
+cert-error-details-key-pinning-label = HTTP Public Key Pinning: { $hasHPKP }
+cert-error-details-cert-chain-label = Certificate chain:
+open-in-new-window-for-csp-or-xfo-error = Open Site in New Window
+# Variables:
+# $hostname (string) - Hostname of the website blocked by csp or xfo error.
+csp-xfo-blocked-long-desc = To protect your security, { $hostname } will not allow { -brand-short-name } to display the page if another site has embedded it. To see this page, you need to open it in a new window.
+
+## Messages used for certificate error titles
+
+connectionFailure-title = Unable to connect
+deniedPortAccess-title = This address is restricted
+# "Hmm" is a sound made when considering or puzzling over something.
+# You don't have to include it in your translation if your language does not have a written word like this.
+dnsNotFound-title = Hmm. We’re having trouble finding that site.
+dns-not-found-trr-only-title2 = Possible security risk looking up this domain
+dns-not-found-native-fallback-title2 = Possible security risk looking up this domain
+fileNotFound-title = File not found
+fileAccessDenied-title = Access to the file was denied
+generic-title = Oops.
+captivePortal-title = Log in to network
+# "Hmm" is a sound made when considering or puzzling over something.
+# You don't have to include it in your translation if your language does not have a written word like this.
+malformedURI-title = Hmm. That address doesn’t look right.
+netInterrupt-title = The connection was interrupted
+notCached-title = Document Expired
+netOffline-title = Offline mode
+contentEncodingError-title = Content Encoding Error
+unsafeContentType-title = Unsafe File Type
+netReset-title = The connection was reset
+netTimeout-title = The connection has timed out
+unknownProtocolFound-title = The address wasn’t understood
+proxyConnectFailure-title = The proxy server is refusing connections
+proxyResolveFailure-title = Unable to find the proxy server
+redirectLoop-title = The page isn’t redirecting properly
+unknownSocketType-title = Unexpected response from server
+nssFailure2-title = Secure Connection Failed
+csp-xfo-error-title = { -brand-short-name } Can’t Open This Page
+corruptedContentError-title = Corrupted Content Error
+sslv3Used-title = Unable to Connect Securely
+inadequateSecurityError-title = Your connection is not secure
+blockedByPolicy-title = Blocked Page
+clockSkewError-title = Your Computer Clock is Wrong
+networkProtocolError-title = Network Protocol Error
+nssBadCert-title = Warning: Potential Security Risk Ahead
+nssBadCert-sts-title = Did Not Connect: Potential Security Issue
+certerror-mitm-title = Software is Preventing { -brand-short-name } From Safely Connecting to This Site
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/neterror/netError.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/neterror/netError.ftl
new file mode 100644
index 0000000000..8d300f3197
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/neterror/netError.ftl
@@ -0,0 +1,147 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## Error page titles
+
+neterror-page-title = Problem loading page
+certerror-page-title = Warning: Potential Security Risk Ahead
+certerror-sts-page-title = Did Not Connect: Potential Security Issue
+neterror-blocked-by-policy-page-title = Blocked Page
+neterror-captive-portal-page-title = Log in to network
+neterror-dns-not-found-title = Server Not Found
+neterror-malformed-uri-page-title = Invalid URL
+
+## Error page actions
+
+neterror-advanced-button = Advanced…
+neterror-copy-to-clipboard-button = Copy text to clipboard
+neterror-learn-more-link = Learn more…
+neterror-open-portal-login-page-button = Open Network Login Page
+neterror-override-exception-button = Accept the Risk and Continue
+neterror-pref-reset-button = Restore default settings
+neterror-return-to-previous-page-button = Go Back
+neterror-return-to-previous-page-recommended-button = Go Back (Recommended)
+neterror-try-again-button = Try Again
+neterror-add-exception-button = Always continue for this site
+neterror-settings-button = Change DNS settings
+neterror-view-certificate-link = View Certificate
+neterror-trr-continue-this-time = Continue this time
+neterror-disable-native-feedback-warning = Always continue
+
+##
+
+neterror-pref-reset = It looks like your network security settings might be causing this. Do you want the default settings to be restored?
+neterror-error-reporting-automatic = Report errors like this to help { -vendor-short-name } identify and block malicious sites
+
+## Specific error messages
+
+neterror-generic-error = { -brand-short-name } can’t load this page for some reason.
+neterror-load-error-try-again = The site could be temporarily unavailable or too busy. Try again in a few moments.
+neterror-load-error-connection = If you are unable to load any pages, check your computer’s network connection.
+neterror-load-error-firewall = If your computer or network is protected by a firewall or proxy, make sure that { -brand-short-name } is permitted to access the web.
+neterror-captive-portal = You must log in to this network before you can access the internet.
+# Variables:
+# $hostAndPath (String) - a suggested site (e.g. "www.example.com") that the user may have meant instead.
+neterror-dns-not-found-with-suggestion = Did you mean to go to <a data-l10n-name="website">{ $hostAndPath }</a>?
+neterror-dns-not-found-hint-header = <strong>If you entered the right address, you can:</strong>
+neterror-dns-not-found-hint-try-again = Try again later
+neterror-dns-not-found-hint-check-network = Check your network connection
+neterror-dns-not-found-hint-firewall = Check that { -brand-short-name } has permission to access the web (you might be connected but behind a firewall)
+
+## TRR-only specific messages
+## Variables:
+## $hostname (String) - Hostname of the website to which the user was trying to connect.
+## $trrDomain (String) - Hostname of the DNS over HTTPS server that is currently in use.
+
+neterror-dns-not-found-trr-only-reason = { -brand-short-name } can’t protect your request for this site’s address through our trusted DNS resolver. Here’s why:
+neterror-dns-not-found-trr-third-party-warning2 = You can continue with your default DNS resolver. However, a third-party might be able to see what websites you visit.
+neterror-dns-not-found-trr-only-could-not-connect = { -brand-short-name } wasn’t able to connect to { $trrDomain }.
+neterror-dns-not-found-trr-only-timeout = The connection to { $trrDomain } took longer than expected.
+neterror-dns-not-found-trr-offline = You are not connected to the internet.
+neterror-dns-not-found-trr-unknown-host2 = This website wasn’t found by { $trrDomain }.
+neterror-dns-not-found-trr-server-problem = There was a problem with { $trrDomain }.
+neterror-dns-not-found-bad-trr-url = Invalid URL.
+neterror-dns-not-found-trr-unknown-problem = Unexpected problem.
+
+## Native fallback specific messages
+## Variables:
+## $trrDomain (String) - Hostname of the DNS over HTTPS server that is currently in use.
+
+neterror-dns-not-found-native-fallback-reason = { -brand-short-name } can’t protect your request for this site’s address through our trusted DNS resolver. Here’s why:
+neterror-dns-not-found-native-fallback-heuristic = DNS over HTTPS has been disabled on your network.
+neterror-dns-not-found-native-fallback-not-confirmed2 = { -brand-short-name } wasn’t able to connect to { $trrDomain }.
+
+##
+
+neterror-file-not-found-filename = Check the file name for capitalization or other typing errors.
+neterror-file-not-found-moved = Check to see if the file was moved, renamed or deleted.
+neterror-access-denied = It may have been removed, moved, or file permissions may be preventing access.
+neterror-unknown-protocol = You might need to install other software to open this address.
+neterror-redirect-loop = This problem can sometimes be caused by disabling or refusing to accept cookies.
+neterror-unknown-socket-type-psm-installed = Check to make sure your system has the Personal Security Manager installed.
+neterror-unknown-socket-type-server-config = This might be due to a non-standard configuration on the server.
+neterror-not-cached-intro = The requested document is not available in { -brand-short-name }’s cache.
+neterror-not-cached-sensitive = As a security precaution, { -brand-short-name } does not automatically re-request sensitive documents.
+neterror-not-cached-try-again = Click Try Again to re-request the document from the website.
+neterror-net-offline = Press “Try Again” to switch to online mode and reload the page.
+neterror-proxy-resolve-failure-settings = Check the proxy settings to make sure that they are correct.
+neterror-proxy-resolve-failure-connection = Check to make sure your computer has a working network connection.
+neterror-proxy-resolve-failure-firewall = If your computer or network is protected by a firewall or proxy, make sure that { -brand-short-name } is permitted to access the web.
+neterror-proxy-connect-failure-settings = Check the proxy settings to make sure that they are correct.
+neterror-proxy-connect-failure-contact-admin = Contact your network administrator to make sure the proxy server is working.
+neterror-content-encoding-error = Please contact the website owners to inform them of this problem.
+neterror-unsafe-content-type = Please contact the website owners to inform them of this problem.
+neterror-nss-failure-not-verified = The page you are trying to view cannot be shown because the authenticity of the received data could not be verified.
+neterror-nss-failure-contact-website = Please contact the website owners to inform them of this problem.
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+certerror-intro = { -brand-short-name } detected a potential security threat and did not continue to <b>{ $hostname }</b>. If you visit this site, attackers could try to steal information like your passwords, emails, or credit card details.
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+certerror-sts-intro = { -brand-short-name } detected a potential security threat and did not continue to <b>{ $hostname }</b> because this website requires a secure connection.
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+certerror-expired-cert-intro = { -brand-short-name } detected an issue and did not continue to <b>{ $hostname }</b>. The website is either misconfigured or your computer clock is set to the wrong time.
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+# $mitm (String) - The name of the software intercepting communications between you and the website (or “man in the middle”)
+certerror-mitm = <b>{ $hostname }</b> is most likely a safe site, but a secure connection could not be established. This issue is caused by <b>{ $mitm }</b>, which is either software on your computer or your network.
+neterror-corrupted-content-intro = The page you are trying to view cannot be shown because an error in the data transmission was detected.
+neterror-corrupted-content-contact-website = Please contact the website owners to inform them of this problem.
+# Do not translate "SSL_ERROR_UNSUPPORTED_VERSION".
+neterror-sslv3-used = Advanced info: SSL_ERROR_UNSUPPORTED_VERSION
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+neterror-inadequate-security-intro = <b>{ $hostname }</b> uses security technology that is outdated and vulnerable to attack. An attacker could easily reveal information which you thought to be safe. The website administrator will need to fix the server first before you can visit the site.
+# Do not translate "NS_ERROR_NET_INADEQUATE_SECURITY".
+neterror-inadequate-security-code = Error code: NS_ERROR_NET_INADEQUATE_SECURITY
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+# $now (Date) - The current datetime, to be formatted as a date
+neterror-clock-skew-error = Your computer thinks it is { DATETIME($now, dateStyle: "medium") }, which prevents { -brand-short-name } from connecting securely. To visit <b>{ $hostname }</b>, update your computer clock in your system settings to the current date, time, and time zone, and then refresh <b>{ $hostname }</b>.
+neterror-network-protocol-error-intro = The page you are trying to view cannot be shown because an error in the network protocol was detected.
+neterror-network-protocol-error-contact-website = Please contact the website owners to inform them of this problem.
+certerror-expired-cert-second-para = It’s likely the website’s certificate is expired, which prevents { -brand-short-name } from connecting securely. If you visit this site, attackers could try to steal information like your passwords, emails, or credit card details.
+certerror-expired-cert-sts-second-para = It’s likely the website’s certificate is expired, which prevents { -brand-short-name } from connecting securely.
+certerror-what-can-you-do-about-it-title = What can you do about it?
+certerror-unknown-issuer-what-can-you-do-about-it-website = The issue is most likely with the website, and there is nothing you can do to resolve it.
+certerror-unknown-issuer-what-can-you-do-about-it-contact-admin = If you are on a corporate network or using antivirus software, you can reach out to the support teams for assistance. You can also notify the website’s administrator about the problem.
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+# $now (Date) - The current datetime, to be formatted as a date
+certerror-expired-cert-what-can-you-do-about-it-clock = Your computer clock is set to { DATETIME($now, dateStyle: "medium") }. Make sure your computer is set to the correct date, time, and time zone in your system settings, and then refresh <b>{ $hostname }</b>.
+certerror-expired-cert-what-can-you-do-about-it-contact-website = If your clock is already set to the right time, the website is likely misconfigured, and there is nothing you can do to resolve the issue. You can notify the website’s administrator about the problem.
+certerror-bad-cert-domain-what-can-you-do-about-it = The issue is most likely with the website, and there is nothing you can do to resolve it. You can notify the website’s administrator about the problem.
+certerror-mitm-what-can-you-do-about-it-antivirus = If your antivirus software includes a feature that scans encrypted connections (often called “web scanning” or “https scanning”), you can disable that feature. If that doesn’t work, you can remove and reinstall the antivirus software.
+certerror-mitm-what-can-you-do-about-it-corporate = If you are on a corporate network, you can contact your IT department.
+# Variables:
+# $mitm (String) - The name of the software intercepting communications between you and the website (or “man in the middle”)
+certerror-mitm-what-can-you-do-about-it-attack = If you are not familiar with <b>{ $mitm }</b>, then this could be an attack and you should not continue to the site.
+# Variables:
+# $mitm (String) - The name of the software intercepting communications between you and the website (or “man in the middle”)
+certerror-mitm-what-can-you-do-about-it-attack-sts = If you are not familiar with <b>{ $mitm }</b>, then this could be an attack, and there is nothing you can do to access the site.
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+certerror-what-should-i-do-bad-sts-cert-explanation = <b>{ $hostname }</b> has a security policy called HTTP Strict Transport Security (HSTS), which means that { -brand-short-name } can only connect to it securely. You can’t add an exception to visit this site.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/neterror/nsserrors.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/neterror/nsserrors.ftl
new file mode 100644
index 0000000000..2b0cc5d29e
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/neterror/nsserrors.ftl
@@ -0,0 +1,349 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+# DO NOT ADD THINGS OTHER THAN ERROR MESSAGES HERE.
+# This file gets parsed into a JS dictionary of all known error message ids in
+# gen_aboutneterror_codes.py . If we end up needing fluent attributes or
+# refactoring them in some way, the script will need updating.
+
+psmerr-ssl-disabled = Can’t connect securely because the SSL protocol has been disabled.
+psmerr-ssl2-disabled = Can’t connect securely because the site uses an older, insecure version of the SSL protocol.
+# This is a multi-line message.
+psmerr-hostreusedissuerandserial =
+ You have received an invalid certificate. Please contact the server administrator or email correspondent and give them the following information:
+
+ Your certificate contains the same serial number as another certificate issued by the certificate authority. Please get a new certificate containing a unique serial number.
+
+ssl-error-export-only-server = Unable to communicate securely. Peer does not support high-grade encryption.
+ssl-error-us-only-server = Unable to communicate securely. Peer requires high-grade encryption which is not supported.
+ssl-error-no-cypher-overlap = Cannot communicate securely with peer: no common encryption algorithm(s).
+ssl-error-no-certificate = Unable to find the certificate or key necessary for authentication.
+ssl-error-bad-certificate = Unable to communicate securely with peer: peers’s certificate was rejected.
+ssl-error-bad-client = The server has encountered bad data from the client.
+ssl-error-bad-server = The client has encountered bad data from the server.
+ssl-error-unsupported-certificate-type = Unsupported certificate type.
+ssl-error-unsupported-version = Peer using unsupported version of security protocol.
+ssl-error-wrong-certificate = Client authentication failed: private key in key database does not match public key in certificate database.
+ssl-error-bad-cert-domain = Unable to communicate securely with peer: requested domain name does not match the server’s certificate.
+ssl-error-post-warning = Unrecognized SSL error code.
+ssl-error-ssl2-disabled = Peer only supports SSL version 2, which is locally disabled.
+ssl-error-bad-mac-read = SSL received a record with an incorrect Message Authentication Code.
+ssl-error-bad-mac-alert = SSL peer reports incorrect Message Authentication Code.
+ssl-error-bad-cert-alert = SSL peer cannot verify your certificate.
+ssl-error-revoked-cert-alert = SSL peer rejected your certificate as revoked.
+ssl-error-expired-cert-alert = SSL peer rejected your certificate as expired.
+ssl-error-ssl-disabled = Cannot connect: SSL is disabled.
+ssl-error-fortezza-pqg = Cannot connect: SSL peer is in another FORTEZZA domain.
+ssl-error-unknown-cipher-suite = An unknown SSL cipher suite has been requested.
+ssl-error-no-ciphers-supported = No cipher suites are present and enabled in this program.
+ssl-error-bad-block-padding = SSL received a record with bad block padding.
+ssl-error-rx-record-too-long = SSL received a record that exceeded the maximum permissible length.
+ssl-error-tx-record-too-long = SSL attempted to send a record that exceeded the maximum permissible length.
+ssl-error-rx-malformed-hello-request = SSL received a malformed Hello Request handshake message.
+ssl-error-rx-malformed-client-hello = SSL received a malformed Client Hello handshake message.
+ssl-error-rx-malformed-server-hello = SSL received a malformed Server Hello handshake message.
+ssl-error-rx-malformed-certificate = SSL received a malformed Certificate handshake message.
+ssl-error-rx-malformed-server-key-exch = SSL received a malformed Server Key Exchange handshake message.
+ssl-error-rx-malformed-cert-request = SSL received a malformed Certificate Request handshake message.
+ssl-error-rx-malformed-hello-done = SSL received a malformed Server Hello Done handshake message.
+ssl-error-rx-malformed-cert-verify = SSL received a malformed Certificate Verify handshake message.
+ssl-error-rx-malformed-client-key-exch = SSL received a malformed Client Key Exchange handshake message.
+ssl-error-rx-malformed-finished = SSL received a malformed Finished handshake message.
+ssl-error-rx-malformed-change-cipher = SSL received a malformed Change Cipher Spec record.
+ssl-error-rx-malformed-alert = SSL received a malformed Alert record.
+ssl-error-rx-malformed-handshake = SSL received a malformed Handshake record.
+ssl-error-rx-malformed-application-data = SSL received a malformed Application Data record.
+ssl-error-rx-unexpected-hello-request = SSL received an unexpected Hello Request handshake message.
+ssl-error-rx-unexpected-client-hello = SSL received an unexpected Client Hello handshake message.
+ssl-error-rx-unexpected-server-hello = SSL received an unexpected Server Hello handshake message.
+ssl-error-rx-unexpected-certificate = SSL received an unexpected Certificate handshake message.
+ssl-error-rx-unexpected-server-key-exch = SSL received an unexpected Server Key Exchange handshake message.
+ssl-error-rx-unexpected-cert-request = SSL received an unexpected Certificate Request handshake message.
+ssl-error-rx-unexpected-hello-done = SSL received an unexpected Server Hello Done handshake message.
+ssl-error-rx-unexpected-cert-verify = SSL received an unexpected Certificate Verify handshake message.
+ssl-error-rx-unexpected-client-key-exch = SSL received an unexpected Client Key Exchange handshake message.
+ssl-error-rx-unexpected-finished = SSL received an unexpected Finished handshake message.
+ssl-error-rx-unexpected-change-cipher = SSL received an unexpected Change Cipher Spec record.
+ssl-error-rx-unexpected-alert = SSL received an unexpected Alert record.
+ssl-error-rx-unexpected-handshake = SSL received an unexpected Handshake record.
+ssl-error-rx-unexpected-application-data = SSL received an unexpected Application Data record.
+ssl-error-rx-unknown-record-type = SSL received a record with an unknown content type.
+ssl-error-rx-unknown-handshake = SSL received a handshake message with an unknown message type.
+ssl-error-rx-unknown-alert = SSL received an alert record with an unknown alert description.
+ssl-error-close-notify-alert = SSL peer has closed this connection.
+ssl-error-handshake-unexpected-alert = SSL peer was not expecting a handshake message it received.
+ssl-error-decompression-failure-alert = SSL peer was unable to successfully decompress an SSL record it received.
+ssl-error-handshake-failure-alert = SSL peer was unable to negotiate an acceptable set of security parameters.
+ssl-error-illegal-parameter-alert = SSL peer rejected a handshake message for unacceptable content.
+ssl-error-unsupported-cert-alert = SSL peer does not support certificates of the type it received.
+ssl-error-certificate-unknown-alert = SSL peer had some unspecified issue with the certificate it received.
+ssl-error-generate-random-failure = SSL experienced a failure of its random number generator.
+ssl-error-sign-hashes-failure = Unable to digitally sign data required to verify your certificate.
+ssl-error-extract-public-key-failure = SSL was unable to extract the public key from the peer’s certificate.
+ssl-error-server-key-exchange-failure = Unspecified failure while processing SSL Server Key Exchange handshake.
+ssl-error-client-key-exchange-failure = Unspecified failure while processing SSL Client Key Exchange handshake.
+ssl-error-encryption-failure = Bulk data encryption algorithm failed in selected cipher suite.
+ssl-error-decryption-failure = Bulk data decryption algorithm failed in selected cipher suite.
+ssl-error-socket-write-failure = Attempt to write encrypted data to underlying socket failed.
+ssl-error-md5-digest-failure = MD5 digest function failed.
+ssl-error-sha-digest-failure = SHA-1 digest function failed.
+ssl-error-mac-computation-failure = MAC computation failed.
+ssl-error-sym-key-context-failure = Failure to create Symmetric Key context.
+ssl-error-sym-key-unwrap-failure = Failure to unwrap the Symmetric key in Client Key Exchange message.
+ssl-error-pub-key-size-limit-exceeded = SSL Server attempted to use domestic-grade public key with export cipher suite.
+ssl-error-iv-param-failure = PKCS11 code failed to translate an IV into a param.
+ssl-error-init-cipher-suite-failure = Failed to initialize the selected cipher suite.
+ssl-error-session-key-gen-failure = Client failed to generate session keys for SSL session.
+ssl-error-no-server-key-for-alg = Server has no key for the attempted key exchange algorithm.
+ssl-error-token-insertion-removal = PKCS#11 token was inserted or removed while operation was in progress.
+ssl-error-token-slot-not-found = No PKCS#11 token could be found to do a required operation.
+ssl-error-no-compression-overlap = Cannot communicate securely with peer: no common compression algorithm(s).
+ssl-error-handshake-not-completed = Cannot initiate another SSL handshake until current handshake is complete.
+ssl-error-bad-handshake-hash-value = Received incorrect handshakes hash values from peer.
+ssl-error-cert-kea-mismatch = The certificate provided cannot be used with the selected key exchange algorithm.
+ssl-error-no-trusted-ssl-client-ca = No certificate authority is trusted for SSL client authentication.
+ssl-error-session-not-found = Client’s SSL session ID not found in server’s session cache.
+ssl-error-decryption-failed-alert = Peer was unable to decrypt an SSL record it received.
+ssl-error-record-overflow-alert = Peer received an SSL record that was longer than is permitted.
+ssl-error-unknown-ca-alert = Peer does not recognize and trust the CA that issued your certificate.
+ssl-error-access-denied-alert = Peer received a valid certificate, but access was denied.
+ssl-error-decode-error-alert = Peer could not decode an SSL handshake message.
+ssl-error-decrypt-error-alert = Peer reports failure of signature verification or key exchange.
+ssl-error-export-restriction-alert = Peer reports negotiation not in compliance with export regulations.
+ssl-error-protocol-version-alert = Peer reports incompatible or unsupported protocol version.
+ssl-error-insufficient-security-alert = Server requires ciphers more secure than those supported by client.
+ssl-error-internal-error-alert = Peer reports it experienced an internal error.
+ssl-error-user-canceled-alert = Peer user cancelled handshake.
+ssl-error-no-renegotiation-alert = Peer does not permit renegotiation of SSL security parameters.
+ssl-error-server-cache-not-configured = SSL server cache not configured and not disabled for this socket.
+ssl-error-unsupported-extension-alert = SSL peer does not support requested TLS hello extension.
+ssl-error-certificate-unobtainable-alert = SSL peer could not obtain your certificate from the supplied URL.
+ssl-error-unrecognized-name-alert = SSL peer has no certificate for the requested DNS name.
+ssl-error-bad-cert-status-response-alert = SSL peer was unable to get an OCSP response for its certificate.
+ssl-error-bad-cert-hash-value-alert = SSL peer reported bad certificate hash value.
+ssl-error-rx-unexpected-new-session-ticket = SSL received an unexpected New Session Ticket handshake message.
+ssl-error-rx-malformed-new-session-ticket = SSL received a malformed New Session Ticket handshake message.
+ssl-error-decompression-failure = SSL received a compressed record that could not be decompressed.
+ssl-error-renegotiation-not-allowed = Renegotiation is not allowed on this SSL socket.
+ssl-error-unsafe-negotiation = Peer attempted old style (potentially vulnerable) handshake.
+ssl-error-rx-unexpected-uncompressed-record = SSL received an unexpected uncompressed record.
+ssl-error-weak-server-ephemeral-dh-key = SSL received a weak ephemeral Diffie-Hellman key in Server Key Exchange handshake message.
+ssl-error-next-protocol-data-invalid = SSL received invalid NPN extension data.
+ssl-error-feature-not-supported-for-ssl2 = SSL feature not supported for SSL 2.0 connections.
+ssl-error-feature-not-supported-for-servers = SSL feature not supported for servers.
+ssl-error-feature-not-supported-for-clients = SSL feature not supported for clients.
+ssl-error-invalid-version-range = SSL version range is not valid.
+ssl-error-cipher-disallowed-for-version = SSL peer selected a cipher suite disallowed for the selected protocol version.
+ssl-error-rx-malformed-hello-verify-request = SSL received a malformed Hello Verify Request handshake message.
+ssl-error-rx-unexpected-hello-verify-request = SSL received an unexpected Hello Verify Request handshake message.
+ssl-error-feature-not-supported-for-version = SSL feature not supported for the protocol version.
+ssl-error-rx-unexpected-cert-status = SSL received an unexpected Certificate Status handshake message.
+ssl-error-unsupported-hash-algorithm = Unsupported hash algorithm used by TLS peer.
+ssl-error-digest-failure = Digest function failed.
+ssl-error-incorrect-signature-algorithm = Incorrect signature algorithm specified in a digitally-signed element.
+ssl-error-next-protocol-no-callback = The next protocol negotiation extension was enabled, but the callback was cleared prior to being needed.
+ssl-error-next-protocol-no-protocol = The server supports no protocols that the client advertises in the ALPN extension.
+ssl-error-inappropriate-fallback-alert = The server rejected the handshake because the client downgraded to a lower TLS version than the server supports.
+ssl-error-weak-server-cert-key = The server certificate included a public key that was too weak.
+ssl-error-rx-short-dtls-read = Not enough room in buffer for DTLS record.
+ssl-error-no-supported-signature-algorithm = No supported TLS signature algorithm was configured.
+ssl-error-unsupported-signature-algorithm = The peer used an unsupported combination of signature and hash algorithm.
+ssl-error-missing-extended-master-secret = The peer tried to resume without a correct extended_master_secret extension.
+ssl-error-unexpected-extended-master-secret = The peer tried to resume with an unexpected extended_master_secret extension.
+
+sec-error-io = An I/O error occurred during security authorization.
+sec-error-library-failure = security library failure.
+sec-error-bad-data = security library: received bad data.
+sec-error-output-len = security library: output length error.
+sec-error-input-len = security library has experienced an input length error.
+sec-error-invalid-args = security library: invalid arguments.
+sec-error-invalid-algorithm = security library: invalid algorithm.
+sec-error-invalid-ava = security library: invalid AVA.
+sec-error-invalid-time = Improperly formatted time string.
+sec-error-bad-der = security library: improperly formatted DER-encoded message.
+sec-error-bad-signature = Peer’s certificate has an invalid signature.
+sec-error-expired-certificate = Peer’s Certificate has expired.
+sec-error-revoked-certificate = Peer’s Certificate has been revoked.
+sec-error-unknown-issuer = Peer’s Certificate issuer is not recognized.
+sec-error-bad-key = Peer’s public key is invalid.
+sec-error-bad-password = The security password entered is incorrect.
+sec-error-retry-password = New password entered incorrectly. Please try again.
+sec-error-no-nodelock = security library: no nodelock.
+sec-error-bad-database = security library: bad database.
+sec-error-no-memory = security library: memory allocation failure.
+sec-error-untrusted-issuer = Peer’s certificate issuer has been marked as not trusted by the user.
+sec-error-untrusted-cert = Peer’s certificate has been marked as not trusted by the user.
+sec-error-duplicate-cert = Certificate already exists in your database.
+sec-error-duplicate-cert-name = Downloaded certificate’s name duplicates one already in your database.
+sec-error-adding-cert = Error adding certificate to database.
+sec-error-filing-key = Error refiling the key for this certificate.
+sec-error-no-key = The private key for this certificate cannot be found in key database
+sec-error-cert-valid = This certificate is valid.
+sec-error-cert-not-valid = This certificate is not valid.
+sec-error-cert-no-response = Cert Library: No Response
+sec-error-expired-issuer-certificate = The certificate issuer’s certificate has expired. Check your system date and time.
+sec-error-crl-expired = The CRL for the certificate’s issuer has expired. Update it or check your system date and time.
+sec-error-crl-bad-signature = The CRL for the certificate’s issuer has an invalid signature.
+sec-error-crl-invalid = New CRL has an invalid format.
+sec-error-extension-value-invalid = Certificate extension value is invalid.
+sec-error-extension-not-found = Certificate extension not found.
+sec-error-ca-cert-invalid = Issuer certificate is invalid.
+sec-error-path-len-constraint-invalid = Certificate path length constraint is invalid.
+sec-error-cert-usages-invalid = Certificate usages field is invalid.
+sec-internal-only = **Internal ONLY module**
+sec-error-invalid-key = The key does not support the requested operation.
+sec-error-unknown-critical-extension = Certificate contains unknown critical extension.
+sec-error-old-crl = New CRL is not later than the current one.
+sec-error-no-email-cert = Not encrypted or signed: you do not yet have an email certificate.
+sec-error-no-recipient-certs-query = Not encrypted: you do not have certificates for each of the recipients.
+sec-error-not-a-recipient = Cannot decrypt: you are not a recipient, or matching certificate and private key not found.
+sec-error-pkcs7-keyalg-mismatch = Cannot decrypt: key encryption algorithm does not match your certificate.
+sec-error-pkcs7-bad-signature = Signature verification failed: no signer found, too many signers found, or improper or corrupted data.
+sec-error-unsupported-keyalg = Unsupported or unknown key algorithm.
+sec-error-decryption-disallowed = Cannot decrypt: encrypted using a disallowed algorithm or key size.
+sec-error-no-krl = No KRL for this site’s certificate has been found.
+sec-error-krl-expired = The KRL for this site’s certificate has expired.
+sec-error-krl-bad-signature = The KRL for this site’s certificate has an invalid signature.
+sec-error-revoked-key = The key for this site’s certificate has been revoked.
+sec-error-krl-invalid = New KRL has an invalid format.
+sec-error-need-random = security library: need random data.
+sec-error-no-module = security library: no security module can perform the requested operation.
+sec-error-no-token = The security card or token does not exist, needs to be initialized, or has been removed.
+sec-error-read-only = security library: read-only database.
+sec-error-no-slot-selected = No slot or token was selected.
+sec-error-cert-nickname-collision = A certificate with the same nickname already exists.
+sec-error-key-nickname-collision = A key with the same nickname already exists.
+sec-error-safe-not-created = error while creating safe object
+sec-error-baggage-not-created = error while creating baggage object
+sec-error-bad-export-algorithm = Required algorithm is not allowed.
+sec-error-exporting-certificates = Error attempting to export certificates.
+sec-error-importing-certificates = Error attempting to import certificates.
+sec-error-pkcs12-decoding-pfx = Unable to import. Decoding error. File not valid.
+sec-error-pkcs12-invalid-mac = Unable to import. Invalid MAC. Incorrect password or corrupt file.
+sec-error-pkcs12-unsupported-mac-algorithm = Unable to import. MAC algorithm not supported.
+sec-error-pkcs12-unsupported-transport-mode = Unable to import. Only password integrity and privacy modes supported.
+sec-error-pkcs12-corrupt-pfx-structure = Unable to import. File structure is corrupt.
+sec-error-pkcs12-unsupported-pbe-algorithm = Unable to import. Encryption algorithm not supported.
+sec-error-pkcs12-unsupported-version = Unable to import. File version not supported.
+sec-error-pkcs12-privacy-password-incorrect = Unable to import. Incorrect privacy password.
+sec-error-pkcs12-cert-collision = Unable to import. Same nickname already exists in database.
+sec-error-user-cancelled = The user pressed cancel.
+sec-error-pkcs12-duplicate-data = Not imported, already in database.
+sec-error-message-send-aborted = Message not sent.
+sec-error-inadequate-key-usage = Certificate key usage inadequate for attempted operation.
+sec-error-inadequate-cert-type = Certificate type not approved for application.
+sec-error-cert-addr-mismatch = Address in signing certificate does not match address in message headers.
+sec-error-pkcs12-unable-to-import-key = Unable to import. Error attempting to import private key.
+sec-error-pkcs12-importing-cert-chain = Unable to import. Error attempting to import certificate chain.
+sec-error-pkcs12-unable-to-locate-object-by-name = Unable to export. Unable to locate certificate or key by nickname.
+sec-error-pkcs12-unable-to-export-key = Unable to export. Private Key could not be located and exported.
+sec-error-pkcs12-unable-to-write = Unable to export. Unable to write the export file.
+sec-error-pkcs12-unable-to-read = Unable to import. Unable to read the import file.
+sec-error-pkcs12-key-database-not-initialized = Unable to export. Key database corrupt or deleted.
+sec-error-keygen-fail = Unable to generate public/private key pair.
+sec-error-invalid-password = Password entered is invalid. Please pick a different one.
+sec-error-retry-old-password = Old password entered incorrectly. Please try again.
+sec-error-bad-nickname = Certificate nickname already in use.
+sec-error-not-fortezza-issuer = Peer FORTEZZA chain has a non-FORTEZZA Certificate.
+sec-error-cannot-move-sensitive-key = A sensitive key cannot be moved to the slot where it is needed.
+sec-error-js-invalid-module-name = Invalid module name.
+sec-error-js-invalid-dll = Invalid module path/filename
+sec-error-js-add-mod-failure = Unable to add module
+sec-error-js-del-mod-failure = Unable to delete module
+sec-error-old-krl = New KRL is not later than the current one.
+sec-error-ckl-conflict = New CKL has different issuer than current CKL. Delete current CKL.
+sec-error-cert-not-in-name-space = The Certifying Authority for this certificate is not permitted to issue a certificate with this name.
+sec-error-krl-not-yet-valid = The key revocation list for this certificate is not yet valid.
+sec-error-crl-not-yet-valid = The certificate revocation list for this certificate is not yet valid.
+sec-error-unknown-cert = The requested certificate could not be found.
+sec-error-unknown-signer = The signer’s certificate could not be found.
+sec-error-cert-bad-access-location = The location for the certificate status server has invalid format.
+sec-error-ocsp-unknown-response-type = The OCSP response cannot be fully decoded; it is of an unknown type.
+sec-error-ocsp-bad-http-response = The OCSP server returned unexpected/invalid HTTP data.
+sec-error-ocsp-malformed-request = The OCSP server found the request to be corrupted or improperly formed.
+sec-error-ocsp-server-error = The OCSP server experienced an internal error.
+sec-error-ocsp-try-server-later = The OCSP server suggests trying again later.
+sec-error-ocsp-request-needs-sig = The OCSP server requires a signature on this request.
+sec-error-ocsp-unauthorized-request = The OCSP server has refused this request as unauthorized.
+sec-error-ocsp-unknown-response-status = The OCSP server returned an unrecognizable status.
+sec-error-ocsp-unknown-cert = The OCSP server has no status for the certificate.
+sec-error-ocsp-not-enabled = You must enable OCSP before performing this operation.
+sec-error-ocsp-no-default-responder = You must set the OCSP default responder before performing this operation.
+sec-error-ocsp-malformed-response = The response from the OCSP server was corrupted or improperly formed.
+sec-error-ocsp-unauthorized-response = The signer of the OCSP response is not authorized to give status for this certificate.
+sec-error-ocsp-future-response = The OCSP response is not yet valid (contains a date in the future).
+sec-error-ocsp-old-response = The OCSP response contains out-of-date information.
+sec-error-digest-not-found = The CMS or PKCS #7 Digest was not found in signed message.
+sec-error-unsupported-message-type = The CMS or PKCS #7 Message type is unsupported.
+sec-error-module-stuck = PKCS #11 module could not be removed because it is still in use.
+sec-error-bad-template = Could not decode ASN.1 data. Specified template was invalid.
+sec-error-crl-not-found = No matching CRL was found.
+sec-error-reused-issuer-and-serial = You are attempting to import a cert with the same issuer/serial as an existing cert, but that is not the same cert.
+sec-error-busy = NSS could not shutdown. Objects are still in use.
+sec-error-extra-input = DER-encoded message contained extra unused data.
+sec-error-unsupported-elliptic-curve = Unsupported elliptic curve.
+sec-error-unsupported-ec-point-form = Unsupported elliptic curve point form.
+sec-error-unrecognized-oid = Unrecognized Object Identifier.
+sec-error-ocsp-invalid-signing-cert = Invalid OCSP signing certificate in OCSP response.
+sec-error-revoked-certificate-crl = Certificate is revoked in issuer’s certificate revocation list.
+sec-error-revoked-certificate-ocsp = Issuer’s OCSP responder reports certificate is revoked.
+sec-error-crl-invalid-version = Issuer’s Certificate Revocation List has an unknown version number.
+sec-error-crl-v1-critical-extension = Issuer’s V1 Certificate Revocation List has a critical extension.
+sec-error-crl-unknown-critical-extension = Issuer’s V2 Certificate Revocation List has an unknown critical extension.
+sec-error-unknown-object-type = Unknown object type specified.
+sec-error-incompatible-pkcs11 = PKCS #11 driver violates the spec in an incompatible way.
+sec-error-no-event = No new slot event is available at this time.
+sec-error-crl-already-exists = CRL already exists.
+sec-error-not-initialized = NSS is not initialized.
+sec-error-token-not-logged-in = The operation failed because the PKCS#11 token is not logged in.
+sec-error-ocsp-responder-cert-invalid = Configured OCSP responder’s certificate is invalid.
+sec-error-ocsp-bad-signature = OCSP response has an invalid signature.
+sec-error-out-of-search-limits = Certificate validation search is out of search limits
+sec-error-invalid-policy-mapping = Policy mapping contains anypolicy
+sec-error-policy-validation-failed = Certificate chain fails policy validation
+sec-error-unknown-aia-location-type = Unknown location type in cert AIA extension
+sec-error-bad-http-response = Server returned bad HTTP response
+sec-error-bad-ldap-response = Server returned bad LDAP response
+sec-error-failed-to-encode-data = Failed to encode data with ASN1 encoder
+sec-error-bad-info-access-location = Bad information access location in certificate extension
+sec-error-libpkix-internal = Libpkix internal error occurred during certificate validation.
+sec-error-pkcs11-general-error = A PKCS #11 module returned CKR_GENERAL_ERROR, indicating that an unrecoverable error has occurred.
+sec-error-pkcs11-function-failed = A PKCS #11 module returned CKR_FUNCTION_FAILED, indicating that the requested function could not be performed. Trying the same operation again might succeed.
+sec-error-pkcs11-device-error = A PKCS #11 module returned CKR_DEVICE_ERROR, indicating that a problem has occurred with the token or slot.
+sec-error-bad-info-access-method = Unknown information access method in certificate extension.
+sec-error-crl-import-failed = Error attempting to import a CRL.
+sec-error-expired-password = The password expired.
+sec-error-locked-password = The password is locked.
+sec-error-unknown-pkcs11-error = Unknown PKCS #11 error.
+sec-error-bad-crl-dp-url = Invalid or unsupported URL in CRL distribution point name.
+sec-error-cert-signature-algorithm-disabled = The certificate was signed using a signature algorithm that is disabled because it is not secure.
+
+mozilla-pkix-error-key-pinning-failure = The server uses key pinning (HPKP) but no trusted certificate chain could be constructed that matches the pinset. Key pinning violations cannot be overridden.
+mozilla-pkix-error-ca-cert-used-as-end-entity = The server uses a certificate with a basic constraints extension identifying it as a certificate authority. For a properly-issued certificate, this should not be the case.
+mozilla-pkix-error-inadequate-key-size = The server presented a certificate with a key size that is too small to establish a secure connection.
+mozilla-pkix-error-v1-cert-used-as-ca = An X.509 version 1 certificate that is not a trust anchor was used to issue the server’s certificate. X.509 version 1 certificates are deprecated and should not be used to sign other certificates.
+mozilla-pkix-error-not-yet-valid-certificate = The server presented a certificate that is not yet valid.
+mozilla-pkix-error-not-yet-valid-issuer-certificate = A certificate that is not yet valid was used to issue the server’s certificate.
+mozilla-pkix-error-signature-algorithm-mismatch = The signature algorithm in the signature field of the certificate does not match the algorithm in its signatureAlgorithm field.
+mozilla-pkix-error-ocsp-response-for-cert-missing = The OCSP response does not include a status for the certificate being verified.
+mozilla-pkix-error-validity-too-long = The server presented a certificate that is valid for too long.
+mozilla-pkix-error-required-tls-feature-missing = A required TLS feature is missing.
+mozilla-pkix-error-invalid-integer-encoding = The server presented a certificate that contains an invalid encoding of an integer. Common causes include negative serial numbers, negative RSA moduli, and encodings that are longer than necessary.
+mozilla-pkix-error-empty-issuer-name = The server presented a certificate with an empty issuer distinguished name.
+mozilla-pkix-error-additional-policy-constraint-failed = An additional policy constraint failed when validating this certificate.
+mozilla-pkix-error-self-signed-cert = The certificate is not trusted because it is self-signed.
+
+xp-java-remove-principal-error = Couldn’t remove the principal
+xp-java-delete-privilege-error = Couldn’t delete the privilege
+xp-java-cert-not-exists-error = This principal doesn’t have a certificate
+
+xp-sec-fortezza-bad-card = Fortezza card has not been properly initialized. Please remove it and return it to your issuer.
+xp-sec-fortezza-no-card = No Fortezza cards Found
+xp-sec-fortezza-none-selected = No Fortezza card selected
+xp-sec-fortezza-more-info = Please select a personality to get more info on
+xp-sec-fortezza-person-not-found = Personality not found
+xp-sec-fortezza-no-more-info = No more information on that personality
+xp-sec-fortezza-bad-pin = Invalid Pin
+xp-sec-fortezza-person-error = Couldn’t initialize Fortezza personalities.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/passwordmgr/passwordmgr.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/passwordmgr/passwordmgr.ftl
new file mode 100644
index 0000000000..04666aeeab
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/passwordmgr/passwordmgr.ftl
@@ -0,0 +1,33 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## Save and update password doorhanger
+
+# Variables
+# $host (String) - Hostname for which the password is saved for.
+password-manager-save-password-message = Save password for { $host }?
+password-manager-save-password-button-allow =
+ .label = Save
+ .accesskey = S
+password-manager-save-password-button-never =
+ .label = Never save
+ .accesskey = e
+# Variables
+# $host (String) - Hostname for which the password is updated for.
+password-manager-update-password-message = Update password for { $host }?
+password-manager-update-login-add-username = Add username to saved password?
+password-manager-password-password-button-allow =
+ .label = Update
+ .accesskey = U
+password-manager-update-password-button-deny =
+ .label = Don’t update
+ .accesskey = D
+# This is displayed in place of the username when it is missing.
+password-manager-no-username-placeholder = No username
+password-manager-toggle-password =
+ .label = Show password
+ .accesskey = h
+password-manager-confirm-password-change = Confirm Password Change
+password-manager-select-username = Select which login to update:
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/payments/payments.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/payments/payments.ftl
new file mode 100644
index 0000000000..22302a5a90
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/payments/payments.ftl
@@ -0,0 +1,51 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+# This value isn't used directly, but is defined to avoid duplication
+# in the "credit-card-label-*" strings.
+#
+# Variables:
+# $month (String): Numeric month the credit card expires
+# $year (String): Four-digit year the credit card expires
+credit-card-expiration = Expires on { $month }/{ $year }
+
+## These labels serve as a description of a credit card.
+## The description must include a credit card number, and may optionally
+## include a cardholder name, an expiration date, or both, so we have
+## four variations.
+
+# Label for a credit card with a number only
+#
+# Variables:
+# $number (String): Partially-redacted credit card number
+# $type (String): Credit card type
+credit-card-label-number-2 = { $number }
+ .aria-label = { $type } { credit-card-label-number-2 }
+
+# Label for a credit card with a number and name
+#
+# Variables:
+# $number (String): Partially-redacted credit card number
+# $name (String): Cardholder name
+# $type (String): Credit card type
+credit-card-label-number-name-2 = { $number }, { $name }
+ .aria-label = { $type } { credit-card-label-number-name-2 }
+
+# Label for a credit card with a number and expiration date
+#
+# Variables:
+# $number (String): Partially-redacted credit card number
+# $type (String): Credit card type
+credit-card-label-number-expiration-2 = { $number }, { credit-card-expiration }
+ .aria-label = { $type } { credit-card-label-number-expiration-2 }
+
+# Label for a credit card with a number, name, and expiration date
+#
+# Variables:
+# $number (String): Partially-redacted credit card number
+# $name (String): Cardholder name
+# $type (String): Credit card type
+credit-card-label-number-name-expiration-2 = { $number }, { $name }, { credit-card-expiration }
+ .aria-label = { $type } { credit-card-label-number-name-expiration-2 }
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/pdfviewer/viewer.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/pdfviewer/viewer.ftl
new file mode 100644
index 0000000000..e95afe96ae
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/pdfviewer/viewer.ftl
@@ -0,0 +1,311 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+
+## Main toolbar buttons (tooltips and alt text for images)
+
+pdfjs-previous-button =
+ .title = Previous Page
+pdfjs-previous-button-label = Previous
+pdfjs-next-button =
+ .title = Next Page
+pdfjs-next-button-label = Next
+# .title: Tooltip for the pageNumber input.
+pdfjs-page-input =
+ .title = Page
+# Variables:
+# $pagesCount (Number) - the total number of pages in the document
+# This string follows an input field with the number of the page currently displayed.
+pdfjs-of-pages = of { $pagesCount }
+# Variables:
+# $pageNumber (Number) - the currently visible page
+# $pagesCount (Number) - the total number of pages in the document
+pdfjs-page-of-pages = ({ $pageNumber } of { $pagesCount })
+pdfjs-zoom-out-button =
+ .title = Zoom Out
+pdfjs-zoom-out-button-label = Zoom Out
+pdfjs-zoom-in-button =
+ .title = Zoom In
+pdfjs-zoom-in-button-label = Zoom In
+pdfjs-zoom-select =
+ .title = Zoom
+pdfjs-presentation-mode-button =
+ .title = Switch to Presentation Mode
+pdfjs-presentation-mode-button-label = Presentation Mode
+pdfjs-open-file-button =
+ .title = Open File
+pdfjs-open-file-button-label = Open
+pdfjs-print-button =
+ .title = Print
+pdfjs-print-button-label = Print
+pdfjs-save-button =
+ .title = Save
+pdfjs-save-button-label = Save
+# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+pdfjs-download-button =
+ .title = Download
+# Used in Firefox for Android as a label for the download button (“download” is a verb).
+# Length of the translation matters since we are in a mobile context, with limited screen estate.
+pdfjs-download-button-label = Download
+pdfjs-bookmark-button =
+ .title = Current Page (View URL from Current Page)
+pdfjs-bookmark-button-label = Current Page
+# Used in Firefox for Android.
+pdfjs-open-in-app-button =
+ .title = Open in app
+# Used in Firefox for Android.
+# Length of the translation matters since we are in a mobile context, with limited screen estate.
+pdfjs-open-in-app-button-label = Open in app
+
+## Secondary toolbar and context menu
+
+pdfjs-tools-button =
+ .title = Tools
+pdfjs-tools-button-label = Tools
+pdfjs-first-page-button =
+ .title = Go to First Page
+pdfjs-first-page-button-label = Go to First Page
+pdfjs-last-page-button =
+ .title = Go to Last Page
+pdfjs-last-page-button-label = Go to Last Page
+pdfjs-page-rotate-cw-button =
+ .title = Rotate Clockwise
+pdfjs-page-rotate-cw-button-label = Rotate Clockwise
+pdfjs-page-rotate-ccw-button =
+ .title = Rotate Counterclockwise
+pdfjs-page-rotate-ccw-button-label = Rotate Counterclockwise
+pdfjs-cursor-text-select-tool-button =
+ .title = Enable Text Selection Tool
+pdfjs-cursor-text-select-tool-button-label = Text Selection Tool
+pdfjs-cursor-hand-tool-button =
+ .title = Enable Hand Tool
+pdfjs-cursor-hand-tool-button-label = Hand Tool
+pdfjs-scroll-page-button =
+ .title = Use Page Scrolling
+pdfjs-scroll-page-button-label = Page Scrolling
+pdfjs-scroll-vertical-button =
+ .title = Use Vertical Scrolling
+pdfjs-scroll-vertical-button-label = Vertical Scrolling
+pdfjs-scroll-horizontal-button =
+ .title = Use Horizontal Scrolling
+pdfjs-scroll-horizontal-button-label = Horizontal Scrolling
+pdfjs-scroll-wrapped-button =
+ .title = Use Wrapped Scrolling
+pdfjs-scroll-wrapped-button-label = Wrapped Scrolling
+pdfjs-spread-none-button =
+ .title = Do not join page spreads
+pdfjs-spread-none-button-label = No Spreads
+pdfjs-spread-odd-button =
+ .title = Join page spreads starting with odd-numbered pages
+pdfjs-spread-odd-button-label = Odd Spreads
+pdfjs-spread-even-button =
+ .title = Join page spreads starting with even-numbered pages
+pdfjs-spread-even-button-label = Even Spreads
+
+## Document properties dialog
+
+pdfjs-document-properties-button =
+ .title = Document Properties…
+pdfjs-document-properties-button-label = Document Properties…
+pdfjs-document-properties-file-name = File name:
+pdfjs-document-properties-file-size = File size:
+# Variables:
+# $size_kb (Number) - the PDF file size in kilobytes
+# $size_b (Number) - the PDF file size in bytes
+pdfjs-document-properties-kb = { $size_kb } kB ({ $size_b } bytes)
+# Variables:
+# $size_mb (Number) - the PDF file size in megabytes
+# $size_b (Number) - the PDF file size in bytes
+pdfjs-document-properties-mb = { $size_mb } MB ({ $size_b } bytes)
+pdfjs-document-properties-title = Title:
+pdfjs-document-properties-author = Author:
+pdfjs-document-properties-subject = Subject:
+pdfjs-document-properties-keywords = Keywords:
+pdfjs-document-properties-creation-date = Creation Date:
+pdfjs-document-properties-modification-date = Modification Date:
+# Variables:
+# $date (Date) - the creation/modification date of the PDF file
+# $time (Time) - the creation/modification time of the PDF file
+pdfjs-document-properties-date-string = { $date }, { $time }
+pdfjs-document-properties-creator = Creator:
+pdfjs-document-properties-producer = PDF Producer:
+pdfjs-document-properties-version = PDF Version:
+pdfjs-document-properties-page-count = Page Count:
+pdfjs-document-properties-page-size = Page Size:
+pdfjs-document-properties-page-size-unit-inches = in
+pdfjs-document-properties-page-size-unit-millimeters = mm
+pdfjs-document-properties-page-size-orientation-portrait = portrait
+pdfjs-document-properties-page-size-orientation-landscape = landscape
+pdfjs-document-properties-page-size-name-a-three = A3
+pdfjs-document-properties-page-size-name-a-four = A4
+pdfjs-document-properties-page-size-name-letter = Letter
+pdfjs-document-properties-page-size-name-legal = Legal
+
+## Variables:
+## $width (Number) - the width of the (current) page
+## $height (Number) - the height of the (current) page
+## $unit (String) - the unit of measurement of the (current) page
+## $name (String) - the name of the (current) page
+## $orientation (String) - the orientation of the (current) page
+
+pdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })
+pdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })
+
+##
+
+# The linearization status of the document; usually called "Fast Web View" in
+# English locales of Adobe software.
+pdfjs-document-properties-linearized = Fast Web View:
+pdfjs-document-properties-linearized-yes = Yes
+pdfjs-document-properties-linearized-no = No
+pdfjs-document-properties-close-button = Close
+
+## Print
+
+pdfjs-print-progress-message = Preparing document for printing…
+# Variables:
+# $progress (Number) - percent value
+pdfjs-print-progress-percent = { $progress }%
+pdfjs-print-progress-close-button = Cancel
+pdfjs-printing-not-supported = Warning: Printing is not fully supported by this browser.
+pdfjs-printing-not-ready = Warning: The PDF is not fully loaded for printing.
+
+## Tooltips and alt text for side panel toolbar buttons
+
+pdfjs-toggle-sidebar-button =
+ .title = Toggle Sidebar
+pdfjs-toggle-sidebar-notification-button =
+ .title = Toggle Sidebar (document contains outline/attachments/layers)
+pdfjs-toggle-sidebar-button-label = Toggle Sidebar
+pdfjs-document-outline-button =
+ .title = Show Document Outline (double-click to expand/collapse all items)
+pdfjs-document-outline-button-label = Document Outline
+pdfjs-attachments-button =
+ .title = Show Attachments
+pdfjs-attachments-button-label = Attachments
+pdfjs-layers-button =
+ .title = Show Layers (double-click to reset all layers to the default state)
+pdfjs-layers-button-label = Layers
+pdfjs-thumbs-button =
+ .title = Show Thumbnails
+pdfjs-thumbs-button-label = Thumbnails
+pdfjs-current-outline-item-button =
+ .title = Find Current Outline Item
+pdfjs-current-outline-item-button-label = Current Outline Item
+pdfjs-findbar-button =
+ .title = Find in Document
+pdfjs-findbar-button-label = Find
+pdfjs-additional-layers = Additional Layers
+
+## Thumbnails panel item (tooltip and alt text for images)
+
+# Variables:
+# $page (Number) - the page number
+pdfjs-thumb-page-title =
+ .title = Page { $page }
+# Variables:
+# $page (Number) - the page number
+pdfjs-thumb-page-canvas =
+ .aria-label = Thumbnail of Page { $page }
+
+## Find panel button title and messages
+
+pdfjs-find-input =
+ .title = Find
+ .placeholder = Find in document…
+pdfjs-find-previous-button =
+ .title = Find the previous occurrence of the phrase
+pdfjs-find-previous-button-label = Previous
+pdfjs-find-next-button =
+ .title = Find the next occurrence of the phrase
+pdfjs-find-next-button-label = Next
+pdfjs-find-highlight-checkbox = Highlight All
+pdfjs-find-match-case-checkbox-label = Match Case
+pdfjs-find-match-diacritics-checkbox-label = Match Diacritics
+pdfjs-find-entire-word-checkbox-label = Whole Words
+pdfjs-find-reached-top = Reached top of document, continued from bottom
+pdfjs-find-reached-bottom = Reached end of document, continued from top
+pdfjs-find-not-found = Phrase not found
+
+## Predefined zoom values
+
+pdfjs-page-scale-width = Page Width
+pdfjs-page-scale-fit = Page Fit
+pdfjs-page-scale-auto = Automatic Zoom
+pdfjs-page-scale-actual = Actual Size
+# Variables:
+# $scale (Number) - percent value for page scale
+pdfjs-page-scale-percent = { $scale }%
+
+## PDF page
+
+# Variables:
+# $page (Number) - the page number
+pdfjs-page-landmark =
+ .aria-label = Page { $page }
+
+## Loading indicator messages
+
+pdfjs-loading-error = An error occurred while loading the PDF.
+pdfjs-invalid-file-error = Invalid or corrupted PDF file.
+pdfjs-missing-file-error = Missing PDF file.
+pdfjs-unexpected-response-error = Unexpected server response.
+pdfjs-rendering-error = An error occurred while rendering the page.
+
+## Annotations
+
+# Variables:
+# $date (Date) - the modification date of the annotation
+# $time (Time) - the modification time of the annotation
+pdfjs-annotation-date-string = { $date }, { $time }
+# .alt: This is used as a tooltip.
+# Variables:
+# $type (String) - an annotation type from a list defined in the PDF spec
+# (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+pdfjs-text-annotation-type =
+ .alt = [{ $type } Annotation]
+
+## Password
+
+pdfjs-password-label = Enter the password to open this PDF file.
+pdfjs-password-invalid = Invalid password. Please try again.
+pdfjs-password-ok-button = OK
+pdfjs-password-cancel-button = Cancel
+pdfjs-web-fonts-disabled = Web fonts are disabled: unable to use embedded PDF fonts.
+
+## Editing
+
+pdfjs-editor-free-text-button =
+ .title = Text
+pdfjs-editor-free-text-button-label = Text
+pdfjs-editor-ink-button =
+ .title = Draw
+pdfjs-editor-ink-button-label = Draw
+pdfjs-editor-stamp-button =
+ .title = Add or edit images
+pdfjs-editor-stamp-button-label = Add or edit images
+# Editor Parameters
+pdfjs-editor-free-text-color-input = Colour
+pdfjs-editor-free-text-size-input = Size
+pdfjs-editor-ink-color-input = Colour
+pdfjs-editor-ink-thickness-input = Thickness
+pdfjs-editor-ink-opacity-input = Opacity
+pdfjs-editor-stamp-add-image-button =
+ .title = Add image
+pdfjs-editor-stamp-add-image-button-label = Add image
+pdfjs-free-text =
+ .aria-label = Text Editor
+pdfjs-free-text-default-content = Start typing…
+pdfjs-ink =
+ .aria-label = Draw Editor
+pdfjs-ink-canvas =
+ .aria-label = User-created image
+
+## Alt-text dialog
+
+
+## Editor resizers
+## This is used in an aria label to help to understand the role of the resizer.
+
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/pictureinpicture/pictureinpicture.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/pictureinpicture/pictureinpicture.ftl
new file mode 100644
index 0000000000..530f5aa377
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/pictureinpicture/pictureinpicture.ftl
@@ -0,0 +1,75 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+pictureinpicture-player-title = Picture-in-Picture
+
+## Variables:
+## $shortcut (String) - Keyboard shortcut to execute the command.
+
+
+## Note that this uses .tooltip rather than the standard '.title'
+## or '.tooltiptext' - but it has the same effect. Code in the
+## picture-in-picture window will read and copy this to an in-document
+## DOM node that then shows the tooltip.
+##
+## Variables:
+## $shortcut (String) - Keyboard shortcut to execute the command.
+
+pictureinpicture-pause-btn =
+ .aria-label = Pause
+ .tooltip = Pause (Spacebar)
+pictureinpicture-play-btn =
+ .aria-label = Play
+ .tooltip = Play (Spacebar)
+pictureinpicture-mute-btn =
+ .aria-label = Mute
+ .tooltip = Mute ({ $shortcut })
+pictureinpicture-unmute-btn =
+ .aria-label = Unmute
+ .tooltip = Unmute ({ $shortcut })
+pictureinpicture-unpip-btn =
+ .aria-label = Send back to tab
+ .tooltip = Back to tab
+pictureinpicture-close-btn =
+ .aria-label = Close
+ .tooltip = Close ({ $shortcut })
+pictureinpicture-subtitles-btn =
+ .aria-label = Subtitles
+ .tooltip = Subtitles
+pictureinpicture-fullscreen-btn2 =
+ .aria-label = Fullscreen
+ .tooltip = Fullscreen (double-click or { $shortcut })
+pictureinpicture-exit-fullscreen-btn2 =
+ .aria-label = Exit fullscreen
+ .tooltip = Exit fullscreen (double-click or { $shortcut })
+
+##
+
+# Keyboard shortcut to toggle fullscreen mode when Picture-in-Picture is open.
+pictureinpicture-toggle-fullscreen-shortcut =
+ .key = F
+
+## Note that this uses .tooltip rather than the standard '.title'
+## or '.tooltiptext' - but it has the same effect. Code in the
+## picture-in-picture window will read and copy this to an in-document
+## DOM node that then shows the tooltip.
+
+pictureinpicture-seekbackward-btn =
+ .aria-label = Backward
+ .tooltip = Backward (←)
+pictureinpicture-seekforward-btn =
+ .aria-label = Forward
+ .tooltip = Forward (→)
+
+##
+
+# This string is never displayed on the window. Is intended to be announced by
+# a screen reader whenever a user opens the subtitles settings panel
+# after selecting the subtitles button.
+pictureinpicture-subtitles-panel-accessible = Subtitles settings
+pictureinpicture-subtitles-label = Subtitles
+pictureinpicture-font-size-label = Font size
+pictureinpicture-font-size-small = Small
+pictureinpicture-font-size-medium = Medium
+pictureinpicture-font-size-large = Large
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/preferences/preferences.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/preferences/preferences.ftl
new file mode 100644
index 0000000000..1c5f4c1739
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/preferences/preferences.ftl
@@ -0,0 +1,34 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+password-not-set =
+ .value = (not set)
+failed-pp-change = Unable to change Primary Password.
+incorrect-pp = You did not enter the correct current Primary Password. Please try again.
+pp-change-ok = Primary Password successfully changed.
+settings-pp-erased-ok = You have deleted your Primary Password. Stored passwords and certificate private keys managed by { -brand-short-name } will not be protected.
+settings-pp-not-wanted = Warning! You have decided not to use a Primary Password. Stored passwords and certificate private keys managed by { -brand-short-name } will not be protected.
+pp-change2empty-in-fips-mode = You are currently in FIPS mode. FIPS requires a non-empty Primary Password.
+pw-change-success-title = Password Change Succeeded
+pw-change-failed-title = Password Change Failed
+pw-remove-button =
+ .label = Remove
+primary-password-dialog =
+ .title = Primary Password
+set-password-old-password = Current password:
+set-password-new-password = Enter new password:
+set-password-reenter-password = Re-enter password:
+set-password-meter = Password quality meter
+set-password-meter-loading = Loading
+primary-password-admin = Your administrator requires that you have a Primary Password set in order to save logins and passwords.
+primary-password-description = A Primary Password is used to protect some sensitive information, like logins and passwords, on this device. If you create a Primary Password you will be asked to enter it once per session when { -brand-short-name } retrieves saved information protected by the password.
+primary-password-warning = Please make sure you remember the Primary Password you have set. If you forget your Primary Password, you will be unable to access any of the information protected by it on this device.
+remove-primary-password =
+ .title = Remove Primary Password
+remove-info =
+ .value = You must enter your current password to proceed:
+remove-primary-password-warning1 = Your Primary Password is used to protect sensitive information like logins and passwords.
+remove-primary-password-warning2 = If you remove your Primary Password your information will not be protected if your computer is compromised.
+remove-password-old-password =
+ .value = Current password:
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/printing/printDialogs.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/printing/printDialogs.ftl
new file mode 100644
index 0000000000..a9833f4ba4
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/printing/printDialogs.ftl
@@ -0,0 +1,112 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+print-setup =
+ .title = Page Setup
+custom-prompt-title = Custom…
+custom-prompt-prompt = Enter your custom header/footer text
+basic-tab =
+ .label = Format & Options
+advanced-tab =
+ .label = Margins & Header/Footer
+format-group-label =
+ .value = Format
+orientation-label =
+ .value = Orientation:
+portrait =
+ .label = Portrait
+ .accesskey = P
+landscape =
+ .label = Landscape
+ .accesskey = L
+scale =
+ .label = Scale:
+ .accesskey = S
+scale-percent =
+ .value = %
+shrink-to-fit =
+ .label = Shrink to fit Page Width
+ .accesskey = W
+options-group-label =
+ .value = Options
+print-bg =
+ .label = Print Background (colours & images)
+ .accesskey = B
+margin-group-label-inches =
+ .value = Margins (inches)
+margin-group-label-metric =
+ .value = Margins (millimetres)
+margin-top =
+ .value = Top:
+ .accesskey = T
+margin-top-invisible =
+ .value = Top:
+margin-bottom =
+ .value = Bottom:
+ .accesskey = B
+margin-bottom-invisible =
+ .value = Bottom:
+margin-left =
+ .value = Left:
+ .accesskey = L
+margin-left-invisible =
+ .value = Left:
+margin-right =
+ .value = Right:
+ .accesskey = R
+margin-right-invisible =
+ .value = Right:
+header-footer-label =
+ .value = Headers & Footers
+hf-left-label =
+ .value = Left:
+hf-center-label =
+ .value = Centre:
+hf-right-label =
+ .value = Right:
+header-left-tip =
+ .tooltiptext = Left header
+header-center-tip =
+ .tooltiptext = Centre header
+header-right-tip =
+ .tooltiptext = Right header
+footer-left-tip =
+ .tooltiptext = Left footer
+footer-center-tip =
+ .tooltiptext = Centre footer
+footer-right-tip =
+ .tooltiptext = Right footer
+hf-blank =
+ .label = --blank--
+hf-title =
+ .label = Title
+hf-url =
+ .label = URL
+hf-date-and-time =
+ .label = Date/Time
+hf-page =
+ .label = Page #
+hf-page-and-total =
+ .label = Page # of #
+hf-custom =
+ .label = Custom…
+print-preview-window =
+ .title = Print Preview
+print-title =
+ .value = Title:
+print-preparing =
+ .value = Preparing…
+print-progress =
+ .value = Progress:
+print-window =
+ .title = Printing
+print-complete =
+ .value = Printing is Completed.
+
+# Variables
+# $percent (integer) - Number of printed percentage
+print-percent =
+ .value = { $percent }%
+dialog-cancel-label = Cancel
+dialog-close-label = Close
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/printing/printPreview.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/printing/printPreview.ftl
new file mode 100644
index 0000000000..bd56b0e3fc
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/printing/printPreview.ftl
@@ -0,0 +1,73 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+printpreview-simplify-page-checkbox =
+ .label = Simplify Page
+ .accesskey = i
+ .tooltiptext = This page cannot be automatically simplified
+printpreview-simplify-page-checkbox-enabled =
+ .label = { printpreview-simplify-page-checkbox.label }
+ .accesskey = { printpreview-simplify-page-checkbox.accesskey }
+ .tooltiptext = Change layout for easier reading
+printpreview-close =
+ .label = Close
+ .accesskey = C
+printpreview-portrait =
+ .label = Portrait
+ .accesskey = o
+printpreview-landscape =
+ .label = Landscape
+ .accesskey = L
+printpreview-scale =
+ .value = Scale:
+ .accesskey = S
+printpreview-shrink-to-fit =
+ .label = Shrink To Fit
+printpreview-custom =
+ .label = Custom…
+printpreview-print =
+ .label = Print…
+ .accesskey = P
+printpreview-of =
+ .value = of
+printpreview-custom-scale-prompt-title = Custom Scale
+printpreview-page-setup =
+ .label = Page Setup…
+ .accesskey = u
+printpreview-page =
+ .value = Page:
+ .accesskey = a
+
+# Variables
+# $sheetNum (integer) - The current sheet number
+# $sheetCount (integer) - The total number of sheets to print
+printpreview-sheet-of-sheets = { $sheetNum } of { $sheetCount }
+
+## Variables
+## $percent (integer) - menuitem percent label
+## $arrow (String) - UTF-8 arrow character for navigation buttons
+
+printpreview-percentage-value =
+ .label = { $percent }%
+printpreview-homearrow =
+ .label = { $arrow }
+ .tooltiptext = First page
+printpreview-previousarrow =
+ .label = { $arrow }
+ .tooltiptext = Previous page
+printpreview-nextarrow =
+ .label = { $arrow }
+ .tooltiptext = Next page
+printpreview-endarrow =
+ .label = { $arrow }
+ .tooltiptext = Last page
+
+printpreview-homearrow-button =
+ .title = First page
+printpreview-previousarrow-button =
+ .title = Previous page
+printpreview-nextarrow-button =
+ .title = Next page
+printpreview-endarrow-button =
+ .title = Last page
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/printing/printUI.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/printing/printUI.ftl
new file mode 100644
index 0000000000..8b4f9b270c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/printing/printUI.ftl
@@ -0,0 +1,148 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+printui-title = Print
+# Dialog title to prompt the user for a filename to save print to PDF.
+printui-save-to-pdf-title = Save As
+
+# Variables
+# $sheetCount (integer) - Number of paper sheets
+printui-sheets-count =
+ { $sheetCount ->
+ [one] { $sheetCount } sheet of paper
+ *[other] { $sheetCount } sheets of paper
+ }
+
+printui-page-range-all = All
+printui-page-range-current = Current
+printui-page-range-odd = Odd
+printui-page-range-even = Even
+printui-page-range-custom = Custom
+printui-page-range-label = Pages
+printui-page-range-picker =
+ .aria-label = Pick page range
+printui-page-custom-range-input =
+ .aria-label = Enter custom page range
+ .placeholder = e.g. 2-6, 9, 12-16
+
+# Section title for the number of copies to print
+printui-copies-label = Copies
+
+printui-orientation = Orientation
+printui-landscape = Landscape
+printui-portrait = Portrait
+
+# Section title for the printer or destination device to target
+printui-destination-label = Destination
+printui-destination-pdf-label = Save to PDF
+
+printui-more-settings = More settings
+printui-less-settings = Fewer settings
+
+printui-paper-size-label = Paper size
+
+# Section title (noun) for the print scaling options
+printui-scale = Scale
+printui-scale-fit-to-page-width = Fit to page width
+# Label for input control where user can set the scale percentage
+printui-scale-pcent = Scale
+
+# Section title (noun) for the two-sided print options
+printui-two-sided-printing = Two-sided printing
+printui-two-sided-printing-off = Off
+# Flip the sheet as if it were bound along its long edge.
+printui-two-sided-printing-long-edge = Flip on long edge
+# Flip the sheet as if it were bound along its short edge.
+printui-two-sided-printing-short-edge = Flip on short edge
+
+# Section title for miscellaneous print options
+printui-options = Options
+printui-headers-footers-checkbox = Print headers and footers
+printui-backgrounds-checkbox = Print backgrounds
+
+## The "Format" section, select a version of the website to print. Radio
+## options to select between the original page, selected text only, or a version
+## where the page is processed with "Reader View".
+
+# The section title.
+printui-source-label = Format
+# Option for printing the original page.
+printui-source-radio = Original
+# Option for printing just the content a user selected prior to printing.
+printui-selection-radio = Selection
+# Option for "simplifying" the page by printing the Reader View version.
+printui-simplify-page-radio = Simplified
+
+##
+
+printui-color-mode-label = Colour mode
+printui-color-mode-color = Colour
+printui-color-mode-bw = Black and white
+
+printui-margins = Margins
+printui-margins-default = Default
+printui-margins-min = Minimum
+printui-margins-none = None
+printui-margins-custom-inches = Custom (inches)
+printui-margins-custom-mm = Custom (mm)
+printui-margins-custom-top = Top
+printui-margins-custom-top-inches = Top (inches)
+printui-margins-custom-top-mm = Top (mm)
+printui-margins-custom-bottom = Bottom
+printui-margins-custom-bottom-inches = Bottom (inches)
+printui-margins-custom-bottom-mm = Bottom (mm)
+printui-margins-custom-left = Left
+printui-margins-custom-left-inches = Left (inches)
+printui-margins-custom-left-mm = Left (mm)
+printui-margins-custom-right = Right
+printui-margins-custom-right-inches = Right (inches)
+printui-margins-custom-right-mm = Right (mm)
+
+printui-system-dialog-link = Print using the system dialog…
+
+printui-primary-button = Print
+printui-primary-button-save = Save
+printui-cancel-button = Cancel
+printui-close-button = Close
+
+printui-loading = Preparing Preview
+
+# Reported by screen readers and other accessibility tools to indicate that
+# the print preview has focus.
+printui-preview-label =
+ .aria-label = Print Preview
+
+printui-pages-per-sheet = Pages per sheet
+
+# This is shown next to the Print button with an indefinite loading spinner
+# when the user prints a page and it is being sent to the printer.
+printui-print-progress-indicator = Printing…
+printui-print-progress-indicator-saving = Saving…
+
+## Paper sizes that may be supported by the Save to PDF destination:
+
+printui-paper-a5 = A5
+printui-paper-a4 = A4
+printui-paper-a3 = A3
+printui-paper-a2 = A2
+printui-paper-a1 = A1
+printui-paper-a0 = A0
+printui-paper-b5 = B5
+printui-paper-b4 = B4
+printui-paper-jis-b5 = JIS-B5
+printui-paper-jis-b4 = JIS-B4
+printui-paper-letter = US Letter
+printui-paper-legal = US Legal
+printui-paper-tabloid = Tabloid
+
+## Error messages shown when a user has an invalid input
+
+printui-error-invalid-scale = Scale must be a number between 10 and 200.
+printui-error-invalid-margin = Please enter a valid margin for the selected paper size.
+printui-error-invalid-copies = Copies must be a number between 1 and 10000.
+
+# Variables
+# $numPages (integer) - Number of pages
+printui-error-invalid-range = Range must be a number between 1 and { $numPages }.
+printui-error-invalid-start-overflow = The “from” page number must be smaller than the “to” page number.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/reportBrokenSite/reportBrokenSite.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/reportBrokenSite/reportBrokenSite.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/reportBrokenSite/reportBrokenSite.ftl
@@ -0,0 +1,3 @@
+# 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 http://mozilla.org/MPL/2.0/.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/updates/backgroundupdate.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/updates/backgroundupdate.ftl
new file mode 100644
index 0000000000..4a4335656c
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/updates/backgroundupdate.ftl
@@ -0,0 +1,5 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+backgroundupdate-task-description = The Background Update task checks for updates to { -brand-short-name } when { -brand-short-name } is not running. This task is installed automatically by { -brand-short-name }, and is reinstalled when { -brand-short-name } runs. To disable this task, update the browser settings or the { -brand-short-name } enterprise policy setting “BackgroundAppUpdate”.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/updates/elevation.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/updates/elevation.ftl
new file mode 100644
index 0000000000..b7cfc730c8
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/updates/elevation.ftl
@@ -0,0 +1,22 @@
+# 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 http://mozilla.org/MPL/2.0/.
+# This is temporary until bug 1521632 is fixed
+
+elevation-update-wizard =
+ .title = Software Update
+elevation-details-link-label =
+ .value = Details
+elevation-error-manual =
+ You can update { -brand-short-name } manually by visiting this link
+ and downloading the latest version:
+elevation-finished-page = Update Ready to Install
+elevation-finished-background-page =
+ A security and stability update for { -brand-short-name } has been
+ downloaded and is ready to be installed.
+elevation-finished-background = Update:
+elevation-more-elevated =
+ This update requires administrator privileges. The update will be
+ installed the next time { -brand-short-name } starts. You can restart
+ { -brand-short-name } now, continue working and restart later, or decline this
+ update.
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/updates/history.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/updates/history.ftl
new file mode 100644
index 0000000000..fa0017e6b8
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/updates/history.ftl
@@ -0,0 +1,29 @@
+# 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 http://mozilla.org/MPL/2.0/.
+
+history-title = Update History
+history-intro = The following updates have been installed
+
+close-button-label =
+ .buttonlabelcancel = Close
+ .title = Update History
+
+no-updates-label = No updates installed yet
+name-header = Update Name
+date-header = Install Date
+type-header = Type
+state-header = State
+
+# Used to display update history
+#
+# Variables:
+# $name (String): name of the update
+# $buildID (String): build identifier from the local updates.xml
+update-full-build-name = { $name } ({ $buildID })
+
+update-details = Details
+
+update-installed-on = Installed on: { $date }
+
+update-status = Status: { $status }
diff --git a/thunderbird-l10n/en-CA/manifest.json b/thunderbird-l10n/en-CA/manifest.json
new file mode 100644
index 0000000000..18675a9e93
--- /dev/null
+++ b/thunderbird-l10n/en-CA/manifest.json
@@ -0,0 +1,56 @@
+{
+ "langpack_id": "en-CA",
+ "manifest_version": 2,
+ "browser_specific_settings": {
+ "gecko": {
+ "id": "langpack-en-CA@thunderbird.mozilla.org",
+ "strict_min_version": "115.0",
+ "strict_max_version": "115.*"
+ }
+ },
+ "name": "Language: English (CA)",
+ "description": "Thunderbird Language Pack for English (CA) (en-CA)",
+ "version": "115.7.20240119.95007",
+ "languages": {
+ "en-CA": {
+ "version": "20240119104850",
+ "chrome_resources": {
+ "alerts": "chrome/en-CA/locale/en-CA/alerts/",
+ "autoconfig": "chrome/en-CA/locale/en-CA/autoconfig/",
+ "branding": "chrome/en-CA/locale/branding/",
+ "calendar": "chrome/en-CA/locale/en-CA/calendar/",
+ "chat": "chrome/en-CA/locale/en-CA/chat/",
+ "communicator": "chrome/en-CA/locale/en-CA/communicator/",
+ "devtools": "chrome/en-CA/locale/en-CA/devtools/client/",
+ "devtools-shared": "chrome/en-CA/locale/en-CA/devtools/shared/",
+ "global": "chrome/en-CA/locale/en-CA/global/",
+ "global-platform": {
+ "macosx": "chrome/en-CA/locale/en-CA/global-platform/mac/",
+ "linux": "chrome/en-CA/locale/en-CA/global-platform/unix/",
+ "android": "chrome/en-CA/locale/en-CA/global-platform/unix/",
+ "win": "chrome/en-CA/locale/en-CA/global-platform/win/"
+ },
+ "lightning": "chrome/en-CA/locale/en-CA/lightning/",
+ "messenger": "chrome/en-CA/locale/en-CA/messenger/",
+ "messenger-mapi": "chrome/en-CA/locale/en-CA/messenger-mapi/",
+ "messenger-newsblog": "chrome/en-CA/locale/en-CA/messenger-newsblog/",
+ "messenger-region": "chrome/en-CA/locale/en-CA/messenger-region/",
+ "messenger-smime": "chrome/en-CA/locale/en-CA/messenger-smime/",
+ "mozapps": "chrome/en-CA/locale/en-CA/mozapps/",
+ "mozldap": "chrome/en-CA/locale/en-CA/mozldap/",
+ "necko": "chrome/en-CA/locale/en-CA/necko/",
+ "passwordmgr": "chrome/en-CA/locale/en-CA/passwordmgr/",
+ "pdf.js": "chrome/en-CA/locale/pdfviewer/",
+ "pipnss": "chrome/en-CA/locale/en-CA/pipnss/",
+ "pippki": "chrome/en-CA/locale/en-CA/pippki/",
+ "places": "chrome/en-CA/locale/en-CA/places/"
+ }
+ }
+ },
+ "sources": {
+ "browser": {
+ "base_path": "browser/"
+ }
+ },
+ "author": "mozilla.org (contributors: Kohei Yoshino)"
+}