summaryrefslogtreecommitdiffstats
path: root/thunderbird-l10n/af
diff options
context:
space:
mode:
Diffstat (limited to 'thunderbird-l10n/af')
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/alerts/alert.properties24
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/autoconfig/autoconfig.properties12
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/calendar/calendar-alarms.properties39
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/calendar/calendar-event-dialog-attendees.properties15
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/calendar/calendar-event-dialog.dtd418
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/calendar/calendar-event-dialog.properties541
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/calendar/calendar-extract.properties294
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/calendar/calendar-invitations-dialog.dtd13
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/calendar/calendar-invitations-dialog.properties10
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/calendar/calendar-occurrence-prompt.dtd7
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/calendar/calendar-occurrence-prompt.properties53
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/calendar/calendar.dtd354
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/calendar/calendar.properties696
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/calendar/calendarCreation.dtd51
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/calendar/calendarCreation.properties6
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/calendar/categories.properties7
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/calendar/dateFormat.properties146
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/calendar/dialogs/calendar-event-dialog-reminder.dtd19
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/calendar/global.dtd21
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/calendar/menuOverlay.dtd46
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/calendar/migration.dtd9
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/calendar/migration.properties11
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/calendar/provider-uninstall.dtd12
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/calendar/timezones.properties490
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/chat/accounts.dtd33
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/chat/accounts.properties9
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/chat/commands.properties27
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/chat/contacts.properties8
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/chat/conversations.properties80
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/chat/facebook.properties6
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/chat/imtooltip.properties10
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/chat/irc.properties285
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/chat/logger.properties7
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/chat/matrix.properties255
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/chat/status.properties26
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/chat/twitter.properties82
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/chat/xmpp.properties401
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/chat/yahoo.properties5
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/communicator/utilityOverlay.dtd45
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/client/accessibility.properties306
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/client/animationinspector.properties182
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/client/boxmodel.properties47
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/client/changes.properties64
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/client/components.properties49
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/client/debugger.properties1318
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/client/device.properties21
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/client/dom.properties19
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/client/filterwidget.properties61
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/client/font-inspector.properties69
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/client/har.properties21
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/client/inspector.properties799
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/client/jsonview.properties57
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/client/layout.properties129
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/client/memory.properties426
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/client/menus.properties34
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/client/netmonitor.properties1953
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/client/network-throttling.properties27
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/client/responsive.properties173
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/client/shared.properties26
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/client/sourceeditor.properties189
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/client/startup.properties385
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/client/styleeditor.properties74
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/client/toolbox.properties350
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/client/webconsole.properties696
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/shared/accessibility.properties142
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/shared/debugger.properties97
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/shared/eyedropper.properties14
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/shared/screenshot.properties138
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/shared/shared.properties6
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/devtools/shared/styleinspector.properties323
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global-platform/mac/accessible.properties79
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global-platform/mac/intl.properties7
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global-platform/mac/platformKeys.properties35
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global-platform/unix/accessible.properties22
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global-platform/unix/intl.properties7
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global-platform/unix/platformKeys.properties35
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global-platform/win/accessible.properties22
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global-platform/win/intl.properties7
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global-platform/win/platformKeys.properties35
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/aboutStudies.properties32
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/appstrings.properties38
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/autocomplete.properties9
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/browser.properties7
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/commonDialogs.properties47
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/contentAreaCommands.properties28
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/css.properties53
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/dialog.properties12
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/dom/dom.properties488
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/extensions.properties35
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/fallbackMenubar.properties9
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/filepicker.properties20
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/global-strres.properties5
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/intl.css7
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/intl.properties43
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/keys.properties78
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/layout/HtmlForm.properties35
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/layout/MediaDocument.properties23
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/layout/htmlparser.properties144
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/layout/xmlparser.properties48
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/layout_errors.properties68
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/mathml/mathml.properties15
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/narrate.properties26
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/nsWebBrowserPersist.properties17
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/printdialog.properties52
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/printing.properties56
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/resetProfile.properties14
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/security/caps.properties10
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/security/csp.properties124
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/security/security.properties165
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/svg/svg.properties5
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/viewSource.properties16
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/wizard.properties8
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/xslt/xslt.properties39
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/global/xul.properties5
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/lightning/lightning-toolbar.dtd25
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/lightning/lightning.dtd112
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/lightning/lightning.properties165
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger-mapi/mapi.properties36
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger-newsblog/am-newsblog.dtd17
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger-newsblog/feed-subscriptions.dtd76
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger-newsblog/newsblog.properties125
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger-region/region.properties22
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger-smime/certFetchingStatus.dtd10
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger-smime/msgCompSMIMEOverlay.dtd10
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger-smime/msgCompSecurityInfo.dtd19
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger-smime/msgCompSecurityInfo.properties13
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger-smime/msgReadSMIMEOverlay.properties11
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger-smime/msgReadSecurityInfo.dtd19
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger-smime/msgSecurityInfo.properties38
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/AccountManager.dtd43
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/AccountWizard.dtd92
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/CustomHeaders.dtd11
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/FilterEditor.dtd82
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/FilterListDialog.dtd51
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/SearchDialog.dtd59
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/aboutDownloads.dtd40
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/aboutRights.properties6
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/aboutSupportMail.properties15
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/accountCreationModel.properties22
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/accountCreationUtil.properties37
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/activity.dtd23
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/activity.properties110
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/addbuddy.dtd8
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/abAddressBookNameDialog.dtd7
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/abContactsPanel.dtd79
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/abMailListDialog.dtd27
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/abMainWindow.dtd66
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/abResultsPane.dtd38
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/addressBook.properties253
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/ldapAutoCompErrs.properties109
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/pref-directory-add.dtd45
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/pref-directory.dtd17
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/replicationProgress.properties23
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/am-addressing.dtd60
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/am-advanced.dtd32
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/am-archiveoptions.dtd35
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/am-copies.dtd72
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/am-e2e.properties5
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/am-identities-list.dtd20
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/am-identity-edit.dtd23
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/am-im.dtd24
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/am-junk.dtd38
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/am-main.dtd55
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/am-mdn.dtd38
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/am-mdn.properties6
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/am-offline.dtd58
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/am-server-advanced.dtd35
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/am-server-top.dtd101
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/am-serverwithnoidentities.dtd6
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/am-smime.dtd42
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/am-smime.properties43
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/appUpdate.properties40
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/appleMailImportMsgs.properties24
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/baseMenuOverlay.dtd22
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/beckyImportMsgs.properties19
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/charsetTitles.properties85
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/chat.dtd68
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/chat.properties160
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/configEditorOverlay.dtd5
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/converterDialog.dtd10
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/converterDialog.properties41
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/custom.properties5
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/customizeToolbar.dtd17
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/customizeToolbar.properties11
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/downloadheaders.dtd27
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/editContactOverlay.dtd22
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/editContactOverlay.properties14
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/fieldMapImport.dtd17
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/filter.properties127
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/folderProps.dtd79
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/folderWidgets.properties15
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/folderpane.dtd7
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/gloda.properties176
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/glodaComplete.properties19
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/glodaFacetView.dtd30
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/glodaFacetView.properties182
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/imAccountWizard.dtd49
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/imAccounts.properties90
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/imapMsgs.properties289
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/importDialog.dtd61
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/importMsgs.properties307
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/joinChat.dtd14
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/junkLog.dtd11
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/localMsgs.properties159
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/mailEditorOverlay.dtd6
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/mailOverlay.dtd11
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/mailViewList.dtd9
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/mailViewSetup.dtd12
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/mailviews.properties13
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/markByDate.dtd9
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messenger.dtd1184
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messenger.properties915
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EdAdvancedEdit.dtd18
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EdColorPicker.dtd24
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EdConvertToTable.dtd15
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EdDialogOverlay.dtd22
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EdNamedAnchorProperties.dtd9
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorColorProperties.dtd31
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorHLineProperties.dtd27
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorImageProperties.dtd85
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorInsertChars.dtd19
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorInsertMath.dtd30
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorInsertSource.dtd15
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorInsertTOC.dtd16
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorInsertTable.dtd18
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorLinkProperties.dtd6
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorListProperties.dtd20
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorPersonalDictionary.dtd18
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorReplace.dtd34
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorSpellCheck.dtd43
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorTableProperties.dtd75
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/composeMsgs.properties580
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/editor.properties211
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/editorOverlay.dtd339
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/mailComposeEditorOverlay.dtd9
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/messengercompose.dtd343
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/sendProgress.dtd10
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/sendProgress.properties26
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/migration/migration.dtd34
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/migration/migration.properties32
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/mime.properties171
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/mimeheader.properties35
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/morkImportMsgs.properties18
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/msgAccountCentral.dtd29
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/msgHdrViewOverlay.dtd177
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/msgSynchronize.dtd29
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/msgViewPickerOverlay.dtd23
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/msgmdn.properties18
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/multimessageview.dtd11
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/multimessageview.properties89
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/newFolderDialog.dtd19
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/news.properties60
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/newsError.dtd31
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/offline.properties30
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/offlineStartup.properties8
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/outlookImportMsgs.properties82
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/pgpmime.properties10
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/preferences/applicationManager.properties13
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/preferences/applications.properties13
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/preferences/messagestyle.properties13
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/preferences/preferences.properties118
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/prefs.properties99
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/profileDowngrade.dtd19
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/removeAccount.dtd22
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/removeAccount.properties5
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/renameFolderDialog.dtd9
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/sanitize.dtd53
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/seamonkeyImportMsgs.properties18
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/search-attributes.properties45
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/search-operators.properties31
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/search.properties29
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/searchTermOverlay.dtd28
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/shutdownWindow.properties10
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/smime.properties13
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/smtpEditOverlay.dtd24
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/subscribe.dtd22
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/subscribe.properties14
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/tabmail.dtd9
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/taskbar.properties8
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/telemetry.properties17
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/templateUtils.properties7
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/textImportMsgs.properties53
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/vCardImportMsgs.properties32
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/viewLog.dtd12
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/viewSource.dtd84
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/viewSource.properties17
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/viewZoomOverlay.dtd36
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/virtualFolderListDialog.dtd10
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/virtualFolderProperties.dtd27
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/messenger/wmImportMsgs.properties76
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/mozapps/downloads/downloads.properties6
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/mozapps/downloads/unknownContentType.properties24
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/mozapps/profile/profileSelection.properties56
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/mozapps/update/updates.properties48
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/mozldap/ldap.properties272
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/necko/necko.properties97
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/passwordmgr/passwordmgr.properties76
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/pipnss/nsserrors.properties332
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/pipnss/pipnss.properties150
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/pippki/pippki.properties76
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/af/places/places.properties33
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/branding/brand.dtd13
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/branding/brand.properties7
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/pdfviewer/chrome.properties21
-rw-r--r--thunderbird-l10n/af/chrome/af/locale/pdfviewer/viewer.properties251
-rw-r--r--thunderbird-l10n/af/localization/af/browser/appExtensionFields.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/browser/branding/brandings.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/browser/components/mozSupportLink.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/calendar/calendar-context-menus.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/calendar/calendar-delete-prompt.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/calendar/calendar-editable-item.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/calendar/calendar-event-dialog-reminder.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/calendar/calendar-ics-file-dialog.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/calendar/calendar-invitation-panel.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/calendar/calendar-invitations-dialog.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/calendar/calendar-itip-identity-dialog.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/calendar/calendar-print.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/calendar/calendar-recurrence-dialog.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/calendar/calendar-summary-dialog.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/calendar/calendar-uri-redirect-dialog.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/calendar/calendar-widgets.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/calendar/category-dialog.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/calendar/preferences.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/crashreporter/aboutcrashes.ftl21
-rw-r--r--thunderbird-l10n/af/localization/af/devtools/client/compatibility.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/devtools/client/perftools.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/devtools/client/storage.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/devtools/client/styleeditor.ftl11
-rw-r--r--thunderbird-l10n/af/localization/af/devtools/client/toolbox-options.ftl38
-rw-r--r--thunderbird-l10n/af/localization/af/devtools/client/toolbox.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/devtools/shared/debugger-paused-reasons.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/devtools/shared/highlighters.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/devtools/shared/webconsole-commands.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/devtools/startup/key-shortcuts.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/dom/XMLPrettyPrint.ftl5
-rw-r--r--thunderbird-l10n/af/localization/af/dom/media.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/locales-preview/aboutTranslations.ftl28
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/about3Pane.ftl143
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/aboutAddonsExtra.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/aboutDialog.ftl6
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/aboutImport.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/aboutProfilesExtra.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/aboutRights.ftl27
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/aboutSupportCalendar.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/aboutSupportChat.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/aboutSupportMail.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/accountCentral.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/accountManager.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/accountProvisioner.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/accountcreation/accountHub.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/accountcreation/accountSetup.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/addonNotifications.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/addressbook/abCardDAVDialog.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/addressbook/abCardDAVProperties.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/addressbook/aboutAddressBook.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/addressbook/fieldMapImport.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/addressbook/vcard.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/appmenu.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/chat-verifySession.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/chat.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/compactFoldersDialog.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/exportDialog.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/extensionPermissions.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/extensions/popup.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/extensionsUI.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/firefoxAccounts.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/flatpak.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/folderprops.ftl10
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/importDialog.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/mailWidgets.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/menubar.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/messageheader/headerFields.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/messenger.ftl122
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/messengercompose/messengercompose.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/migration.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/multimessageview.ftl8
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/openpgp/backupKeyPassword.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/openpgp/changeExpiryDlg.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/openpgp/composeKeyStatus.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/openpgp/keyAssistant.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/openpgp/keyWizard.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/openpgp/msgReadStatus.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/openpgp/oneRecipientStatus.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/openpgp/openpgp-frontend.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/openpgp/openpgp.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/otr/add-finger.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/otr/am-im-otr.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/otr/auth.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/otr/chat.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/otr/finger-sync.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/otr/finger.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/otr/otr.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/otr/otrUI.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/policies/aboutPolicies.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/policies/policies-descriptions.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/preferences/am-copies.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/preferences/am-im.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/preferences/application-manager.ftl7
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/preferences/attachment-reminder.ftl13
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/preferences/colors.ftl12
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/preferences/connection.ftl64
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/preferences/cookies.ftl47
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/preferences/dock-options.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/preferences/fonts.ftl106
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/preferences/languages.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/preferences/new-tag.ftl8
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/preferences/notifications.ftl26
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/preferences/offline.ftl30
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/preferences/passwordManager.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/preferences/permissions.ftl32
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/preferences/preferences.ftl393
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/preferences/receipts.ftl15
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/preferences/sync-dialog.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/preferences/system-integration.ftl31
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/shortcuts.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/treeView.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/troubleshootMode.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/unifiedToolbar.ftl30
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/unifiedToolbarItems.ftl19
-rw-r--r--thunderbird-l10n/af/localization/af/messenger/viewSource.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/security/certificates/certManager.ftl197
-rw-r--r--thunderbird-l10n/af/localization/af/security/certificates/deviceManager.ftl120
-rw-r--r--thunderbird-l10n/af/localization/af/security/pippki/pippki.ftl83
-rw-r--r--thunderbird-l10n/af/localization/af/services/accounts.ftl8
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/about/aboutAbout.ftl6
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/about/aboutAddons.ftl225
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/about/aboutCompat.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/about/aboutGlean.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/about/aboutHttpsOnlyError.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/about/aboutLogging.ftl11
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/about/aboutMozilla.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/about/aboutNetworking.ftl34
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/about/aboutPerformance.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/about/aboutPlugins.ftl42
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/about/aboutProcesses.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/about/aboutProfiles.ftl71
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/about/aboutReader.ftl30
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/about/aboutRights.ftl36
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/about/aboutServiceWorkers.ftl18
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/about/aboutSupport.ftl173
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/about/aboutTelemetry.ftl35
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/about/aboutThirdParty.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/about/aboutWebauthn.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/about/aboutWebrtc.ftl93
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/about/aboutWindowsMessages.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/about/abuseReports.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/about/certviewer.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/about/config.ftl34
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/about/url-classifier.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/branding/accounts.ftl7
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/branding/brandings.ftl43
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/contentanalysis/contentanalysis.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/downloads/downloadUI.ftl51
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/downloads/downloadUtils.ftl106
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/featuregates/features.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/formautofill/formAutofill.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/alert.ftl8
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/appPicker.ftl10
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/browser-utils.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/commonDialog.ftl10
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/contextual-identity.ftl26
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/cookieBannerHandling.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/createProfileWizard.ftl53
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/cspErrors.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/datepicker.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/datetimebox.ftl23
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/extensionPermissions.ftl22
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/extensions.ftl93
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/handlerDialog.ftl46
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/htmlForm.ftl14
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/mozCard.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/mozFiveStar.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/mozMessageBar.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/mozSupportLink.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/notification.ftl6
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/popupnotification.ftl7
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/processTypes.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/profileDowngrade.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/profileSelection.ftl36
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/resetProfile.ftl12
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/resistFingerPrinting.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/run-from-dmg.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/tabprompts.ftl13
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/textActions.ftl49
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/timepicker.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/tree.ftl6
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/unknownContentType.ftl38
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/videocontrols.ftl42
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/global/wizard.ftl37
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/intl/languageNames.ftl198
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/intl/regionNames.ftl237
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/main-window/autocomplete.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/main-window/findbar.ftl60
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/neterror/certError.ftl51
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/neterror/netError.ftl89
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/neterror/nsserrors.ftl312
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/passwordmgr/passwordmgr.ftl23
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/payments/payments.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/pdfviewer/viewer.ftl212
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/pictureinpicture/pictureinpicture.ftl26
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/preferences/preferences.ftl22
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/printing/printDialogs.ftl112
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/printing/printPreview.ftl57
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/printing/printUI.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/reportBrokenSite/reportBrokenSite.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/updates/backgroundupdate.ftl3
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/updates/elevation.ftl14
-rw-r--r--thunderbird-l10n/af/localization/af/toolkit/updates/history.ftl29
-rw-r--r--thunderbird-l10n/af/manifest.json56
509 files changed, 32300 insertions, 0 deletions
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/alerts/alert.properties b/thunderbird-l10n/af/chrome/af/locale/af/alerts/alert.properties
new file mode 100644
index 0000000000..d61599334a
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/alerts/alert.properties
@@ -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/.
+
+# 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 = Sluit
+# 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 = Deaktiveer kennisgewings vanaf %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 = Instellings vir kennisgewings
+
+
+# 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/af/chrome/af/locale/af/autoconfig/autoconfig.properties b/thunderbird-l10n/af/chrome/af/locale/af/autoconfig/autoconfig.properties
new file mode 100644
index 0000000000..564cc1854a
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 = Opstellingsfout
+readConfigMsg = Kon nie die opstellingslêer lees nie. Kontak u stelseladministrateur.
+
+autoConfigTitle = AutoConfig-waarskuwing
+autoConfigMsg = Netscape.cfg/AutoConfig het misluk. Kontak u stelseladministrateur. \n Fout: %S het misluk:
+
+emailPromptTitle = E-posadres
+emailPromptMsg = Tik u e-posadres in
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/calendar/calendar-alarms.properties b/thunderbird-l10n/af/chrome/af/locale/af/calendar/calendar-alarms.properties
new file mode 100644
index 0000000000..1bf6e56f4c
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/calendar/calendar-event-dialog-attendees.properties b/thunderbird-l10n/af/chrome/af/locale/af/calendar/calendar-event-dialog-attendees.properties
new file mode 100644
index 0000000000..4b55f1d7ec
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/calendar/calendar-event-dialog.dtd b/thunderbird-l10n/af/chrome/af/locale/af/calendar/calendar-event-dialog.dtd
new file mode 100644
index 0000000000..bbe94ecb6f
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/calendar/calendar-event-dialog.dtd
@@ -0,0 +1,418 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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 "Canceled" >
+<!ENTITY newevent.eventStatus.cancelled.accesskey "n" >
+<!ENTITY newevent.todoStatus.cancelled.label "Canceled" >
+<!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.message.key2 "N">
+<!ENTITY event.dialog.close.key "W">
+<!ENTITY event.dialog.save.key "S">
+<!ENTITY event.dialog.saveandclose.key "L">
+<!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.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.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 Email to All Attendees…">
+<!ENTITY event.email.attendees.accesskey "A">
+<!ENTITY event.email.tentative.attendees.label "Compose Email 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" >
+
+<!-- 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/af/chrome/af/locale/af/calendar/calendar-event-dialog.properties b/thunderbird-l10n/af/chrome/af/locale/af/calendar/calendar-event-dialog.properties
new file mode 100644
index 0000000000..6f1592242d
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/calendar/calendar-extract.properties b/thunderbird-l10n/af/chrome/af/locale/af/calendar/calendar-extract.properties
new file mode 100644
index 0000000000..89fe718758
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/calendar/calendar-invitations-dialog.dtd b/thunderbird-l10n/af/chrome/af/locale/af/calendar/calendar-invitations-dialog.dtd
new file mode 100644
index 0000000000..eb5b5e9f13
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/calendar/calendar-invitations-dialog.properties b/thunderbird-l10n/af/chrome/af/locale/af/calendar/calendar-invitations-dialog.properties
new file mode 100644
index 0000000000..ff2b43899a
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/calendar/calendar-occurrence-prompt.dtd b/thunderbird-l10n/af/chrome/af/locale/af/calendar/calendar-occurrence-prompt.dtd
new file mode 100644
index 0000000000..5864a9335f
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/calendar/calendar-occurrence-prompt.properties b/thunderbird-l10n/af/chrome/af/locale/af/calendar/calendar-occurrence-prompt.properties
new file mode 100644
index 0000000000..c3c9abae05
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/calendar/calendar.dtd b/thunderbird-l10n/af/chrome/af/locale/af/calendar/calendar.dtd
new file mode 100644
index 0000000000..e8312f127e
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/calendar/calendar.dtd
@@ -0,0 +1,354 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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.showcompletedtodos.label "Show completed Tasks">
+
+<!ENTITY calendar.today.button.label "Today">
+<!ENTITY calendar.tomorrow.button.label "Tomorrow">
+
+<!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.newevent.button.label "New Event" >
+<!ENTITY calendar.newtask.button.label "New Task" >
+
+<!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.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 "Color:">
+<!ENTITY calendarproperties.webdav.label "iCalendar (ICS)">
+<!ENTITY calendarproperties.caldav.label "CalDAV">
+<!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.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 addons.">
+<!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">
+
+<!-- Select Calendar Dialog -->
+<!ENTITY calendar.select.dialog.title "Select Calendar">
+
+<!-- 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/af/chrome/af/locale/af/calendar/calendar.properties b/thunderbird-l10n/af/chrome/af/locale/af/calendar/calendar.properties
new file mode 100644
index 0000000000..5efab779fa
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Canceled
+todoStatusCancelled =Canceled
+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=Canceled
+
+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/af/chrome/af/locale/af/calendar/calendarCreation.dtd b/thunderbird-l10n/af/chrome/af/locale/af/calendar/calendarCreation.dtd
new file mode 100644
index 0000000000..d3b643f80e
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 colorize 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/af/chrome/af/locale/af/calendar/calendarCreation.properties b/thunderbird-l10n/af/chrome/af/locale/af/calendar/calendarCreation.properties
new file mode 100644
index 0000000000..30bf726cb8
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/calendar/categories.properties b/thunderbird-l10n/af/chrome/af/locale/af/calendar/categories.properties
new file mode 100644
index 0000000000..8ad02f13a2
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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,Favorites,Follow up,Gifts,Holidays,Ideas,Issues,Meeting,Miscellaneous,Personal,Projects,Public Holiday,Status,Suppliers,Travel,Vacation
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/calendar/dateFormat.properties b/thunderbird-l10n/af/chrome/af/locale/af/calendar/dateFormat.properties
new file mode 100644
index 0000000000..7569165ebd
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/calendar/dialogs/calendar-event-dialog-reminder.dtd b/thunderbird-l10n/af/chrome/af/locale/af/calendar/dialogs/calendar-event-dialog-reminder.dtd
new file mode 100644
index 0000000000..ec4b3ca6a2
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 Email">
+
+<!ENTITY alarm.units.minutes "minutes" >
+<!ENTITY alarm.units.hours "hours" >
+<!ENTITY alarm.units.days "days" >
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/calendar/global.dtd b/thunderbird-l10n/af/chrome/af/locale/af/calendar/global.dtd
new file mode 100644
index 0000000000..8a7c7949e5
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/calendar/global.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/. -->
+
+<!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 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/af/chrome/af/locale/af/calendar/menuOverlay.dtd b/thunderbird-l10n/af/chrome/af/locale/af/calendar/menuOverlay.dtd
new file mode 100644
index 0000000000..aa6b1c7529
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/calendar/menuOverlay.dtd
@@ -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/. -->
+
+<!-- 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 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/af/chrome/af/locale/af/calendar/migration.dtd b/thunderbird-l10n/af/chrome/af/locale/af/calendar/migration.dtd
new file mode 100644
index 0000000000..78440db5ee
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/calendar/migration.properties b/thunderbird-l10n/af/chrome/af/locale/af/calendar/migration.properties
new file mode 100644
index 0000000000..c8ae25fc1b
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/calendar/migration.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/.
+
+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
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/calendar/provider-uninstall.dtd b/thunderbird-l10n/af/chrome/af/locale/af/calendar/provider-uninstall.dtd
new file mode 100644
index 0000000000..83186d835d
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/calendar/timezones.properties b/thunderbird-l10n/af/chrome/af/locale/af/calendar/timezones.properties
new file mode 100644
index 0000000000..5bc9215fe6
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/calendar/timezones.properties
@@ -0,0 +1,490 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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
+
+# This list is derived from the IANA timezone database, but was always
+# incomplete. It will not be updated; future revisions will rely on metazones as
+# defined by CLDR, but these remain in place to prevent regressions in
+# localization.
+
+# 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/Center
+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/af/chrome/af/locale/af/chat/accounts.dtd b/thunderbird-l10n/af/chrome/af/locale/af/chat/accounts.dtd
new file mode 100644
index 0000000000..c555baeede
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/chat/accounts.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/. -->
+
+<!-- Account manager window for Instantbird -->
+<!ENTITY accounts.title "Accounts - &brandShortName;">
+<!-- Instant messaging account status window for Thunderbird -->
+<!ENTITY accountsWindow.title "Instant messaging status">
+
+<!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.edit.label "Properties">
+<!ENTITY account.edit.accesskey "P">
+<!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.connecting "Connecting…">
+<!ENTITY account.disconnecting "Disconnecting…">
+<!ENTITY account.disconnected "Not Connected">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/chat/accounts.properties b/thunderbird-l10n/af/chrome/af/locale/af/chat/accounts.properties
new file mode 100644
index 0000000000..051ba0d496
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/chat/commands.properties b/thunderbird-l10n/af/chrome/af/locale/af/chat/commands.properties
new file mode 100644
index 0000000000..d4e3a9122d
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/chat/contacts.properties b/thunderbird-l10n/af/chrome/af/locale/af/chat/contacts.properties
new file mode 100644
index 0000000000..0f63151fee
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Kennisse
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/chat/conversations.properties b/thunderbird-l10n/af/chrome/af/locale/af/chat/conversations.properties
new file mode 100644
index 0000000000..1a5564a6ec
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/chat/conversations.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/.
+
+# 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%
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/chat/facebook.properties b/thunderbird-l10n/af/chrome/af/locale/af/chat/facebook.properties
new file mode 100644
index 0000000000..2e00cbcb2e
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/chat/imtooltip.properties b/thunderbird-l10n/af/chrome/af/locale/af/chat/imtooltip.properties
new file mode 100644
index 0000000000..13ec2ccd1d
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/chat/imtooltip.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/.
+
+buddy.account=Rekening
+
+buddy.username=Username
+contact.tags=Tags
+encryption.tag=Encryption Status
+message.status=Message encrypted
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/chat/irc.properties b/thunderbird-l10n/af/chrome/af/locale/af/chat/irc.properties
new file mode 100644
index 0000000000..7de56ff2a2
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/chat/irc.properties
@@ -0,0 +1,285 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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.
+
+# LOCALIZATION NOTE (connection.error.*):
+# These will show in the account manager if the account is
+# disconnected because of an error.
+
+# LOCALIZATION NOTE (joinChat.*):
+# These show up on the join chat menu. An underscore is for the access key.
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+
+# 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.
+# LOCALIZATION NOTE (ctcp.time):
+# %1$S is the nickname of the user whose time was requested.
+# %2$S is the time response.
+
+# 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.
+
+# 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.
+# %1$S is the nick of who kicked you.
+# %2$S is message.kicked.reason, if a kick message was given.
+# %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.
+# %S is the kick message
+# %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.
+# %1$S is the new channel mode and %2$S is who set the mode.
+# %S is the user's mode.
+# Could not change the nickname. %S is the user's nick.
+# The parameter is the message.parted.reason, if a part message is given.
+# %1$S is the user's nick, %2$S is message.parted.reason, if a part message is given.
+# %S is the part message supplied by the user.
+# %1$S is the user's nick, %2$S is message.quit2 if a quit message is given.
+# The parameter is the quit message given by the user.
+# %1$S is the nickname of the user that invited us, %2$S is the conversation
+# name.
+# %1$S is the nickname of the invited user, %2$S is the conversation name
+# they were invited to.
+# %1$S is the nickname of the invited user, %2$S is the conversation name
+# they were invited to but are already in
+# %S is the nickname of the user who was summoned.
+# %S is the nickname of the user whose WHOIS information follows this message.
+# %1$S is the nickname of the (offline) user whose WHOWAS information follows this message.
+# %1$S is the entry description (from tooltip.*), %2$S is its value.
+# %S is the nickname that is not known to the server.
+# %1$S is the nickname of the user who changed the mode and %2$S is the new
+# channel key (password).
+# This will be followed by a list of ban masks.
+# 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).
+
+
+# LOCALIZATION NOTE (error.*):
+# These are shown as error messages in the conversation or server tab.
+# %S is the channel name.
+# %1$S is your new nick, %2$S is the kill message from the server.
+# %S is the nickname or channel name that isn't available.
+# %S is the channel name.
+# %1$S is the channel the user tried to join, %2$S is the channel
+# he was forwarded to.
+# %S is the mode that the user tried to set but was not recognized
+# by the server as a valid mode.
+
+# 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=Naam
+# 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).
+# The away message of the user
+# %S is the timespan elapsed since the last activity.
+
+# %1$S is the server name, %2$S is some generic server information (usually a
+# location or the date the user was last seen).
+
+# LOCALIZATION NOTE (yes, no):
+# These are used to turn true/false values into a yes/no response.
+yes=Ja
+no=Nee
+
+# 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.
+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)
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/chat/logger.properties b/thunderbird-l10n/af/chrome/af/locale/af/chat/logger.properties
new file mode 100644
index 0000000000..2228c50a4c
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/chat/matrix.properties b/thunderbird-l10n/af/chrome/af/locale/af/chat/matrix.properties
new file mode 100644
index 0000000000..ba0d85dc8b
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/chat/matrix.properties
@@ -0,0 +1,255 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 afterwards 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 visibility 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.
+# %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/af/chrome/af/locale/af/chat/status.properties b/thunderbird-l10n/af/chrome/af/locale/af/chat/status.properties
new file mode 100644
index 0000000000..52a0e5a788
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/chat/status.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/.
+
+offlineStatusType=Aflyn
+mobileStatusType=Selfoon
+# LOCALIZATION NOTE (unknownStatusType):
+# the status of a buddy is unknown when it's in the list of a disconnected account
+unknownStatusType=Onbekend
+
+# 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.
+
+availableStatusType=Available
+awayStatusType=Away
+unavailableStatusType=Unavailable
+invisibleStatusType=Invisible
+idleStatusType=Idle
+# 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/af/chrome/af/locale/af/chat/twitter.properties b/thunderbird-l10n/af/chrome/af/locale/af/chat/twitter.properties
new file mode 100644
index 0000000000..7845108a3f
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/chat/twitter.properties
@@ -0,0 +1,82 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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.
+
+# LOCALIZATION NOTE (error.*):
+# These are errors that will be shown to the user in conversation.
+# 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.
+# LOCALIZATION NOTE (error.descriptionTooLong)
+# %S is the truncated string that was sent to the server.
+
+# LOCALIZATION NOTE (timeline):
+# This is the title of the conversation tab, %S will be replaced by
+# @<username>.
+
+# LOCALIZATION NOTE (action.*):
+# This will be an action in the context menu of displayed tweets.
+action.reply=Antwoord
+action.delete=Skrap
+# LOCALIZATION NOTE (action.follow, action.stopFollowing):
+# %S will be replaced by the screen name of a twitter user.
+
+# 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.
+# LOCALIZATION NOTE (event.deleted):
+# %S will be replaced by the text of the deleted tweet.
+
+# 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.
+
+# 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.)
+# LOCALIZATION NOTE (connection.error.*):
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+
+# 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.
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+
+# 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.location=Ligging
+# LOCALIZATION NOTE (tooltip.protected):
+# whether the user's tweets are publicly visible.
+# LOCALIZATION NOTE (tooltip.following):
+# whether you are subscribed to the user's tweets.
+tooltip.name=Naam
+tooltip.description=Beskrywing
+# LOCALIZATION NOTE (tooltip.*_count):
+# Please see the right side of the official Twitter website UI.
+
+# LOCALIZATION NOTE (yes, no):
+# These are used to turn true/false values into a yes/no response.
+yes=Ja
+no=Nee
+
+
+# LOCALIZATION NOTE (twitter.protocolName)
+# This name is used whenever the name of the protocol is shown.
+twitter.protocolName=Twitter
+twitter.disabled=Twitter is no longer supported due to Twitter disabling their streaming protocol.
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/chat/xmpp.properties b/thunderbird-l10n/af/chrome/af/locale/af/chat/xmpp.properties
new file mode 100644
index 0000000000..acfa221796
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/chat/xmpp.properties
@@ -0,0 +1,401 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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.)
+
+# LOCALIZATION NOTE (connection.error.*)
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+
+# 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.
+# This is displayed in a conversation as an error message when joining a MUC
+# fails.
+# %S is the name of the MUC.
+# 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.
+# This is displayed in a conversation as an error message when remote server
+# is not found.
+# %S is the name of MUC 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.
+# 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.
+# These are displayed in a conversation as a system error message.
+# %S is the name of the message recipient.
+# %S is the nick of participant that is not in room.
+# %S is the jid of user that is invited.
+# %S is the jid that is invalid.
+# %S is the name of the recipient.
+
+# LOCALIZATION NOTE (conversation.error.version.*):
+# %S is the name of the recipient.
+
+# 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.statusNoResource=Status
+
+# 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.
+
+# 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.
+# %3$S is the password of the room.
+# %4$S is the reason which is a message provided by the person sending the
+# invitation.
+# %3$S is the password of the room.
+
+# LOCALIZATION NOTE (conversation.muc.join):
+# This is displayed as a system message when a participant joins room.
+# %S is the nick of the participant.
+
+# LOCALIZATION NOTE (conversation.muc.rejoined):
+# This is displayed as a system message when a participant rejoins room after
+# parting it.
+
+# 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.
+# %1$S is the participant that is leaving.
+# %2$S is the part message supplied by the participant.
+
+# LOCALIZATION NOTE (conversation.message.invitationDeclined*):
+# %1$S is the invitee that declined the invitation.
+# %2$S is the decline message supplied by the invitee.
+
+# 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.
+# %1$S is the person who is banning.
+# %2$S is the participant that is banned.
+# %3$S is the reason.
+# %1$S is the reason.
+# %1$S is the person who is banning.
+# %2$S is the reason.
+
+# 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.
+# %1$S is the person who is kicking.
+# %2$S is the participant that is kicked.
+# %3$S is the reason.
+# %1$S is the reason.
+# %1$S is the person who is kicking.
+# %2$S is the reason.
+
+# 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.
+# %1$S is the person who changed the room configuration.
+
+# 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.
+
+# 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.
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.priority=Prioriteit
+
+# LOCALIZATION NOTE (*.protocolName)
+# This name is used whenever the name of the protocol is shown.
+
+# LOCALIZATION NOTE (gtalk.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring a Google Talk account.
+
+# LOCALIZATION NOTE (odnoklassniki.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring a Odnoklassniki account.
+
+# LOCALZIATION NOTE (command.*):
+# These are the help messages for each command.
+
+# 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.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.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.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/af/chrome/af/locale/af/chat/yahoo.properties b/thunderbird-l10n/af/chrome/af/locale/af/chat/yahoo.properties
new file mode 100644
index 0000000000..89ee0093c1
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/communicator/utilityOverlay.dtd b/thunderbird-l10n/af/chrome/af/locale/af/communicator/utilityOverlay.dtd
new file mode 100644
index 0000000000..b04f44aa98
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/communicator/utilityOverlay.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/. -->
+
+<!-- LOCALIZATION NOTE : FILE This file contains the global menu items -->
+
+
+<!ENTITY fileMenu.label "Lêer">
+<!ENTITY fileMenu.accesskey "L">
+<!ENTITY newMenu.label "Nuwe">
+<!ENTITY newMenu.accesskey "N">
+
+<!ENTITY editMenu.label "Redigeer">
+<!ENTITY editMenu.accesskey "e">
+<!ENTITY undoCmd.label "Ontdoen">
+<!ENTITY undoCmd.accesskey "O">
+<!ENTITY redoCmd.label "Herdoen">
+<!ENTITY redoCmd.accesskey "H">
+<!ENTITY deleteCmd.label "Skrap">
+<!ENTITY deleteCmd.accesskey "S">
+
+
+<!ENTITY viewMenu.label "Bekyk">
+<!ENTITY viewMenu.accesskey "B">
+<!ENTITY viewToolbarsMenu.label "Nutsbalke">
+<!ENTITY viewToolbarsMenu.accesskey "N">
+<!ENTITY showTaskbarCmd.label "Statusbalk">
+<!ENTITY showTaskbarCmd.accesskey "S">
+
+<!ENTITY closeCmd.label "Sluit">
+<!ENTITY closeCmd.key "W">
+<!ENTITY closeCmd.accesskey "S">
+
+<!ENTITY quitApplicationCmd.label "Afsluit">
+<!ENTITY quitApplicationCmd.key "Q">
+<!ENTITY quitApplicationCmd.accesskey "s">
+
+<!ENTITY quitApplicationCmdUnix.label "Afsluit">
+<!ENTITY quitApplicationCmdUnix.accesskey "A">
+
+<!ENTITY quitApplicationCmdMac.label "Sluit &brandShortName; af">
+<!ENTITY quitApplicationCmdMac.accesskey "S">
+
+<!ENTITY customizeCmd.label "Customize">
+<!ENTITY customizeCmd.accesskey "t">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/accessibility.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/accessibility.properties
new file mode 100644
index 0000000000..154ae53254
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/accessibility.properties
@@ -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 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=Color 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 color 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 color)
+
+# 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/af/chrome/af/locale/af/devtools/client/animationinspector.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/animationinspector.properties
new file mode 100644
index 0000000000..09e4afffe0
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/devtools/client/boxmodel.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/boxmodel.properties
new file mode 100644
index 0000000000..62bd19d05e
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/boxmodel.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 : 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/af/chrome/af/locale/af/devtools/client/changes.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/changes.properties
new file mode 100644
index 0000000000..dc75955b37
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/devtools/client/components.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/components.properties
new file mode 100644
index 0000000000..7849afba30
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/devtools/client/debugger.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/debugger.properties
new file mode 100644
index 0000000000..0a1aa45b0c
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/debugger.properties
@@ -0,0 +1,1318 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 (collapsePanes): This is the tooltip for the button
+# that collapses the left and right panes in the debugger UI.
+
+# LOCALIZATION NOTE (copySourceUrl): This is the text that appears in the
+# context menu to copy the source URL of file open.
+
+# LOCALIZATION NOTE (copySourceUrl.accesskey): Access key to copy the source URL of a file from
+# the context menu.
+
+# LOCALIZATION NOTE (copyStackTrace): This is the text that appears in the
+# context menu to copy the stack trace methods, file names and row number.
+
+# LOCALIZATION NOTE (copyStackTrace.accesskey): Access key to copy the stack trace data from
+# the context menu.
+
+# LOCALIZATION NOTE (expandPanes): This is the tooltip for the button
+# that expands the left and right panes in the debugger UI.
+
+# LOCALIZATION NOTE (pauseButtonTooltip): The tooltip that is displayed for the pause
+# button when the debugger is in a running state.
+
+# LOCALIZATION NOTE (pausePendingButtonTooltip): The tooltip that is displayed for
+# the pause button after it's been clicked but before the next JavaScript to run.
+
+# LOCALIZATION NOTE (resumeButtonTooltip): The label that is displayed on the pause
+# button when the debugger is in a paused state.
+
+# LOCALIZATION NOTE (stepOverTooltip): The label that is displayed on the
+# button that steps over a function call.
+
+# LOCALIZATION NOTE (stepInTooltip): The label that is displayed on the
+# button that steps into a function call.
+
+# LOCALIZATION NOTE (stepOutTooltip): The label that is displayed on the
+# button that steps out of a function call.
+
+# LOCALIZATION NOTE (noWorkersText): The text to display in the workers list
+# when there are no workers.
+
+# LOCALIZATION NOTE (noSourcesText): The text to display in the sources list
+# when there are no sources.
+
+# LOCALIZATION NOTE (noEventListenersText): The text to display in the events tab
+# when there are no events.
+
+# LOCALIZATION NOTE (eventListenersHeader): The text to display in the events
+# header.
+
+# LOCALIZATION NOTE (noStackFramesText): The text to display in the call stack tab
+# when there are no stack frames.
+
+# LOCALIZATION NOTE (eventCheckboxTooltip): The tooltip text to display when
+# the user hovers over the checkbox used to toggle an event breakpoint.
+
+# LOCALIZATION NOTE (eventInSource): The text to display in the events tab
+# for every event item, between the event selector and listener's owner source.
+
+# LOCALIZATION NOTE (eventNodes): The text to display in the events tab when
+# an event is listened on more than one target node.
+
+# LOCALIZATION NOTE (eventNative): The text to display in the events tab when
+# a listener is added from plugins, thus getting translated to native code.
+
+# LOCALIZATION NOTE (blackboxCheckboxTooltip2): The tooltip text to display when
+# the user hovers over the checkbox used to toggle blackboxing its associated
+# source.
+
+# LOCALIZATION NOTE (sources.search.key2): Key shortcut to open the search for
+# searching all the source files the debugger has seen.
+
+# LOCALIZATION NOTE (sources.search.alt.key): A second key shortcut to open the
+# search for searching all the source files the debugger has seen.
+
+# LOCALIZATION NOTE (projectTextSearch.key): A key shortcut to open the
+# full project text search for searching all the files the debugger has seen.
+
+# LOCALIZATION NOTE (sources.noSourcesAvailable): Text shown when the debugger
+# does not have any sources.
+
+# LOCALIZATION NOTE (sourcesPane.showSourcesTooltip): The tooltip shown when
+# the user will navigate to the source tree view.
+
+# LOCALIZATION NOTE (sourcesPane.showOutlineTooltip): The tooltip shown when
+# the user will navigate to the source outline view.
+
+# LOCALIZATION NOTE (sourceSearch.search.key2): Key shortcut to open the search
+# for searching within a the currently opened files in the editor
+
+# LOCALIZATION NOTE (sourceSearch.search.placeholder): placeholder text in
+# the source search input bar
+
+# LOCALIZATION NOTE (sourceSearch.search.again.key2): Key shortcut to highlight
+# the next occurrence of the last search triggered from a source search
+
+# LOCALIZATION NOTE (sourceSearch.search.againPrev.key2): Key shortcut to highlight
+# the previous occurrence of the last search triggered from a source search
+
+# LOCALIZATION NOTE (sourceSearch.resultsSummary1): Shows a summary of
+# the number of matches for autocomplete
+
+# LOCALIZATION NOTE (emptySearchText): This is the text that appears in the
+# filter text box when it is empty and the scripts container is selected.
+
+# LOCALIZATION NOTE (emptyVariablesFilterText): This is the text that
+# appears in the filter text box for the variables view container.
+
+# LOCALIZATION NOTE (emptyPropertiesFilterText): This is the text that
+# appears in the filter text box for the editor's variables view bubble.
+
+# LOCALIZATION NOTE (searchPanelFilter): This is the text that appears in the
+# filter panel popup for the filter scripts operation.
+
+# LOCALIZATION NOTE (searchPanelGlobal): This is the text that appears in the
+# filter panel popup for the global search operation.
+
+# LOCALIZATION NOTE (searchPanelFunction): This is the text that appears in the
+# filter panel popup for the function search operation.
+
+# LOCALIZATION NOTE (searchPanelToken): This is the text that appears in the
+# filter panel popup for the token search operation.
+
+# LOCALIZATION NOTE (searchPanelGoToLine): This is the text that appears in the
+# filter panel popup for the line search operation.
+
+# LOCALIZATION NOTE (searchPanelVariable): This is the text that appears in the
+# filter panel popup for the variables search operation.
+
+# LOCALIZATION NOTE (breakpointMenuItem): The text for all the elements that
+# are displayed in the breakpoints menu item popup.
+
+# LOCALIZATION NOTE (breakpoints.header): Breakpoints right sidebar pane header.
+
+# LOCALIZATION NOTE (breakpoints.none): The text that appears when there are
+# no breakpoints present
+
+# LOCALIZATION NOTE (breakpoints.enable): The text that may appear as a tooltip
+# when hovering over the 'disable breakpoints' switch button in right sidebar
+
+# LOCALIZATION NOTE (breakpoints.disable): The text that may appear as a tooltip
+# when hovering over the 'disable breakpoints' switch button in right sidebar
+
+# LOCALIZATION NOTE (breakpoints.removeBreakpointTooltip): The tooltip that is displayed
+# for remove breakpoint button in right sidebar
+
+# LOCALIZATION NOTE (callStack.header): Call Stack right sidebar pane header.
+
+# LOCALIZATION NOTE (callStack.notPaused): Call Stack right sidebar pane
+# message when not paused.
+
+# LOCALIZATION NOTE (callStack.collapse): Call Stack right sidebar pane
+# message to hide some of the frames that are shown.
+
+# LOCALIZATION NOTE (callStack.expand): Call Stack right sidebar pane
+# message to show more of the frames.
+
+# LOCALIZATION NOTE (editor.searchResults): Editor Search bar message
+# for the summarizing the selected search result. e.g. 5 of 10 results.
+
+# LOCALIZATION NOTE (sourceSearch.singleResult): Copy shown when there is one result.
+
+# LOCALIZATION NOTE (editor.noResults): Editor Search bar message
+# for when no results found.
+
+# LOCALIZATION NOTE (editor.searchResults.nextResult): Editor Search bar
+# tooltip for traversing to the Next Result
+
+# LOCALIZATION NOTE (editor.searchResults.prevResult): Editor Search bar
+# tooltip for traversing to the Previous Result
+
+# LOCALIZATION NOTE (editor.searchTypeToggleTitle): Search bar title for
+# toggling search type buttons(function search, variable search)
+
+# LOCALIZATION NOTE (editor.addBreakpoint): Editor gutter context menu item
+# for adding a breakpoint on a line.
+
+# LOCALIZATION NOTE (editor.disableBreakpoint): Editor gutter context menu item
+# for disabling a breakpoint on a line.
+
+# LOCALIZATION NOTE (editor.enableBreakpoint): Editor gutter context menu item
+# for enabling a breakpoint on a line.
+
+# LOCALIZATION NOTE (editor.removeBreakpoint): Editor gutter context menu item
+# for removing a breakpoint on a line.
+
+# LOCALIZATION NOTE (editor.editBreakpoint): Editor gutter context menu item
+# for setting a breakpoint condition on a line.
+
+# LOCALIZATION NOTE (editor.addConditionalBreakpoint): Editor gutter context
+# menu item for adding a breakpoint condition on a line.
+
+# LOCALIZATION NOTE (editor.conditionalPanel.placeholder): Placeholder text for
+# input element inside ConditionalPanel component
+
+# LOCALIZATION NOTE (editor.conditionalPanel.placeholder): Tooltip text for
+# close button inside ConditionalPanel component
+
+# LOCALIZATION NOTE (editor.jumpToMappedLocation1): Context menu item
+# for navigating to a source mapped location
+
+# LOCALIZATION NOTE (framework.disableGrouping): This is the text that appears in the
+# context menu to disable framework grouping.
+
+# LOCALIZATION NOTE (framework.disableGrouping.accesskey): Access key to toggle
+# framework grouping from the context menu.
+
+# LOCALIZATION NOTE (framework.enableGrouping): This is the text that appears in the
+# context menu to enable framework grouping.
+
+# LOCALIZATION NOTE (framework.enableGrouping.accesskey): Access key to toggle
+# framework grouping from the context menu.
+
+# LOCALIZATION NOTE (generated): Source Map term for a server source location
+
+# LOCALIZATION NOTE (original): Source Map term for a debugger UI source location
+
+# LOCALIZATION NOTE (expressions.placeholder): Placeholder text for expression
+# input element
+
+# LOCALIZATION NOTE (sourceTabs.closeTab): Editor source tab context menu item
+# for closing the selected tab below the mouse.
+
+# LOCALIZATION NOTE (sourceTabs.closeTab.accesskey): Access key to close the currently select
+# source tab from the editor context menu item.
+
+# LOCALIZATION NOTE (sourceTabs.closeOtherTabs): Editor source tab context menu item
+# for closing the other tabs.
+
+# LOCALIZATION NOTE (sourceTabs.closeOtherTabs.accesskey): Access key to close other source tabs
+# from the editor context menu.
+
+# 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.
+
+# LOCALIZATION NOTE (sourceTabs.closeTabsToEnd.accesskey): Access key to close source tabs
+# after the selected tab from the editor context menu.
+
+# LOCALIZATION NOTE (sourceTabs.closeAllTabs): Editor source tab context menu item
+# for closing all tabs.
+
+# LOCALIZATION NOTE (sourceTabs.closeAllTabs.accesskey): Access key to close all tabs from the
+# editor context menu.
+
+# LOCALIZATION NOTE (sourceTabs.revealInTree): Editor source tab context menu item
+# for revealing source in tree.
+
+# LOCALIZATION NOTE (sourceTabs.revealInTree.accesskey): Access key to reveal a source in the
+# tree from the context menu.
+
+# LOCALIZATION NOTE (sourceTabs.copyLink): Editor source tab context menu item
+# for copying a link address.
+
+# LOCALIZATION NOTE (sourceTabs.copyLink.accesskey): Access key to copy a link addresss from the
+# editor context menu.
+
+# LOCALIZATION NOTE (sourceTabs.prettyPrint): Editor source tab context menu item
+# for pretty printing the source.
+
+# LOCALIZATION NOTE (sourceTabs.prettyPrint.accesskey): Access key to pretty print a source from
+# the editor context menu.
+
+# LOCALIZATION NOTE (sourceFooter.blackbox): Tooltip text associated
+# with the blackbox button
+
+# LOCALIZATION NOTE (sourceFooter.unblackbox): Tooltip text associated
+# with the blackbox button
+
+# LOCALIZATION NOTE (sourceFooter.unblackbox.accesskey): Access key to blackbox
+# an associated source
+
+# LOCALIZATION NOTE (sourceFooter.blackbox.accesskey): Access key to blackbox
+# an associated source
+
+# LOCALIZATION NOTE (sourceFooter.blackboxed): Text associated
+# with a blackboxed source
+
+# LOCALIZATION NOTE (sourceTabs.closeTabButtonTooltip): The tooltip that is displayed
+# for close tab button in source tabs.
+
+# LOCALIZATION NOTE (sourceTabs.newTabButtonTooltip): The tooltip that is displayed for
+# new tab button in source tabs.
+
+# LOCALIZATION NOTE (scopes.header): Scopes right sidebar pane header.
+
+# LOCALIZATION NOTE (scopes.notAvailable): Scopes right sidebar pane message
+# for when the debugger is paused, but there isn't pause data.
+
+# LOCALIZATION NOTE (scopes.notPaused): Scopes right sidebar pane message
+# for when the debugger is not paused.
+
+# LOCALIZATION NOTE (scopes.block): Refers to a block of code in
+# the scopes pane when the debugger is paused.
+
+# LOCALIZATION NOTE (sources.header): Sources left sidebar header
+
+# 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.
+
+# LOCALIZATION NOTE (watchExpressions.header): Watch Expressions right sidebar
+# pane header.
+
+# LOCALIZATION NOTE (watchExpressions.refreshButton): Watch Expressions header
+# button for refreshing the expressions.
+
+# 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.
+
+# LOCALIZATION NOTE (sourceSearch.search): The center pane Source Search
+# prompt for searching for files.
+
+# LOCALIZATION NOTE (sourceSearch.noResults): The center pane Source Search
+# message when the query did not match any of the sources.
+
+# LOCALIZATION NOTE (ignoreExceptions): The pause on exceptions button tooltip
+# when the debugger will not pause on exceptions.
+
+# LOCALIZATION NOTE (pauseOnUncaughtExceptions): The pause on exceptions button
+# tooltip when the debugger will pause on uncaught exceptions.
+
+# LOCALIZATION NOTE (pauseOnExceptions): The pause on exceptions button tooltip
+# when the debugger will pause on all exceptions.
+
+# 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 (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=Laai tans…
+
+# LOCALIZATION NOTE (errorLoadingText2): The text that is displayed in the debugger
+# viewer when there is an error loading a file
+
+# LOCALIZATION NOTE (addWatchExpressionText): The text that is displayed in the
+# watch expressions list to add a new item.
+
+# LOCALIZATION NOTE (addWatchExpressionButton): The button that is displayed in the
+# variables view popup.
+
+# LOCALIZATION NOTE (emptyVariablesText): The text that is displayed in the
+# variables pane when there are no variables to display.
+
+# LOCALIZATION NOTE (scopeLabel): The text that is displayed in the variables
+# pane as a header for each variable scope (e.g. "Global scope, "With scope",
+# etc.).
+
+# LOCALIZATION NOTE (watchExpressionsScopeLabel): The name of the watch
+# expressions scope. This text is displayed in the variables pane as a header for
+# the watch expressions scope.
+
+# LOCALIZATION NOTE (globalScopeLabel): The name of the global scope. This text
+# is added to scopeLabel and displayed in the variables pane as a header for
+# the global scope.
+
+# LOCALIZATION NOTE (variablesViewErrorStacktrace): This is the text that is
+# shown before the stack trace in an error.
+
+# 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…
+
+# LOCALIZATION NOTE (variablesEditableNameTooltip): The text that is displayed
+# in the variables list on an item with an editable name.
+
+# LOCALIZATION NOTE (variablesEditableValueTooltip): The text that is displayed
+# in the variables list on an item with an editable value.
+
+# LOCALIZATION NOTE (variablesCloseButtonTooltip): The text that is displayed
+# in the variables list on an item which can be removed.
+
+# LOCALIZATION NOTE (variablesEditButtonTooltip): The text that is displayed
+# in the variables list on a getter or setter which can be edited.
+
+# LOCALIZATION NOTE (variablesEditableValueTooltip): The text that is displayed
+# in a tooltip on the "open in inspector" button in the the variables list for a
+# DOMNode item.
+
+# LOCALIZATION NOTE (configurable|...|Tooltip): The text that is displayed
+# in the variables list on certain variables or properties as tooltips.
+# Expanations 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.
+
+# LOCALIZATION NOTE (variablesSeparatorLabel): The text that is displayed
+# in the variables list as a separator between the name and value.
+
+# LOCALIZATION NOTE (watchExpressionsSeparatorLabel2): The text that is displayed
+# in the watch expressions list as a separator between the code and evaluation.
+
+# LOCALIZATION NOTE (functionSearchSeparatorLabel): The text that is displayed
+# in the functions search panel as a separator between function's inferred name
+# and its real name (if available).
+
+# LOCALIZATION NOTE(symbolSearch.search.functionsPlaceholder): The placeholder
+# text displayed when the user searches for functions in a file
+
+# LOCALIZATION NOTE(symbolSearch.search.variablesPlaceholder): The placeholder
+# text displayed when the user searches for variables in a file
+
+# LOCALIZATION NOTE(symbolSearch.search.key2): The Key Shortcut for
+# searching for a function or variable
+
+# LOCALIZATION NOTE(symbolSearch.searchModifier.regex): A search option
+# when searching text in a file
+
+# LOCALIZATION NOTE(symbolSearch.searchModifier.caseSensitive): A search option
+# when searching text in a file
+
+# LOCALIZATION NOTE(symbolSearch.searchModifier.wholeWord): A search option
+# when searching text in a file
+
+# LOCALIZATION NOTE (resumptionOrderPanelTitle): This is the text that appears
+# as a description in the notification panel popup, when multiple debuggers are
+# open in separate tabs and the user tries to resume them in the wrong order.
+# The substitution parameter is the URL of the last paused window that must be
+# resumed first.
+
+
+
+
+# LOCALIZATION NOTE (whyPaused.debuggerStatement): The text that is displayed
+# in a info block explaining how the debugger is currently paused due to a `debugger`
+# statement in the code
+
+# LOCALIZATION NOTE (whyPaused.breakpoint): The text that is displayed
+# in a info block explaining how the debugger is currently paused on a breakpoint
+
+# LOCALIZATION NOTE (whyPaused.exception): The text that is displayed
+# in a info block explaining how the debugger is currently paused on an exception
+
+# LOCALIZATION NOTE (whyPaused.resumeLimit): The text that is displayed
+# in a info block explaining how the debugger is currently paused while stepping
+# in or out of the stack
+
+# LOCALIZATION NOTE (whyPaused.pauseOnDOMEvents): The text that is displayed
+# in a info block explaining how the debugger is currently paused on a
+# dom event
+
+# LOCALIZATION NOTE (whyPaused.breakpointConditionThrown): The text that is displayed
+# in an info block when evaluating a conditional breakpoint throws an error
+
+# LOCALIZATION NOTE (whyPaused.xhr): The text that is displayed
+# in a info block explaining how the debugger is currently paused on an
+# xml http request
+
+# LOCALIZATION NOTE (whyPaused.promiseRejection): The text that is displayed
+# in a info block explaining how the debugger is currently paused on a
+# promise rejection
+
+# LOCALIZATION NOTE (whyPaused.assert): The text that is displayed
+# in a info block explaining how the debugger is currently paused on an
+# assert
+
+# LOCALIZATION NOTE (whyPaused.debugCommand): The text that is displayed
+# in a info block explaining how the debugger is currently paused on a
+# debugger statement
+
+# LOCALIZATION NOTE (whyPaused.other): The text that is displayed
+# in a info block explaining how the debugger is currently paused on an event
+# listener breakpoint set
+
+# LOCALIZATION NOTE (ctrl): The text that is used for documenting
+# keyboard shortcuts that use the control key
+
+
+# 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 (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 (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/af/chrome/af/locale/af/devtools/client/device.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/device.properties
new file mode 100644
index 0000000000..9c7e26b704
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/devtools/client/dom.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/dom.properties
new file mode 100644
index 0000000000..7b530cea66
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/dom.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 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/af/chrome/af/locale/af/devtools/client/filterwidget.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/filterwidget.properties
new file mode 100644
index 0000000000..ddd2f26650
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 color
+
+# 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/af/chrome/af/locale/af/devtools/client/font-inspector.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/font-inspector.properties
new file mode 100644
index 0000000000..eaf33d2c3f
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/devtools/client/har.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/har.properties
new file mode 100644
index 0000000000..45cd17e41c
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/har.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 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.requestBodyNotIncluded): 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/af/chrome/af/locale/af/devtools/client/inspector.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/inspector.properties
new file mode 100644
index 0000000000..a56f56a673
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/inspector.properties
@@ -0,0 +1,799 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 (debuggerPausedWarning): Used in the Inspector tool, when
+# the user switch to the inspector when the debugger is paused.
+
+# LOCALIZATION NOTE (nodeMenu.tooltiptext)
+# This menu appears in the Infobar (on top of the highlighted node) once
+# the node is selected.
+
+
+# LOCALIZATION NOTE (markupView.more.showing)
+# When there are too many nodes to load at once, we will offer to
+# show all the nodes.
+
+# LOCALIZATION NOTE (markupView.more.showAll2): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+
+# LOCALIZATION NOTE (markupView.whitespaceOnly)
+# Used in a tooltip that appears when the user hovers over whitespace-only text nodes in
+# the inspector.
+
+#LOCALIZATION NOTE: Used in the image preview tooltip when the image could not be loaded
+
+# LOCALIZATION NOTE: Used in color picker tooltip when the eyedropper is disabled for
+# non-HTML documents
+
+#LOCALIZATION NOTE: Used in the event tooltip to allow the debugger to be opened
+
+#LOCALIZATION NOTE: Used in the event tooltip when a script's filename cannot be detected
+
+#LOCALIZATION NOTE: Used in the mouseover tooltip when hovering "Unknown location."
+
+# LOCALIZATION NOTE (docsTooltip.visitMDN): Shown in the tooltip that displays
+# help from MDN. This is a link to the complete MDN documentation page.
+
+# LOCALIZATION NOTE (docsTooltip.visitMDN): Shown in the docs tooltip when the MDN page
+# could not be loaded (for example, because of a connectivity problem).
+
+# LOCALIZATION NOTE (inspector.collapsePane): This is the tooltip for the button
+# that collapses the right panel (rules, computed, box-model, etc...) in the
+# inspector UI.
+
+# LOCALIZATION NOTE (inspector.expandPane): This is the tooltip for the button
+# that expands the right panel (rules, computed, box-model, etc...) in the
+# inspector UI.
+
+# 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.
+
+# LOCALIZATION NOTE (inspector.searchResultsCount): 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 van %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=Niks wat pas nie
+
+# 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.
+
+# 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.
+
+# 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.
+
+# 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.
+
+# 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.
+
+# 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.
+
+# LOCALIZATION NOTE (inspector.nodePreview.selectNodeLabel):
+# This string is displayed in a tooltip that is shown when hovering over a DOM
+# node preview (e.g. 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 node in order to select it in the
+# inspector panel.
+
+# 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.
+
+# 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
+
+# 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
+
+# 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
+
+# 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
+
+# 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
+
+# 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
+
+# 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
+
+# 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
+
+# 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
+
+# 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
+
+# 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
+
+# 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
+
+# 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
+
+# LOCALIZATION NOTE (inspectorHTMLDelete.label): This is the label shown in
+# the inspector contextual-menu for the item that lets users delete the
+# current node
+
+# 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
+
+# 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
+
+# LOCALIZATION NOTE (inspectorSearchHTML.label3): This is the label that is
+# shown as the placeholder for the markup view search in the inspector.
+inspectorSearchHTML.label3=Deursoek 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
+
+# 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.
+
+# 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.
+
+# LOCALIZATION NOTE (inspectorExpandNode.label): This is the label
+# shown in the inspector contextual-menu for recursively expanding
+# mark-up elements
+
+# LOCALIZATION NOTE (inspectorCollapseNode.label): This is the label
+# shown in the inspector contextual-menu for recursively collapsing
+# mark-up elements
+
+# 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.
+
+# 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.
+
+# 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).
+
+# 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
+
+# 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
+
+# LOCALIZATION NOTE (inspector.searchHTML.key):
+# Key shortcut used to focus the DOM element search box on top-right corner of
+# the markup view
+
+# LOCALIZATION NOTE (markupView.hide.key):
+# Key shortcut used to hide the selected node in the markup view.
+
+# LOCALIZATION NOTE (markupView.edit.key):
+# Key shortcut used to hide the selected node in the markup view.
+
+# LOCALIZATION NOTE (markupView.scrollInto.key):
+# Key shortcut used to scroll the webpage in order to ensure the selected node
+# is visible
+
+# 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.
+
+# 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.
+
+# 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.
+
+# 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.
+
+# LOCALIZATION NOTE (inspector.sidebar.newBadge):
+# This is the text of a promotion badge showed in the inspector sidebar, next to a panel
+# name. Used to promote new/recent panels such as the layout panel.
+
+# 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.
+
+# LOCALIZATION NOTE (inspector.eyedropper.label): A string displayed as the tooltip of
+# a button in the inspector which toggles the Eyedropper tool
+
+# LOCALIZATION NOTE (inspector.colorwidget.colorNameLabel):
+# The label for the current color widget's color name field.
+
+# LOCALIZATION NOTE (inspector.colorwidget.contrastRatio.header):
+# This string is used as a header to indicate the contrast section of the
+# color widget.
+
+# LOCALIZATION NOTE (inspector.colorwidget.contrastRatio.invalidColor):
+# This string is used when an invalid color is passed as a background color
+# to the color widget.
+
+# LOCALIZATION NOTE (inspector.colorwidget.contrastRatio.info):
+# This string is used to explain the contrast ratio grading system when you hover over the help icon in the contrast info.
+
+# LOCALIZATION NOTE (inspector.colorwidget.contrastRatio.failGrade):
+# This string is used to indicate that the text fails for contrast ratio grading criteria.
+
+# LOCALIZATION NOTE (inspector.colorwidget.contrastRatio.failInfo):
+# This string is used to explain that the text fails for contrast ratio grading criteria.
+
+# LOCALIZATION NOTE (inspector.colorwidget.contrastRatio.AABigInfo):
+# This string is used to explain that the text passes AA* grade for contrast ratio.
+
+# LOCALIZATION NOTE (inspector.colorwidget.contrastRatio.AAABigInfo):
+# This string is used to explain that the text passes the AA grade and AAA* for contrast ratio.
+
+# LOCALIZATION NOTE (inspector.colorwidget.contrastRatio.AAAInfo):
+# This string is used to explain that the text passes AAA grade for contrast ratio.
+
+# 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
+
+# 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.
+
+# LOCALIZATION NOTE (inspector.filterStyles.placeholder): This is the placeholder that
+# goes in the search box when no search term has been entered.
+
+# 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
+
+# LOCALIZATION NOTE (inspector.togglePseudo.tooltip): This is the tooltip
+# shown when hovering over the `Toggle Pseudo Class Panel` button in the
+# rule view toolbar.
+
+# LOCALIZATION NOTE (inspector.classPanel.toggleClass.tooltip): This is the tooltip
+# shown when hovering over the `Toggle Class Panel` button in the
+# rule view toolbar.
+
+# 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.
+
+# LOCALIZATION NOTE (inspector.classPanel.noClasses): This is the text displayed in the
+# class panel when the current element has no classes applied.
+
+# 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.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.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 (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 color 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 color 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 color 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 color 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/af/chrome/af/locale/af/devtools/client/jsonview.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/jsonview.properties
new file mode 100644
index 0000000000..9bbfefe630
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/jsonview.properties
@@ -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/.
+
+# 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
+
+# LOCALIZATION NOTE (jsonViewer.responseHeaders, jsonViewer.requestHeaders):
+# Label for header groups within the 'Headers' panel.
+jsonViewer.responseHeaders=Responskoppe
+jsonViewer.requestHeaders=Versoekkoppe
+
+# LOCALIZATION NOTE (jsonViewer.Save): Label for save command
+jsonViewer.Save=Stoor
+
+# LOCALIZATION NOTE (jsonViewer.Copy): Label for clipboard copy command
+jsonViewer.Copy=Kopieer
+
+# LOCALIZATION NOTE (jsonViewer.ExpandAll): Label for expanding all nodes
+
+# LOCALIZATION NOTE (jsonViewer.PrettyPrint): Label for JSON
+# pretty print action button.
+
+# LOCALIZATION NOTE (jsonViewer.reps.more): Label used in arrays
+# that have more items than displayed.
+
+# LOCALIZATION NOTE (jsonViewer.filterJSON): Label used in search box
+# at the top right cornder of the JSON Viewer.
+
+# LOCALIZATION NOTE (jsonViewer.reps.reference): Label used for cycle
+# references in an array.
+
+
+jsonViewer.tab.RawData=Raw Data
+jsonViewer.tab.Headers=Headers
+# 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/af/chrome/af/locale/af/devtools/client/layout.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/layout.properties
new file mode 100644
index 0000000000..4ca6b6b0f9
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/devtools/client/memory.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/memory.properties
new file mode 100644
index 0000000000..47097101ea
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/memory.properties
@@ -0,0 +1,426 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 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 labeled
+
+# 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/af/chrome/af/locale/af/devtools/client/menus.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/menus.properties
new file mode 100644
index 0000000000..4c8b4f09ce
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/menus.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/.
+
+
+
+browserConsoleCmd.label = Blaaierkonsole
+browserConsoleCmd.accesskey = B
+
+responsiveDesignMode.label = Reaktiewe ontwerpsaansig
+responsiveDesignMode.accesskey = R
+
+eyedropper.label = Oogdrupper
+eyedropper.accesskey = O
+
+# 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 = Blaaiergereedskap
+browserToolboxMenu.accesskey = e
+
+# LOCALIZATION NOTE (browserContentToolboxMenu.label): This is the label for the
+# application menu item that opens the browser content toolbox UI in the Tools menu.
+# This toolbox allows to debug the chrome of the content process in multiprocess builds.
+
+
+# LOCALIZATION NOTE (devtoolsRemoteDebugging.label): This is the label for the menu item
+# in Tools > Browser Tools. 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
+webDeveloperToolsMenu.label = Web Developer Tools
+webDeveloperToolsMenu.accesskey = T
+extensionsForDevelopersCmd.label = Extensions for Developers
+extensionsForDevelopersCmd.accesskey = f
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/netmonitor.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/netmonitor.properties
new file mode 100644
index 0000000000..76cf1c986a
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/netmonitor.properties
@@ -0,0 +1,1953 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 (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.
+
+# 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
+
+# LOCALIZATION NOTE (netmonitor.security.state.broken)
+# This string is used as an tooltip for request that failed due to security
+# issues.
+
+# LOCALIZATION NOTE (netmonitor.security.state.weak)
+# This string is used as an tooltip for request that had minor security issues
+
+# 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.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=Geaktiveer
+
+# 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=Gedeaktiveer
+
+# 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
+
+# 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>
+
+# LOCALIZATION NOTE (collapseDetailsPane): This is the tooltip for the button
+# that collapses the network details pane in the UI.
+
+# LOCALIZATION NOTE (expandDetailsPane): This is the tooltip for the button
+# that expands the network details pane in the UI.
+
+# LOCALIZATION NOTE (headersEmptyText): This is the text displayed in the
+# headers tab of the network details pane when there are no headers available.
+
+# LOCALIZATION NOTE (headersFilterText): This is the text displayed in the
+# headers tab of the network details pane for the filtering input.
+
+# LOCALIZATION NOTE (cookiesEmptyText): This is the text displayed in the
+# cookies tab of the network details pane when there are no cookies available.
+
+# LOCALIZATION NOTE (cookiesFilterText): This is the text displayed in the
+# cookies tab of the network details pane for the filtering input.
+
+# LOCALIZATION NOTE (paramsEmptyText): This is the text displayed in the
+# params tab of the network details pane when there are no params available.
+
+# LOCALIZATION NOTE (paramsFilterText): This is the text displayed in the
+# params tab of the network details pane for the filtering input.
+
+# LOCALIZATION NOTE (paramsQueryString): This is the label displayed
+# in the network details params tab identifying the query string.
+
+# LOCALIZATION NOTE (paramsFormData): This is the label displayed
+# in the network details params tab identifying the form data.
+
+# LOCALIZATION NOTE (paramsPostPayload): This is the label displayed
+# in the network details params tab identifying the request payload.
+
+# LOCALIZATION NOTE (requestHeaders): This is the label displayed
+# in the network details headers tab identifying the 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.
+
+# LOCALIZATION NOTE (responseHeaders): This is the label displayed
+# in the network details headers tab identifying the response headers.
+
+# LOCALIZATION NOTE (requestCookies): This is the label displayed
+# in the network details params tab identifying the request cookies.
+
+# LOCALIZATION NOTE (responseCookies): This is the label displayed
+# in the network details params tab identifying the response cookies.
+
+# LOCALIZATION NOTE (responsePayload): This is the label displayed
+# in the network details response tab identifying the response payload.
+
+# LOCALIZATION NOTE (jsonFilterText): This is the text displayed
+# in the response tab of the network details pane for the JSON filtering input.
+
+# 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.
+
+# LOCALIZATION NOTE (networkMenu.sortedAsc): This is the tooltip displayed
+# in the network table toolbar, for any column that is sorted ascending.
+
+# LOCALIZATION NOTE (networkMenu.sortedDesc): This is the tooltip displayed
+# in the network table toolbar, for any column that is sorted descending.
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.perf): A tooltip explaining
+# what the perf button does
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.domContentLoaded): A tooltip explaining
+# what the DOMContentLoaded label displays
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.load): A tooltip explaining
+# what the load label displays
+
+# LOCALIZATION NOTE (networkMenu.summary.requestsCount): This label is displayed
+# in the network table footer providing the number of requests
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+
+# LOCALIZATION NOTE (networkMenu.summary.requestsCountEmpty): This label is displayed
+# in the network table footer when there are no requests
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.requestsCount): A tooltip explaining
+# what the requestsCount label displays
+
+# LOCALIZATION NOTE (networkMenu.summary.transferred): This label is displayed
+# in the network table footer providing the transferred size.
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.transferred): A tooltip explaining
+# what the transferred label displays
+
+# LOCALIZATION NOTE (networkMenu.summary.finish): This label is displayed
+# in the network table footer providing the transfer time.
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.finish): A tooltip explaining
+# what the finish label displays
+
+# LOCALIZATION NOTE (networkMenu.sizeB): This is the label displayed
+# in the network menu specifying the size of a request (in bytes).
+
+# LOCALIZATION NOTE (networkMenu.sizeKB): This is the label displayed
+# in the network menu specifying the size of a request (in kilobytes).
+
+# LOCALIZATION NOTE (networkMenu.sizeMB): This is the label displayed
+# in the network menu specifying the size of a request (in megabytes).
+
+# LOCALIZATION NOTE (networkMenu.sizeGB): This is the label displayed
+# in the network menu specifying the size of a request (in gigabytes).
+
+# LOCALIZATION NOTE (networkMenu.sizeUnavailable): This is the label displayed
+# in the network menu specifying the transferred size of a request is
+# unavailable.
+
+# LOCALIZATION NOTE (networkMenu.sizeCached): This is the label displayed
+# in the network menu specifying the transferred of a request is
+# cached.
+
+# LOCALIZATION NOTE (networkMenu.sizeServiceWorker): This is the label displayed
+# in the network menu specifying the transferred of a request computed
+# by a service worker.
+
+# LOCALIZATION NOTE (networkMenu.totalMS): This is the label displayed
+# in the network menu specifying the time for a request to finish (in milliseconds).
+
+# 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.
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.total): This is part of the tooltip
+# displayed in the requests waterfall for total time (in milliseconds).
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.blocked): This is part of the tooltip
+# displayed in the requests waterfall for blocked time (in milliseconds).
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.dns): This is part of the tooltip
+# displayed in the requests waterfall for dns time (in milliseconds).
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.ssl): This is part of the tooltip
+# displayed in the requests waterfall for tls setup time (in milliseconds).
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.connect): This is part of the tooltip
+# displayed in the requests waterfall for connect time (in milliseconds).
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.send): This is part of the tooltip
+# displayed in the requests waterfall for send time (in milliseconds).
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.wait): This is part of the tooltip
+# displayed in the requests waterfall for wait time (in milliseconds).
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.receive): This is part of the tooltip
+# displayed in the requests waterfall for receive time (in milliseiconds).
+
+# LOCALIZATION NOTE (networkMenu.millisecond): This is the label displayed
+# in the network menu specifying timing interval divisions (in milliseconds).
+
+# LOCALIZATION NOTE (networkMenu.second): This is the label displayed
+# in the network menu specifying timing interval divisions (in seconds).
+
+# LOCALIZATION NOTE (networkMenu.minute): This is the label displayed
+# in the network menu specifying timing interval divisions (in minutes).
+
+# 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=Laai
+
+# 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.
+
+# 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=Wag asseblief…
+
+# 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.
+
+# LOCALIZATION NOTE (charts.sizeKB): This is the label displayed
+# in pie or table charts specifying the size of a request (in kilobytes).
+
+# LOCALIZATION NOTE (charts.transferredSizeKB): This is the label displayed
+# in pie or table charts specifying the size of a transferred request (in kilobytes).
+
+# LOCALIZATION NOTE (charts.totalS): This is the label displayed
+# in pie or table charts specifying the time for a request to finish (in seconds).
+
+# LOCALIZATION NOTE (charts.totalTranferredSize): This is the label displayed
+# in the performance analysis view for total transferred size, in kilobytes.
+
+# LOCALIZATION NOTE (charts.cacheEnabled): This is the label displayed
+# in the performance analysis view for "cache enabled" charts.
+
+# LOCALIZATION NOTE (charts.cacheDisabled): This is the label displayed
+# in the performance analysis view for "cache disabled" charts.
+
+# LOCALIZATION NOTE (charts.totalSize): This is the label displayed
+# in the performance analysis view for total requests size, in kilobytes.
+
+# 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.
+
+# LOCALIZATION NOTE (charts.totalCached): This is the label displayed
+# in the performance analysis view for total cached responses.
+
+# LOCALIZATION NOTE (charts.totalCount): This is the label displayed
+# in the performance analysis view for total requests.
+
+# LOCALIZATION NOTE (charts.totalCount): This is the label displayed
+# in the header column in the performance analysis view for size of the request.
+
+# LOCALIZATION NOTE (charts.totalCount): This is the label displayed
+# in the header column in the performance analysis view for type of request.
+
+# LOCALIZATION NOTE (charts.totalCount): This is the label displayed
+# in the header column in the performance analysis view for transferred
+# size of the request.
+
+# LOCALIZATION NOTE (charts.totalCount): This is the label displayed
+# in the header column in the performance analysis view for time of request.
+
+# LOCALIZATION NOTE (netRequest.headers): A label used for Headers tab
+# This tab displays list of HTTP headers
+
+# LOCALIZATION NOTE (netRequest.response): A label used for Response tab
+# This tab displays HTTP response body
+
+# LOCALIZATION NOTE (netRequest.rawData): A label used for a section
+# in Response tab. This section displays raw response body as it's
+# been received from the backend (debugger server)
+
+# LOCALIZATION NOTE (netRequest.xml): A label used for a section
+# in Response tab. This section displays parsed XML response body.
+
+# LOCALIZATION NOTE (netRequest.sizeLimitMessage): A label used
+# in Response and Post tabs in case the body is bigger than given limit.
+# It allows the user to click and fetch more from the backend.
+# The {{link}} will be replace at run-time by an active link.
+# String with ID 'netRequest.sizeLimitMessageLink' will be used as text
+# for this link.
+
+# LOCALIZATION NOTE (netRequest.responseBodyDiscarded): A label used
+# in Response tab if the response body is not available.
+
+# LOCALIZATION NOTE (netRequest.requestBodyDiscarded): A label used
+# in Post tab if the post body is not available.
+
+# LOCALIZATION NOTE (netRequest.post): A label used for Post tab
+# This tab displays HTTP post body
+
+# LOCALIZATION NOTE (netRequest.cookies): A label used for Cookies tab
+# This tab displays request and response cookies.
+
+# LOCALIZATION NOTE (netRequest.params): A label used for URL parameters tab
+# This tab displays data parsed from URL query string.
+
+# LOCALIZATION NOTE (netRequest.callstack): A label used for request stacktrace tab
+# This tab displays the request's JavaScript stack trace. Should be identical to
+# debuggerUI.tabs.callstack
+
+# 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
+
+# LOCALIZATION NOTE (certmgr.certdetail.cn):
+# A label used for Issued To and Issued By sub-section in security tab
+
+# LOCALIZATION NOTE (certmgr.certdetail.o):
+# A label used for Issued To and Issued By sub-section in security tab
+
+# LOCALIZATION NOTE (certmgr.certdetail.ou):
+# A label used for Issued To and Issued By sub-section in security tab
+
+# 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
+
+# LOCALIZATION NOTE (certmgr.periodofvalidity.label):
+# A label used for a certificate section in security tab
+# This section displays the valide period of this fingerprints
+
+# LOCALIZATION NOTE (certmgr.certdetail.cn):
+# A label used for Period of Validity sub-section in security tab
+
+# LOCALIZATION NOTE (certmgr.certdetail.cn):
+# A label used for Period of Validity sub-section in security tab
+
+# LOCALIZATION NOTE (certmgr.fingerprints.label):
+# A label used for a certificate section in security tab
+# This section displays the valide period of this fingerprints
+
+# LOCALIZATION NOTE (certmgr.certdetail.sha256fingerprint):
+# A label used for Fingerprints sub-section in security tab
+
+# LOCALIZATION NOTE (certmgr.certdetail.sha1fingerprint):
+# A label used for Fingerprints sub-section in security tab
+
+# LOCALIZATION NOTE (netmonitor.perfNotice1/2/3): These are the labels displayed
+# in the network table when empty to start performance analysis.
+
+# LOCALIZATION NOTE (netmonitor.reload1/2/3): These are the labels displayed
+# in the network table when empty to start logging network requests.
+netmonitor.reloadNotice2=Herlaai
+
+# LOCALIZATION NOTE (netmonitor.toolbar.status2): This is the label displayed
+# in the network table toolbar, above the "status" column.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.method): This is the label displayed
+# in the network table toolbar, above the "method" column.
+netmonitor.toolbar.method=Metode
+
+# LOCALIZATION NOTE (netmonitor.toolbar.file): This is the label displayed
+# in the network table toolbar, above the "file" column.
+netmonitor.toolbar.file=Lêer
+
+# LOCALIZATION NOTE (netmonitor.toolbar.protocol): This is the label displayed
+# in the network table toolbar, above the "protocol" column.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.domain): This is the label displayed
+# in the network table toolbar, above the "domain" column.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.remoteip): This is the label displayed
+# in the network table toolbar, above the "remoteip" column.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.cause): This is the label displayed
+# in the network table toolbar, above the "cause" column.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.type): This is the label displayed
+# in the network table toolbar, above the "type" column.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.cookies): This is the label displayed
+# in the network table toolbar, above the "cookies" column.
+
+# 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
+
+# LOCALIZATION NOTE (netmonitor.toolbar.scheme): This is the label displayed
+# in the network table toolbar, above the "scheme" column.
+
+# 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.
+
+# 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.
+
+# 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.
+
+# 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.
+
+# 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.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.transferred): This is the label displayed
+# in the network table toolbar, above the "transferred" column, which is the
+# compressed / encoded size.
+
+# 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.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.waterfall): This is the label displayed
+# in the network table toolbar, above the "waterfall" column.
+
+# LOCALIZATION NOTE (netmonitor.tab.headers): This is the label displayed
+# in the network details pane identifying the headers tab.
+
+# LOCALIZATION NOTE (netmonitor.tab.cookies): This is the label displayed
+# in the network details pane identifying the cookies tab.
+
+# LOCALIZATION NOTE (netmonitor.tab.params): This is the label displayed
+# in the network details pane identifying the params tab.
+
+# LOCALIZATION NOTE (netmonitor.tab.response): This is the label displayed
+# in the network details pane identifying the response tab.
+
+# LOCALIZATION NOTE (netmonitor.tab.timings): This is the label displayed
+# in the network details pane identifying the timings tab.
+
+# LOCALIZATION NOTE (netmonitor.tab.stackTrace): This is the label displayed
+# in the network details pane identifying the stack-trace tab.
+
+# LOCALIZATION NOTE (netmonitor.tab.security): This is the label displayed
+# in the network details pane identifying the security tab.
+netmonitor.tab.security=Sekuriteit
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.all): This is the label displayed
+# in the network toolbar for the "All" filtering button.
+netmonitor.toolbar.filter.all=Alles
+
+# 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.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.fonts): This is the label displayed
+# in the network toolbar for the "Fonts" filtering button.
+netmonitor.toolbar.filter.fonts=Fonte
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.images): This is the label displayed
+# in the network toolbar for the "Images" filtering button.
+netmonitor.toolbar.filter.images=Prente
+
+# 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.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.ws): This is the label displayed
+# in the network toolbar for the "WS" filtering button.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.other): This is the label displayed
+# in the network toolbar for the "Other" filtering button.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filterFreetext.label): This is the label
+# displayed in the network toolbar for the url filtering textbox.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filterFreetext.key): This is the
+# shortcut key to focus on the toolbar url filtering textbox
+
+# LOCALIZATION NOTE (netmonitor.toolbar.disableCache.label): This is the label
+# displayed for the checkbox for disabling browser cache.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.disableCache.tooltip): This is the tooltip
+# displayed for the checkbox for disabling browser cache.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.clear): This is the label displayed
+# in the network toolbar for the "Clear" button.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.perf): This is the label displayed
+# in the network toolbar for the performance analysis button.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.resetColumns): This is the label
+# displayed in the network table header context menu.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.timings): This is the label
+# displayed in the network table header context menu for the timing submenu
+
+# LOCALIZATION NOTE (netmonitor.toolbar.responseHeaders): This is the
+# label displayed in the network table header context menu for the
+# response headers submenu.
+
+# LOCALIZATION NOTE (netmonitor.summary.url): This is the label displayed
+# in the network details headers tab identifying the URL.
+
+# LOCALIZATION NOTE (netmonitor.summary.method): This is the label displayed
+# in the network details headers tab identifying the method.
+
+# LOCALIZATION NOTE (netmonitor.summary.address): This is the label displayed
+# in the network details headers tab identifying the remote address.
+
+# LOCALIZATION NOTE (netmonitor.summary.status): This is the label displayed
+# in the network details headers tab identifying the status code.
+
+# 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
+
+# LOCALIZATION NOTE (netmonitor.summary.rawHeaders): 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
+
+# LOCALIZATION NOTE (netmonitor.summary.rawHeaders.requestHeaders): This is the label displayed
+# in the network details headers tab identifying the raw request headers textarea
+
+# LOCALIZATION NOTE (netmonitor.summary.rawHeaders.responseHeaders): This is the label displayed
+# in the network details headers tab identifying the raw response headers textarea
+
+# LOCALIZATION NOTE (netmonitor.summary.size): This is the label displayed
+# in the network details headers tab identifying the headers size.
+
+# LOCALIZATION NOTE (netmonitor.response.name): This is the label displayed
+# in the network details response tab identifying an image's file name.
+netmonitor.response.name=Naam:
+
+# LOCALIZATION NOTE (netmonitor.response.dimensions): This is the label displayed
+# in the network details response tab identifying an image's dimensions.
+netmonitor.response.dimensions=Dimensies:
+
+# LOCALIZATION NOTE (netmonitor.response.mime): This is the label displayed
+# in the network details response tab identifying an image's mime.
+
+# 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.
+
+# 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.
+
+# 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.
+
+# 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.
+
+# 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.
+
+# 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.
+
+# 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.
+
+# LOCALIZATION NOTE (netmonitor.security.warning.cipher): A tooltip
+# for warning icon that indicates a connection uses insecure cipher suite.
+
+# LOCALIZATION NOTE (netmonitor.security.error): This is the label displayed
+# in the security tab if a security error prevented the connection.
+
+# LOCALIZATION NOTE (netmonitor.security.protocolVersion): This is the label displayed
+# in the security tab describing TLS/SSL 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.
+
+# LOCALIZATION NOTE (netmonitor.security.hsts): This is the label displayed
+# in the security tab describing the usage of 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.
+
+# LOCALIZATION NOTE (netmonitor.security.connection): This is the label displayed
+# in the security tab describing the section containing information related to
+# the secure connection.
+
+# LOCALIZATION NOTE (netmonitor.security.certificate): This is the label displayed
+# in the security tab describing the server certificate section.
+netmonitor.security.certificate=Sertifikaat:
+
+# LOCALIZATION NOTE (netmonitor.context.copy): This is the label displayed
+# for the copy sub-menu in the context menu for a request
+
+# LOCALIZATION NOTE (netmonitor.context.copy.accesskey): This is the access key
+# for the copy sub-menu displayed in the context menu for a request
+
+# LOCALIZATION NOTE (netmonitor.context.copyUrl): This is the label displayed
+# on the context menu that copies the selected request's 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
+
+# LOCALIZATION NOTE (netmonitor.context.copyUrlParams): This is the label displayed
+# on the context menu that copies the selected request's 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
+
+# LOCALIZATION NOTE (netmonitor.context.copyPostData): This is the label displayed
+# on the context menu that copies the selected request's post data
+
+# LOCALIZATION NOTE (netmonitor.context.copyPostData.accesskey): This is the access key
+# for the Copy POST Data menu item displayed in the context menu for a request
+
+# 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
+
+# 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
+
+# LOCALIZATION NOTE (netmonitor.context.copyRequestHeaders): This is the label displayed
+# on the context menu that copies the selected item's 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
+
+# LOCALIZATION NOTE (netmonitor.context.copyResponseHeaders): This is the label displayed
+# on the context menu that copies the selected item's 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
+
+# LOCALIZATION NOTE (netmonitor.context.copyResponse): This is the label displayed
+# on the context menu that copies the selected response as a string
+
+# LOCALIZATION NOTE (netmonitor.context.copyRespose.accesskey): This is the access key
+# for the Copy Response menu item displayed in the context menu for a request
+
+# LOCALIZATION NOTE (netmonitor.context.copyImageAsDataUri): This is the label displayed
+# on the context menu that copies the selected 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
+
+# LOCALIZATION NOTE (netmonitor.context.saveImageAs): This is the label displayed
+# on the context menu that save the Image
+
+# 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
+
+
+# LOCALIZATION NOTE (netmonitor.context.copyAllAsHar): This is the label displayed
+# on the context menu that copies all as HAR format
+
+# 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
+
+# LOCALIZATION NOTE (netmonitor.context.saveAllAsHar): This is the label displayed
+# on the context menu that saves all as HAR format
+
+# 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
+
+# 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
+
+# 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
+
+# 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
+
+# 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
+
+# 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
+
+# LOCALIZATION NOTE (netmonitor.openInDebugger.accesskey): This is the access key
+# for the Open in Debugger menu item displayed in the context menu of the
+# network container
+
+# 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
+
+# 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
+
+# LOCALIZATION NOTE (netmonitor.context.perfTools): This is the label displayed
+# on the context menu that shows the performance analysis tools
+
+# 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
+
+# LOCALIZATION NOTE (netmonitor.custom.newRequest): This is the label displayed
+# as the title of the new custom request form
+
+# LOCALIZATION NOTE (netmonitor.custom.query): This is the label displayed
+# above the query string entry in the custom request form
+
+# LOCALIZATION NOTE (netmonitor.custom.headers): This is the label displayed
+# above the request headers entry in the custom request form
+
+# LOCALIZATION NOTE (netmonitor.custom.postData): This is the label displayed
+# above the request body entry in the custom request form
+
+# LOCALIZATION NOTE (netmonitor.custom.send): This is the label displayed
+# on the button which sends the custom request
+
+# LOCALIZATION NOTE (netmonitor.custom.cancel): This is the label displayed
+# on the button which cancels and closes the custom request form
+netmonitor.custom.cancel=Kanselleer
+
+# LOCALIZATION NOTE (netmonitor.backButton): This is the label displayed
+# on the button which exists the performance statistics view
+netmonitor.backButton=Terug
+
+# LOCALIZATION NOTE (netmonitor.headers.learnMore): This is the label displayed
+# next to a header list item, with a link to external documentation
+
+# 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.
+
+# 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.
+
+# 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.
+
+# 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.
+
+
+# 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.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 (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.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.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.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.priority): This is the label displayed
+# in the network table toolbar, above the "priority" column.
+netmonitor.toolbar.priority=Priority
+# 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.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 canceled.
+# 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.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.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.status): This is the label displayed
+# in the network details headers tab identifying the status code.
+netmonitor.headers.status=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.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.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.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.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.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.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/af/chrome/af/locale/af/devtools/client/network-throttling.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/network-throttling.properties
new file mode 100644
index 0000000000..b7e5933375
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/devtools/client/responsive.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/responsive.properties
new file mode 100644
index 0000000000..c839954cb7
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/responsive.properties
@@ -0,0 +1,173 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 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/af/chrome/af/locale/af/devtools/client/shared.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/shared.properties
new file mode 100644
index 0000000000..33dd145445
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/devtools/client/sourceeditor.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/sourceeditor.properties
new file mode 100644
index 0000000000..6adc09a340
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/sourceeditor.properties
@@ -0,0 +1,189 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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=Soek vir:
+
+# 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.
+
+# LOCALIZATION NOTE (gotoLineCmd.promptMessage): This is the message shown 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.
+
+# LOCALIZATION NOTE (annotation.breakpoint.title): This is the text shown in
+# front of any breakpoint annotation when it is displayed as a tooltip in one of
+# the editor gutters. This feature is used in the JavaScript Debugger.
+
+# LOCALIZATION NOTE (annotation.currentLine): This is the text shown in
+# a tooltip displayed in any of the editor gutters when the user hovers the
+# current line.
+
+# LOCALIZATION NOTE (annotation.debugLocation.title): This is the text shown in
+# a tooltip displayed in any of the editor gutters when the user hovers the
+# current debugger location. The debugger can pause the JavaScript execution at
+# user-defined lines.
+
+# 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.
+
+# LOCALIZATION NOTE (autocompletion.notFound): This is the text shown in
+# the documentation popup if Tern fails to find a type for the object.
+
+# 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.
+
+# 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.
+
+# 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.
+
+# 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.
+
+# 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.
+
+# 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.
+
+# 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.
+
+# 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.
+
+# 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.
+
+# 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.
+
+# 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.
+
+# 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.
+
+
+# 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, used in the source editor.
+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.
+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
+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 (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/af/chrome/af/locale/af/devtools/client/startup.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/startup.properties
new file mode 100644
index 0000000000..a9e8203024
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/startup.properties
@@ -0,0 +1,385 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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.
+
+# LOCALIZATION NOTE (options.label): This is used as the label of the tab in
+# the devtools window.
+
+# LOCALIZATION NOTE (options.panelLabel): This is used as the label for the
+# toolbox panel.
+
+# LOCALIZATION NOTE (options.darkTheme.label2)
+# Used as a label for dark theme
+
+# LOCALIZATION NOTE (options.lightTheme.label2)
+# Used as a label for light theme
+
+# LOCALIZATION NOTE (options.firebugTheme.label2)
+# Used as a label for Firebug theme
+
+# 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=Werkverrigting
+
+# LOCALIZATION NOTE (performance.panelLabel):
+# This is used as the label for the toolbox panel.
+
+# LOCALIZATION NOTE (performance.accesskey)
+# Used for the menuitem in the tool menu
+performance.accesskey=W
+
+# 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.
+
+# 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=Webkonsole
+
+# LOCALIZATION NOTE (ToolboxTabWebconsole.label): the string displayed as the
+# label of the tab in the devtools window.
+ToolboxTabWebconsole.label=Konsole
+
+# LOCALIZATION NOTE (ToolboxWebConsole.panelLabel): the string used as the
+# label for the toolbox 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.
+
+
+# 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=Ontfouter
+
+# LOCALIZATION NOTE (ToolboxDebugger.panelLabel):
+# This is used as the label for the toolbox panel.
+
+# LOCALIZATION NOTE (ToolboxDebugger.tooltip2):
+# This string is displayed in the tooltip of the tab when the debugger is
+# displayed inside the developer tools window..
+# A keyboard shortcut for JS Debugger will be shown inside brackets.
+
+# LOCALIZATION NOTE (debuggerMenu.accesskey)
+# Used for the menuitem in the tool menu
+
+# 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=Stylredigeerder
+
+# LOCALIZATION NOTE (ToolboxStyleEditor.panelLabel):
+# This is used as the label for the toolbox 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=Stylredigeerder (CSS) (%S)
+
+# LOCALIZATION NOTE (open.accesskey): The access key used to open the style
+# editor.
+
+# LOCALIZATION NOTE (ToolboxShaderEditor.label):
+# This string is displayed in the title of the tab when the Shader Editor is
+# displayed inside the developer tools window and in the Developer Tools Menu.
+
+# LOCALIZATION NOTE (ToolboxShaderEditor.panelLabel):
+# This is used as the label for the toolbox panel.
+
+# LOCALIZATION NOTE (ToolboxShaderEditor.tooltip):
+# This string is displayed in the tooltip of the tab when the Shader Editor is
+# displayed inside the developer tools window.
+
+# LOCALIZATION NOTE (ToolboxCanvasDebugger.label):
+# This string is displayed in the title of the tab when the Shader Editor is
+# displayed inside the developer tools window and in the Developer Tools Menu.
+
+# LOCALIZATION NOTE (ToolboxCanvasDebugger.panelLabel):
+# This is used as the label for the toolbox panel.
+
+# LOCALIZATION NOTE (ToolboxCanvasDebugger.tooltip):
+# This string is displayed in the tooltip of the tab when the Shader Editor is
+# displayed inside the developer tools window.
+
+# LOCALIZATION NOTE (ToolboxWebAudioEditor1.label):
+# This string is displayed in the title of the tab when the Web Audio Editor
+# is displayed inside the developer tools window and in the Developer Tools Menu.
+
+# LOCALIZATION NOTE (ToolboxWebAudioEditor1.panelLabel):
+# This is used as the label for the toolbox panel.
+
+# LOCALIZATION NOTE (ToolboxWebAudioEditor1.tooltip):
+# This string is displayed in the tooltip of the tab when the Web Audio Editor is
+# displayed inside the developer tools window.
+
+# LOCALIZATION NOTE (inspector.*)
+# Used for the menuitem in the tool menu
+inspector.label=Inspekteur
+inspector.accesskey=I
+
+# LOCALIZATION NOTE (inspector.panelLabel)
+# Labels applied to the panel and views within the panel in the toolbox
+
+# LOCALIZATION NOTE (inspector.tooltip2)
+# Keyboard shortcut for DOM and Style Inspector will be shown inside brackets.
+
+# 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=Netwerk
+
+# LOCALIZATION NOTE (netmonitor.panelLabel):
+# This is used as the label for the toolbox 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.
+
+# LOCALIZATION NOTE (storage.accesskey): The access key used to open the storage
+# editor.
+
+# LOCALIZATION NOTE (storage.label):
+# This string is displayed as the label of the tab in the developer tools window
+
+# 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.
+
+# LOCALIZATION NOTE (storage.panelLabel):
+# This string is used as the aria-label for the iframe of the Storage Inspector
+# tool in developer tools toolbox.
+
+# 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.
+
+# LOCALIZATION NOTE (scratchpad.label): this string is displayed in the title of
+# the tab when the Scratchpad is displayed inside the developer tools window and
+# in the Developer Tools Menu.
+
+# LOCALIZATION NOTE (scratchpad.panelLabel): this is used as the
+# label for the toolbox panel.
+
+# LOCALIZATION NOTE (scratchpad.tooltip): This string is displayed in the
+# tooltip of the tab when the Scratchpad is displayed inside the developer tools
+# window.
+
+# 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=Geheue
+
+# LOCALIZATION NOTE (memory.panelLabel): This is used as the label for the
+# toolbox 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=Geheue
+
+# 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.
+
+# LOCALIZATION NOTE (dom.panelLabel):
+# This is used as the label for the toolbox panel.
+
+# LOCALIZATION NOTE (dom.accesskey)
+# Used for the menuitem in the tool menu
+
+# 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.
+
+# LOCALIZATION NOTE (toolbox.buttons.splitconsole):
+# This is the tooltip of the button in the toolbox toolbar used to toggle
+# the split console.
+# Keyboard shortcut will be shown inside brackets.
+
+# 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.
+
+# LOCALIZATION NOTE (toolbox.buttons.paintflashing):
+# This is the tooltip of the paintflashing button in the toolbox toolbar
+# that toggles paintflashing.
+
+# LOCALIZATION NOTE (toolbox.buttons.scratchpad):
+# This is the tooltip of the button in the toolbox toolbar that opens
+# the scratchpad window
+
+# 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
+
+# LOCALIZATION NOTE (toolbox.buttons.rulers):
+# This is the tooltip of the button in the toolbox toolbar that toggles the
+# rulers in the page
+
+# LOCALIZATION NOTE (toolbox.buttons.measure):
+# This is the tooltip of the button in the toolbox toolbar that toggles the
+# measuring tools
+
+
+# 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.panelLabel):
+# This is used as the label for the toolbox panel.
+performance.panelLabel=Performance Panel
+# 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 (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.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.panelLabel):
+# This is used as the label for the toolbox panel.
+ToolboxStyleEditor.panelLabel=Style Editor Panel
+# LOCALIZATION NOTE (open.accesskey): The access key used to open the style
+# editor.
+open.accesskey=l
+# 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.panelLabel):
+# This is used as the label for the toolbox panel.
+netmonitor.panelLabel=Network Panel
+# 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.panelLabel): This is used as the label for the
+# toolbox panel.
+memory.panelLabel=Memory Panel
+# 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/af/chrome/af/locale/af/devtools/client/styleeditor.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/styleeditor.properties
new file mode 100644
index 0000000000..db24ad8eee
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/devtools/client/toolbox.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/toolbox.properties
new file mode 100644
index 0000000000..01cb432373
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/toolbox.properties
@@ -0,0 +1,350 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 (toolboxDockButtons.bottom.minimize): This string is shown
+# as a tooltip that appears in the toolbox when it is in "bottom host" mode and
+# when hovering over the minimize button in the toolbar. When clicked, the
+# button minimizes the toolbox so that just the toolbar is visible at the
+# bottom.
+
+# LOCALIZATION NOTE (toolboxDockButtons.bottom.maximize): This string is shown
+# as a tooltip that appears in the toolbox when it is in "bottom host" mode and
+# when hovering over the maximize button in the toolbar. When clicked, the
+# button maximizes the toolbox again (if it had been minimized before) so that
+# the whole toolbox is visible again.
+
+# LOCALIZATION NOTE (toolboxToggleButton.errors): Semi-colon list of plural
+# forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 number of errors in the current web page
+
+# LOCALIZATION NOTE (toolboxToggleButton.warnings): Semi-colon list of plural
+# forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 number of warnings in the current web page
+
+# LOCALIZATION NOTE (toolboxToggleButton.tooltip): This string is shown
+# as tooltip in the developer toolbar to open/close the developer tools.
+# It's using toolboxToggleButton.errors as first and
+# toolboxToggleButton.warnings as second argument to show the number of errors
+# and warnings.
+
+# LOCALIZATION NOTE (toolbar.closeButton.tooltip)
+# Used as a message in tooltip when overing the close button of the Developer
+# Toolbar.
+
+# LOCALIZATION NOTE (toolbar.toolsButton.tooltip)
+# Used as a message in tooltip when overing the wrench icon of the Developer
+# Toolbar, which toggle the developer toolbox.
+
+# 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.
+
+# 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.
+
+# LOCALIZATION NOTE (toolbox.defaultTitle): This is used as the tool
+# name when no tool is selected.
+
+# LOCALIZATION NOTE (toolbox.label): This is used as the label for the
+# toolbox as a whole
+
+# LOCALIZATION NOTE (options.toolNotSupported): 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.
+
+# LOCALIZATION NOTE (browserConsoleCmd.commandkey)
+# Used for toggling the browser console from the detached toolbox window
+# Needs to match browserConsoleCmd.commandkey from browser.dtd
+
+# LOCALIZATION NOTE (pickButton.tooltip)
+# This is the tooltip of the pick button in the toolbox toolbar
+
+# LOCALIZATION NOTE (sidebar.showAllTabs.tooltip)
+# This is the tooltip shown when hover over the '…' button in the tabbed side
+# bar, when there's no enough space to show all tabs at once
+
+# LOCALIZATION NOTE (toolbox.noContentProcessForTab.message)
+# Used as a message in the alert displayed when trying to open a browser
+# content toolbox and there is no content process running for the current tab
+
+# 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.viewSourceInStyleEditor is used.
+
+# 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.
+
+
+# LOCALIZATION NOTE (toolbox.options.key)
+# Key shortcut used to open the options panel
+
+# LOCALIZATION NOTE (toolbox.help.key)
+# Key shortcut used to open the options panel
+
+# LOCALIZATION NOTE (toolbox.nextTool.key)
+# Key shortcut used to select the next tool
+
+# LOCALIZATION NOTE (toolbox.previousTool.key)
+# Key shortcut used to select the previous tool
+
+toolbox.zoomOut2.key=
+
+toolbox.zoomReset2.key=
+
+# LOCALIZATION NOTE (toolbox.reload*.key)
+# Key shortcuts used to reload the page
+
+# LOCALIZATION NOTE (toolbox.forceReload*.key)
+# Key shortcuts used to force reload of the page by bypassing caches
+
+# LOCALIZATION NOTE (toolbox.minimize.key)
+# Key shortcut used to minimize the toolbox
+
+# LOCALIZATION NOTE (toolbox.toggleHost.key)
+# Key shortcut used to move the toolbox in bottom or side of the browser window
+
+# 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.
+
+# LOCALIZATION NOTE (toolbox.noautohide.tooltip): This is the label for
+# the button to force the popups/panels to stay visible on blur.
+# This is only visible in the browser toolbox as it is meant for
+# addon developers and Firefox contributors.
+
+# LOCALIZATION NOTE (toolbox.closebutton.tooltip): This is the tooltip for
+# the close button the developer tools toolbox.
+
+# LOCALIZATION NOTE (toolbox.allToolsButton.tooltip): This is the tooltip for the
+# "all tools" button displayed when some tools are hidden by overflow of the toolbar.
+
+# 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
+
+# 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
+
+
+# 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.scope` is set to "everything".
+# 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.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.zoomReset.key=CmdOrCtrl+0
+# 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/af/chrome/af/locale/af/devtools/client/webconsole.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/webconsole.properties
new file mode 100644
index 0000000000..a2d85cee84
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/devtools/client/webconsole.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/.
+# 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 (browserConsole.title): shown as the
+# title when opening the browser console popup
+# LOCALIZATION NOTE (timestampFormat): %1$02S = hours (24-hour clock),
+# %2$02S = minutes, %3$02S = seconds, %4$03S = milliseconds.
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 (browserConsole.title): shown as the
+# title when opening the browser console popup
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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.
+
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 (browserConsole.title): shown as the
+# title when opening the browser console popup
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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.
+
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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.
+
+timestampFormat=%02S:%02S:%02S.%03S
+
+ConsoleAPIDisabled=Die webkonsole-boekstawing-API (console.log, console.info, console.warn, console.error) is deur 'n skrip op hierdie bladsy gedeaktiveer.
+
+# LOCALIZATION NOTE (webConsoleXhrIndicator): the indicator displayed before
+# a URL in the Web Console that was requested using an XMLHttpRequest.
+# Should probably be the same as &btnConsoleXhr; in webConsole.dtd
+
+# LOCALIZATION NOTE (webConsoleMixedContentWarning): the message displayed
+# after a URL in the Web Console that has been flagged for Mixed Content (i.e.
+# http content in an https page).
+
+# LOCALIZATION NOTE (webConsoleMoreInfoLabel): the more info tag displayed
+# after security related web console messages.
+webConsoleMoreInfoLabel=Meer inligting
+
+# LOCALIZATION NOTE (scratchpad.linkText): the text used in the right hand
+# side of the Web Console command line when JavaScript is being entered, to
+# indicate how to jump into scratchpad mode.
+
+# LOCALIZATION NOTE (reflow.*): the console displays reflow activity.
+# We can get 2 kind of lines: with JS link or without JS link. It looks like
+# that:
+# reflow: 12ms
+# reflow: 12ms function foobar, file.js line 42
+# The 2nd line, from "function" to the end of the line, is a link to the
+# JavaScript debugger.
+
+# 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=<anoniem>
+
+# 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.
+
+# LOCALIZATION NOTE (timerStarted): this string is used to display the result
+# of the console.time() call. Parameters: %S is the name of the timer.
+
+# 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.
+
+# LOCALIZATION NOTE (noCounterLabel): this string is used to display
+# count-messages with no label provided.
+
+# LOCALIZATION NOTE (noGroupLabel): this string is used to display
+# console.group messages with no label provided.
+
+# LOCALIZATION NOTE (Autocomplete.blank): this string is used when inputnode
+# string containing anchor doesn't matches to any property in the content.
+
+
+# LOCALIZATION NOTE (maxCountersExceeded): Error message shown when the maximum
+# number of console.count()-counters was exceeded.
+
+# LOCALIZATION NOTE (longStringEllipsis): the string displayed after a long
+# string. This string is clickable such that the rest of the string is
+# retrieved from the server.
+
+# LOCALIZATION NOTE (longStringTooLong): the string displayed after the user
+# tries to expand a long string.
+
+# LOCALIZATION NOTE (connectionTimeout): message displayed when the Remote Web
+# Console fails to connect to the server due to a timeout.
+
+# LOCALIZATION NOTE (propertiesFilterPlaceholder): this is the text that
+# appears in the filter text box for the properties view container.
+
+# LOCALIZATION NOTE (emptyPropertiesList): the text that is displayed in the
+# properties pane when there are no properties to display.
+
+# 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
+
+# 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
+
+# LOCALIZATION NOTE (cdFunctionInvalidArgument): the text that is displayed when
+# cd() is invoked with an invalid argument.
+
+# 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
+
+# LOCALIZATION NOTE (selfxss.msg): 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
+
+# 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.
+
+# LOCALIZATION NOTE (groupToggle): the text that is displayed when
+# you hover the arrow for expanding/collapsing the messages of a group.
+
+# LOCALIZATION NOTE (emptySlotLabel): the text is displayed when an Array
+# with empty slots is printed to the console.
+# This is a semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 number of empty slots
+# example: 1 empty slot
+# example: 5 empty slots
+
+# LOCALIZATION NOTE (table.index, table.iterationIndex, table.key, table.value):
+# the column header displayed in the console table widget.
+
+# LOCALIZATION NOTE (severity.error, severity.warn, severity.info, severity.log):
+# tooltip for icons next to console output
+
+# LOCALIZATION NOTE (level.error, level.warn, level.info, level.log, level.debug):
+# tooltip for icons next to console output
+
+# LOCALIZATION NOTE (webconsole.find.key)
+# Key shortcut used to focus the search box on upper right of the console
+
+# LOCALIZATION NOTE (webconsole.close.key)
+# Key shortcut used to close the Browser console (doesn't work in regular web console)
+
+# LOCALIZATION NOTE (webconsole.clear.key*)
+# Key shortcut used to clear the console output
+
+# 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.
+
+# 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.
+
+# LOCALIZATION NOTE (webconsole.menu.openInVarView.label)
+# Label used for a context-menu item displayed for object/variable logs. Clicking on it
+# opens the webconsole variable view for the logged variable.
+
+# 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.
+
+# LOCALIZATION NOTE (webconsole.menu.copy.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).
+
+# LOCALIZATION NOTE (webconsole.menu.selectAll.label)
+# Label used for a context-menu item that will select all the content of the webconsole
+# output.
+
+# 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.
+
+# 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.
+
+# LOCALIZATION NOTE (webconsole.filterInput.placeholder)
+# Label used for for the placeholder on the filter input, in the console top toolbar.
+
+# 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=Foute
+
+# 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=Waarskuwings
+
+# 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().
+
+# 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().
+
+# 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().
+
+# 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.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.
+
+# 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.
+
+
+
+# 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 (webConsoleXhrIndicator): the indicator displayed before
+# a URL in the Web Console that was requested using an XMLHttpRequest.
+webConsoleXhrIndicator=XHR
+# 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 (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.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.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/af/chrome/af/locale/af/devtools/shared/accessibility.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/shared/accessibility.properties
new file mode 100644
index 0000000000..73958f93d1
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 labeled.
+
+# 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 labeled.
+
+# 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 labeled.
+
+# 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 labeled.
+
+# 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 labeled.
+
+# 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 labeled.
+
+# 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 labeled.
+
+# 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 labeled.
+
+# 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 labeled.
+
+# 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 labeled 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/af/chrome/af/locale/af/devtools/shared/debugger.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/shared/debugger.properties
new file mode 100644
index 0000000000..7e1b282ccf
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/devtools/shared/debugger.properties
@@ -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/.
+
+# 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 (remoteIncomingPromptTitle): The title displayed on the
+# dialog that prompts the user to allow the incoming connection.
+
+# LOCALIZATION NOTE (remoteIncomingPromptHeader): Header displayed on the
+# dialog that prompts the user to allow the incoming connection.
+# 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"
+# 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"
+# LOCALIZATION NOTE (remoteIncomingPromptFooter): Footer displayed on the
+# dialog that prompts the user to allow the incoming connection.
+
+# 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 (remoteIncomingPromptDisable): The label displayed on the
+# third button in the incoming connection dialog that lets the user disable the
+# remote debugger server.
+remoteIncomingPromptDisable=Deaktiveer
+
+# LOCALIZATION NOTE (clientSendOOBTitle): The title displayed on the dialog that
+# instructs the user to transfer an authentication token to the server.
+# LOCALIZATION NOTE (clientSendOOBHeader): Header displayed on the dialog that
+# instructs the user to transfer an authentication token to the server.
+# 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
+# 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.
+
+# LOCALIZATION NOTE (serverReceiveOOBTitle): The title displayed on the dialog
+# that instructs the user to provide an authentication token from the client.
+# LOCALIZATION NOTE (serverReceiveOOBBody): Main text displayed on the dialog
+# that instructs the user to provide an authentication token from the client.
+
+
+# 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 (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/af/chrome/af/locale/af/devtools/shared/eyedropper.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/shared/eyedropper.properties
new file mode 100644
index 0000000000..0f320ab37c
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/devtools/shared/screenshot.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/shared/screenshot.properties
new file mode 100644
index 0000000000..fd1296e14d
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/devtools/shared/screenshot.properties
@@ -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/.
+
+# 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 (eg. 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/af/chrome/af/locale/af/devtools/shared/shared.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/shared/shared.properties
new file mode 100644
index 0000000000..0978450dee
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/devtools/shared/styleinspector.properties b/thunderbird-l10n/af/chrome/af/locale/af/devtools/shared/styleinspector.properties
new file mode 100644
index 0000000000..e60ef579ce
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/devtools/shared/styleinspector.properties
@@ -0,0 +1,323 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 (panelTitle): This is the panel title
+
+# 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.
+
+
+# LOCALIZATION NOTE (rule.sourceElement, rule.sourceInline): 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), or from the element itself (element).
+rule.sourceInline=inlyn
+
+# 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=Geërf vanaf %S
+
+# LOCALIZATION NOTE (rule.keyframe): Shown for CSS Rules keyframe header.
+# Will be passed an identifier of the keyframe animation name.
+
+# 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.
+
+# LOCALIZATION NOTE (rule.pseudoElement): Shown for CSS rules
+# pseudo element header
+
+# LOCALIZATION NOTE (rule.selectedElement): Shown for CSS rules element header if
+# pseudo elements are present in the rule view.
+
+# 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.
+
+# 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.
+
+# LOCALIZATION NOTE (ruleView.empty): Text displayed when the highlighter is
+# first opened and there's no node selected in the rule view.
+
+# LOCALIZATION NOTE (ruleView.selectorHighlighter.tooltip): Text displayed in a
+# tooltip when the mouse is over a selector highlighter icon in the rule view.
+
+# LOCALIZATION NOTE (rule.colorSwatch.tooltip): Text displayed in a tooltip
+# when the mouse is over a color swatch in the rule view.
+
+# LOCALIZATION NOTE (rule.bezierSwatch.tooltip): Text displayed in a tooltip
+# when the mouse is over a cubic-bezier swatch in the rule view.
+
+# LOCALIZATION NOTE (rule.filterSwatch.tooltip): Text displayed in a tooltip
+# when the mouse is over a filter swatch in the rule view.
+
+# LOCALIZATION NOTE (rule.angleSwatch.tooltip): Text displayed in a tooltip
+# when the mouse is over a angle swatch in the rule view.
+
+# LOCALIZATION NOTE (rule.gridToggle.tooltip): Text displayed in a tooltip
+# when the mouse is over a CSS Grid toggle icon in the rule view.
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyColor): Text displayed in the rule
+# and computed view context menu when a color value was clicked.
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyColor.accessKey): Access key for
+# the rule and computed view context menu "Copy Color" entry.
+
+# 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.
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyUrl.accessKey): Access key for
+# the rule and computed view context menu "Copy URL" entry.
+
+# 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.
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyDataUri.accessKey): Access key for
+# the rule and computed view context menu "Copy Image Data-URL" entry.
+
+# LOCALIZATION NOTE (styleinspector.copyDataUriError): Text set in the clipboard
+# if an error occurs when using the copyImageDataUrl context menu action
+# (invalid image link, timeout, etc...)
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.toggleOrigSources): Text displayed in the rule view
+# context menu.
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.toggleOrigSources.accessKey): Access key for
+# the rule view context menu "Show original sources" entry.
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.showMdnDocs): Text displayed in the rule view
+# context menu to display docs from MDN for an item.
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.showMdnDocs.accessKey): Access key for
+# the rule view context menu "Show MDN docs" entry.
+
+# 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
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.addRule.accessKey): Access key for
+# the rule view context menu "Add rule" entry.
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.selectAll): Text displayed in the
+# computed view context menu.
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.selectAll.accessKey): Access key for
+# the computed view context menu "Select all" entry.
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copy): Text displayed in the
+# computed view context menu.
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copy.accessKey): Access key for
+# the computed view context menu "Copy" entry.
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyLocation): Text displayed in the
+# rule view context menu for copying the source location.
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyPropertyDeclaration): Text
+# displayed in the rule view context menu for copying the property declaration.
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyPropertyName): Text displayed in
+# the rule view context menu for copying the property name.
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyPropertyValue): Text displayed in
+# the rule view context menu for copying the property value.
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyRule): Text displayed in the
+# rule view context menu for copying the rule.
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copySelector): Text displayed in the
+# rule view context menu for copying the selector.
+
+
+# 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
+rule.sourceConstructed=constructed
+rule.sourceElement=element
+# 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 color picker, Shift+click to change the color 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 Color
+# 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/af/chrome/af/locale/af/global-platform/mac/accessible.properties b/thunderbird-l10n/af/chrome/af/locale/af/global-platform/mac/accessible.properties
new file mode 100644
index 0000000000..c1bf52f530
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/global-platform/mac/accessible.properties
@@ -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/.
+
+jump = Spring
+press = Druk
+check = Merk
+uncheck = Ontmerk
+select = Kies
+open = Open
+close = Sluit
+switch = Wissel
+click = Kliek
+collapse= Invou
+expand = Uitvou
+activate= Aktiveer
+cycle = Wissel
+
+# Universal Access API support
+# (Mac Only)
+# The Role Description for AXWebArea (the web widget). Like in Safari.
+htmlContent = HTML-inhoud
+# The Role Description for the Tab button.
+tab = oortjie
+# The Role Description for definition list dl, dt and dd
+term = term
+definition = definisie
+# The Role Description for an input type="search" text field
+# The Role Description for WAI-ARIA Landmarks
+search = soek
+banner = banier
+navigation = navigasie
+complementary = komplementêr
+content = inhoud
+main = hoof
+# The (spoken) role description for various WAI-ARIA roles
+document = dokument
+# The (spoken) role description for the WAI-ARIA figure role
+# https://w3c.github.io/aria/core-aam/core-aam.html#role-map-figure
+# The (spoken) role description for the WAI-ARIA heading role
+# https://w3c.github.io/aria/core-aam/core-aam.html#role-map-heading
+separator = skeier
+
+# 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
+# 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
+# The (spoken) role description for various WAI-ARIA roles
+alert = alert
+alertDialog = alert dialog
+dialog = dialog
+article = article
+# 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
+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/af/chrome/af/locale/af/global-platform/mac/intl.properties b/thunderbird-l10n/af/chrome/af/locale/af/global-platform/mac/intl.properties
new file mode 100644
index 0000000000..71265a9ef1
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/global-platform/mac/platformKeys.properties b/thunderbird-l10n/af/chrome/af/locale/af/global-platform/mac/platformKeys.properties
new file mode 100644
index 0000000000..7dd60cb640
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/global-platform/mac/platformKeys.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/.
+
+#mac
+#this file defines the on screen display names for the various modifier keys
+#these are used in XP menus to show keyboard shortcuts
+
+# 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
+
+#the option/alt key - splitting tracks symbol (ctrl-g)
+VK_ALT=⌥
+
+#the control key. hat symbol (ctrl-f)
+VK_CONTROL=⌃
+
+#the separator character used between modifiers (none on Mac OS)
+MODIFIER_SEPARATOR=
+
+# The Win key - never generated by native key event
+VK_WIN=win
+# The Return key (on the main keyboard or numpad):
+# "Enter" on Windows/Unix, "Return" on Mac
+VK_RETURN=Return
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/global-platform/unix/accessible.properties b/thunderbird-l10n/af/chrome/af/locale/af/global-platform/unix/accessible.properties
new file mode 100644
index 0000000000..24298ad780
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/global-platform/unix/accessible.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/.
+
+jump = Spring
+press = Druk
+check = Merk
+uncheck = Ontmerk
+select = Kies
+open = Open
+close = Sluit
+switch = Wissel
+click = Kliek
+collapse= Invou
+expand = Uitvou
+activate= Aktiveer
+cycle = Wissel
+
+# 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/af/chrome/af/locale/af/global-platform/unix/intl.properties b/thunderbird-l10n/af/chrome/af/locale/af/global-platform/unix/intl.properties
new file mode 100644
index 0000000000..71265a9ef1
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/global-platform/unix/platformKeys.properties b/thunderbird-l10n/af/chrome/af/locale/af/global-platform/unix/platformKeys.properties
new file mode 100644
index 0000000000..1c96774ae3
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/global-platform/unix/platformKeys.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/.
+
+#default
+#this file defines the on screen display names for the various modifier keys
+#these are used in XP menus to show keyboard shortcuts
+
+# 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)
+
+#the alt key
+VK_ALT=Alt
+
+#the control key
+VK_CONTROL=Ctrl
+
+#the separator character used between modifiers
+MODIFIER_SEPARATOR=+
+
+# The Win key (Super key and Hyper keys are mapped to DOM Win key)
+VK_WIN=Win
+# The Enter key (on the main keyboard or numpad):
+# "Enter" on Windows/Unix, "Return" on Mac
+VK_RETURN=Enter
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/global-platform/win/accessible.properties b/thunderbird-l10n/af/chrome/af/locale/af/global-platform/win/accessible.properties
new file mode 100644
index 0000000000..24298ad780
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/global-platform/win/accessible.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/.
+
+jump = Spring
+press = Druk
+check = Merk
+uncheck = Ontmerk
+select = Kies
+open = Open
+close = Sluit
+switch = Wissel
+click = Kliek
+collapse= Invou
+expand = Uitvou
+activate= Aktiveer
+cycle = Wissel
+
+# 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/af/chrome/af/locale/af/global-platform/win/intl.properties b/thunderbird-l10n/af/chrome/af/locale/af/global-platform/win/intl.properties
new file mode 100644
index 0000000000..71265a9ef1
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/global-platform/win/platformKeys.properties b/thunderbird-l10n/af/chrome/af/locale/af/global-platform/win/platformKeys.properties
new file mode 100644
index 0000000000..c4e2283179
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/global-platform/win/platformKeys.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/.
+
+#default
+#this file defines the on screen display names for the various modifier keys
+#these are used in XP menus to show keyboard shortcuts
+
+# 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
+
+#the alt key
+VK_ALT=Alt
+
+#the control key
+VK_CONTROL=Ctrl
+
+#the separator character used between modifiers
+MODIFIER_SEPARATOR=+
+
+# The Win key
+VK_WIN=Win
+# The Enter key (on the main keyboard or numpad):
+# "Enter" on Windows/Unix, "Return" on Mac
+VK_RETURN=Enter
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/global/aboutStudies.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/aboutStudies.properties
new file mode 100644
index 0000000000..d584c94556
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/global/aboutStudies.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/.
+
+
+# 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/af/chrome/af/locale/af/global/appstrings.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/appstrings.properties
new file mode 100644
index 0000000000..8590bc1ef3
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/global/appstrings.properties
@@ -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/.
+
+fileNotFound=Die lêer %S kan nie gevind word nie. Kontroleer die ligging en probeer weer.
+fileAccessDenied=Die lêer by %S is onleesbaar.
+unknownProtocolFound=Een van die volgende (%S) is nie 'n geregistreerde protokol nie of word nie in dié konteks toegelaat nie.
+connectionFailure=Die verbinding met %S is geweier toe u dit probeer kontak het.
+netInterrupt=Die verbinding met %S is onverwags beëindig. Van die data is moontlik oorgedra.
+netTimeout=Die operasie toe u %S probeer kontak het, het uitgetel.
+redirectLoop=Herverwysingsperk vir hierdie URL is oorskry. Kon nie die aangevraagde bladsy laai nie. Dit kan veroorsaak word deur koekies wat geblokkeer word.
+confirmRepostPrompt=Om hierdie bladsy te wys, moet die toepassing inligting stuur wat enige aksie sal herhaal (soos 'n soektog of bevestiging van bestelling) wat vroeër gedoen is.
+resendButton.label=Herstuur
+unknownSocketType=Hierdie dokument kan nie vertoon word tensy u die persoonlike sekuriteitsbestuurder (PSB) installeer nie. Laai PSB af, installeer dit en probeer weer, of kontak u stelseladministrateur.
+netReset=Die dokument bevat geen data nie.
+notCached=Dié dokument is nie meer beskikbaar nie.
+netOffline=Hierdie dokument kan nie vanlyn vertoon word nie. Om aanlyn te gaan, ontmerk Werk vanlyn uit die Lêer-kieslys.
+isprinting=Die dokument kan nie gewysig word terwyl dit gedruk word of in drukvoorskou is nie.
+deniedPortAccess=Toegang tot die gegewe poortnommer is om sekuriteitsredes gedeaktiveer.
+proxyResolveFailure=Die instaanbediener wat u opgestel het, kon nie gevind word nie. Kontroleer u instaanbedieneropstelling en probeer weer.
+proxyConnectFailure=Die verbinding is geweier toe u die instaanbediener probeer kontak het wat u opgestel het. Kontroleer u instaanbedieneropstelling en probeer weer.
+contentEncodingError=Die bladsy wat u probeer bekyk, kan nie gewys word nie omdat dit 'n ongeldige of nieondersteunde inpakformaat gebruik.
+unsafeContentType=Die bladsy wat u probeer bekyk, kan nie gewys word nie omdat dit in 'n lêersoort verpak is wat dalk nie veilig is om te open nie. Kontak die webwerf se eienaar om hulle oor die probleem in te lig.
+malwareBlocked=Die werf by %S is as 'n aanvalswerf aangegee en is op grond van u sekuriteitvoorkeur geblokkeer.
+unwantedBlocked=Die werf by %S is aangegee dat dit ongewensde sagteware bied en is op grond van u sekuriteitvoorkeur geblokkeer.
+deceptiveBlocked=Die webbladsy by %S is as 'n misleidende werf aangegee en is op grond van u sekuriteitvoorkeur geblokkeer.
+cspBlocked=Hierdie bladsy het 'n inhoudbeveiligingsbeleid wat keer dat dit op hierdie manier gelaai kan word.
+corruptedContentErrorv2=Die werf by %S het 'n skending van die netwerkprotokol ondervind wat nie herstel kan word nie.
+sslv3Used=Die veiligheid van u data op %S kon nie gewaarborg word nie omdat dit SSLv3 gebruik, 'n gebreekte sekuriteitprotokol.
+weakCryptoUsed=Die eienaar van %S het hul webwerf verkeerd opgestel. Om u inligting van diefstal te beskerm, is daar nie aan dié webwerf verbind nie.
+inadequateSecurityError=Die werf het probeer om te onderhandel vir 'n onvoldoende vlak van sekuriteit.
+
+malformedURI2=Please check that the URL is correct and try again.
+dnsNotFound2=%S could not be found. Please check the name and try again.
+harmfulBlocked=The site at %S has been reported as a potentially harmful site and has been blocked based on your security preferences.
+xfoBlocked=This page has an X-Frame-Options policy that prevents it from being loaded in this context.
+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/af/chrome/af/locale/af/global/autocomplete.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/autocomplete.properties
new file mode 100644
index 0000000000..105e0ff25c
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/global/browser.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/browser.properties
new file mode 100644
index 0000000000..6353f877b5
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 = Sekuriteitswaarskuwing
+formPostSecureToInsecureWarning.message = Die inligting wat u ingetik het, gaan oor 'n ongeënkripteerde verbinding versend word en kan geredelik deur 'n derde party gelees word.\n\nWil u definitief hierdie inligting versend?
+formPostSecureToInsecureWarning.continue = Gaan voort
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/global/commonDialogs.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/commonDialogs.properties
new file mode 100644
index 0000000000..edb9de6985
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/global/commonDialogs.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/.
+
+Alert=Oppas
+Confirm=Bevestig
+ConfirmCheck=Bevestig
+Prompt=Por
+Select=Kies
+OK=OK
+Cancel=Kanselleer
+Yes=&Ja
+No=&Nee
+Save=&Stoor
+Revert=&Terugval
+DontSave=Moe&nie stoor nie
+ScriptDlgGenericHeading=[JavaScript-toepassing]
+ScriptDlgHeading=Die bladsy by %S sê:
+ScriptDialogLabel=Voorkom dat hierdie bladsy bykomende dialoë skep
+ScriptDialogPreventTitle=Bevestig dialoogvoorkeur
+# 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 vra 'n gebruikernaam en wagwoord aan. Die werf sê: “%1$S”
+EnterLoginForProxy3=Die instaanbediener %2$S vra 'n gebruikernaam en wagwoord aan. Die werf sê: “%1$S”
+EnterUserPasswordFor2=%1$S vra 'n gebruikernaam en wagwoord aan.
+EnterUserPasswordForCrossOrigin2=%1$S vra 'n gebruikernaam en wagwoord aan. WAARSKUWING: U wagwoord gaan nie gestuur word aan die webwerf wat u tans besoek nie!
+EnterPasswordFor=Tik wagwoord vir %1$S by %2$S in
+
+# LOCALIZATION NOTE - %S is brandFullName
+PromptUsernameAndPassword3=Authentication Required - %S
+# LOCALIZATION NOTE - %S is brandFullName
+PromptPassword3=Password Required - %S
+ScriptDlgNullPrincipalHeading=This page says:
+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
+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/af/chrome/af/locale/af/global/contentAreaCommands.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/contentAreaCommands.properties
new file mode 100644
index 0000000000..1a9767ec5f
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Stoor prent
+SaveMediaTitle=Stoor media
+SaveVideoTitle=Stoor video
+SaveAudioTitle=Stoor klank
+SaveLinkTitle=Stoor as
+WebPageCompleteFilter=Webbladsy, volledig
+WebPageHTMLOnlyFilter=Webbladsy, net HTML
+WebPageXHTMLOnlyFilter=Webbladsy, net XHTML
+WebPageSVGOnlyFilter=Webbladsy, net SVG
+WebPageXMLOnlyFilter=Webbladsy, net XML
+
+# 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_lêers
+
+# 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
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/global/css.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/css.properties
new file mode 100644
index 0000000000..c33f3166bd
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/global/css.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/.
+
+MimeNotCss=Die stylvel %1$S is nie gelaai nie, omdat die MIME-soort, "%2$S", nie "text/css" is nie.
+MimeNotCssWarn=Die stylvel %1$S is as CSS gelaai, al is die MIME-soort, "%2$S", nie "text/css" nie.
+
+PEDeclDropped=Deklarasie laat val.
+PEDeclSkipped=Oorgeslaan na volgende deklarasie.
+PEUnknownProperty=Onbekende eienskap '%1$S'.
+PEValueParsingError=Fout in ontleedwaarde vir '%1$S'.
+PEUnknownAtRule=Nieherkende by-reël of kon nie by-reël '%1$S' ontleed nie.
+PEAtNSUnexpected=Onverwagse teken in @namespace: '%1$S'.
+PEKeyframeBadName=Identifiseerder vir naam van @keyframes-reël verwag.
+PEBadSelectorRSIgnored=Reëlstel geïgnoreer vanweë swak selektor.
+PEBadSelectorKeyframeRuleIgnored=Sleutelraam-reël geïgnoreer vanweë swak selektor.
+PESelectorGroupNoSelector=Selektor verwag.
+PESelectorGroupExtraCombinator=Hangende kombinator.
+PEClassSelNotIdent=Identifiseerder vir klasselektor verwag, maar '%1$S' gevind.
+PETypeSelNotType=Elementnaam of '*' verwag, maar '%1$S' gevind.
+PEUnknownNamespacePrefix=Onbekende naamspasie-voorvoegsel '%1$S'.
+PEAttributeNameExpected=Identifiseerder vir attribuutnaam verwag, maar '%1$S' gevind.
+PEAttributeNameOrNamespaceExpected=Attribuutnaam of naamspasie verwag, maar '%1$S' gevind.
+PEAttSelNoBar='|' verwag, maar '%1$S' gevind.
+PEAttSelUnexpected=Onverwagse teken in attribuutselektor: '%1$S'.
+PEAttSelBadValue=Identifiseerder of string vir waarde in attribuutselektor verwag, maar '%1$S' gevind.
+PEPseudoSelBadName=Identifiseerder vir pseudoklas of pseudo-element verwag, maar '%1$S' gevind.
+PEPseudoSelUnknown=Onbekende pseudoklas of pseudo-element '%1$S'.
+PEPseudoClassArgNotIdent=Identifiseerder vir pseudoklas-parameter verwag, maar '%1$S' gevind.
+PEColorNotColor=Kleur verwag, maar '%1$S' gevind.
+PEParseDeclarationDeclExpected=Deklarasie verwag, maar '%1$S' gevind.
+PEUnknownFontDesc=Onbekende beskrywer '%1$S' in @font-face-reël.
+PEMQExpectedFeatureName=Mediakenmerknaam verwag, maar '%1$S' gevind.
+PEMQNoMinMaxWithoutValue=Mediakenmerke met min- of maks- moet 'n waarde hê.
+PEMQExpectedFeatureValue=Ongeldige waarde vir mediakenmerk gevind.
+PEExpectedNoneOrURL=',' of '{' verwag, maar '%1$S' gevind.
+
+
+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.
+PEMQUnexpectedOperator=Unexpected operator in media list.
+PEMQUnexpectedToken=Unexpected token ‘%1$S’ in media list.
+PEPseudoSelEndOrUserActionPC=Expected end of selector or a user action pseudo-class after pseudo-element 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/af/chrome/af/locale/af/global/dialog.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/dialog.properties
new file mode 100644
index 0000000000..9ba0f23c4a
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Kanselleer
+button-help=Hulp
+button-disclosure=Meer inligting
+accesskey-accept=
+accesskey-cancel=
+accesskey-help=H
+accesskey-disclosure=i
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/global/dom/dom.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/dom/dom.properties
new file mode 100644
index 0000000000..fae3af2357
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/global/dom/dom.properties
@@ -0,0 +1,488 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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=Let wel: Reageertrae skrip
+KillScriptMessage='n Skrip op hierdie bladsy is dalk besig, of dit het opgehou loop. U kan die skrip nou stop, of u kan voortgaan om te kyk of die skrip sal klaar maak.
+KillScriptWithDebugMessage='n Skrip op hierdie bladsy is dalk besig, of het opgehou reageer. U kan die skrip nou stop, die skrip in die ontfouter open, of die skrip laat voortgaan.
+KillScriptLocation=Skrip: %S
+
+StopScriptButton=Stop skrip
+DebugScriptButton=Ontfout skrip
+WaitForScriptButton=Gaan voort
+DontAskAgain=&Moenie my weer vra nie
+WindowCloseBlockedWarning=Skripte mag nie vensters sluit wat nie deur die skrip geopen is nie.
+OnBeforeUnloadTitle=Is u seker?
+OnBeforeUnloadStayButton=Bly op bladsy
+OnBeforeUnloadLeaveButton=Verlaat bladsy
+EmptyGetElementByIdParam=Leë string na getElementById() deurgegee.
+DocumentWriteIgnored='n Roep na document.write() van 'n asinchroon gelaaide eksterne skrip is geïgnoreer.
+# LOCALIZATION NOTE (EditorFileDropFailed): Do not translate contenteditable, %S is the error message explaining why the drop failed.
+EditorFileDropFailed=Fout toe die lêer op 'n contenteditable-element laat val is: %S.
+FormValidationTextTooLong=Verkort hierdie teks na %S karakters of minder (dit beslaan tans %S karakters).
+FormValidationTextTooShort=Gebruik ten minste %S karakters (dit beslaan tans %S karakters).
+FormValidationValueMissing=Vul hierdie veld asseblief in.
+FormValidationCheckboxMissing=Merk hierdie blokkie as u wil voortgaan.
+FormValidationRadioMissing=Kies een van hierdie opsies.
+FormValidationFileMissing=Kies asseblief 'n lêer.
+FormValidationSelectMissing=Kies asseblief 'n item uit die lys.
+FormValidationInvalidEmail=Tik 'n e-posadres in.
+FormValidationInvalidURL=Voer 'n URL in.
+FormValidationPatternMismatch=Gebruik die aangevraagde formaat.
+# LOCALIZATION NOTE (FormValidationPatternMismatchWithTitle): %S is the (possibly truncated) title attribute value.
+FormValidationPatternMismatchWithTitle=Gebruik die aangevraagde formaat: %S.
+# LOCALIZATION NOTE (FormValidationNumberRangeOverflow): %S is a number.
+FormValidationNumberRangeOverflow=Kies 'n waarde kleiner of gelyk aan %S.
+# LOCALIZATION NOTE (FormValidationDateTimeRangeOverflow): %S is a date or a time.
+# LOCALIZATION NOTE (FormValidationNumberRangeUnderflow): %S is a number.
+FormValidationNumberRangeUnderflow=Kies 'n waarde niks kleiner as %S.
+# LOCALIZATION NOTE (FormValidationDateTimeRangeUnderflow): %S is a date or a time.
+# LOCALIZATION NOTE (FormValidationStepMismatch): both %S can be a number, a date or a time.
+FormValidationStepMismatch=Kies 'n geldige waarde. Die twee naaste geldige waardes is %S en %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=Kies 'n geldige waarde. Die twee naaste geldige waarde is %S.
+FormValidationBadInputNumber=Voer 'n getal in.
+FullscreenDeniedDisabled=’n Versoek vir volskermgebruik is geweier omdat die volskerm-API gedeaktiveer is in gebruikervoorkeure.
+FullscreenDeniedFocusedPlugin=’n Versoek vir volskermgebruik is geweier omdat ’n inprop met ’n venster fokus het.
+FullscreenDeniedHidden=Die versoek vir volskermgebruik is geweier omdat die dokument nie meer sigbaar is nie.
+FullscreenDeniedContainerNotAllowed='n Versoek vir volskermgebruik is geweier omdat ten minste een van die "iframes" in die dokument nie 'n "allowfullscreen"-attribuut het nie.
+FullscreenDeniedNotInputDriven=’n Versoek vir volskermgebruik is geweier omdat Element.requestFullScreen() nie geroep is in ’n kort gebeurtenishanteerder wat deur die gebruiker geïnisieer is nie.
+FullscreenDeniedNotHTMLSVGOrMathML=’n Versoek vir volskermgebruik is geweier omdat die element wat daarvoor gevra het nie <svg>, <math> of ’n HTML-element is nie.
+FullscreenDeniedNotInDocument=’n Versoek vir volskermgebruik is geweier omdat die element wat daarvoor gevra het nie meer in sy dokument is nie.
+FullscreenDeniedMovedDocument=’n Versoek vir volskermgebruik is geweier omdat die element wat daarvoor gevra het van dokument verskuif het.
+FullscreenDeniedLostWindow=’n Versoek vir volskermgebruik is geweier omdat daar nie meer ’n venster is nie.
+FullscreenDeniedSubDocFullscreen=’n Versoek vir volskermgebruik is geweier omdat ’n subdokument van die dokument wat daarvoor gevra het, reeds die volle skerm gebruik.
+FullscreenDeniedNotFocusedTab=’n Versoek vir volskermgebruik is geweier omdat die element wat daarvoor gevra het nie in die oortjie is wat tans fokus het nie.
+RemovedFullscreenElement=Het volskerm verlaat omdat die volskerm-element verwyder is uit die dokument.
+FocusedWindowedPluginWhileFullscreen=Het volskerm verlaat omdat ’n inprop met ’n venster fokus ontvang het.
+PointerLockDeniedDisabled=’n Versoek vir ’n wyserslot is geweier omdat die wyserslot-API gedeaktiveer is in gebruikervoorkeure.
+PointerLockDeniedInUse=’n Versoek vir ’n wyserslot is geweier omdat die wyser tans deur ’n ander dokument beheer word.
+PointerLockDeniedNotInDocument=’n Versoek vir wyserslot is geweier omdat die element wat daarvoor gevra het nie in ’n dokument is nie.
+PointerLockDeniedHidden=’n Versoek vir ’n wyserslot is geweier omdat die dokument nie sigbaar is nie.
+PointerLockDeniedNotFocused=’n Versoek vir ’n wyserslot is geweier omdat die dokument nie gefokus is nie.
+PointerLockDeniedMovedDocument=’n Versoek vir ’n wyserslot is geweier omdat die element wat daarvoor gevra het van dokument verskuif het.
+# LOCALIZATION NOTE: %S is the name of the header in question
+# LOCALIZATION NOTE: Do not translate AudioBufferSourceNode
+# LOCALIZATION NOTE: Do not translate decodeAudioData.
+# LOCALIZATION NOTE: Do not translate decodeAudioData.
+# LOCALIZATION NOTE: Do not translate decodeAudioData.
+# LOCALIZATION NOTE: Do not translate decodeAudioData.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and createMediaElementSource.
+# LOCALIZATION NOTE: Do not translate MediaStream and createMediaStreamSource.
+# 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.
+# LOCALIZATION NOTE: %S is the URL of the media resource which failed to load.
+# 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.
+# LOCALIZATION NOTE: %1$S is the "media" attribute value of the <source> element. It is a media query. %2$S is the URL of the media resource which failed to load.
+# 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.
+# LOCALIZATION NOTE: %S is the URL of the media resource which failed to load because of error in decoding.
+MediaWidevineNoWMF=Poging om Widevine te speel sonder Windows Media Foundation. Sien 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=Om videoformate te speel soos %S is dit nodig om addisionele Microsoft-sagteware te installeer. Sien 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=Die video op dié bladsy kan nie gespeel word nie. Die stelsel het dalk nie die nodige videodekodeerders nie: %S
+MediaUnsupportedLibavcodec=Die video op dié bladsy kan nie gespeel word nie. Die stelsel het 'n nie-ondersteunde weergawe van libavcodec.
+# LOCALIZATION NOTE: %1$S is the URL of the media resource, %2$S is technical information (in English)
+MediaDecodeError=Mediahulpbron %1$S kon nie gedekodeer word nie. Fout: %2$S
+# LOCALIZATION NOTE: %1$S is the URL of the media resource, %2$S is technical information (in English)
+MediaDecodeWarning=Mediahulpbron %1$S kon gedekodeer word, maar met die fout: %2$S
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaCannotPlayNoDecoders=Kan nie die media speel nie. Geen dekodeerders vir die aangevraagde formate nie: %S
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaNoDecoders=Geen dekodeerders vir sommige van die aangevraagde formate nie: %S
+MediaCannotInitializePulseAudio=Kan nie PulseAudio gebruik nie
+# LOCALIZATION NOTE: Do not translate "MediaRecorder".
+# LOCALIZATION NOTE: %S is the ID of the MediaStreamTrack passed to MediaStream.addTrack(). Do not translate "MediaStreamTrack" and "AudioChannel".
+# LOCALIZATION NOTE: Do not translate "MediaStream", "stop()" and "MediaStreamTrack"
+# LOCALIZATION NOTE: %S is the URL of the web page which is not served on HTTPS and thus is not encrypted and considered insecure.
+# 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.
+# 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.
+# LOCALIZATION NOTE: Do not translate "DOMException", "code" and "name"
+# LOCALIZATION NOTE: Do not translate "__exposedProps__"
+# LOCALIZATION NOTE: Do not translate "Mutation Event" and "MutationObserver"
+# LOCALIZATION NOTE: Do not translate "Components"
+PluginHangUITitle=Waarskuwing: Reageertrae inprop
+PluginHangUIMessage=%S is dalk besig, of dit het opgehou reageer. U kan die inprop nou stop, of u kan voortgaan om te kyk of die inprop sal klaar maak.
+PluginHangUIWaitButton=Gaan voort
+PluginHangUIStopButton=Stop inprop
+# LOCALIZATION NOTE: Do not translate "NodeIterator" or "detach()".
+# LOCALIZATION NOTE: Do not translate "LenientThis" and "this"
+# LOCALIZATION NOTE: Do not translate "getPreventDefault" or "defaultPrevented".
+# LOCALIZATION NOTE: Do not translate "getUserData", "setUserData", "WeakMap", or "element.dataset".
+# LOCALIZATION NOTE: Do not translate "mozGetAsFile" or "toBlob"
+# LOCALIZATION NOTE: Do not translate "captureEvents()" or "addEventListener()"
+UseOfCaptureEventsWarning=Gebruik van captureEvents() word afgekeur. Om u kode op te gradeer, gebruik die DOM 2- addEventListener()-metode. Vir meer inligting, http://developer.mozilla.org/en/docs/DOM:element.addEventListener
+# LOCALIZATION NOTE: Do not translate "releaseEvents()" or "removeEventListener()"
+UseOfReleaseEventsWarning=Gebruik van releaseEvents() word afgekeur. Om u kode op te gradeer, gebruik die DOM 2- removeEventListener()-metode. Vir meer inligting, http://developer.mozilla.org/en/docs/DOM:element.removeEventListener
+
+# LOCALIZATION NOTE: Do not translate ".png"
+GenericImageNamePNG=prent.png
+GenericFileName=lêer
+# LOCALIZATION NOTE: Do not translate "Large-Allocation", as it is a literal header name
+# LOCALIZATION NOTE: Do not translate "Large-Allocation", as it is a literal header name. Do not translate GET.
+# LOCALIZATION NOTE: Do not translate "Large-Allocation", as it is a literal header name. Do not translate `window.opener`.
+# LOCALIZATION NOTE: Do not translate "Large-Allocation", as it is a literal header name
+# LOCALIZATION NOTE: Do not translate "Large-Allocation", as it is a literal header name.
+# LOCALIZATION NOTE: Do not translate URL.createObjectURL(MediaStream).
+# LOCALIZATION NOTE: Do not translate MozAutoGainControl or autoGainControl.
+# LOCALIZATION NOTE: Do not translate mozNoiseSuppression or noiseSuppression.
+# LOCALIZATION NOTE: Do not translate xml:base.
+# LOCALIZATION NOTE: %S is the tag name of the element that starts the loop
+# LOCALIZATION NOTE: %S is the tag name of the element that starts the chain
+# LOCALIZATION NOTE: Do not translate "<script>".
+# LOCALIZATION NOTE: Do not translate "<script>".
+# LOCALIZATION NOTE: Do not translate "<script>".
+# LOCALIZATION NOTE: Do not translate "<script>".
+# LOCALIZATION NOTE: Do not translate "<script>".
+# LOCALIZATION NOTE: %1$S is the invalid property value and %2$S is the property name.
+# LOCALIZATION NOTE: Do not translate "ReadableStream".
+
+
+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
+OnBeforeUnloadMessage2=This page is asking you to confirm that you want to leave — information you’ve entered may not be saved.
+SpeculationFailed2=An unbalanced tree was written using document.write() causing data from the network to be reparsed. More information: https://developer.mozilla.org/en-US/docs/Glossary/speculative_parsing
+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.
+# LOCALIZATION NOTE (FormValidationDateTimeRangeOverflow): %S is a date or a time.
+FormValidationDateTimeRangeOverflow=Please select a value that is no later 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 (FormValidationTimeReversedRangeUnderflowAndOverflow): %1$S,%2$S are time.
+FormValidationTimeReversedRangeUnderflowAndOverflow=Please select a value between %1$S and %2$S.
+FullscreenDeniedHTMLDialog=Request for fullscreen was denied because requesting element is a <dialog> element.
+FullscreenDeniedMouseEventOnlyLeftBtn=Request for fullscreen was denied because Element.requestFullscreen() was called from inside a mouse event handler not triggered by left mouse button.
+FullscreenDeniedPopoverOpen=Request for fullscreen was denied because the element is already open as a popover.
+FullscreenDeniedFeaturePolicy=Request for fullscreen was denied because of FeaturePolicy directives.
+FullscreenExitWindowFocus=Exited fullscreen because a window was focused.
+PointerLockDeniedSandboxed=Request for pointer lock was denied because Pointer Lock API is restricted via sandbox.
+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.
+# 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.
+# 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 "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 "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 canceled 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 color.
+# 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.
+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 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 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.
+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 "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: 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/af/chrome/af/locale/af/global/extensions.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/extensions.properties
new file mode 100644
index 0000000000..563c6596df
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/global/extensions.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/.
+
+
+#LOCALIZATION NOTE (csp.error.illegal-keyword) %1$S is the name of a CSP directive, such as "script-src". %2$S is the name of a CSP keyword, usually 'unsafe-inline'.
+
+#LOCALIZATION NOTE (csp.error.illegal-protocol) %2$S a protocol name, such as "http", which appears as "http:", as it would in a URL.
+
+#LOCALIZATION NOTE (csp.error.missing-host) %2$S a protocol name, such as "http", which appears as "http:", as it would in a URL.
+
+#LOCALIZATION NOTE (csp.error.missing-source) %1$S is the name of a CSP directive, such as "script-src". %2$S is the name of a CSP source, usually 'self'.
+
+#LOCALIZATION NOTE (csp.error.illegal-host-wildcard) %2$S a protocol name, such as "http", which appears as "http:", as it would in a URL.
+
+#LOCALIZATION NOTE (uninstall.confirmation.title) %S is the name of the extension which is about to be uninstalled.
+uninstall.confirmation.title = Deïnstalleer %S
+
+#LOCALIZATION NOTE (uninstall.confirmation.message) %S is the name of the extension which is about to be uninstalled.
+uninstall.confirmation.message = Die uitbreiding “%S” vra om geoninstalleer te word. Wat wil u doen?
+
+uninstall.confirmation.button-0.label = Deïnstalleer
+uninstall.confirmation.button-1.label = Hou geïnstalleer
+
+
+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/af/chrome/af/locale/af/global/fallbackMenubar.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/fallbackMenubar.properties
new file mode 100644
index 0000000000..27aac81be9
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/global/fallbackMenubar.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/.
+
+# OSX only. Default menu label when there is no xul menubar.
+
+quitMenuitem.label=Afsluit
+
+quitMenuitem.key=q
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/global/filepicker.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/filepicker.properties
new file mode 100644
index 0000000000..d040329a81
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Alle lêers
+htmlTitle=HTML-lêers
+textTitle=Tekslêers
+imageTitle=Prentlêers
+xmlTitle=XML-lêers
+xulTitle=XUL-lêers
+appsTitle=Toepassings
+audioTitle=Klanklêers
+videoTitle=Videolêers
+
+formatLabel=Formaat:
+
+
+selectedFileNotReadableError=Selected file does not have read permission
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/global/global-strres.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/global-strres.properties
new file mode 100644
index 0000000000..e900e2a608
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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='n Onbekende fout het voorgekom (%1$S)
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/global/intl.css b/thunderbird-l10n/af/chrome/af/locale/af/global/intl.css
new file mode 100644
index 0000000000..0221f963e1
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/global/intl.css
@@ -0,0 +1,7 @@
+/*
+ * 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/af/chrome/af/locale/af/global/intl.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/intl.properties
new file mode 100644
index 0000000000..de0697ea5b
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 value of 'general.useragent.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=af, en-ZA, en-GB, 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=false
+intl.menuitems.insertseparatorbeforeaccesskeys=true
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/global/keys.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/keys.properties
new file mode 100644
index 0000000000..dd16d4f0f9
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/global/keys.properties
@@ -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/.
+
+# 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 prevelant 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.
+
+# 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=Op-pyltjie
+VK_DOWN=Af-pyltjie
+VK_LEFT=Links-pyltjie
+VK_RIGHT=Regs-pyltjie
+VK_PAGE_UP=Bladsy na bo
+VK_PAGE_DOWN=Bladsy na onder
+# 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
+
+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/af/chrome/af/locale/af/global/layout/HtmlForm.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/layout/HtmlForm.properties
new file mode 100644
index 0000000000..2ee229bc39
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Stel terug
+Submit=Dien versoek in
+Browse=Blaai…
+FileUpload=Lêer oplaai
+DirectoryUpload=Kies gids om op te laai
+DirectoryPickerOkButtonLabel=Laai op
+ForgotPostWarning=Vorm bevat enctype=%S, maar bevat nie method=post nie. Dien eerder soos gewoonlik in met method=GET en sonder enctype.
+ForgotFileEnctypeWarning=Vorm bevat 'n lêertoevoer, maar ontbreek method=POST en enctype=multipart/form-data op die vorm. Die lêer sal nie gestuur word nie.
+# LOCALIZATION NOTE (DefaultFormSubject): %S will be replaced with brandShortName
+DefaultFormSubject=Vormpos van %S
+CannotEncodeAllUnicode='n Vorm is ingedien met die %S-enkodering wat nie alle Unicode-karakters kan enkodeer nie. Gebruikertoevoer kan gevolglik gekorrupteer raak. Om dié probleem te voorkom moet die blad verander word sodat die vorm in die UTF-8-enkodering ingedien word deur óf die enkodering van die blad self na UTF-8 te verander, óf deur accept-charset=utf-8 op die form-element te spesifiseer.
+AllSupportedTypes=Alle ondersteunde tipes
+# LOCALIZATION NOTE (NoFileSelected): this string is shown on a
+# <input type='file'> when there is no file selected yet.
+NoFileSelected=Geen lêer gekies nie.
+# LOCALIZATION NOTE (NoFilesSelected): this string is shown on a
+# <input type='file' multiple> when there is no file selected yet.
+NoFilesSelected=Geen lêers gekies nie.
+# LOCALIZATION NOTE (NoDirSelected): this string is shown on a
+# <input type='file' directory/webkitdirectory> when there is no directory
+# selected yet.
+NoDirSelected=Geen gids gekies nie.
+# 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 lêers gekies.
+ColorPicker=Kies 'n kleur
+# 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=Besonderhede
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/global/layout/MediaDocument.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/layout/MediaDocument.properties
new file mode 100644
index 0000000000..72f5f68aee
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/global/layout/MediaDocument.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 (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-prent, %S x %S pixels)
+ImageTitleWithoutDimensions=%S (%S-prent)
+ImageTitleWithDimensions2=(%S-prent, %S x %S pixels)
+ImageTitleWithNeitherDimensionsNorFile=(%S-prent)
+MediaTitleWithFile=%S (%S-objek)
+MediaTitleWithNoInfo=(%S-objek)
+
+InvalidImage=Die prent “%S” kan nie gewys word nie want dit bevat foute.
+ScaledImage=Geskaleer (%S%%)
+
+TitleWithStatus=%S - %S
+
+UnsupportedImage=The image “%S” cannot be displayed because it requires unsupported features.
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/global/layout/htmlparser.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/layout/htmlparser.properties
new file mode 100644
index 0000000000..ce0e1a1db4
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/global/layout/htmlparser.properties
@@ -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/.
+
+# 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/af/chrome/af/locale/af/global/layout/xmlparser.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/layout/xmlparser.properties
new file mode 100644
index 0000000000..6cce9fdde6
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 = geheue is op
+2 = sintaksfout
+3 = geen wortelelement gevind nie
+4 = nie welgevorm nie
+5 = ongeslote teken
+6 = gedeeltelike karakter
+7 = wangepaste merker
+8 = duplikaatattribuut
+9 = gemors ná dokumentelement
+10 = onwettige parameter-entiteitverwysing
+11 = ongedefinieerde entiteit
+12 = terugwerkende entiteitverwysing
+13 = asinchroniese entiteit
+14 = verwysing na ongeldige karakternommer
+15 = verwysing na binêre entiteit
+16 = verwysing na eksterne entiteit in attribuut
+17 = XML- of teksdeklarasie nie aan begin van entiteit nie
+18 = onbekende enkodering
+19 = enkodering in XML-deklarasie gespesifiseer, is verkeerd
+20 = ongeslote CDATA-afdeling
+21 = kon nie eksterne entiteitsverwysing verwerk nie
+22 = dokument is nie alleenstaande nie
+23 = onverwagse ontlederstaat
+24 = entiteit in parameterentiteit verklaar
+27 = voorvoegsel nie aan 'n naamspasie gebind nie
+28 = moenie voorvoegsel ontdeklareer nie
+29 = onvolledige markering in parameterentiteit
+30 = XML-deklarasie nie welvorm nie
+31 = teks-deklarasie nie welvorm nie
+32 = onwettige karakter(s) in publieke ID
+38 = gereserveerde voorvoegsel (xml) kan nie ontverklaar word of aan 'n ander naamspasie-naam gebind word nie
+39 = gereserveerde voorvoegsel (xmlns) moet nie verklaar of onverklaar wees nie
+40 = voorvoegsel moet nie aan een van die gereserveerde naamspasies gebind wees nie
+
+# %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-ontledingsfout: %1$S\nLigging: %2$S\nReëlnommer %3$u, kolom %4$u:
+
+# %S is replaced by a tag name.
+# This gets appended to the error string if the error is mismatched tag.
+Expected = . Verwag: </%S>.
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/global/layout_errors.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/layout_errors.properties
new file mode 100644
index 0000000000..43be0dbdca
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/global/layout_errors.properties
@@ -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/.
+
+ImageMapRectBoundsError=Die "coords"-attribuut van die <area shape="rect">-merker is nie in die formaat "left,top,right,bottom" nie.
+ImageMapCircleWrongNumberOfCoords=Die "coords"-attribuut van die <area shape="circle">-merker is nie in die formaat "center-x,center-y,radius" nie.
+ImageMapCircleNegativeRadius=Die "coords"-attribuut van die <area shape="circle">-merker het 'n negatiewe radius.
+ImageMapPolyWrongNumberOfCoords=Die "coords"-attribuut van die <area shape="poly">-merker is nie in die formaat "x1,y1,x2,y2 …" nie.
+ImageMapPolyOddNumberOfCoords=Die "coords"-attribuut van die <area shape="poly">-merker ontbreek die laaste "y"-koördinaat (die korrekte formaat is "x1,y1,x2,y2 …").
+
+
+## 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
+## 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
+## LOCALIZATION NOTE(CompositorAnimationWarningTransformBackfaceVisibilityHidden):
+## 'backface-visibility: hidden' is a CSS property, don't translate it.
+## LOCALIZATION NOTE(CompositorAnimationWarningTransformPreserve3D):
+## 'transform-style: preserve-3d' is a CSS property, don't translate it.
+## LOCALIZATION NOTE(CompositorAnimationWarningTransformSVG,
+## CompositorAnimationWarningTransformWithGeometricProperties,
+## CompositorAnimationWarningTransformWithSyncGeometricAnimations,
+## CompositorAnimationWarningTransformFrameInactive,
+## CompositorAnimationWarningOpacityFrameInactive):
+## 'transform' and 'opacity' mean CSS property names, don't translate it.
+
+
+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/af/chrome/af/locale/af/global/mathml/mathml.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/mathml/mathml.properties
new file mode 100644
index 0000000000..60a7f1d605
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/global/narrate.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/narrate.properties
new file mode 100644
index 0000000000..8a7b885668
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/global/narrate.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/.
+
+back = Terug
+forward = Vorentoe
+speed = Spoed
+selectvoicelabel = Stem:
+# Default voice is determined by the language of the document.
+defaultvoice = Verstek
+
+# Voice name and language.
+# eg. David (English)
+voiceLabel = %S (%S)
+
+# "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)
+# %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
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/global/nsWebBrowserPersist.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/nsWebBrowserPersist.properties
new file mode 100644
index 0000000000..a6797edf2d
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 kon nie gestoor word nie, aangesien die bronlêer nie gelees kon word nie.\n\nProbeer later weer, of kontak die bedieneradministrateur.
+writeError=%S kon nie gestoor word nie, aangesien 'n onbekende fout plaasgevind het.\n\nProbeer dit in 'n ander ligging stoor.
+launchError=%S kon nie geopen word nie, aangesien 'n onbekende fout plaasgevind het.\n\nProbeer dit eers op skyf stoor en dan die lêer te open.
+diskFull=Daar is onvoldoende spasie op die skyf om %S te stoor.\n\nVerwyder onnodige lêers van die skyf en probeer weer, of probeer die lêer in 'n ander ligging stoor.
+readOnly=%S kon nie gestoor word nie, aangesien die skyf, vouer of lêer, skryfbeskermd is.\n\nHaal skryfbeskerming van die skyf af en probeer weer, of probeer die lêer in 'n ander ligging stoor.
+accessError=%S kon nie gestoor word nie, aangesien u nie die inhoud van daardie vouer kan verander nie.\n\nVerwyder die vouereienskappe en probeer weer, of probeer die lêer in 'n ander ligging stoor.
+SDAccessErrorCardReadOnly=Kan nie die lêer aflaai nie omdat die SD-kaart in gebruik is.
+SDAccessErrorCardMissing=Kan nie die lêer aflaai nie omdat die SD-kaart soek is.
+helperAppNotFound=%S kon nie geopen word nie, aangesien die geassosieerde helper-toepassing nie bestaan nie. Verander die assosiasie in u voorkeure.
+noMemory=Daar is onvoldoende geheue om die aksie wat u aangevra het, te voltooi.\n\nSluit 'n paar toepassings af en probeer weer.
+title=Laai tans %S af
+fileAlreadyExistsError=%S kon nie gestoor word nie omdat 'n lêer reeds bestaan met dieselfde naam as die '_files'-subgids.\n\nProbeer dit in 'n ander ligging stoor.
+fileNameTooLongError=%S kon nie gestoor word nie, aangesien die lêernaam te lank is.\n\nProbeer dit met 'n korter lêernaam stoor.
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/global/printdialog.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/printdialog.properties
new file mode 100644
index 0000000000..d46c6622d9
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/global/printdialog.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/.
+
+# These strings are used in the native GTK, Mac and Windows print dialogs.
+
+# GTK titles:
+printTitleGTK=Druk
+optionsTabLabelGTK=Opsies
+
+# Mac titles:
+optionsTitleMac=Opsies:
+appearanceTitleMac=Voorkoms:
+pageHeadersTitleMac=Bladsykoppe:
+pageFootersTitleMac=Bladsyvoete:
+
+# Windows titles:
+optionsTitleWindows=Opsies
+
+# 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=Ignoreer skaal en k_rimp om by bladsywydte te pas
+selectionOnly=Druk net _seleksie
+printBGOptions=Druk agtergronde
+printBGColors=Bladsyagtergrond_kleur
+printBGImages=Druk agtergrondp_rente
+headerFooter=Kop en voet
+left=Links
+center=Middel
+right=Regs
+headerFooterBlank=--niks--
+headerFooterTitle=Titel
+headerFooterURL=URL
+headerFooterDate=Datum/tyd
+headerFooterPage=Bladsy #
+headerFooterPageTotal=Bladsy # van #
+headerFooterCustom=Eie…
+customHeaderFooterPrompt=Tik u doelgemaakte kopstuk-/voetstuk-teks in
+
+summarySelectionOnlyTitle=Druk seleksie
+summaryShrinkToFitTitle=Krimp om te pas
+summaryPrintBGColorsTitle=Druk agtergrondkleure
+summaryPrintBGImagesTitle=Druk agtergrondprente
+summaryHeaderTitle=Bladsykoppe
+summaryFooterTitle=Bladsyvoete
+summaryNAValue=N.v.t.
+summaryOnValue=Aan
+summaryOffValue=Af
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/global/printing.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/printing.properties
new file mode 100644
index 0000000000..230282937d
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 (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
+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 van %2$d
+
+PrintToFile=Druk na lêer
+print_error_dialog_title=Drukkerfout
+printpreview_error_dialog_title=Drukvoorskoufout
+
+# 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='n Fout het tydens drukwerk voorgekom.
+
+PERR_ABORT=Die druktaak is gestaak of gekanselleer.
+PERR_NOT_AVAILABLE=Sommige drukfunksionaliteit is nie tans beskikbaar nie.
+PERR_NOT_IMPLEMENTED=Van die drukfunksionaliteit is nog nie geïmplementeer nie.
+PERR_OUT_OF_MEMORY=Daar is nie genoeg geheue beskikbaar om te druk nie.
+PERR_UNEXPECTED=Daar was 'n onverwagse probleem met die drukproses.
+
+PERR_GFX_PRINTER_NO_PRINTER_AVAILABLE=Geen drukkers beskikbaar nie.
+PERR_GFX_PRINTER_NO_PRINTER_AVAILABLE_PP=Geen drukkers beskikbaar nie; kan nie voorskou wys nie.
+PERR_GFX_PRINTER_NAME_NOT_FOUND=Die gekose drukker kon nie gevind word nie.
+PERR_GFX_PRINTER_COULD_NOT_OPEN_FILE=Kon nie die afvoerlêer vir drukwerk oopmaak nie.
+PERR_GFX_PRINTER_STARTDOC=Drukwerk het misluk tydens die begin van die druktaak.
+PERR_GFX_PRINTER_ENDDOC=Drukwerk het misluk tydens die finalisering van die druktaak.
+PERR_GFX_PRINTER_STARTPAGE=Drukwerk het misluk tydens die begin van 'n nuwe bladsy.
+PERR_GFX_PRINTER_DOC_IS_BUSY=Kan nog nie dié dokument druk nie; dit word steeds gelaai.
+PERR_GFX_PRINTER_DOC_IS_BUSY_PP=Kan nog nie drukvoorskou vir dokument wys nie; dit word steeds gelaai.
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/global/resetProfile.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/resetProfile.properties
new file mode 100644
index 0000000000..3bb59f2260
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Dit lyk of %S vir 'n ruk lank nie begin is nie. Welkom terug! Sal ons als skoonmaak vir 'n vars, so-goed-soos-nuut ervaring?
+# LOCALIZATION NOTE (resetUninstalled.message): %S is brandShortName.
+resetUninstalled.message=Dit lyk of %S oorgeïnstalleer is. Sal ons als skoonmaak vir 'n vars, so-goed-soos-nuut ervaring?
+
+# LOCALIZATION NOTE (refreshProfile.resetButton.label): %S is brandShortName.
+refreshProfile.resetButton.label=Verfris %S…
+refreshProfile.resetButton.accesskey=e
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/global/security/caps.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/security/caps.properties
new file mode 100644
index 0000000000..e6c6a08c48
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/global/security/caps.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/.
+CheckLoadURIError = Sekuriteitsfout: Inhoud in %S sal moontlik nie laai of aan %S koppel nie.
+CheckSameOriginError = Sekuriteitsfout: Inhoud in %S sal moontlik nie data van %S oplaai nie.
+
+CreateWrapperDenied = Toestemming geweier om omvouer vir objek van klas %S te skep
+CreateWrapperDeniedForOrigin = Toestemming vir <%2$S> geweier om omvouer vir objek van klas %1$S te skep
+
+ExternalDataError = Security Error: Content at %S attempted to load %S, but may not load external data when being used as an image.
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/global/security/csp.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/security/csp.properties
new file mode 100644
index 0000000000..b8c2700fe8
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/global/security/csp.properties
@@ -0,0 +1,124 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 behavior 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”
+# 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/af/chrome/af/locale/af/global/security/security.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/security/security.properties
new file mode 100644
index 0000000000..0d184ed6d8
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/global/svg/svg.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/svg/svg.properties
new file mode 100644
index 0000000000..3328466998
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Onverwagte waarde %2$S toe %1$S attribuut ontleed is.
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/global/viewSource.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/viewSource.properties
new file mode 100644
index 0000000000..8039d9f710
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 = Gaan na reël
+goToLineText = Tik reëlnommer in
+invalidInputTitle = Ongeldige toevoer
+invalidInputText = Die reëlnommer wat u ingetik het, is ongeldig.
+outOfRangeTitle = Reël nie gevind nie
+outOfRangeText = Die gespesifiseerde reël is nie gevind nie.
+viewSelectionSourceTitle = DOM-bron van seleksie
+
+context_goToLine_label = Gaan na reël…
+context_goToLine_accesskey = G
+context_wrapLongLines_label = Vou lang reëls om
+context_highlightSyntax_label = Sintaksverligting
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/global/wizard.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/wizard.properties
new file mode 100644
index 0000000000..6ee1ea47f2
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Welkom by die %S
+default-last-title=Klaar met die %S
+default-first-title-mac=Inleiding
+default-last-title-mac=Slotsom
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/global/xslt/xslt.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/xslt/xslt.properties
new file mode 100644
index 0000000000..7fdd4ab3b8
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 = Kon nie 'n XSLT-stylvel ontleed nie.
+2 = Kon nie 'n XPath-uitdrukking ontleed nie.
+3 =
+4 = XSLT-transformasie het misluk.
+5 = Ongeldige XSLT/XPath-funksie.
+6 = XSLT-stylvel bevat (moontlik) 'n terugwerking.
+7 = Attribuutwaarde onwettig in XSLT 1.0.
+8 = 'n XPath-uitdrukking moes 'n NodeSet opgelewer het.
+9 = XSLT-transformasie is deur <xsl:message> beëindig.
+10 = 'n Netwerkfout het voorgekom toe 'n XSLT-stylvel gelaai is:
+11 = 'n XSLT-stylvel het nie 'n XML-MIME-soort nie:
+12 = 'n XSLT stylvel voer of sluit homself direk of indirek in:
+13 = 'n XPath-funksie is geroep met die verkeerde getal argumente.
+14 = 'n Onbekende XPath-uitbreidingfunksie is geroep.
+15 = XPath-ontleding het misluk: ')' verwag:
+16 = XPath-ontleding het misluk: ongeldige as:
+17 = XPath-ontleding het misluk: Naam- of nodussoorttoets verwag:
+18 = XPath-ontleding het misluk: ']' verwag:
+19 = XPath-ontleding het misluk: ongeldige veranderlikenaam:
+20 = XPath-ontleding het misluk: onverwagse einde van uitdrukking:
+21 = XPath-ontleding het misluk: operateur verwag:
+22 = XPath-ontleding het misluk: ongeslote letterlike:
+23 = XPath-ontleding het misluk: ':' onverwags:
+24 = XPath-ontleding het misluk: '!' onverwags, ontkenning is not():
+25 = XPath-ontleding het misluk: onwettige karakter gevind:
+26 = XPath-ontleding het misluk: binêre operateur verwag:
+27 = Laai van 'n XSLT-stylvel is vir sekuriteitsrede geblokkeer.
+28 = Evalueer van 'n ongeldige uitdrukking.
+29 = Ongebalanseerde krulhakie.
+30 = Skep van 'n element met ongeldige QName.
+31 = Veranderlikebinding skadu veranderlikebinding binne dieselfde sjabloon.
+32 = Mag nie die key-funksie roep nie.
+
+LoadingError = Kon nie stylvel laai nie: %S
+TransformError = Fout tydens XSLT-transformasie: %S
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/global/xul.properties b/thunderbird-l10n/af/chrome/af/locale/af/global/xul.properties
new file mode 100644
index 0000000000..7722ae8fe4
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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?> verwerkingsinstruksie het nie meer enige uitwerking buite die prolog nie (kyk 360119).
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/lightning/lightning-toolbar.dtd b/thunderbird-l10n/af/chrome/af/locale/af/lightning/lightning-toolbar.dtd
new file mode 100644
index 0000000000..ed3b8d66b9
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/lightning/lightning-toolbar.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/. -->
+
+<!-- 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">
+
+<!-- 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">
+<!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/af/chrome/af/locale/af/lightning/lightning.dtd b/thunderbird-l10n/af/chrome/af/locale/af/lightning/lightning.dtd
new file mode 100644
index 0000000000..66205f27b8
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/lightning/lightning.dtd
@@ -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/. -->
+
+<!-- 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.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/af/chrome/af/locale/af/lightning/lightning.properties b/thunderbird-l10n/af/chrome/af/locale/af/lightning/lightning.properties
new file mode 100644
index 0000000000..45933a9cb9
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/lightning/lightning.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/.
+
+# 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=Canceled 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 - time of deletion
+imipBarReplyToRecentlyRemovedItem=This message contains a reply referring to an event that was removed from your calendar at %1$S.
+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=Email Notification
+imipSendMail.text=Would you like to send out notification Email 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=Canceled: %1$S
+itipCancelBody=%1$S has canceled 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(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/af/chrome/af/locale/af/messenger-mapi/mapi.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger-mapi/mapi.properties
new file mode 100644
index 0000000000..f8237af553
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger-mapi/mapi.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/.
+
+# Mail Integration Dialog
+dialogTitle=%S
+dialogText=Wil u %S as u verstek-posprogram gebruik?\u0020
+newsDialogText=Wil u %S as u verstek-nuusprogram gebruik?
+feedDialogText=Wil u %S as u verstek-nuusvoerprogram gebruik?
+checkboxText=Moenie my weer vra nie
+setDefaultMail=%S is nie tans opgestel as u verstek-posprogram nie. Wil u dit u verstek-posprogram maak?
+setDefaultNews=%S is nie tans opgestel as u verstek-nuusprogram nie. Wil u dit u verstek-nuusprogram maak?
+setDefaultFeed=%S is nie tans opgestel as u verstek-nuusvoerprogram nie. Wil u dit u verstek-nuusvoerprogram maak?
+alreadyDefaultMail=%S is reeds opgestel as u verstek-posprogram.
+alreadyDefaultNews=%S is reeds opgestel as u verstek-nuusprogram.
+alreadyDefaultFeed=%S is reeds opgestel as u verstek-nuusvoerprogram.
+
+# MAPI Messages
+loginText=Tik u wagwoord vir %S in:
+loginTextwithName=Tik u gebruikernaam en wagwoord in\u0020
+loginTitle=%S
+PasswordTitle=%S
+
+# MAPI Error Messages
+errorMessage=%S kon nie as u verstek-posprogram opgestel word nie omdat 'n registrysleutel nie bygewerk kon word nie. Maak by u stelselsadministrateur seker of u skryftoegang tot die stelsel se registry het, en probeer dan weer.
+errorMessageNews=%S kon nie as u verstek-nuusprogram opgestel word nie omdat 'n registrysleutel nie bygewerk kon word nie. Maak by u stelselsadministrateur seker of u skryftoegang tot die stelsel se registry het, en probeer dan weer.
+errorMessageTitle=%S
+
+# MAPI Security Messages
+mapiBlindSendWarning='n Ander program probeer tans pos stuur met u gebruikerprofiel. Is u seker u wil pos stuur?
+mapiBlindSendDontShowAgain=Waarsku my wanneer ander programme namens my probeer pos stuur
+
+#Default Mail Display String
+# localization note, %S is the vendor name
+defaultMailDisplayTitle=%S
+
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger-newsblog/am-newsblog.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger-newsblog/am-newsblog.dtd
new file mode 100644
index 0000000000..8ceccf9982
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger-newsblog/am-newsblog.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 manageSubscriptions.label "Bestuur intekeninge…">
+<!ENTITY manageSubscriptions.accesskey "B">
+
+
+
+<!ENTITY biffAll.label "Enable updates for all feeds">
+<!ENTITY biffAll.accesskey "E">
+<!ENTITY newFeedSettings.label "Default Settings for New Feeds">
+<!ENTITY feedWindowTitle.label "Feed Account Wizard">
+<!ENTITY feeds.accountName "Blogs &amp; News Feeds">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger-newsblog/feed-subscriptions.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger-newsblog/feed-subscriptions.dtd
new file mode 100644
index 0000000000..6d753ddd68
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger-newsblog/feed-subscriptions.dtd
@@ -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/. -->
+<!-- Subscription Dialog -->
+
+<!ENTITY feedSubscriptions.label "Voerintekeninge">
+
+
+
+
+
+
+
+
+
+
+<!-- Account Settings and Subscription Dialog -->
+
+
+
+
+
+
+
+<!ENTITY quickMode.label "Wys die artikelopsomming in plaas daarvan om die webbladsy te laai">
+<!ENTITY quickMode.accesskey "s">
+
+
+
+
+
+<!-- Subscription Dialog -->
+
+<!ENTITY button.addFeed.label "Voeg by">
+<!ENTITY button.addFeed.accesskey "V">
+
+
+<!ENTITY button.removeFeed.label "Verwyder">
+<!ENTITY button.removeFeed.accesskey "V">
+<!ENTITY button.importOPML.label "Invoer">
+<!ENTITY button.importOPML.accesskey "I">
+<!ENTITY button.exportOPML.label "Uitvoer">
+<!ENTITY button.exportOPML.accesskey "i">
+
+
+<!ENTITY cmd.close.commandKey "w">
+<!ENTITY button.close.label "Sluit">
+
+<!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 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">
+<!ENTITY button.verifyFeed.label "Verify">
+<!ENTITY button.verifyFeed.accesskey "V">
+<!ENTITY button.updateFeed.label "Update">
+<!ENTITY button.updateFeed.accesskey "U">
+<!ENTITY button.exportOPML.tooltip "Export Feeds with folder structure; ctrl click or ctrl enter to export Feeds as a list">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger-newsblog/newsblog.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger-newsblog/newsblog.properties
new file mode 100644
index 0000000000..51cc719df6
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger-newsblog/newsblog.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/.
+
+subscribe-validating-feed=Verifieer tans die voer…
+subscribe-cancelSubscription=Is u seker u wil die intekening op die huidige nuusvoer kanselleer?
+subscribe-cancelSubscriptionTitle=Teken tans in op voer…
+subscribe-feedAlreadySubscribed=U het alreeds 'n intekening vir hierdie nuusvoer.
+subscribe-errorOpeningFile=Kon nie die lêer open nie.
+
+subscribe-OPMLImportTitle=Kies OPML-lêer om in te voer
+## LOCALIZATION NOTE(subscribe-OPMLExportTitleList):
+## %S is the name of the feed account folder name.
+## LOCALIZATION NOTE(subscribe-OPMLExportTitleStruct):
+## %S is the name of the feed account folder name.
+## LOCALIZATION NOTE(subscribe-OPMLExportFileDialogTitle):
+## %1$S is the brandShortName, %2$S is the name of the feed account folder name.
+## 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.
+## LOCALIZATION NOTE(subscribe-OPMLImportInvalidFile): %S is the name of the OPML file the user tried to import.
+## 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.
+## LOCALIZATION NOTE(subscribe-OPMLImportUniqueFeeds): Semi-colon list of plural forms.
+## #1 is the count of new imported entries
+## LOCALIZATION NOTE(subscribe-OPMLImportFoundFeeds):
+## #1 is total number of elements found in the file
+## 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-OPMLExportOPMLFilesFilterText=OPML-lêers
+## LOCALIZATION NOTE(subscribe-OPMLExportDone): %S is the export file name.
+
+subscribe-confirmFeedDeletionTitle=Verwyder nuusvoer
+## LOCALIZATION NOTE(subscribe-confirmFeedDeletion): %S is the name of the feed the user wants to unsubscribe from.
+subscribe-confirmFeedDeletion=Is u seker dat u van die nuusvoer wil afteken: \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=Laai tans voerartikels af (%S van %S)…
+
+newsblog-noNewArticlesForFeed=Daar is geen nuwe artikels vir hierdie nuusvoer nie.
+## LOCALIZATION NOTE(newsblog-networkError): %S is the feed URL
+newsblog-networkError=%S kon nie gevind word nie. Kontroleer die naam en probeer weer.
+## LOCALIZATION NOTE(newsblog-feedNotValid): %S is the feed URL
+newsblog-feedNotValid=%S is nie 'n geldige voer nie.
+## LOCALIZATION NOTE(newsblog-badCertError): %S is the feed URL host
+## LOCALIZATION NOTE(newsblog-noAuthError): %S is the feed URL
+newsblog-getNewMsgsCheck=Kontroleer tans voere vir nuwe items…
+
+## LOCALIZATION NOTE(feeds-accountname): This string should be the same as feeds.accountName in am-newsblog.dtd
+feeds-accountname=Blogs en nuusvoere
+
+## LOCALIZATION NOTE(externalAttachmentMsg): Content in the MIME part for external link attachments.
+
+## Import wizard.
+## 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.
+
+
+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…
+## 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.
+## LOCALIZATION NOTE(subscribe-OPMLExportDone): %S is the export file name.
+subscribe-OPMLExportDone=Feeds in this account have been exported to %S.
+## 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.
+## 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/af/chrome/af/locale/af/messenger-region/region.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger-region/region.properties
new file mode 100644
index 0000000000..669f6356df
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger-region/region.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/.
+
+# Default search engine
+
+# To make mapit buttons to disappear in the addressbook, specify empty string. For example:
+# mail.addr_book.mapit_url.format=
+# The format for "mail.addr_book.mapit_url.format" is:
+# @A1 == address, part 1
+# @A2 == address, part 2
+# @CI == city
+# @ST == state
+# @ZI == zip code
+# @CO == country
+mail.addr_book.mapit_url.format=http://maps.google.com/maps?q=@A1%20@A2%20@CI%20@ST%20@ZI%20@CO
+
+mailnews.messageid_browser.url=http://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/af/chrome/af/locale/af/messenger-smime/certFetchingStatus.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger-smime/certFetchingStatus.dtd
new file mode 100644
index 0000000000..df4a190076
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger-smime/certFetchingStatus.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 shown while obtaining certificates from a directory -->
+
+
+<!ENTITY title.label "Laai sertifikate af">
+<!ENTITY info.message "Deursoek die gids vir ontvangers se sertifikate. Wag 'n rukkie, asseblief.">
+<!ENTITY stop.label "Staak soektog">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger-smime/msgCompSMIMEOverlay.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger-smime/msgCompSMIMEOverlay.dtd
new file mode 100644
index 0000000000..32e2ea6546
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger-smime/msgCompSMIMEOverlay.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 msgCompSMIMEOverlay.dtd UI for s/mime hooks in message composition -->
+
+<!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/af/chrome/af/locale/af/messenger-smime/msgCompSecurityInfo.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger-smime/msgCompSecurityInfo.dtd
new file mode 100644
index 0000000000..d5d2051d34
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger-smime/msgCompSecurityInfo.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 msgCompSecurityInfo.dtd UI for viewing security status when composing a message -->
+
+
+<!ENTITY title.label "Boodskapsekuriteit">
+<!ENTITY subject.plaintextWarning "Let wel: E-posse se onderwerpreëls word nooit geënkripteer nie.">
+<!ENTITY status.heading "Die inhoud van u boodskap sal as volg versend word:">
+<!ENTITY status.signed "Digitaal onderteken:">
+<!ENTITY status.encrypted "Geënkripteer:">
+<!ENTITY status.certificates "Sertifikate:">
+<!ENTITY view.label "Bekyk">
+<!ENTITY view.accesskey "B">
+<!ENTITY tree.recipient "Ontvanger">
+<!ENTITY tree.status "Status">
+<!ENTITY tree.issuedDate "Uitgereik">
+<!ENTITY tree.expiresDate "Verval">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger-smime/msgCompSecurityInfo.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger-smime/msgCompSecurityInfo.properties
new file mode 100644
index 0000000000..2872a6f7ee
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Nie gevind nie
+StatusValid=Geldig
+StatusExpired=Verval
+StatusUntrusted=Onvertroud
+StatusRevoked=Opgehef
+StatusInvalid=Ongeldig
+StatusYes=Ja
+StatusNo=Nee
+StatusNotPossible=Nie moontlik nie
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger-smime/msgReadSMIMEOverlay.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger-smime/msgReadSMIMEOverlay.properties
new file mode 100644
index 0000000000..e8406d75a7
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Die vertoonde boodskap is digitaal onderteken, maar nog nie al die aanhegsels is afgelaai nie. Die ondertekening kan dus nie gevalideer word nie. Kliek OK om die hele boodskap af te laai en die ondertekening te valideer.
+#
+#NOTE To translater, anything between %..% and <..> should not be translated.
+# the former will be replaced by java script, and the latter is HTML formatting.
+#
+CantDecryptTitle=%brand% kan nie hierdie boodskap dekripteer nie
+CantDecryptBody=Die afsender het hierdie boodskap aan u geënkripteer met een van u digitale sertifikate, maar %brand% kon nie hierdie sertifikate en die ooreenstemmende private sleutel vind nie. <br> Moontlike oplossings: <br><ul><li>As u 'n knapkaart het, steek dit nou in. <li>As u 'n nuwe rekenaar gebruik, of as u 'n nuwe %brand%-profiel gebruik, moet u u sertifikaat en private sleutel van 'n dekkopie af teruglaai. Sertifikaatdekkopieë eindig gewoonlik in ".p12".</ul>\u0020
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger-smime/msgReadSecurityInfo.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger-smime/msgReadSecurityInfo.dtd
new file mode 100644
index 0000000000..a7329839b5
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger-smime/msgReadSecurityInfo.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 msgReadSecurityInfo.dtd UI for viewing security status when reading a received message -->
+
+
+<!ENTITY status.label "Boodskapsekuriteit">
+<!ENTITY signatureCert.label "Bekyk ondertekeningsertifikaat">
+<!ENTITY encryptionCert.label "Bekyk enkripsiesertifikaat">
+
+<!ENTITY signer.name "Onderteken deur:">
+<!ENTITY recipient.name "Geënkripteer vir:">
+<!ENTITY email.address "E-posadres:">
+<!ENTITY issuer.name "Sertifikate uitgereik deur:">
+
+
+<!-- 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/af/chrome/af/locale/af/messenger-smime/msgSecurityInfo.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger-smime/msgSecurityInfo.properties
new file mode 100644
index 0000000000..31baeb124d
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger-smime/msgSecurityInfo.properties
@@ -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/.
+
+## Signature Information strings
+SINoneLabel=Boodskap is nie digitaal onderteken nie
+SIValidLabel=Boodskap is onderteken
+SIValid=Hierdie boodskap bevat 'n geldige digitale handtekening. Daar is nie aan die boodskap gepeuter sedert dit versend is nie.
+SIInvalidLabel=Digitale handtekening is ongeldig
+SIInvalidHeader=Hierdie boodskap is wel digitaal onderteken, maar die handtekening is ongeldig.
+SIContentAltered=Die handtekening kom nie korrek met die boodskapinhoud ooreen nie. Dit wil voorkom of daar aan die boodskap gepeuter is sedert dit versend is. U moet liefs nie hierdie boodskap as geldig beskou voor u die inhoud daarvan met die afsender uitgeklaar het nie.
+SIRevoked=Die sertifikaat waarmee hierdie boodskap onderteken is, is opgehef. U moet liefs nie hierdie boodskap as geldig beskou voor u die inhoud daarvan met die afsender uitgeklaar het nie.
+SIUnknownCA=Die sertifikaat waarmee hierdie boodskap onderteken is, is deur 'n onbekende sertifiseergesag uitgereik.
+SIUntrustedCA=Die sertifikaat wat waarmee hierdie boodskap onderteken is, is uitgereik deur 'n sertifiseergesag wat u nie vir die uitreik van hierdie soort sertifisering vertrou nie.
+SIExpiredCA=Die sertifikaat wat waarmee hierdie boodskap onderteken is, is uitgereik deur 'n sertifiseergesag wie se eie sertifisering verval nie. Maak seker dat u rekenaar se klok korrek opgestel is.
+SIRevokedCA=Die sertifikaat wat waarmee hierdie boodskap onderteken is, is uitgereik deur 'n sertifiseergesag wie se eie sertifisering opgehef is. U moet liefs nie hierdie boodskap as geldig beskou voor u die inhoud daarvan met die afsender uitgeklaar het nie.
+SINotYetValidCA=Die sertifikaat wat waarmee hierdie boodskap onderteken is, is uitgereik deur 'n sertifiseergesag wie se eie sertifisering nog nie geldig is nie. Maak seker dat u rekenaar se klok korrek opgestel is.
+SIInvalidCipher=Die boodskap is onderteken met 'n enkripsiesterkte wat nie met hierdie weergawe van u sagteware werk nie.
+SIClueless=Daar is fout met hierdie digitale handtekening. U moet liefs nie hierdie boodskap as geldig beskou voor u die inhoud daarvan met die afsender uitgeklaar het nie.
+SIPartiallyValidLabel=Boodskap is onderteken
+SIPartiallyValidHeader=Hoewel die digitale handtekening geldig is, is dit nie bekend of die afsender en die ondertekenaar dieselfde persoon is nie.
+SIHeaderMismatch=Die e-posadres wat in die ondertekenaar se sertifikaat gelys word, verskil van die e-posadres wat gebruik is om hierdie boodskap te onderteken. Kyk na die handtekeningsertifikaat se besonderhede om te bepaal wie die boodskap onderteken het.
+SICertWithoutAddress=Die sertifikaat waarmee hierdie boodskap onderteken is, bevat nie 'n e-posadres nie. Kyk na die handtekeningsertifikaat se besonderhede om te bepaal wie die boodskap onderteken het.
+
+## Encryption Information strings
+EINone=Hierdie boodskap is nie geënkripteer voor dit versend is nie. Inligting wat sonder enkripsie oor die internet versend word, kan onderweg deur ander mense gesien word.
+EIValidLabel=Boodskap is geënkripteer
+EIValid=Hierdie boodskap is geënkripteer voor dit na u versend is. Enkripsie maak dit baie moeilik vir ander mense om onderweg oor die netwerk na die inligting te kyk.
+EIInvalidLabel=Boodskap kan nie gedekripteer word nie
+EIInvalidHeader=Hierdie boodskap is geënkripteer voor dit na u versend is, maar dit kan nie gedekripteer word nie.
+EIContentAltered=Dit wil voorkom of die inhoud van die boodskap onderweg gewysig is.
+EIClueless=Daar is fout met hierdie geënkripteerde boodskap.
+
+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.
+SIExpired=The certificate used to sign the message appears to have expired. Make sure your computer's clock is set correctly.
+SINotYetValid=The certificate used to sign the message appears not to be valid yet. Make sure your computer's clock is set correctly.
+## Encryption Information strings
+EINoneLabel2=Message Is Not Encrypted
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/AccountManager.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/AccountManager.dtd
new file mode 100644
index 0000000000..4fb17f94ec
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/AccountManager.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/. -->
+
+<!-- extracted from AccountManager.xul -->
+
+
+<!-- extracted from AccountManager.xhtml -->
+
+<!ENTITY accountManagerTitle.label "Rekeningopstelling">
+
+<!ENTITY accountActionsButton.label "Rekening-aksies">
+<!ENTITY accountActionsButton.accesskey "R">
+<!ENTITY addMailAccountButton.label "Voeg posrekening by…">
+<!ENTITY addMailAccountButton.accesskey "b">
+
+
+
+
+<!ENTITY setDefaultButton.label "Stel as verstek">
+<!ENTITY setDefaultButton.accesskey "v">
+<!ENTITY removeButton.label "Verwyder rekening">
+<!ENTITY removeButton.accesskey "V">
+
+<!-- AccountManager.xul -->
+<!-- LOCALIZATION NOTE : this is part of an inline-style attribute on the account
+ setting dialog, which specifies the width and height in em units of the dialog.
+ Localizers ONLY can increase these widths if they are having difficulty getting
+ panel content to fit.
+ 1ch = The width of the "0" (ZERO, U+0030) glyph for the current font.
+ 1em = The height of the font.
+ XUL/FE DEVELOPERS: DO NOT MODIFY THIS VALUE. It represents the correct size of
+ this window for en-US. -->
+
+<!-- AccountManager.xhtml -->
+
+
+<!ENTITY accountManagerCloseButton.label "Close">
+<!ENTITY addIMAccountButton.label "Add Chat Account…">
+<!ENTITY addIMAccountButton.accesskey "C">
+<!ENTITY addFeedAccountButton.label "Add Feed Account…">
+<!ENTITY addFeedAccountButton.accesskey "F">
+<!ENTITY addonsButton.label "Extensions &amp; Themes">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/AccountWizard.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/AccountWizard.dtd
new file mode 100644
index 0000000000..454fed90a1
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/AccountWizard.dtd
@@ -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/. -->
+
+<!-- Entities for AccountWizard -->
+
+
+<!ENTITY windowTitle.label "Rekeningslimmerd">
+<!ENTITY accountWizard.size "width: 40em; height: 38em;">
+
+<!-- Entities for Account Type page -->
+
+<!-- Entities for Identity page -->
+
+
+<!ENTITY identityTitle.label "Identiteit">
+<!ENTITY identityDesc.label "'n Mens kan vir elke rekening 'n eie identiteit opstel. Die identiteit sê aan mense wat u boodskappe ontvang, wie u is.">
+<!-- LOCALIZATION NOTE (fullnameDesc.label) : do not translate two of "&quot;" in below line -->
+
+<!-- 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 fullnameLabel.label "U naam:">
+<!ENTITY fullnameLabel.accesskey "U">
+
+<!ENTITY emailLabel.label "E-posadres:">
+<!ENTITY emailLabel.accesskey "E">
+
+<!-- Entities for Incoming Server page -->
+
+
+<!-- LOCALIZATION NOTE (incomingUsername.description) : do not translate "&quot;jsmith&quot;" in below line -->
+
+
+<!-- LOCALIZATION NOTE (newsServerNameDesc.label) : Do not translate "NNTP" or the "&quot;" entities in below line -->
+
+
+<!-- Entities for Outgoing Server page -->
+<!-- LOCALIZATION NOTE (outgoingServer.description) : Do not translate "SMTP" and "&quot;smtp.example.net&quot;" in below line -->
+
+
+<!-- LOCALIZATION NOTE (modifyOutgoing.suffix) : This string will be appended after each of
+ haveSmtp1.suffix3, haveSmtp2.suffix3, haveSmtp3.suffix3 .
+-->
+<!-- LOCALIZATION NOTE (haveSmtp1.prefix and haveSmtp1.suffix3) : Do not translate "SMTP" and "&quot;" in
+ these variables. Also, translate haveSmtp1.prefix and haveSmtp1.suffix3 as a single sentence, inserting
+ text after the "&quot;" entity in haveSmtp1.suffix3, if required grammatically.
+-->
+
+<!-- LOCALIZATION NOTE (haveSmtp2.prefix and haveSmtp2.suffix3) : Do not translate "SMTP" and "&quot;" in
+ these variables. Also, translate haveSmtp2.prefix and haveSmtp2.suffix3 as a single sentence, inserting
+ text after the "&quot;" entity in haveSmtp2.suffix3, if required grammatically.
+-->
+
+<!-- LOCALIZATION NOTE (haveSmtp3.prefix and haveSmtp3.suffix3) : Do not translate "SMTP" and "&quot;" in
+ these variables. Also, translate haveSmtp3.prefix and haveSmtp3.suffix3 as a single sentence, inserting
+ text after the "&quot;" entity in haveSmtp3.suffix3, if required grammatically.
+-->
+
+<!-- Entities for Account name page -->
+
+
+<!ENTITY accnameTitle.label "Rekeningnaam">
+<!-- LOCALIZATION NOTE (accnameDesc.label) : do not translate any "&quot;" in below line -->
+<!ENTITY accnameLabel.label "Rekeningnaam:">
+<!ENTITY accnameLabel.accesskey "R">
+
+<!-- Entities for Done (Congratulations) page -->
+
+
+<!ENTITY completionTitle.label "Baie geluk!">
+<!ENTITY completionText.label "Maak seker dat die inligting hieronder korrek is.">
+<!ENTITY newsServerNamePrefix.label "Nuusgroepbediener (NNTP):">
+<!ENTITY clickFinish.label "Kliek Klaar om hierdie opstelling te stoor en die rekeningslimmerd af te sluit.">
+<!ENTITY clickFinish.labelMac "Kliek Klaar om hierdie instellings te stoor en die rekeningslimmerd af te sluit.">
+
+<!-- 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 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">
+<!-- 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;).">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/CustomHeaders.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/CustomHeaders.dtd
new file mode 100644
index 0000000000..6dfbea558f
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Pasmaak kopskrifte">
+<!ENTITY addButton.label "Voeg by">
+<!ENTITY addButton.accesskey "V">
+<!ENTITY removeButton.label "Verwyder">
+<!ENTITY removeButton.accesskey "V">
+<!ENTITY newMsgHeader.label "Nuwe boodskapkopskrif:">
+<!ENTITY newMsgHeader.accesskey "N">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/FilterEditor.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/FilterEditor.dtd
new file mode 100644
index 0000000000..0905082832
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/FilterEditor.dtd
@@ -0,0 +1,82 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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 "Filterreëls">
+
+<!ENTITY filterName.label "Filternaam:">
+<!ENTITY filterName.accesskey "l">
+
+<!ENTITY junk.label "Gemors">
+<!ENTITY notJunk.label "Nie gemors nie">
+
+<!ENTITY lowestPriorityCmd.label "Laagste">
+<!ENTITY lowPriorityCmd.label "Laag">
+<!ENTITY normalPriorityCmd.label "Gewoon">
+<!ENTITY highPriorityCmd.label "Hoog">
+<!ENTITY highestPriorityCmd.label "Hoogste">
+
+
+
+
+
+
+
+
+
+
+
+
+<!ENTITY filterActionDesc.label "Doen hierdie aksies:">
+<!ENTITY filterActionDesc.accesskey "D">
+
+
+<!-- New Style Filter Rule Actions -->
+
+<!ENTITY moveMessage.label "Verskuif boodskap na">
+<!ENTITY copyMessage.label "Kopieer boodskap na">
+<!ENTITY forwardTo.label "Stuur boodskap aan na">
+<!ENTITY replyWithTemplate.label "Antwoord met sjabloon">
+<!ENTITY markMessageRead.label "Merk as gelees">
+
+<!ENTITY markMessageStarred.label "Voeg vlag by">
+<!ENTITY setPriority.label "Stel prioriteit op as">
+<!ENTITY addTag.label "Merk boodskap aan">
+<!ENTITY setJunkScore.label "Stel gemorsstatus op as">
+<!ENTITY deleteMessage.label "Skrap boodskap">
+<!ENTITY deleteFromPOP.label "Skrap van POP-bediener">
+<!ENTITY fetchFromPOP.label "Haal van POP-bediener">
+<!ENTITY ignoreThread.label "Ignoreer draad">
+<!ENTITY ignoreSubthread.label "Ignoreer subdraad">
+<!ENTITY watchThread.label "Hou draad dop">
+<!ENTITY stopExecution.label "Stop filteruitvoering">
+
+
+<!-- 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 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 filterActionOrderWarning.label "Note: Filter actions will be run in a different order.">
+<!ENTITY filterActionOrder.label "See execution order">
+<!ENTITY markMessageUnread.label "Mark As Unread">
+<!ENTITY addAction.tooltip "Add a new action">
+<!ENTITY removeAction.tooltip "Remove this action">
+<!-- Flex Attribute: https://developer.mozilla.org/docs/XUL/Attribute/flex -->
+<!ENTITY filterActionTypeFlexValue "1">
+<!ENTITY filterActionTargetFlexValue "4">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/FilterListDialog.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/FilterListDialog.dtd
new file mode 100644
index 0000000000..defcdb67d4
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/FilterListDialog.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 window.title "Boodskapfilters">
+<!ENTITY nameColumn.label "Filternaam">
+<!ENTITY activeColumn.label "Geaktiveer">
+<!ENTITY newButton.label "Nuwe…">
+<!ENTITY newButton.accesskey "N">
+
+
+<!ENTITY editButton.label "Redigeer…">
+<!ENTITY editButton.accesskey "e">
+<!ENTITY deleteButton.label "Skrap">
+<!ENTITY deleteButton.accesskey "a">
+
+
+
+<!ENTITY reorderUpButton.label "Skuif op">
+<!ENTITY reorderUpButton.accesskey "o">
+<!ENTITY reorderDownButton.label "Skuif af">
+<!ENTITY reorderDownButton.accesskey "a">
+
+
+
+<!ENTITY filterHeader.label "Geaktiveerde filters loop outomaties in die volgorde hieronder.">
+<!ENTITY filtersForPrefix.label "Filters vir:">
+<!ENTITY filtersForPrefix.accesskey "F">
+<!ENTITY viewLogButton.label "Filterstaaflêer">
+<!ENTITY viewLogButton.accesskey "s">
+<!ENTITY runFilters.label "Laat loop nou">
+<!ENTITY runFilters.accesskey "L">
+<!ENTITY stopFilters.label "Stop">
+<!ENTITY stopFilters.accesskey "S">
+<!ENTITY folderPickerPrefix.label "Laat gemêrkte filter(s) loop op:">
+<!ENTITY folderPickerPrefix.accesskey "k">
+<!ENTITY helpButton.label "Hulp">
+<!ENTITY helpButton.accesskey "H">
+<!ENTITY closeCmd.key "W">
+
+
+
+<!ENTITY newButton.popupCopy.label "Copy…">
+<!ENTITY newButton.popupCopy.accesskey "C">
+<!ENTITY reorderTopButton "Move to Top">
+<!ENTITY reorderTopButton.accessKey "o">
+<!ENTITY reorderTopButton.toolTip "Rearrange filter so it executes before all others">
+<!ENTITY reorderBottomButton "Move to Bottom">
+<!ENTITY reorderBottomButton.accessKey "B">
+<!ENTITY reorderBottomButton.toolTip "Rearrange filter so it executes after all others">
+<!ENTITY searchBox.emptyText "Search filters by name…">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/SearchDialog.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/SearchDialog.dtd
new file mode 100644
index 0000000000..e121763603
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/SearchDialog.dtd
@@ -0,0 +1,59 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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 "Soek vir boodskappe in:">
+<!ENTITY searchHeading.accesskey "k">
+<!ENTITY searchSubfolders.label "Deursoek subvouers">
+<!ENTITY searchSubfolders.accesskey "u">
+<!ENTITY searchOnServer.label "Doen soektog op bediener">
+<!ENTITY searchOnServer.accesskey "D">
+<!ENTITY resetButton.label "Maak skoon">
+<!ENTITY resetButton.accesskey "M">
+<!ENTITY openButton.label "Open">
+<!ENTITY openButton.accesskey "n">
+
+
+<!ENTITY searchDialogTitle.label "Deursoek boodskappe">
+<!ENTITY results.label "Resultate">
+
+
+<!ENTITY closeCmd.key "W">
+<!ENTITY openInFolder.label "Open in vouer">
+<!ENTITY openInFolder.accesskey "v">
+<!ENTITY saveAsVFButton.label "Stoor as soekvouer">
+<!ENTITY saveAsVFButton.accesskey "t">
+<!-- for ABSearchDialog.xul -->
+
+<!ENTITY abSearchHeading.label "Soek in:">
+<!ENTITY abSearchHeading.accesskey "e">
+<!ENTITY propertiesButton.label "Eienskappe">
+<!ENTITY propertiesButton.accesskey "E">
+<!ENTITY composeButton.label "Skryf">
+<!ENTITY composeButton.accesskey "S">
+
+
+<!ENTITY abSearchDialogTitle.label "Gevorderde adresboeksoektog">
+<!-- Thread Pane -->
+
+<!-- Thread Pane Tooltips -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!ENTITY deleteButton.label "Delete">
+<!ENTITY deleteButton.accesskey "D">
+<!ENTITY moveButton.label "Move To">
+<!ENTITY moveButton.accesskey "T">
+<!ENTITY deleteCardButton.label "Delete">
+<!ENTITY deleteCardButton.accesskey "D">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/aboutDownloads.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/aboutDownloads.dtd
new file mode 100644
index 0000000000..4cb348266f
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/aboutDownloads.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 aboutDownloads.title "Gestoorde lêers">
+
+<!-- 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.open.label "Open">
+<!ENTITY cmd.open.accesskey "O">
+
+
+
+
+
+
+
+
+<!-- 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.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/af/chrome/af/locale/af/messenger/aboutRights.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/aboutRights.properties
new file mode 100644
index 0000000000..ba1d7dd115
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Ken u regte…
+buttonAccessKey=K
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/aboutSupportMail.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/aboutSupportMail.properties
new file mode 100644
index 0000000000..5c130c39c4
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/messenger/accountCreationModel.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/accountCreationModel.properties
new file mode 100644
index 0000000000..229a719e07
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/accountCreationModel.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/.
+
+# 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=Die opstellingslêer se XML bevat nie 'n e-posrekeningopstelling nie.
+outgoing_not_smtp.error=Die uitgaande bediener moet 'n SMTP-tipe wees
+
+# verifyConfig.js
+cannot_login.error=Kon nie by die bediener aanmeld nie. Waarskynlik verkeerde opstelling, gebruikernaam of wagwoord.
+
+
+# guessConfig.js
+cannot_find_server.error=Kon nie bediener vind nie
+
+
+# exchangeAutoDiscover.js
+no_autodiscover.error=The Exchange AutoDiscover XML is invalid.
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/accountCreationUtil.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/accountCreationUtil.properties
new file mode 100644
index 0000000000..01e9e8bc69
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/accountCreationUtil.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/.
+
+# 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=Gasheernaam is leeg of bevat verbode karakters. Net letters, syfers, - en . word toegelaat.
+alphanumdash.error=String bevat nieondersteunde karakters. Net letters, syfers, - en _ word toegelaat.
+allowed_value.error=Voorsiende waarde nie in toegelate lys nie
+url_scheme.error=URL-skema nie toegelaat nie
+url_parsing.error=URL nie herken nie
+string_empty.error=U moet 'n waarde vir hierdie instelling gee
+boolean.error=Nie 'n boolese nie
+no_number.error=Nie 'n syfer nie
+number_too_large.error=Syfer te groot
+number_too_small.error=Syfer te klein
+
+
+# fetchhttp.js
+cannot_contact_server.error=Kan nie bediener kontak nie
+bad_response_content.error=Slegterespons-inhoud
+
+# 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=Kon nie aanmeld nie. Is die gebruikernaam/e-posadres en wagwoord korrek?
+# 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=Kon nie aanmeld nie. Die bediener %1$S het gesê: %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.
+# 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
+
+# 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/af/chrome/af/locale/af/messenger/activity.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/activity.dtd
new file mode 100644
index 0000000000..3e2ac92079
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/activity.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/. -->
+<!-- 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 activity.title "Aktiwiteitbestuurder">
+
+<!ENTITY cmd.close.commandkey "w">
+<!ENTITY cmd.close2.commandkey "j">
+<!ENTITY cmd.close2Unix.commandkey "y">
+<!ENTITY cmd.clearList.label "Maak lys skoon">
+<!ENTITY cmd.clearList.tooltip "Verwyder afgehandelde, gekanselleerde of mislukte items uit die lys">
+<!ENTITY cmd.clearList.accesskey "M">
+
+
+<!-- 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">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/activity.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/activity.properties
new file mode 100644
index 0000000000..bddab3bd1b
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/activity.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/.
+
+# Status Text
+paused2=Laat wag
+processing=Verwerk
+notStarted=Nie begin nie
+failed=Misluk
+waitingForInput=Vir toevoer wag
+waitingForRetry=Vir herprobeer wag
+completed=Voltooid
+canceled=Gekanselleer
+
+# LOCALIZATION NOTE (sendingMessages): this is used as a title for grouping processes in the activity manager when sending email.
+sendingMessages=Stuur boodskappe
+sendingMessage=Stuur tans boodskap
+# LOCALIZATION NOTE (sendingMessageWithSubject): %S will be replaced by the subject of the message being sent.
+sendingMessageWithSubject=Boodskap stuur: %S
+copyMessage=Boodskap na gestuur-vouer kopieer
+sentMessage=Gestuurde boodskap
+# LOCALIZATION NOTE (sentMessageWithSubject): %S will be replaced by the subject of the message being sent.
+sentMessageWithSubject=Boodskap gestuur: %S
+failedToSendMessage=Kon nie boodskap stuur nie
+failedToCopyMessage=Kon nie boodskap kopieer nie
+# LOCALIZATION NOTE (failedToSendMessageWithSubject): %S will be replaced by the subject of the message being sent.
+failedToSendMessageWithSubject=Kon nie boodskap stuur nie: %S
+# LOCALIZATION NOTE (failedToCopyMessageWithSubject): %S will be replaced by the subject of the message being sent.
+failedToCopyMessageWithSubject=Kon nie boodskap kopieer nie: %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…
+# LOCALIZATION NOTE (autosyncProcessDisplayText): %S will be replaced by the folder name
+autosyncProcessDisplayText=Vouer %S op datum bring
+# LOCALIZATION NOTE (autosyncEventDisplayText): %S will be replaced by the account name
+autosyncEventDisplayText=%S is op datum
+# LOCALIZATION NOTE (autosyncEventStatusText): %S will be replaced by total number of downloaded messages
+autosyncEventStatusText=Totale getal boodskappe afgelaai: %S
+autosyncEventStatusTextNoMsgs=Geen boodskappe afgelaai nie
+# LOCALIZATION NOTE (autosyncContextDisplayText): %S will be replaced by the account name
+autosyncContextDisplayText=Sinchroniseer: %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…
+# LOCALIZATION NOTE (pop3EventDisplayText): %S will be replaced by the account name
+pop3EventDisplayText=%S is op datum
+# LOCALIZATION NOTE (pop3EventStatusText): #1 will be replaced by total number of downloaded messages
+pop3EventStatusText=#1 boodskap afgelaai;#1 boodskappe afgelaai
+pop3EventStatusTextNoMsgs=Geen boodskappe om af te laai nie
+
+# Message actions that show up in activity manager
+# LOCALIZATION NOTE (deletedMessages2): #1 number of messages, #2 folder name
+deletedMessages2=#1 boodskap uit #2 geskrap;#1 boodskappe uit #2 geskrap
+# LOCALIZATION NOTE (movedMessages): #1 number of messages, #2 and #3: folder names
+movedMessages=#1 boodskap uit #2 na #3 geskuif;#1 boodskappe uit #2 na #3 geskuif
+# LOCALIZATION NOTE (copiedMessages): #1 number of messages, #2 and #3: folder names
+copiedMessages=#1 boodskap uit #2 na #3 gekopieer;#1 boodskappe uit #2 na #3 gekopieer
+# LOCALIZATION NOTE (fromServerToServer): #1 source server, #2 destination server
+fromServerToServer=van #1 na #2
+# LOCALIZATION NOTE (deletedFolder): #1 folder name
+deletedFolder=Vouer #1 geskrap
+emptiedTrash=Snippermandjie is leeggemaak
+# LOCALIZATION NOTE (movedFolder): #1 and #2 are folder names
+movedFolder=Vouer #1 tot in #2 geskuif
+# LOCALIZATION NOTE (movedFolderToTrash): #1 is the folder name
+movedFolderToTrash=Vouer #1 na die snippermandjie geskuif
+# LOCALIZATION NOTE (copiedFolder): #1 and #2 are folder names
+copiedFolder=Vouer #1 tot in #2 gekopieer
+# LOCALIZATION NOTE (renamedFolder): #1 and #2 are folder names
+renamedFolder=Vouer #1 na #2 hernoem
+indexing=Indekseer tans boodskappe
+# LOCALIZATION NOTE (indexingFolder): #1 is a folder name
+indexingFolder=Boodskappe in #1 indekseer
+indexingStatusVague=Bepaal tans watter boodskappe om te indekseer
+# LOCALIZATION NOTE (indexingFolderStatusVague): #1 is a folder name
+indexingFolderStatusVague=Bepaal tans watter boodskappe om in #1 te indekseer
+# 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=Boodskap #1 van #2 indekseer;Boodskap #1 van #2 indekseer (#3% voltooi)
+# 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=Boodskap #1 van #2 in #4 indekseer;Boodskap #1 van #2 in #4 indekseer (#3% voltooi)
+# LOCALIZATION NOTE (indexedFolder): #1 number of messages; #2 folder name
+indexedFolder=Boodskap #1 in #2 geïndekseer;Boodskap #1 in #2 geïndekseer
+# LOCALIZATION NOTE (indexedFolderStatus): #1 number of seconds spent indexing
+indexedFolderStatus=#1 sekonde verloop;#1 sekondes verloop
+
+# 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 (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…
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/addbuddy.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/addbuddy.dtd
new file mode 100644
index 0000000000..0e225b9318
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/addbuddy.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 account.label "Rekening">
+
+<!ENTITY addBuddyWindow.title "Add contact">
+<!ENTITY name.label "Username">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/abAddressBookNameDialog.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/abAddressBookNameDialog.dtd
new file mode 100644
index 0000000000..96bcae62dd
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Adresboeknaam:">
+<!ENTITY name.accesskey "A">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/abContactsPanel.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/abContactsPanel.dtd
new file mode 100644
index 0000000000..ba9c1ab142
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/abContactsPanel.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/. -->
+
+
+
+
+
+
+
+
+
+<!ENTITY addressbookPicker.label "Adresboek:">
+<!ENTITY addressbookPicker.accesskey "b">
+
+
+<!ENTITY SearchNameOrEmail.label "Naam of e-pos">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!ENTITY toButton.label "Voeg by Aan:">
+<!ENTITY toButton.accesskey "V">
+
+
+<!ENTITY bccButton.label "Voeg by BCC:">
+<!ENTITY bccButton.accesskey "B">
+
+<!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 searchContacts.label "Search Contacts:">
+<!ENTITY searchContacts.accesskey "n">
+<!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 ccButton.label "Add to Cc:">
+<!ENTITY ccButton.accesskey "C">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/abMailListDialog.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/abMailListDialog.dtd
new file mode 100644
index 0000000000..fa1815c0e2
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/abMailListDialog.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/. -->
+<!-- Title -->
+<!-- Labels and Access Keys -->
+
+<!ENTITY addToAddressBook.label "Voeg by: ">
+<!ENTITY addToAddressBook.accesskey "V">
+<!ENTITY ListName.label "Lysnaam: ">
+<!ENTITY ListName.accesskey "L">
+<!ENTITY ListNickName.label "Lys-kennaam: ">
+<!ENTITY ListNickName.accesskey "k">
+
+
+<!-- See bug 58485, when we implement drag and drop, add 'or drag addresses' back in -->
+
+<!ENTITY UpButton.label "Skuif op">
+<!ENTITY DownButton.label "Skuif af">
+
+
+<!-- Title -->
+<!ENTITY mailListWindowAdd.title "New Mailing List">
+<!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">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/abMainWindow.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/abMainWindow.dtd
new file mode 100644
index 0000000000..8f73c5eb72
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/abMainWindow.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/. -->
+
+
+<!-- File Menu -->
+
+<!-- Edit Menu -->
+
+<!-- LOCALIZATION NOTE (hideSwapFnLnUI) : DONT_TRANSLATE -->
+
+
+
+
+
+
+<!-- View Menu -->
+
+
+
+
+<!-- LOCALIZATION NOTE (firstLastCmd2.label): We're not including a comma here
+because displayed names don't have the comma in between. -->
+
+<!-- Tools Menu -->
+
+
+<!-- Address Book Toolbar and Context Menus -->
+
+
+
+
+
+
+
+
+
+
+
+<!-- Address Book Toolbar Tooltips -->
+
+
+
+<!-- Dir Tree header -->
+
+<!-- Search Bar -->
+
+<!ENTITY SearchNameOrEmail.label "Naam of e-pos">
+<!-- Results Pane -->
+
+<!ENTITY GeneratedName.label "Naam">
+<!ENTITY PrimaryEmail.label "E-pos">
+
+
+<!-- Card Summary Pane -->
+<!-- Box Headings -->
+
+<!-- Status Bar -->
+
+<!-- Mac OS X Window Menu -->
+
+
+<!ENTITY showAsDefault.label "Default startup directory">
+<!ENTITY showAsDefault.accesskey "S">
+<!-- Results Pane -->
+<!ENTITY Addrbook.label "Address Book">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/abResultsPane.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/abResultsPane.dtd
new file mode 100644
index 0000000000..29044874fc
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/messenger/addressbook/addressBook.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/addressBook.properties
new file mode 100644
index 0000000000..f32694adad
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/addressBook.properties
@@ -0,0 +1,253 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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.
+emptyListName=U moet 'n lysnaam intik.
+lastFirstFormat=%S, %S
+firstLastFormat=%S %S
+
+
+newContactTitle=Nuwe kennis
+# %S will be the contact's display name
+newContactTitleWithDisplayName=Nuwe kennis vir %S
+editContactTitle=Redigeer kennis
+# %S will be the contact's display name
+editContactTitleWithDisplayName=Redigeer inskrywing vir %S
+# don't translate vCard
+editVCardTitle=Redigeer vCard
+# %S will be the card's display name, don't translate vCard
+editVCardTitleWithDisplayName=Redigeer vCard vir %S
+
+## LOCALIZATION NOTE (cardRequiredDataMissingMessage): do not localize \n
+cardRequiredDataMissingMessage=U moet ten minste een van die volgende items intik:\nE-posadres, voornaam, van, vertoonnaam, organisasie.
+cardRequiredDataMissingTitle=Vereiste inligting word vermis
+incorrectEmailAddressFormatMessage=Die primêre e-posadres moet in die vorm gebruiker@gasheer wees.
+incorrectEmailAddressFormatTitle=Verkeerde e-posadresformaat
+
+viewListTitle=Poslys: %S
+mailListNameExistsTitle=Poslys bestaan reeds
+mailListNameExistsMessage='n Poslys met daardie naam bestaan reeds. Gebruik asseblief 'n ander naam.
+
+# LOCALIZATION NOTE (confirmDeleteThisContact):
+# #1 The name of the selected contact
+# Don't localize "\n• #1" unless your local layout comes out wrong.
+# Example: Are you sure you want to delete this contact?
+# • John Doe
+
+# LOCALIZATION NOTE (confirmDelete2orMoreContacts):
+# Semicolon list of plural forms.
+# See: http://developer.mozilla.org/docs/Localization_and_Plurals
+# #1 The number of selected contacts, always more than 1.
+# Example: Are you sure you want to delete these 3 contacts?
+
+# LOCALIZATION NOTE (confirmRemoveThisContact):
+# #1 The name of the selected contact
+# #2 The name of the containing mailing list
+# This title is about a contact in a mailing list, so it will not be deleted,
+# but only removed from the list.
+# Don't localize "\n• #1" unless your local layout comes out wrong.
+# Example: Are you sure you want to remove this contact from the mailing list 'Customers List'?
+# • John Doe
+
+# LOCALIZATION NOTE (confirmRemove2orMoreContacts):
+# Semicolon list of singular and plural forms.
+# See: http://developer.mozilla.org/docs/Localization_and_Plurals
+# #1 The number of selected contacts, always more than 1.
+# #2 The name of the containing mailing list
+# Example: Are you sure you want to remove these 3 contacts from the mailing list 'Customers List'?
+
+# LOCALIZATION NOTE (confirmDeleteThisMailingList):
+# #1 The name of the selected mailing list
+# Don't localize "\n• #1" unless your local layout comes out wrong.
+# Example: Are you sure you want to delete this mailing list?
+# • Customers List
+
+# LOCALIZATION NOTE (confirmDelete2orMoreMailingLists):
+# Semicolon list of plural forms.
+# See: http://developer.mozilla.org/docs/Localization_and_Plurals
+# #1 The number of selected mailing lists, always more than 1
+# Example: Are you sure you want to delete these 3 mailing lists?
+
+# LOCALIZATION NOTE (confirmDelete2orMoreContactsAndLists):
+# Semicolon list of and plural forms.
+# See: http://developer.mozilla.org/docs/Localization_and_Plurals
+# #1 The number of selected contacts and mailing lists, always more than 1
+# Example: Are you sure you want to delete these 3 contacts and mailing lists?
+
+# LOCALIZATION NOTE (confirmDeleteThisAddressbookTitle):
+# #1 The name of the selected address book
+# Don't localize "\n• #1" unless your local layout comes out wrong.
+# Example: Are you sure you want to delete this address book and all of its contacts?
+# • Friends and Family Address Book
+
+# LOCALIZATION NOTE (confirmDeleteThisLDAPDir):
+# #1 The name of the selected LDAP directory
+# Don't localize "\n• #1" unless your local layout comes out wrong.
+# Example: Are you sure you want to delete the local copy of this LDAP directory and all of its offline contacts?
+# • Mozilla LDAP Directory
+
+# LOCALIZATION NOTE (confirmDeleteThisCollectionAddressbook):
+# #1 The name of the selected collection address book
+# #2 The name of the application (Thunderbird)
+# Don't localize "\n• #1" unless your local layout comes out wrong.
+# Example: If this address book is deleted, Thunderbird will no longer collect addresses.
+# Are you sure you want to delete this address book and all of its contacts?
+# • My Collecting Addressbook
+
+propertyPrimaryEmail=E-pos
+propertyListName=Lysnaam
+propertySecondaryEmail=Bykomende e-pos
+propertyNickname=Bynaam
+propertyDisplayName=Vertoonnaam
+propertyWork=Werk
+propertyHome=Huis
+propertyFax=Faks
+propertyCellular=Selfoon
+propertyPager=Roeper
+propertyBirthday=Verjaardag
+propertyCustom1=Doelmaak 1
+propertyCustom2=Doelmaak 2
+propertyCustom3=Doelmaak 3
+propertyCustom4=Doelmaak 4
+
+
+## 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=Aan
+prefixCc=CC
+prefixBcc=BCC
+addressBook=Adresboek
+
+browsePhoto=Kennisfoto
+
+# mailnews.js
+ldap_2.servers.pab.description=Persoonlike adresboek
+ldap_2.servers.history.description=Versamelde adresse
+## LOCALIZATION NOTE (ldap_2.servers.osx.description is only used on Mac OS X)
+ldap_2.servers.osx.description=Mac OS X-adresboek
+
+# status bar stuff
+## LOCALIZATION NOTE (totalContactStatus):
+## %1$S is address book name, %2$S is contact count
+totalContactStatus=Totale kennisse in %1$S: %2$S
+noMatchFound=Geen resultate gevind nie
+## 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
+
+## 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 kennis gekopieer;%1$S kennisse gekopieer
+
+## 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 kennis geskuif;%1$S kennisse geskuif
+
+# LDAP directory stuff
+invalidName=Tik 'n geldige naam in.
+invalidHostname=Tik 'n geldige gasheernaam in.
+invalidPortNumber=Tik 'n geldige poortnommer in.
+invalidResults=Tik 'n geldige getal in die resultateveld in.
+abReplicationOfflineWarning=U moet aanlyn werk om 'n LDAP te repliseer.
+abReplicationSaveSettings=Die opstelling moet gestoor word voor u 'n gids kan aflaai.
+
+# For importing / exporting
+## LOCALIZATION NOTE (ExportAddressBookNameTitle): %S is the name of exported addressbook
+LDIFFiles=LDIF
+CSVFiles=Kommageskei
+TABFiles=Keepgeskei
+failedToExportTitle=Kon nie uitvoer nie
+failedToExportMessageNoDeviceSpace=Kon nie adresboek uitvoer nie, geen spasie oor nie.
+failedToExportMessageFileAccessDenied=Kon nie adresboek uitvoer nie, toegang geweier.
+
+# For getting authDN for replication using dlg box
+AuthDlgTitle=Adresboek-LDAP-replikasie
+AuthDlgDesc=Tik u gebruikernaam en wagwoord in om die gidsbediener te gebruik.
+
+# LOCALIZATION NOTE(joinMeInThisChat)
+# use + for spaces
+joinMeInThisChat=Sluit+by+my+aan+in+hierdie+kletskamer.
+
+# For printing
+headingHome=Huis
+headingWork=Werk
+headingOther=Ander
+headingPhone=Telefoon
+headingDescription=Beskrywing
+headingAddresses=Adresse
+
+# For address books
+addressBookTitleNew=Nuwe adresboek
+## LOCALIZATION NOTE (addressBookTitleEdit): %S will be replaced by the the Address Book's name
+
+# For corrupt .mab files
+corruptMabFileTitle=Korrupte adresboeklêer
+corruptMabFileAlert=Kon een van u adresboeklêers (%1$S-lêer) nie lees nie. 'n Nuwe %2$S-lêer sal geskep word en 'n dekkopie van die ou lêer, genaamd %3$S, sal in dieselfde subgids geskep word.
+
+# For locked .mab files
+lockedMabFileTitle=Kon nie adresboeklêer laai nie
+lockedMabFileAlert=Kon nie adresboeklêer %S laai nie. Dalk is dit 'n leesalleenlêer, of dalk word dit deur 'n ander program beset. Probeer later weer.
+
+# 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
+badListNameCharacters=A list name cannot contain any of the following characters: < > ; , "
+badListNameSpaces=A list name cannot contain multiple adjacent spaces.
+allAddressBooks=All Address Books
+propertyGtalk=Google Talk
+propertyAIM=AIM
+propertyYahoo=Yahoo!
+propertySkype=Skype
+propertyQQ=QQ
+propertyMSN=MSN
+propertyICQ=ICQ
+propertyXMPP=Jabber ID
+propertyIRC=IRC Nick
+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.
+## LOCALIZATION NOTE (ldap_2.servers.outlook.description is only used on Windows)
+ldap_2.servers.outlook.description=Outlook Address Book
+## 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
+# For importing / exporting
+## LOCALIZATION NOTE (ExportAddressBookNameTitle): %S is the name of exported addressbook
+ExportAddressBookNameTitle=Export Address Book - %S
+CSVFilesSysCharset=Comma Separated (System Charset)
+CSVFilesUTF8=Comma Separated (UTF-8)
+TABFilesSysCharset=Tab Delimited (System Charset)
+TABFilesUTF8=Tab Delimited (UTF-8)
+VCFFiles=vCard
+SupportedABFiles=Supported Address Book Files
+headingChat=Chat
+# 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
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/ldapAutoCompErrs.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/ldapAutoCompErrs.properties
new file mode 100644
index 0000000000..68bb9db591
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/ldapAutoCompErrs.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/.
+
+# 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.
+
+# 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=Kon nie LDAP inisialiseer nie
+
+## @name ERR_STATE_INITIALIZING
+## @loc none
+1=Kon nie aan LDAP-bediener koppel nie
+
+## @name ERR_STATE_BINDING
+## @loc none
+2=Kon nie aan LDAP-bediener koppel nie
+
+## @name ERR_STATE_BOUND
+## @loc none
+3=Kommunikasieprobleem met LDAP-bediener
+
+## @name ERR_STATE_SEARCHING
+## @loc none
+4=Soektogprobleem met LDAP-bediener
+
+
+# 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=Foutkode %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=Gasheer nie gevind nie
+
+## @name GENERIC_ERROR
+## @loc none
+9999=Onbekende probleem
+
+
+# Hints to for the user, associated with specific error codes (ie error code
+# + 10000)
+
+
+## @name TIMELIMIT_EXCEEDED_HINT
+## @loc none
+10003=Probeer later weer, of kontak andersins die stelseladministrateur.
+
+## @name STRONGAUTH_REQUIRED_HINT
+## @loc none
+10008=Sterk magtiging werk nie op die bediener nie.
+
+## @name INVALID_SYNTAX_HINT
+## @loc none
+10021=Maak seker dat die soekfilter reg is, en probeer later weer, of kontak andersins die stelseladministrateur. Om te kontroleer of die soekfilter reg is, kies Voorkeure op die Redigeer-kieslys, en kies dan Pos en Nuusgroepe, en kies dan Addressering. Kliek Redigeer gidse, en kies die LDAP-bediener wat gebruik word. Kliek Redigeer, en kliek Gevorderd om die soekfilter te vertoon.
+
+## @name NO_SUCH_OBJECT_HINT
+## @loc none
+10032=Maak seker dat die Basis-DN reg is, en probeer later weer, of kontak andersins die stelseladministrateur. Om te kontroleer of die Basis-DN reg is, kies Voorkeure op die Redigeer-kieslys, en kies dan Pos en Nuusgroepe, en kies dan Addressering. Kliek Redigeer gidse, en kies die LDAP-bediener wat gebruik word. Kliek Redigeer om die Basis-DN te vertoon.
+
+## @name BUSY_HINT
+## @loc none
+10051=Probeer gerus later weer.
+
+## @name SERVER_DOWN_HINT
+## @loc none
+10081=Maak seker dat die gasheernaam en poortnommer reg is, en probeer later weer, of kontak andersins die stelseladministrateur. Om te kontroleer of die gasheernaam en poortnommer reg is, kies Voorkeure op die Redigeer-kieslys, en kies dan Pos en Nuusgroepe, en kies dan Addressering. Kliek Redigeer gidse, en kies die LDAP-bediener wat gebruik word. Kliek Redigeer om die gasheernaam te vertoon. Kliek Gevorderd om die poortnommer te vertoon.
+
+## @name TIMEOUT_HINT
+## @loc none
+10085=Probeer gerus later weer.
+
+## @name FILTER_ERROR_HINT
+## @loc none
+10087=Maak seker dat die soekfilter reg is, en probeer later weer, of kontak andersins die stelseladministrateur. Om te kontroleer of die soekfilter reg is, kies Voorkeure op die Redigeer-kieslys, en kies dan Pos en Nuusgroepe, en kies dan Addressering. Kliek Redigeer gidse, en kies die LDAP-bediener wat gebruik word. Kliek Redigeer, en kliek Gevorderd om die soekfilter te vertoon.
+
+## @name NO_MEMORY_HINT
+## @loc none
+10090=Sluit 'n paar ander vensters en/of toepassings af en probeer gerus weer.
+
+## @name CONNECT_ERROR_HINT
+## @loc none
+10091=Maak seker dat die gasheernaam en poortnommer reg is, en probeer later weer, of kontak andersins die stelseladministrateur. Om te kontroleer of die gasheernaam en poortnommer reg is, kies Voorkeure op die Redigeer-kieslys, en kies dan Pos en Nuusgroepe, en kies dan Addressering. Kliek Redigeer gidse, en kies die LDAP-bediener wat gebruik word. Kliek Redigeer om die gasheernaam te vertoon. Kliek Gevorderd om die poortnommer te vertoon.
+
+## @name HOST_NOT_FOUND_HINT
+## @loc none
+15000=Maak seker dat die gasheernaam reg is, en probeer later weer, of kontak andersins die stelseladministrateur. Om te kontroleer of die gasheernaam reg is, kies Voorkeure op die Redigeer-kieslys, en kies dan Pos en Nuusgroepe, en kies dan Addressering. Kliek Redigeer gidse, en kies die LDAP-bediener wat gebruik word. Kliek Redigeer om die gasheernaam te vertoon.
+
+## @name GENERIC_HINT
+## @loc none
+19999=Kontak u stelseladministrateur.
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/pref-directory-add.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/pref-directory-add.dtd
new file mode 100644
index 0000000000..3777d3e0a6
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Naam: ">
+<!ENTITY directoryName.accesskey "N">
+<!ENTITY directoryHostname.label "Gasheernaam: ">
+<!ENTITY directoryHostname.accesskey "a">
+<!ENTITY directoryBaseDN.label "Basis-DN: ">
+<!ENTITY directoryBaseDN.accesskey "B">
+<!ENTITY findButton.label "Vind">
+<!ENTITY findButton.accesskey "V">
+<!ENTITY directorySecure.label "Gebruik beveiligde verbinding (SSL)">
+<!ENTITY directorySecure.accesskey "G">
+<!ENTITY directoryLogin.label "Bind-DN: ">
+<!ENTITY directoryLogin.accesskey "i">
+<!ENTITY General.tab "Algemeen">
+<!ENTITY Offline.tab "Aflyn">
+<!ENTITY Advanced.tab "Gevorderd">
+<!ENTITY portNumber.label "Poortnommer: ">
+<!ENTITY portNumber.accesskey "P">
+<!ENTITY searchFilter.label "Soek-filter: ">
+<!ENTITY searchFilter.accesskey "f">
+<!ENTITY scope.label "Omvang: ">
+<!ENTITY scope.accesskey "m">
+<!ENTITY scopeOneLevel.label "Een vlak">
+<!ENTITY scopeOneLevel.accesskey "v">
+<!ENTITY scopeSubtree.label "Subboom">
+<!ENTITY scopeSubtree.accesskey "S">
+<!ENTITY return.label "Moenie meer as">
+<!ENTITY return.accesskey "m">
+<!ENTITY results.label "resultate oplewer nie">
+<!ENTITY offlineText.label "U kan hierdie gids aflaai sodat dit beskikbaar is wanneer u aflyn werk.">
+<!ENTITY saslMechanism.label "Aanmeldmetode: ">
+<!ENTITY saslMechanism.accesskey "m">
+<!ENTITY saslOff.label "Eenvoudig">
+<!ENTITY saslOff.accesskey "E">
+<!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/af/chrome/af/locale/af/messenger/addressbook/pref-directory.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/pref-directory.dtd
new file mode 100644
index 0000000000..d4b64eec85
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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-gidsbedieners">
+<!-- LOCALIZATION NOTE (directories.label) : do not translate "LDAP" in below line -->
+<!ENTITY directories.label "LDAP-gidsbediener:">
+<!-- LOCALIZATION NOTE (directoriesText.label) : do not translate "LDAP" in below line -->
+<!ENTITY directoriesText.label "Kies 'n LDAP-gidsbediener:">
+<!ENTITY directoriesText.accesskey "K">
+<!ENTITY addDirectory.label "Voeg by">
+<!ENTITY addDirectory.accesskey "V">
+<!ENTITY editDirectory.label "Redigeer">
+<!ENTITY editDirectory.accesskey "e">
+<!ENTITY deleteDirectory.label "Skrap">
+<!ENTITY deleteDirectory.accesskey "S">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/replicationProgress.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/replicationProgress.properties
new file mode 100644
index 0000000000..9a3afe4414
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/addressbook/replicationProgress.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/.
+replicationStarted=Replikasie het begin…
+changesStarted=Het begin om veranderinge te kry om te repliseer…
+replicationSucceeded=Replikasie suksesvol
+replicationFailed=Replikasie het misluk
+replicationCancelled=Replikasie gekanselleer
+# LOCALIZATION NOTE
+# do not localize %S. %S is the current entry number (an integer)
+currentCount=Replikasie-gidsinskrywing: %S
+
+downloadButton=Laai nou af
+downloadButton.accesskey=n
+cancelDownloadButton=Kanselleer aflaai
+cancelDownloadButton.accesskey=K
+
+## LOCALIZATION NOTE (directoryTitleEdit): %S will be replaced by the LDAP directory's display name
+
+
+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/af/chrome/af/locale/af/messenger/am-addressing.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-addressing.dtd
new file mode 100644
index 0000000000..06181e9773
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-addressing.dtd
@@ -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/. -->
+
+<!-- extracted from am-addressing.xul -->
+
+<!-- extracted from am-addressing.xhtml -->
+
+<!-- extracted from am-addressing.xul -->
+<!ENTITY addressingGroupTitle.label "Adresbediener">
+<!ENTITY addressingText.label "Wanneer adresse deursoek word:">
+<!-- LOCALIZATION NOTE (override.label) : do not translate "LDAP" in below line -->
+<!ENTITY useGlobal.label "Gebruik die algemene LDAP-bedienervoorkeure vir hierdie rekening">
+<!ENTITY useGlobal.accesskey "G">
+<!ENTITY editDirectories.label "Wysig gidse…">
+<!ENTITY editDirectories.accesskey "W">
+<!-- LOCALIZATION NOTE (directories.label) : do not translate "LDAP" in below line -->
+
+<!ENTITY directoriesNone.label "Geen">
+
+<!-- am-addressing.xul -->
+
+
+<!-- am-addressing.xhtml -->
+
+<!ENTITY compositionGroupTitle.label "Opstelling">
+<!-- LOCALIZATION NOTE (useHtml.label) : do not translate "html" in below line -->
+<!ENTITY useHtml.label "Skryf boodskappe in HTML-formaat">
+<!ENTITY useHtml.accesskey "S">
+<!ENTITY autoQuote.label "Haal outomaties die oorspronklike boodskap aan wanneer antwoord">
+<!ENTITY autoQuote.accesskey "m">
+<!ENTITY aboveQuote.label "begin my antwoord bo die aangehaalde teks">
+<!ENTITY belowQuote.label "begin my antwoord onder die aangehaalde teks">
+<!ENTITY selectAndQuote.label "merk die aangehaalde teks">
+<!ENTITY place.label "en plaas my handtekening">
+<!ENTITY place.accesskey "h">
+<!ENTITY belowText.label "onder die aangehaalde teks (aanbeveel)">
+<!ENTITY aboveText.label "onder my antwoord (bokant aangehaalde teks)">
+
+
+<!ENTITY includeSigOnForward.label "Sluit handtekening in vir aanstuur">
+<!ENTITY includeSigOnForward.accesskey "a">
+
+
+
+
+
+<!ENTITY addressing.label "Composition &amp; Addressing">
+<!-- LOCALIZATION NOTE (directories.label) : do not translate "LDAP" in below line -->
+<!ENTITY directories.label "Use a different LDAP server:">
+<!ENTITY directories.accesskey "d">
+<!-- LOCALIZATION NOTE (quoting.label): This will concatenate with the 4 strings that follow. -->
+<!ENTITY quoting.label "When quoting,">
+<!ENTITY quoting.accesskey "q">
+<!ENTITY includeSigOnReply.label "Include signature for replies">
+<!ENTITY includeSigOnReply.accesskey "I">
+<!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/af/chrome/af/locale/af/messenger/am-advanced.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-advanced.dtd
new file mode 100644
index 0000000000..9ad740f964
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-advanced.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/. -->
+
+<!-- extracted from am-advanced.xul -->
+<!-- LOCALIZATION NOTE (smtpServer.label): do not translate "SMTP" in below line -->
+
+
+<!-- extracted from am-advanced.xhtml -->
+
+<!ENTITY smtpServer.label "Opstelling vir uitgaande bediener (SMTP)">
+<!-- LOCALIZATION NOTE (smtpDescription.label): do not translate "SMTP" in below line -->
+
+<!ENTITY smtpListAdd.label "Voeg by…">
+<!ENTITY smtpListAdd.accesskey "V">
+<!ENTITY smtpListEdit.label "Redigeer…">
+<!ENTITY smtpListEdit.accesskey "e">
+<!ENTITY smtpListDelete.label "Verwyder">
+<!ENTITY smtpListDelete.accesskey "w">
+<!ENTITY smtpListSetDefault.label "Stel verstek op">
+<!ENTITY smtpListSetDefault.accesskey "e">
+
+<!ENTITY serverDescription.label "Beskrywing: ">
+<!ENTITY serverName.label "Bedienernaam: ">
+<!ENTITY serverPort.label "Poort: ">
+<!ENTITY userName.label "Gebruikernaam: ">
+<!ENTITY connectionSecurity.label "Verbindingsekuriteit: ">
+<!ENTITY authMethod.label "Magtigingmetode: ">
+
+<!-- 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 serverDetails.label "Details of selected server:">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-archiveoptions.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-archiveoptions.dtd
new file mode 100644
index 0000000000..09aed62975
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-archiveoptions.dtd
@@ -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/. -->
+
+<!-- extracted from am-archiveoptions.xul -->
+
+
+
+
+
+
+
+
+
+
+<!-- extracted from am-archiveoptions.xhtml -->
+
+<!-- LOCALIZATION NOTE (archiveFolderName.label): this should match the default
+ name for the "Archives" folder -->
+<!ENTITY archiveFolderName.label "Argief">
+<!-- LOCALIZATION NOTE (inboxFolderName.label): this should match the default
+ name for the "Inbox" folder -->
+<!ENTITY inboxFolderName.label "Inkassie">
+
+<!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">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-copies.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-copies.dtd
new file mode 100644
index 0000000000..37ff102eb2
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-copies.dtd
@@ -0,0 +1,72 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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 -->
+
+<!-- extracted from am-copies.xul -->
+<!ENTITY sendingPrefix.label "Wanneer boodskappe gestuur word, doen die volgende outomaties: ">
+<!ENTITY fccMailFolder.label "Bêre 'n afskrif in:">
+<!ENTITY fccMailFolder.accesskey "B">
+
+
+<!-- LOCALIZATION NOTE (ccAddress.label): do not translate "Cc" in below line -->
+<!ENTITY ccAddress.label "Stuur aan hierdie e-posadresse in CC:">
+<!ENTITY ccAddress.accesskey "C">
+
+<!-- LOCALIZATION NOTE (bccAddress.label): do not translate "Bcc" in below line -->
+<!ENTITY bccAddress.label "Stuur aan hierdie e-posadresse in BCC:">
+<!ENTITY bccAddress.accesskey "B">
+
+<!ENTITY saveMessageDlg.label "Wys bevestigingdialoog wanneer boodskappe gestoor word">
+<!ENTITY saveMessageDlg.accesskey "W">
+<!-- LOCALIZATION NOTE (sentFolderOn.label): OK to translate this, bug #57440 -->
+
+<!ENTITY sentInOtherFolder.label "Ander:">
+<!ENTITY sentInOtherFolder.accesskey "A">
+<!-- LOCALIZATION NOTE (archivesFolderOn.label): OK to translate this, bug #57440 -->
+
+
+
+
+
+
+<!ENTITY archiveInOtherFolder.label "Ander:">
+<!ENTITY archiveInOtherFolder.accesskey "A">
+<!ENTITY specialFolders.label "Onvoltooid en sjablone">
+
+<!-- LOCALIZATION NOTE (draftsFolderOn.label): OK to translate this, bug #57440 -->
+
+<!ENTITY draftInOtherFolder.label "Ander:">
+<!ENTITY draftInOtherFolder.accesskey "n">
+<!ENTITY keepTemplates.label "Hou boodskapsjablone in:">
+<!-- LOCALIZATION NOTE (templatesFolderOn.label): OK to translate this, bug #57440 -->
+
+<!ENTITY templateInOtherFolder.label "Ander:">
+<!ENTITY templateInOtherFolder.accesskey "A">
+
+<!ENTITY copyAndFolderTitle.label "Copies &amp; Folders">
+<!ENTITY fccReplyFollowsParent.label "Place replies in the folder of the message being replied to">
+<!ENTITY fccReplyFollowsParent.accesskey "R">
+<!ENTITY ccAddressList.placeholder "Separate addresses with commas">
+<!ENTITY bccAddressList.placeholder "Separate addresses with commas">
+<!-- LOCALIZATION NOTE (sentFolderOn.label): OK to translate this, bug #57440 -->
+<!ENTITY sentFolderOn.label "&quot;Sent&quot; Folder on:">
+<!ENTITY sentFolderOn.accesskey "S">
+<!-- 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 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">
+<!-- LOCALIZATION NOTE (templatesFolderOn.label): OK to translate this, bug #57440 -->
+<!ENTITY templatesFolderOn.label "&quot;Templates&quot; Folder on:">
+<!ENTITY templatesFolderOn.accesskey "m">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-e2e.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-e2e.properties
new file mode 100644
index 0000000000..9d42cb9257
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/messenger/am-identities-list.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-identities-list.dtd
new file mode 100644
index 0000000000..39d803b0c9
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-identities-list.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 identitiesListAdd.label "Voeg by…">
+<!ENTITY identitiesListAdd.accesskey "V">
+<!ENTITY identitiesListEdit.label "Redigeer…">
+<!ENTITY identitiesListEdit.accesskey "e">
+
+
+<!ENTITY identitiesListDelete.label "Skrap">
+<!ENTITY identitiesListDelete.accesskey "S">
+
+
+
+<!ENTITY identitiesListManageDesc.label "Manage the identities for this account. The first identity is used by default.">
+<!ENTITY identitiesListDefault.label "Set Default">
+<!ENTITY identitiesListDefault.accesskey "S">
+<!ENTITY identitiesListClose.label "Close">
+<!ENTITY identitiesListClose.accesskey "C">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-identity-edit.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-identity-edit.dtd
new file mode 100644
index 0000000000..b1f1431467
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-identity-edit.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/. -->
+
+<!-- LOCALIZATION NOTE (identityDialog.style): This value should be roughly
+ equal to the value of accountManager.size entity minus the value
+ of accountTree.width entity. -->
+<!ENTITY identityListDesc.label "Stel die opstelling vir hierdie identiteit op:">
+
+<!ENTITY settingsTab.label "Opstelling">
+
+
+
+
+
+
+
+<!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/af/chrome/af/locale/af/messenger/am-im.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-im.dtd
new file mode 100644
index 0000000000..4cbeef3aab
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-im.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 account.general "Algemeen">
+<!ENTITY account.advanced "Gevorderde opsies">
+<!ENTITY account.name "Gebruikernaam:">
+
+
+
+
+
+
+
+
+<!ENTITY accountWindow.title "Account properties">
+<!ENTITY accountWindow.width "300">
+<!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/af/chrome/af/locale/af/messenger/am-junk.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-junk.dtd
new file mode 100644
index 0000000000..5190d6f7bb
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-junk.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 junkSettings.label "Gemorspos-opstelling">
+
+<!ENTITY level.label "Aktiveer aanpassende gemorsposkontrole vir hierdie rekening">
+<!ENTITY level.accesskey "A">
+
+<!ENTITY move.label "Skuif nuwe gemorspos na:">
+<!ENTITY move.accesskey "S">
+
+
+<!ENTITY otherFolder.label "Ander:">
+<!ENTITY otherFolder.accesskey "A">
+<!ENTITY purge1.label "Skrap gemorspos outomaties indien ouer as">
+<!ENTITY purge1.accesskey "o">
+<!ENTITY purge2.label "dae">
+
+
+
+<!ENTITY ispHeaders.label "Vertrou gemorspos-kopskrifte wat opgestel is deur: ">
+<!ENTITY ispHeaders.accesskey "V">
+
+<!ENTITY junkClassification.label "Seleksie">
+
+
+
+
+<!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 junkFolderOn.label "&quot;Junk&quot; folder on:">
+<!ENTITY junkFolderOn.accesskey "J">
+<!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 junkActions.label "Destination and Retention">
+<!ENTITY globalJunkPrefs.label "Global Junk Preferences…">
+<!ENTITY globalJunkPrefs.accesskey "G">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-main.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-main.dtd
new file mode 100644
index 0000000000..a1f48e678c
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-main.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/. -->
+
+<!-- extracted from am-main.xul -->
+
+
+<!-- extracted from am-main.xhtml -->
+
+<!ENTITY accountTitle.label "Rekeningopstelling">
+<!ENTITY accountName.label "Gebruikernaam:">
+<!ENTITY accountName.accesskey "n">
+<!ENTITY identityTitle.label "Verstekidentiteit">
+<!ENTITY identityDesc.label "Elke rekening het 'n identiteit. Die identiteit is die inligting wat ander mense sien wanneer hulle u boodskappe lees.">
+<!ENTITY name.label "U naam:">
+<!ENTITY name.accesskey "U">
+<!ENTITY email.label "E-posadres:">
+<!ENTITY email.accesskey "E">
+<!ENTITY replyTo.label "Antwoordadres:">
+<!ENTITY replyTo.accesskey "s">
+
+<!ENTITY organization.label "Organisasie:">
+<!ENTITY organization.accesskey "O">
+<!ENTITY signatureText.label "Handtekeningteks:">
+<!ENTITY signatureText.accesskey "t">
+<!ENTITY signatureHtml.label "Gebruik HTML (bv &lt;b&gt;bold&lt;/b&gt;)">
+<!ENTITY signatureHtml.accesskey "H">
+
+
+<!ENTITY edit.label "Redigeer…">
+<!ENTITY choose.label "Kies…">
+<!ENTITY choose.accesskey "K">
+<!ENTITY editVCard.label "Redigeer kaart…">
+<!ENTITY editVCard.accesskey "e">
+<!-- LOCALIZATION NOTE (attachVCard.label) : do not translate "vCard" in below line -->
+<!ENTITY attachVCard.label "Heg my vCard aan boodskappe">
+<!ENTITY attachVCard.accesskey "v">
+
+<!ENTITY manageIdentities.label "Bestuur identiteite…">
+<!ENTITY manageIdentities.accesskey "B">
+<!-- LOCALIZATION NOTE (smtpName.label) : do not translate "SMTP" in below line -->
+
+<!ENTITY smtpName.label "Uitgaande bediener (SMTP):">
+<!ENTITY smtpName.accesskey "U">
+<!ENTITY smtpDefaultServer.label "Gebruik verstekbediener">
+
+
+
+<!ENTITY catchAll.label "Reply from this identity when delivery headers match:">
+<!ENTITY catchAll.accesskey "d">
+<!ENTITY replyTo.placeholder "Recipients will reply to this other address">
+<!ENTITY signatureFile.label "Attach the signature from a file instead (text, HTML, or image):">
+<!ENTITY signatureFile.accesskey "t">
+<!ENTITY smtpServerEdit.label "Edit SMTP server…">
+<!ENTITY smtpServerEdit.accesskey "P">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-mdn.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-mdn.dtd
new file mode 100644
index 0000000000..500c24dff0
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-mdn.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 pane.title "Antwoordstrokies">
+<!ENTITY useGlobalPrefs.label "Gebruik my algemene antwoordstrokie-voorkeure vir hierdie rekening">
+<!ENTITY useGlobalPrefs.accesskey "G">
+
+
+<!ENTITY useCustomPrefs.label "Pasmaak antwoordstrokies vir hierdie rekening">
+<!ENTITY useCustomPrefs.accesskey "P">
+<!ENTITY requestReceipt.label "Wanneer boodskappe gestuur word, vra altyd 'n antwoordstrokie aan">
+<!ENTITY requestReceipt.accesskey "W">
+<!ENTITY receiptArrive.label "Wanneer 'n strokie aankom:">
+<!ENTITY leaveIt.label "Los dit in my inmandjie">
+<!ENTITY leaveIt.accesskey "i">
+<!-- LOCALIZATION NOTE moveToSent.label Translate: 'Sent' according to Netscape glossary -->
+
+<!ENTITY requestMDN.label "Wanneer ek 'n versoek om antwoordstrokie ontvang:">
+<!ENTITY returnSome.label "Laat antwoordstrokies vir sommige boodskappe toe">
+<!ENTITY returnSome.accesskey "a">
+<!ENTITY never.label "Moet nooit 'n antwoordstrokie stuur nie">
+<!ENTITY never.accesskey "M">
+<!ENTITY notInToCc.label "As ek nie in die Aan- of CC-veld van die boodskap is nie:">
+<!ENTITY notInToCc.accesskey "A">
+<!ENTITY outsideDomain.label "As die afsender van buite my domein afkomstig is:">
+<!ENTITY outsideDomain.accesskey "a">
+<!ENTITY otherCases.label "In alle ander gevalle:">
+<!ENTITY otherCases.accesskey "a">
+<!ENTITY askMe.label "Vra my">
+<!ENTITY alwaysSend.label "Stuur altyd">
+<!ENTITY neverSend.label "Stuur nooit nie">
+
+<!ENTITY globalReceipts.label "Global Preferences…">
+<!ENTITY globalReceipts.accesskey "G">
+<!-- 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">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-mdn.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-mdn.properties
new file mode 100644
index 0000000000..0fb361bb6b
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Antwoordstrokies
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-offline.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-offline.dtd
new file mode 100644
index 0000000000..feb9e9feed
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-offline.dtd
@@ -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/. -->
+
+<!ENTITY doNotDownloadPop3Movemail.label "Om skyfspasie te bespaar, moenie aflaai nie:">
+<!ENTITY doNotDownloadNntp.label "Om skyfspasie te bespaar, moenie vir aflyngebruik aflaai nie:">
+<!ENTITY doNotDownloadImap.label "Om skyfspasie te bespaar kan u stel watter grootte of ouderdom boodskappe van die bediener afgelaai word en as plaaslike kopieë gehou word.">
+<!ENTITY offlineNotDownload.label "Boodskappe groter as">
+<!ENTITY offlineNotDownload.accesskey "B">
+<!ENTITY autosyncNotDownload.label "Moenie boodskappe aflaai groter as">
+<!ENTITY autosyncNotDownload.accesskey "M">
+<!ENTITY kb.label "KG nie">
+<!ENTITY daysOld.label "dae">
+<!ENTITY message.label "boodskappe">
+<!ENTITY nntpNotDownloadRead.label "Lees boodskappe">
+<!ENTITY nntpNotDownloadRead.accesskey "L">
+<!ENTITY nntpDownloadMsg.label "Boodskappe van meer as">
+<!ENTITY nntpDownloadMsg.accesskey "o">
+<!ENTITY retentionCleanup.label "Om skyfspasie te herwin, kan ou boodskappe permanent geskrap word.">
+<!ENTITY retentionCleanupImap.label "Om skyfspasie te herwin, kan ou boodskappe permanent geskrap word (beide die plaaslike kopie en die oorspronklike op die afgeleë bediener).">
+<!ENTITY retentionCleanupPop.label "Om skyfspasie te herwin, kan ou boodskappe permanent geskrap word, insluitend die oorspronklike op die afgeleë bediener.">
+<!ENTITY retentionKeepMsg.label "Skrap boodskappe ouer as">
+<!ENTITY retentionKeepMsg.accesskey "r">
+<!ENTITY retentionKeepAll.label "Moenie enige boodskappe skrap nie">
+<!ENTITY retentionKeepAll.accesskey "M">
+<!ENTITY retentionKeepRecent.label "Skrap alles behalwe die mees onlangse">
+<!ENTITY retentionKeepRecent.accesskey "b">
+<!ENTITY retentionApplyToFlagged.label "Hou altyd gevlagde boodskappe">
+<!ENTITY retentionApplyToFlagged.accesskey "H">
+<!ENTITY nntpRemoveMsgBody.label "Verwyder lyf van boodskappe van meer as">
+<!ENTITY nntpRemoveMsgBody.accesskey "V">
+<!ENTITY offlineSelectNntp.label "Kies nuusgroepe vir aflyngebruik…">
+<!ENTITY offlineSelectNntp.accesskey "K">
+<!ENTITY offlineImapAdvancedOffline.label "Gevorderd…">
+<!ENTITY offlineImapAdvancedOffline.accesskey "G">
+<!ENTITY syncGroupTitle.label "Boodskapsinchronisering">
+<!ENTITY diskspaceGroupTitle.label "Skyfspasie">
+<!-- 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 "Sinchroniseer alle boodskappe plaaslik, ongeag ouderdom">
+<!ENTITY allAutosync.accesskey "c">
+<!ENTITY ageAutosyncBefore.label "Sinchroniseer die mees onlangse">
+<!ENTITY ageAutosync.accesskey "S">
+<!ENTITY ageAutosyncMiddle.label "">
+<!ENTITY dayAgeInterval.label "Dae">
+<!ENTITY weekAgeInterval.label "Weke">
+<!ENTITY monthAgeInterval.label "Maande">
+<!ENTITY yearAgeInterval.label "Jare">
+<!ENTITY ageAutosyncAfter.label "">
+
+<!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.">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-server-advanced.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-server-advanced.dtd
new file mode 100644
index 0000000000..978260ea90
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-server-advanced.dtd
@@ -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/. -->
+
+<!ENTITY serverAdvanced.label "Gevorderde rekeningopstelling">
+<!-- LOCALIZATION NOTE (serverDirectory.label): Do not translate "IMAP" -->
+<!ENTITY serverDirectory.label "IMAP-bedienergids:">
+<!ENTITY serverDirectory.accesskey "g">
+<!ENTITY usingSubscription.label "Wys net vouers waarop ingeteken">
+<!ENTITY usingSubscription.accesskey "W">
+<!ENTITY dualUseFolders.label "Bediener werk met vouers wat subgidse en boodskappe bevat">
+<!ENTITY dualUseFolders.accesskey "v">
+<!ENTITY maximumConnectionsNumber.label "Maksimum getal bedienerverbindings om te kas">
+<!ENTITY maximumConnectionsNumber.accesskey "M">
+<!-- LOCALIZATION NOTE (namespaceDesc.label): Do not translate "IMAP" -->
+<!ENTITY namespaceDesc.label "Hierdie voorkeure handel oor die naamsruimte op jou IMAP-bediener">
+<!ENTITY personalNamespace.label "Persoonlike naamruimte:">
+<!ENTITY personalNamespace.accesskey "P">
+<!ENTITY publicNamespace.label "Openbaar (gedeel):">
+<!ENTITY publicNamespace.accesskey "p">
+<!ENTITY otherUsersNamespace.label "Ander gebruikers:">
+<!ENTITY otherUsersNamespace.accesskey "A">
+<!ENTITY overrideNamespaces.label "Laat bediener toe om hierdie naamruimtes te oorheers">
+<!ENTITY overrideNamespaces.accesskey "L">
+
+
+
+<!ENTITY deferToServer.label "Inkassie vir 'n ander rekening">
+<!ENTITY deferToServer.accesskey "a">
+<!ENTITY deferGetNewMail.label "Sluit hierdie bediener in wanneer u nuwe pos kry">
+<!ENTITY deferGetNewMail.accesskey "S">
+
+<!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">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-server-top.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-server-top.dtd
new file mode 100644
index 0000000000..1ff1d0a31f
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-server-top.dtd
@@ -0,0 +1,101 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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-server-top.xul -->
+
+
+<!ENTITY messageStorage.label "Boodskapbewaring">
+<!ENTITY securitySettings.label "Sekuriteitsopstelling">
+<!ENTITY serverSettings.label "Bedieneropstelling">
+<!ENTITY serverType.label "Bedienersoort:">
+<!ENTITY serverName.label "Bedienernaam:">
+<!ENTITY serverName.accesskey "B">
+<!ENTITY userName.label "Gebruikernaam:">
+<!ENTITY userName.accesskey "n">
+<!ENTITY port.label "Poort:">
+<!ENTITY port.accesskey "P">
+<!ENTITY serverPortDefault.label "Verstek:">
+<!-- LOCALIZATION NOTE (biffStart.label) : translate below 2 line with grammer dependency
+ For example, in Japanese cases:
+ biffStart.label "every"
+ biffEnd.label "minutes for new messages Check"
+-->
+<!ENTITY biffStart.label "Kontroleer vir nuwe boodskappe elke ">
+<!ENTITY biffStart.accesskey "e">
+<!ENTITY biffEnd.label "minute">
+
+
+<!ENTITY connectionSecurity.label "Verbindingsekuriteit:">
+<!ENTITY connectionSecurity.accesskey "V">
+<!ENTITY connectionSecurityType-0.label "Geen">
+<!ENTITY connectionSecurityType-1.label "STARTTLS, indien beskikbaar">
+<!ENTITY connectionSecurityType-2.label "STARTTLS">
+<!ENTITY connectionSecurityType-3.label "SSL/TLS">
+<!ENTITY authMethod.label "Magtigingmetode:">
+<!ENTITY authMethod.accesskey "i">
+<!ENTITY leaveOnServer.label "Laat boodskappe op bediener agter">
+<!ENTITY leaveOnServer.accesskey "a">
+<!ENTITY headersOnly.label "Kry net kopskrifte">
+<!ENTITY headersOnly.accesskey "K">
+<!ENTITY deleteByAgeFromServer.label "Vir niks meer as">
+<!ENTITY deleteByAgeFromServer.accesskey "V">
+<!ENTITY daysEnd.label "dae">
+<!ENTITY deleteOnServer2.label "Totdat ek dit skrap">
+<!ENTITY deleteOnServer2.accesskey "s">
+<!ENTITY downloadOnBiff.label "Laai outomaties nuwe boodskappe af">
+<!ENTITY downloadOnBiff.accesskey "e">
+<!ENTITY deleteMessagePrefix.label "Wanneer ek 'n boodskap skrap:">
+<!ENTITY modelMoveToTrash.label "Skuif dit na hierdie vouer:">
+<!ENTITY modelMoveToTrash.accesskey "S">
+<!ENTITY modelMarkDeleted.label "Merk dit net as geskrap">
+<!ENTITY modelMarkDeleted.accesskey "M">
+<!ENTITY modelDeleteImmediately.label "Verwyder dit dadelik">
+<!ENTITY modelDeleteImmediately.accesskey "d">
+<!-- LOCALIZATION NOTE (expungeOnExit.label) : do not translate two of "&quot;" in below line -->
+
+<!ENTITY emptyTrashOnExit.label "Maak snippermandjie leeg tydens afsluiting">
+<!ENTITY emptyTrashOnExit.accesskey "a">
+<!ENTITY loginAtStartup.label "Kontroleer vir nuwe boodskappe aan begin">
+<!ENTITY loginAtStartup.accesskey "K">
+<!-- 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 "Vra my voor meer aflaai as">
+<!ENTITY maxMessagesStart.accesskey "v">
+<!-- LOCALIZATION NOTE (maxMessagesEnd.label) : see note for maxMessagesStart.label -->
+<!ENTITY maxMessagesEnd.label "boodskappe">
+<!ENTITY alwaysAuthenticate.label "Versoek altyd magtiging wanneer aan hierdie bediener koppel">
+<!ENTITY alwaysAuthenticate.accesskey "e">
+<!ENTITY abbreviate.label "Vertoon nuusgroepname in die posvouer-paneel as:">
+<!ENTITY abbreviateOn.label "Volledige name (byvoorbeeld 'netscape.public.mozilla.mail-news')">
+<!ENTITY abbreviateOff.label "Afgekorte name (byvoorbeeld 'n.p.m.mail-news')">
+<!ENTITY advancedButton.label "Gevorderd…">
+<!ENTITY advancedButton.accesskey "G">
+
+<!ENTITY localFolderPicker.label "Kies plaaslike gids">
+<!ENTITY browseFolder.label "Blaai…">
+<!ENTITY browseFolder.accesskey "B">
+<!ENTITY browseNewsrc.label "Blaai…">
+<!ENTITY browseNewsrc.accesskey "B">
+
+<!ENTITY accountTitle.label "Rekeningopstelling">
+<!ENTITY accountSettingsDesc.label "Die volgende is 'n spesiale rekening. Daar word geen identiteit mee geassosieer nie.">
+
+
+
+
+
+<!ENTITY useIdleNotifications.label "Allow immediate server notifications when new messages arrive">
+<!ENTITY useIdleNotifications.accesskey "w">
+<!-- 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 newsrcFilePath1.label "News.rc File:">
+<!ENTITY newsrcPicker1.label "Select News.rc File">
+<!ENTITY serverDefaultCharset2.label "Default Text Encoding:">
+<!ENTITY localPath1.label "Local Directory:">
+<!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/af/chrome/af/locale/af/messenger/am-serverwithnoidentities.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-serverwithnoidentities.dtd
new file mode 100644
index 0000000000..c155ca187e
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Gebruikernaam:">
+<!ENTITY accountName.accesskey "n">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-smime.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-smime.dtd
new file mode 100644
index 0000000000..f544521fc7
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-smime.dtd
@@ -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/. -->
+
+<!ENTITY digitalSign.certificate.button "Kies…">
+<!ENTITY digitalSign.certificate.accesskey "S">
+<!ENTITY digitalSign.certificate_clear.button "Maak skoon">
+<!ENTITY digitalSign.certificate_clear.accesskey "K">
+<!ENTITY encryption.certificate.button "Kies…">
+<!ENTITY encryption.certificate.accesskey "K">
+<!ENTITY encryption.certificate_clear.button "Maak skoon">
+<!ENTITY encryption.certificate_clear.accesskey "a">
+<!ENTITY signingGroupTitle.label "Digitale ondertekening">
+
+
+<!-- Strings for the cert picker dialog -->
+
+
+
+<!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 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/af/chrome/af/locale/af/messenger/am-smime.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-smime.properties
new file mode 100644
index 0000000000..8a238dd76a
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/am-smime.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/.
+
+## S/MIME error strings.
+## Note to localization: %S is a placeholder
+NoSenderSigningCert=U het aangedui dat hierdie boodskap digitaal onderteken moet word, maar óf die program kon nie die ondertekeningsertifikaat in u pos-en-nuusgroepopstelling vind nie, óf die sertifikaat het verval.
+NoSenderEncryptionCert=U het enkripsie gekies vir hierdie boodskap, maar óf die program kon nie die enkripsiesertifikaat in u pos-en-nuusgroepopstelling vind nie, óf die sertifikaat het verval.
+MissingRecipientEncryptionCert=U het enkripsie gekies vir hierdie boodskap, maar óf die program kon nie die enkripsiesertifikaat vir %S kry nie.
+
+NoSigningCert=Sertifikaatbestuurder kon nie 'n geldige sertifikaat vind waarmee u boodskappe digitaal onderteken kan word nie.
+NoEncryptionCert=Sertifikaatbestuurder kan nie 'n geldige sertifikaat vind wat ander mense kan gebruik om geënkripteerde e-posboodskappe aan u te stuur nie.
+
+encryption_needCertWantSame=U moet ook 'n sertifikaat aandui wat ander mense moet gebruik wanneer hulle vir u geënkripteerde boodskappe stuur. Wil u dieselfde sertifikaat gebruik om boodskappe wat aan u gestuur word, te enkripteer en te dekripteer?
+encryption_wantSame=Wil u dieselfde sertifikaat gebruik om boodskappe wat aan u gestuur word, te enkripteer en te dekripteer?
+encryption_needCertWantToSelect=U moet ook 'n sertifikaat aandui wat ander mense moet gebruik wanneer hulle vir u geënkripteerde boodskappe stuur. Wil u nou 'n enkripsiesertifikaat opstel?
+signing_needCertWantSame=U moet ook 'n sertifikaat aandui waarmee u u boodskappe digitaal kan onderteken. Wil u dieselfde sertifikaat gebruik om u boodskappe digitaal te onderteken?
+signing_wantSame=Wil u dieselfde sertifikaat gebruik om u boodskappe digitaal te onderteken?
+signing_needCertWantToSelect=U moet ook 'n sertifikaat aandui waarmee u u boodskappe digitaal kan onderteken. Wil u nou 'n sertifikaat opstel waarmee u boodskappe digitaal kan onderteken?
+
+## Strings used by nsMsgComposeSecure
+
+## Strings used by the cert picker.
+
+
+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.
+NoSigningCertForThisAddress=Certificate Manager can't locate a valid certificate that can be used to digitally sign your messages with an address of <%S>.
+NoEncryptionCertForThisAddress=Certificate Manager can't locate a valid certificate that other people can use to send you encrypted email messages to the address <%S>.
+## 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/af/chrome/af/locale/af/messenger/appUpdate.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/appUpdate.properties
new file mode 100644
index 0000000000..0a423d55d0
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/messenger/appleMailImportMsgs.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/appleMailImportMsgs.properties
new file mode 100644
index 0000000000..947089c20d
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/appleMailImportMsgs.properties
@@ -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/.
+
+# Short name of import module
+ApplemailImportName=Apple Mail
+
+# Description of import module
+ApplemailImportDescription=Voer plaaslike pos van Mac OS X Mail in
+
+# Success Message
+# LOCALIZATION NOTE(ApplemailImportMailboxSuccess): Do not translate the word "%S" below.
+ApplemailImportMailboxSuccess=Plaaslike boodskappe is suksesvol van %S ingevoer
+
+# Error Message
+ApplemailImportMailboxBadparam='n Interne fout het voorgekom. Kon nie invoer nie. Probeer weer invoer.
+
+# Error message
+# LOCALIZATION NOTE(ApplemailImportMailboxConverterror): Do not translate the word "%S" below.
+
+
+# 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/af/chrome/af/locale/af/messenger/baseMenuOverlay.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/baseMenuOverlay.dtd
new file mode 100644
index 0000000000..5de2237ba5
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/baseMenuOverlay.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/. -->
+<!-- Help Menu -->
+
+<!ENTITY helpMenu.label "Hulp">
+<!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 "Hulp">
+<!ENTITY helpMenuWin.accesskey "H">
+
+
+
+
+
+
+
+<!-- Help Menu -->
+<!ENTITY productHelp.commandkey "VK_F1">
+<!ENTITY productHelpMac.commandkey "?">
+<!ENTITY productHelpMac.modifiers "accel">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/beckyImportMsgs.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/beckyImportMsgs.properties
new file mode 100644
index 0000000000..97aa769651
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/messenger/charsetTitles.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/charsetTitles.properties
new file mode 100644
index 0000000000..b0ff0b4ca4
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/charsetTitles.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/.
+
+## 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
+
+## Format of this file:
+## charset_name.title = a_title - specifies the human readable title for
+## this charset
+
+x-user-defined.title = Gebruikergedefinieerd
+
+chardet.ja_parallel_state_machine.title = Japannees
+chardet.ko_parallel_state_machine.title = Koreaans
+chardet.zhcn_parallel_state_machine.title = Vereenvoudigde Sjinees
+
+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)
+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.zhtw_parallel_state_machine.title = Traditional 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/af/chrome/af/locale/af/messenger/chat.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/chat.dtd
new file mode 100644
index 0000000000..fd47cb4c25
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/chat.dtd
@@ -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/. -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!ENTITY aliasCmd.label "Hernoem">
+<!ENTITY aliasCmd.accesskey "r">
+
+
+
+
+
+
+
+
+
+<!ENTITY status.offline "Aflyn">
+
+
+
+<!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 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 openLinkCmd.label "Open Link…">
+<!ENTITY openLinkCmd.accesskey "O">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/chat.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/chat.properties
new file mode 100644
index 0000000000..1363dc9859
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/chat.properties
@@ -0,0 +1,160 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 (startAConversationWith.button):
+# %S is replaced with the display name of a contact.
+
+# LOCALIZATION NOTE (defaultGroup):
+# this is used in the addBuddies dialog if the list of existing groups is empty
+defaultGroup=Kennisse
+
+# 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.
+
+# 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.
+
+# 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.
+
+# 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.
+
+# 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=&Skrap
+
+displayNameEmptyText=Vertoonnaam
+
+# 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.
+# 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.
+
+# LOCALIZATION NOTE (unknownCommand):
+# This is shown when an unknown command (/foo) is attempted. %S is the command.
+
+#LOCALIZATION NOTE
+# These are special entries in the log tree for the corresponding days.
+log.today=Vandag
+log.yesterday=Gister
+
+#LOCALIZATION NOTE
+# These are special groups in the log tree for the last 3-7 days and
+# the last 8-14 days.
+log.previousWeek=Laas 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.
+
+#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.
+
+
+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 (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)
+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 groups in the log tree for the last 3-7 days and
+# the last 8-14 days.
+log.currentWeek=This 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/af/chrome/af/locale/af/messenger/configEditorOverlay.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/configEditorOverlay.dtd
new file mode 100644
index 0000000000..3d78799d68
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/messenger/converterDialog.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/converterDialog.dtd
new file mode 100644
index 0000000000..4bd8419d24
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/converterDialog.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 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/af/chrome/af/locale/af/messenger/converterDialog.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/converterDialog.properties
new file mode 100644
index 0000000000..d808be0319
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/messenger/custom.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/custom.properties
new file mode 100644
index 0000000000..c64dce71ae
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Die kopskrif wat u ingetik het, bevat 'n ongeldige karakter, soos ':', 'n niedrukkarakter, 'n nie-ASCI-karakter, of 'n 8-bis-ASCII-handves. Verwyder die ongeldige karakter en probeer weer.
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/customizeToolbar.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/customizeToolbar.dtd
new file mode 100644
index 0000000000..6ecaa6c9da
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/customizeToolbar.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 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 saveChanges.label "Done">
+<!ENTITY undoChanges.label "Undo Changes">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/customizeToolbar.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/customizeToolbar.properties
new file mode 100644
index 0000000000..0ec6d2c1db
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/messenger/downloadheaders.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/downloadheaders.dtd
new file mode 100644
index 0000000000..48b5c8a8ec
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/downloadheaders.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/. -->
+
+<!ENTITY all.label "Laai alle kopskrifte af">
+<!ENTITY all.accesskey "L">
+<!--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.
+-->
+
+<!--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 "Aflaai">
+<!ENTITY download.accesskey "f">
+<!--LOCALIZATION NOTE (headers.label): see note for download.label -->
+<!ENTITY headers.label "kopskrifte">
+<!ENTITY headers.accesskey "k">
+<!ENTITY mark.label "Merk oorblywende kopskrifte as gelees">
+<!ENTITY mark.accesskey "M">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/editContactOverlay.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/editContactOverlay.dtd
new file mode 100644
index 0000000000..91debaaf77
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/editContactOverlay.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 editContactPanelDeleteContact.label "Skrap">
+<!ENTITY editContactPanelDeleteContact.accesskey "a">
+
+<!ENTITY editContactName.label "Naam:">
+<!ENTITY editContactName.accesskey "N">
+
+<!ENTITY editContactEmail.label "E-pos:">
+<!ENTITY editContactEmail.accesskey "E">
+
+
+
+<!ENTITY editContactPanelDone.label "Klaar">
+<!ENTITY editContactPanelDone.accesskey "K">
+
+
+<!ENTITY editContactAddressBook.label "Address Book:">
+<!ENTITY editContactAddressBook.accesskey "A">
+<!ENTITY contactMoveDisabledWarning.description "You can't change the address book because the contact is in a mailing list.">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/editContactOverlay.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/editContactOverlay.properties
new file mode 100644
index 0000000000..043c7a4a11
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Redigeer kennis
+viewTitle=Bekyk kennis
+
+editDetailsLabel=Redigeer besonderhede
+editDetailsAccessKey=t
+viewDetailsLabel=Bekyk besonderhede
+viewDetailsAccessKey=t
+
+deleteContactTitle=Skrap kennis
+deleteContactMessage=Is u seker u wil hierdie kennis skrap?
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/fieldMapImport.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/fieldMapImport.dtd
new file mode 100644
index 0000000000..6ec8a85b32
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Volgende">
+<!ENTITY fieldMapImport.next.accesskey "V">
+<!ENTITY fieldMapImport.previous.label "Vorige">
+<!ENTITY fieldMapImport.previous.accesskey "V">
+<!ENTITY fieldMapImport.text "Gebruik Skuif op en Skuif af om die adresboekvelde links met die korrekte data vir invoer regs te belyn. Ontmerk items wat u nie wil invoer nie.">
+<!ENTITY fieldMapImport.up.label "Skuif op">
+<!ENTITY fieldMapImport.up.accesskey "o">
+<!ENTITY fieldMapImport.down.label "Skuif af">
+<!ENTITY fieldMapImport.down.accesskey "a">
+<!ENTITY fieldMapImport.fieldListTitle "Adresboek-velde">
+<!ENTITY fieldMapImport.dataTitle "Neem data op vir invoer">
+<!ENTITY fieldMapImport.skipFirstRecord.label "Eerste rekord bevat veldname">
+<!ENTITY fieldMapImport.skipFirstRecord.accessKey "E">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/filter.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/filter.properties
new file mode 100644
index 0000000000..a559ca99dd
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/filter.properties
@@ -0,0 +1,127 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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=U moet eers 'n teikenvouer kies.
+enterValidEmailAddress=Tik 'n geldige e-posadres in om na aan te stuur.
+pickTemplateToReplyWith=Kies 'n sjabloon om mee te antwoord.
+mustEnterName=U moet hierdie filter 'n naam gee.
+cannotHaveDuplicateFilterTitle=Duplikaatfilternaam
+cannotHaveDuplicateFilterMessage=Die filternaam wat u ingetik het, bestaan reeds. Kies asseblief 'n ander filternaam.
+deleteFilterConfirmation=Is u seker u wil die gemerkte filter(s) skrap?
+matchAllFilterName=Pas by alle boodskappe
+filterListBackUpMsg=U filters werk nie omdat die msgFilterRules.dat-lêer wat u filters bevat, nie gelees kon word nie. 'n Nuwe msgFilterRules.dat-lêer sal geskep word en 'n dekkopie van die ou lêer gemaak word genaamd rulesbackup.dat, wat in dieselfde subgids geskep sal word.
+customHeaderOverflow=U het die perk van 50 pasgemaakte kopskrifte oorskry. Verwyder een of meer pasgemaakte kopskrifte en probeer weer.
+filterCustomHeaderOverflow=U filters het die perk van 50 pasgemaakte kopskrifte oorskry. Redigeer die msgFilterRules.dat-lêer, wat u filters bevat, om minder pasgemaakte kopskrifte te gebruik.
+invalidCustomHeader=Een van u filters gebruik 'n pasgemaakte kopskrif wat 'n ongeldige karakter bevat, soos ':', 'n niedrukkarakter, 'n nie-ASCII-karakter of 'n 8-bis-ASCII-karakter. Redigeer die msgFilterRules.dat-lêer, wat u filters bevat, om ongeldige karakters uit u pasgemaakte kopskrifte te skrap.
+continueFilterExecution=Toepas van filter %S het misluk. Wil u voortgaan om die filters toe te pas?
+promptTitle=Huidig lopende filters
+promptMsg=U is tans besig om boodskappe te filter.\nWil u voortgaan om die filters toe te pas?
+stopButtonLabel=Stop
+continueButtonLabel=Gaan voort
+dontWarnAboutDeleteCheckbox=Moenie my weer vra nie
+# LOCALIZATION NOTE(copyToNewFilterName)
+# %S=the name of the filter that is being copied
+
+# LOCALIZATION NOTE(filterFAilureWarningPrefix)
+# %1$S=filter error action
+# %2$S=error code as hexadecimal string.
+
+searchTermsInvalidTitle=Soekwoorde ongeldig
+# LOCALIZATION NOTE(searchTermsInvalidRule)
+# %1$S=search attribute name from the invalid rule
+# %2$S=search operator from the bad rule
+# LOCALIZATION NOTE(filterActionOrderExplanation)
+# Keep the \n\n that mean 2 linebreaks.
+## LOCALIZATION NOTE(filterActionItem):
+# %1$S=sequence number of the action, %2$S=action text, %3$S=action argument
+
+## LOCALIZATION NOTE(filterCountVisibleOfTotal):
+# %1$S=number of matching filters, %2$S=total number of filters
+## LOCALIZATION NOTE(filterCountItems):
+## Semicolon-separated list of singular and plural forms.
+## See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+## #1 is the count of items in the list.
+# for junk mail logging / mail filter logging
+# LOCALIZATION NOTE(junkLogDetectStr)
+# %1$S=author, %2$S=subject, %3$S=date
+junkLogDetectStr=Gemorsposboodskap van %1$S tot %2$S by %3$S geskrap
+# LOCALIZATION NOTE(logMoveStr)
+# %1$S=message id, %2$S=folder URI
+logMoveStr=boodskap-ID %1$S tot %2$S geskuif
+# LOCALIZATION NOTE(logCopyStr)
+# %1$S=message id, %2$S=folder URI
+logCopyStr=boodskap-ID %1$S tot %2$S gekopieer
+# LOCALIZATION NOTE(filterLogDetectStr)
+# %1$S=filter name %2$S=author, %3$S=subject, %4$S=date
+filterLogDetectStr=Filter "%1$S" op boodskap van %2$S tot %3$S by %4$S toegepas
+filterMissingCustomAction=Vermiste doelmaakaksie
+filterAction2=prioriteit het verander
+filterAction3=geskrap
+filterAction4=gemerk as gelees
+filterAction5=draad onderdruk
+filterAction6=draad dopgehou
+filterAction7=gevlag
+filterAction8=gemerk
+filterAction9=beantwoord
+filterAction10=aangestuur
+filterAction11=loopaksie gestop
+filterAction12=van POP3-bediener geskrap
+filterAction13=op POP3-bediener gelaat
+filterAction14=gemorspostelling
+filterAction15=lyf van POP3-bediener gehaal
+filterAction16=na vouer gekopieer
+filterAction17=gemerk
+filterAction18=geïgnoreerde subdraad
+# 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
+
+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.
+# 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.
+# 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
+# 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
+# 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
+filterAction19=marked as unread
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/folderProps.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/folderProps.dtd
new file mode 100644
index 0000000000..7eae2c79d2
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/folderProps.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/. -->
+
+<!ENTITY folderProps.windowtitle.label "Eienskappe">
+
+<!ENTITY generalInfo.label "Algemene inligting">
+
+
+
+
+<!ENTITY folderRebuildSummaryFileTip2.label "Herbou opsomminglêerindeks">
+<!ENTITY folderRebuildSummaryFile2.label "Herstel vouer">
+<!ENTITY folderRebuildSummaryFile2.accesskey "r">
+<!ENTITY folderRebuildSummaryFile.explanation "Soms raak die vouerindekslêer (.msf) beskadig en boodskappe lyk of dit weg is, of geskrapte boodskappe wys steeds; herstel van die vouer kan dalk sulke probleme oplos.">
+<!ENTITY folderIncludeInGlobalSearch.label "Sluit boodskappe in dié gids in by die globale soekresultate">
+<!ENTITY folderIncludeInGlobalSearch.accesskey "g">
+
+<!ENTITY retention.label "Behoubeleid">
+<!ENTITY retentionUseAccount.label "Gebruik my rekeningopstelling">
+<!ENTITY retentionUseAccount.accesskey "G">
+<!ENTITY daysOld.label "dae oud">
+<!ENTITY message.label "boodskappe">
+<!ENTITY retentionCleanup.label "Om skyfspasie te herwin, kan ou boodskappe permanent geskrap word.">
+<!ENTITY retentionCleanupImap.label "Om skyfspasie te herwin, kan ou boodskappe permanent geskrap word (beide die plaaslike kopie en die oorspronklike op die afgeleë bediener).">
+<!ENTITY retentionCleanupPop.label "Om skyfspasie te herwin, kan ou boodskappe permanent geskrap word, insluitend die oorspronklike op die afgeleë bediener.">
+<!ENTITY retentionDeleteMsg.label "Skrap boodskappe van meer as">
+<!ENTITY retentionDeleteMsg.accesskey "b">
+<!ENTITY retentionKeepAll.label "Moenie enige boodskappe skrap nie">
+<!ENTITY retentionKeepAll.accesskey "e">
+<!ENTITY retentionKeepRecent.label "Skrap alles behalwe die mees onlangse">
+<!ENTITY retentionKeepRecent.accesskey "S">
+<!ENTITY retentionApplyToFlagged.label "Hou altyd gevlagde boodskappe">
+<!ENTITY retentionApplyToFlagged.accesskey "H">
+
+<!ENTITY folderSynchronizationTab.label "Sinchronisasie">
+<!ENTITY folderCheckForNewMessages2.label "Wanneer nuwe boodskappe verkry word vir dié rekening, kontroleer altyd dié gids">
+<!ENTITY folderCheckForNewMessages2.accesskey "W">
+
+<!ENTITY offlineFolder.check.label "Kies hierdie vouer vir aflyngebruik">
+<!ENTITY offlineFolder.check.accesskey "K">
+<!ENTITY offlineFolder.button.label "Laai nou af">
+<!ENTITY offlineFolder.button.accesskey "L">
+
+<!ENTITY selectofflineNewsgroup.check.label "Kies hierdie nuusgroep vir aflyngebruik">
+<!ENTITY selectofflineNewsgroup.check.accesskey "g">
+<!ENTITY offlineNewsgroup.button.label "Laai nou af">
+<!ENTITY offlineNewsgroup.button.accesskey "L">
+
+<!ENTITY folderProps.name.label "Naam:">
+<!ENTITY folderProps.name.accesskey "N">
+<!ENTITY folderProps.location.label "Ligging:">
+<!ENTITY folderProps.location.accesskey "L">
+
+<!ENTITY folderSharingTab.label "Deel">
+<!ENTITY privileges.button.label "Voorregte…">
+<!ENTITY privileges.button.accesskey "V">
+<!ENTITY permissionsDesc.label "U het die volgende toestemming:">
+<!ENTITY folderType.label "Vouersoort:">
+
+<!ENTITY folderQuotaTab.label "Kwota">
+<!ENTITY folderQuotaUsage.label "Verbruik:">
+<!ENTITY folderQuotaStatus.label "Status:">
+
+<!-- LOCALIZATION NOTE: When the number of messages can't be determined, this string is displayed as the number -->
+
+<!-- LOCALIZATION NOTE: When the size can't be determined, this string is displayed as the size -->
+
+
+<!ENTITY folderProps.color.label "Icon Color:">
+<!ENTITY folderProps.color.accesskey "I">
+<!ENTITY folderProps.reset.tooltip "Restore default color">
+<!ENTITY folderOtherUsers.label "Others with access to this folder:">
+<!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/af/chrome/af/locale/af/messenger/folderWidgets.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/folderWidgets.properties
new file mode 100644
index 0000000000..f0eaddc9e0
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/folderWidgets.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(globalInbox)
+# %S=name of the Local folders account
+# LOCALIZATION NOTE(verboseFolderFormat): %1$S is folder name, %2$S is server name
+verboseFolderFormat=%1$S op %2$S
+
+# LOCALIZATION NOTE(globalInbox)
+# %S=name of the Local folders account
+globalInbox=Global Inbox (%S)
+chooseFolder=Choose Folder…
+chooseAccount=Choose Account…
+noFolders=No available folders
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/folderpane.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/folderpane.dtd
new file mode 100644
index 0000000000..101a8e904c
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Naam">
+<!ENTITY unreadColumn.label "Ongelees">
+<!ENTITY totalColumn.label "Totaal">
+<!ENTITY folderSizeColumn.label "Grootte">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/gloda.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/gloda.properties
new file mode 100644
index 0000000000..98510227ae
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/gloda.properties
@@ -0,0 +1,176 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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=Rekening
+gloda.message.attr.account.mustMatchLabel=moet in #1 wees
+gloda.message.attr.account.cantMatchLabel=kan nie in #1 wees nie
+
+# LOCALIZATION NOTE (gloda.message.attr.folder.*): Stores the message folder in
+# which the message is stored.
+gloda.message.attr.folder.facetNameLabel=Vouer
+gloda.message.attr.folder.mustMatchLabel=moet in #1 wees
+gloda.message.attr.folder.cantMatchLabel=kan nie in #1 wees nie
+
+# LOCALIZATION NOTE (gloda.message.attr.fromMe.*): Stores everyone involved
+# with the message. This means from/to/cc/bcc.
+gloda.message.attr.fromMe.facetNameLabel=Van my af
+
+# LOCALIZATION NOTE (gloda.message.attr.toMe.*): Stores everyone involved
+# with the message. This means from/to/cc/bcc.
+gloda.message.attr.toMe.facetNameLabel=Aan my
+
+# LOCALIZATION NOTE (gloda.message.attr.involves.*): Stores everyone involved
+# with the message. This means from/to/cc/bcc.
+gloda.message.attr.involves.facetNameLabel=Mense
+gloda.message.attr.involves.includeLabel=wat enige van die volgende het:
+gloda.message.attr.involves.excludeLabel=wat geen van die volgende het:
+gloda.message.attr.involves.remainderLabel=ander deelnemers:
+gloda.message.attr.involves.mustMatchLabel=moet #1 hê
+gloda.message.attr.involves.cantMatchLabel=kan nie #1 hê nie
+
+# 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=Datum
+
+# 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=Aanhegsels
+
+# 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=Poslys
+gloda.message.attr.mailing-list.mustMatchLabel=moet in #1 wees
+gloda.message.attr.mailing-list.cantMatchLabel=kan nie in #1 wees nie
+gloda.message.attr.mailing-list.mustMatchSomeLabel=moet in 'n poslys wees
+gloda.message.attr.mailing-list.mustMatchNoneLabel=kan nie in 'n poslys wees nie
+
+# 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 indepdendent 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=Merkers
+gloda.message.attr.tag.mustMatchLabel=moet as #1 gemerk wees
+gloda.message.attr.tag.cantMatchLabel=kan nie as #1 gemerk wees nie
+gloda.message.attr.tag.mustMatchSomeLabel=moet gemerk wees
+gloda.message.attr.tag.mustMatchNoneLabel=kan nie gemerk wees nie
+
+# 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=Gevlag
+
+# LOCALIZATION NOTE (gloda.message.attr.read.*): Stores whether the user has
+# read the message or not.
+gloda.message.attr.read.facetNameLabel=Gelees
+
+# 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=Geantwoord aan
+
+# 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=Aangestuur
+
+# LOCALIZATION NOTE (gloda.mimetype.category.*.label): Map categories of MIME
+# types defined in mimeTypeCategories.js 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=Argief
+gloda.mimetype.category.documents.label=Dokumente
+gloda.mimetype.category.images.label=Prente
+# 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 (klank, video)
+gloda.mimetype.category.pdf.label=PDF-lêers
+# 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=Ander
+
+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.folder.includeLabel=stored in any of:
+gloda.message.attr.folder.excludeLabel=not stored in:
+gloda.message.attr.folder.remainderLabel=other folders:
+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.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:
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/glodaComplete.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/glodaComplete.properties
new file mode 100644
index 0000000000..71873ce41d
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Boodskappe wat gemerk is: #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=Boodskappe wat bevat: #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=Boodskappe wat bevat: #1
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/glodaFacetView.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/glodaFacetView.dtd
new file mode 100644
index 0000000000..c3b8b218ce
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/glodaFacetView.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 (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 "Soek&#8230;">
+<!-- LOCALIZATION NOTE (glodaFacetView.empty.label): Label that appears when
+ there are no results that match the search query. -->
+
+<!ENTITY glodaFacetView.empty.label "Geen boodskappe pas u soektog nie">
+<!-- LOCALIZATION NOTE (glodaFacetView.pageMore.label): Label at the bottom
+ of the results list to show more hits. -->
+
+
+<!-- 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/af/chrome/af/locale/af/messenger/glodaFacetView.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/glodaFacetView.properties
new file mode 100644
index 0000000000..c7a7b44d94
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/glodaFacetView.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 (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=Soek
+
+# 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.
+
+# 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=Vir #1 soek
+glodaFacetView.constraints.query.fulltext.andJoinWord=en
+glodaFacetView.constraints.query.fulltext.orJoinWord=of
+
+# 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=Vir boodskappe soek
+
+# 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=met #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=gemerk:
+
+
+# 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=Lys alle #1;Lys alle #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=wat enige van die volgende insluit:
+# 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=wat uitsluit:
+# 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=ander:
+
+# 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=moet by #1 pas
+glodaFacetView.facets.mustMatchNoneLabel.fallbackLabel=kan nie 'n waarde hê nie
+
+# 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=kan nie by #1 pas nie
+glodaFacetView.facets.mustMatchSomeLabel.fallbackLabel=moet 'n waarde hê
+
+# 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=verwyder beperking
+glodaFacetView.facets.mayMatchAnyLabel.fallbackLabel=verwyder beperking
+
+# 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=Geen
+
+# LOCALIZATION NOTE (glodaFacetView.facets.filter.attachmentTypes.allLabel):
+# The label to use when all types of attachments are being displayed.
+glodaFacetView.facets.filter.attachmentTypes.allLabel=Enige soort
+
+# 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=van:
+
+# 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=aan:
+
+# 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=(onderwerploos)
+
+# 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=van #1;van #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
+
+# LOCALIZATION NOTE(glodaFacetView.results.message.openEmailAsList.label): 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.
+# LOCALIZATION NOTE(glodaFacetView.results.message.openEmailAsList.tooltip):
+# The tooltip to display when hovering over the openEmailAsList label.
+
+# 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=, en #1 ander;, en #1 ander
+
+
+# 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:
+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
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/imAccountWizard.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/imAccountWizard.dtd
new file mode 100644
index 0000000000..d72d8ef988
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/imAccountWizard.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 accountPasswordTitle.label "Wagwoord">
+
+
+
+
+<!ENTITY accountAdvancedTitle.label "Gevorderde opsies">
+
+
+
+
+
+
+
+
+
+<!ENTITY accountSummaryTitle.label "Opsomming">
+
+
+
+<!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 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 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 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/af/chrome/af/locale/af/messenger/imAccounts.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/imAccounts.properties
new file mode 100644
index 0000000000..dfb56583f8
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/imAccounts.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/.
+
+# LOCALIZATION NOTE (protoOptions):
+# %S is replaced by the name of a protocol
+accountUsername=Gebruikernaam:
+# 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.
+# LOCALIZATION NOTE (accountUsernameInfo):
+# %S is replaced by the name of a protocol
+# LOCALIZATION NOTE (accountUsernameInfoWithDescription):
+# %1$S is a hint for the expected format of the username
+# %2$S is the name of a protocol
+
+# LOCALIZATION NOTE (account.connection.error):
+# %S is the error message.
+# LOCALIZATION NOTE (account.connection.errorUnknownPrpl)
+# %S is the id (not very user friendly; hence the quotes) of the missing plugin.
+# LOCALIZATION NOTE (account.connection.progress):
+# %S is a message indicating progress of the connection process
+# 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.
+
+# LOCALIZATION NOTE (requestAuthorizeAllow, requestAuthorizeDeny):
+# the & symbol indicates the position of the character that should be
+# used as the accesskey for this button.
+requestAuthorizeAllow=&Toelaat
+# LOCALIZATION NOTE (requestAuthorizeText):
+# %S is a contact username.
+
+# LOCALIZATION NOTE (accountsManager.notification.singleCrash.label): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of accounts that are suspected to have caused a crash.
+
+
+# LOCALIZATION NOTE (protoOptions):
+# %S is replaced by the name of a protocol
+protoOptions=%S Options
+# 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
+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/af/chrome/af/locale/af/messenger/imapMsgs.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/imapMsgs.properties
new file mode 100644
index 0000000000..a857ff683c
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/imapMsgs.properties
@@ -0,0 +1,289 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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.
+
+# Status - opening folder
+imapStatusSelectingMailbox=Open tans vouer %S…
+
+# Status - create folder
+imapStatusCreatingMailbox=Skep tans vouer…
+
+# 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=Skrap tans vouer %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=Hernoem tans vouer %S…
+
+# Status - looking for mailboxes
+imapStatusLookingForMailbox=Soek tans vir vouers…
+
+# 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=Teken tans in op vouer %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=Teken tans af van vouer %S…
+
+# Status - searching imap folder
+imapStatusSearchMailbox=Deursoek tans vouer…
+
+# Status - closing a folder
+imapStatusCloseMailbox=Sluit tans vouer…
+
+# Status - compacting a folder
+imapStatusExpungingMailbox=Kompakteer tans vouer…
+
+# Status - logging out
+imapStatusLoggingOut=Meld tans af…
+
+# Status - checking server capabilities
+imapStatusCheckCompat=Kontroleer tans posbedienervermoëns…
+
+# Status - logging on
+
+# Status - auth logon
+
+imapDownloadingMessage=Laai tans boodskap af…
+
+# LOCALIZATION NOTE (imapGettingACLForFolder): Do not translate the word "ACL" below.
+imapGettingACLForFolder=Kry tans vouer se toeganslys…
+
+imapGettingServerInfo=Kry tans bedieneropstelinfo…
+
+imapGettingMailboxInfo=Kry tans posbusopstelinfo…
+
+imapEmptyMimePart=Hierdie deel van die lyf sal op versoek afgelaai word.
+
+# 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…"
+
+# 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…"
+
+imapDeletingMessages=Skrap tans boodskappe…
+
+imapDeletingMessage=Skrap tans boodskap…
+
+# 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=Skuif tans boodskappe na %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=Skuif tans boodskap na %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=Kopieer tans boodskappe na %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=Kopieer tans boodskap na %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…"
+
+# 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=Vouer gevind: %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=Tik u wagwoord vir %1$S op %2$S in:
+
+# LOCALIZATION NOTE (imapServerNotImap4): Do not translate the word "IMAP4" below.
+imapServerNotImap4=Posbediener %S is nie 'n IMAP4-posbediener nie.
+
+# This is intentionally left blank.
+imapDone=
+
+imapUnknownHostError=Kon nie aan bediener %S verbind nie.
+
+imapConnectionRefusedError=Kon nie aan posbediener %S verbind nie; die verbinding is geweier.
+
+imapNetTimeoutError=Verbinding aan bediener %S het uitgetel.
+
+# Status - no messages to download
+imapNoNewMessages=Daar is nie nuwe boodskappe op die bediener nie.
+
+imapDefaultAccountName=Pos vir %S
+
+imapPersonalSharedFolderTypeName=Persoonlike vouer
+
+imapPublicFolderTypeName=Openbare vouer
+
+imapOtherUsersFolderTypeName=Ander gebruiker se vouer
+
+imapPersonalFolderTypeDescription=Hierdie is 'n persoonlike posvouer. Dit word nie gedeel nie.
+
+imapPersonalSharedFolderTypeDescription=Hierdie is 'n persoonlike posvouer. Dit word gedeel.
+
+imapPublicFolderTypeDescription=Hierdie is 'n openbare vouer.
+
+imapOtherUsersFolderTypeDescription=Hierdie is 'n posvouer wat deur die gebruiker '%S' gedeel word.
+
+imapAclFullRights=Volledige beheer
+
+imapAclLookupRight=Opsoek
+
+imapAclReadRight=Lees
+
+imapAclSeenRight=Stel lees/ongelees-staat
+
+imapAclWriteRight=Skryf
+
+imapAclInsertRight=Invoeg (kopieer in)
+
+imapAclPostRight=Pos
+
+imapAclCreateRight=Skep subvouer
+
+imapAclDeleteRight=Skrap boodskappe
+
+imapAclAdministerRight=Administreer vouer
+
+imapServerDoesntSupportAcl=Hierdie bediener werk nie met gedeelde vouers nie.
+
+imapAclExpungeRight=Deurhaal
+
+imapServerDisconnected= Bediener %S het ontkoppel. Die bediener het moontlik omgeval, of daar is 'n netwerkprobleem.
+
+# LOCALIZATION NOTE (autoSubscribeText): %1$S is the imap folder.
+imapSubscribePrompt=Wil u op %1$S inteken?
+
+imapServerDroppedConnection=Kon nie aan u IMAP-bediener koppel nie. U het dalk die maksimum getal verbindings aan hierdie bediener gemaak. Indien wel, gebruik die "Gevorderde IMAP-bediener-opstelling"-dialoog om die getal gekaste verbindings te verminder.
+
+imapQuotaStatusFolderNotOpen=Kwota-inligting is nie beskikbaar nie omdat die vouer nie oop is nie.
+
+imapQuotaStatusNotSupported=Hierdie bediener werk nie met kwotas nie.
+
+# Out of memory
+imapOutOfMemory=Die toepassing se geheue is op.
+
+# 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.
+
+# LOCALIZATION NOTE (imapMoveFolderToTrash): Do not translate the word %S below.
+# "%S" is the the name of the folder.
+imapMoveFolderToTrash=Is u seker u wil die vouer '%S' skrap?
+
+# LOCALIZATION NOTE (imapDeleteNoTrash): Do not translate the word %S below.
+# "%S" is the the name of the folder.
+imapDeleteNoTrash=OM hierdie vouer te skrap, is nie ontdoenbaar nie, en dit sal alle boodskappe skrap wat dit bevat, asook die subvouers? Is u wel seker u wil die vouer '%S' skrap?
+
+imapDeleteFolderDialogTitle=Skrap vouer
+
+imapDeleteFolderButtonLabel=&Skrap vouer
+
+# LOCALIZATION NOTE (imapAuthChangeEncryptToPlainSSL): %S is the server hostname
+imapAuthChangeEncryptToPlainSSL=Die IMAP-bediener %S ondersteun blykbaar nie geënkripteerde wagwoorde nie. Indien u pas dié rekening opgestel het, probeer om te verander na 'Normale wagwoord' as die magtigingsmetode by 'Rekeningopstelling | Bedieneropstelling'. As dit voorheen gewerk het en nou misluk, kontak u e-posadministrateur of -verskaffer.
+
+# LOCALIZATION NOTE (imapAuthChangePlainToEncrypt): %S is the server hostname
+imapAuthChangePlainToEncrypt=Die IMAP-bediener %S laat nie skoontekswagwoorde toe nie. Probeer om die magtigingsmetode na 'Geënkripteerde wagwoord' te verander by die 'Rekeningopstelling | Bedieneropstelling'.
+
+# LOCALIZATION NOTE (imapAuthChangeEncryptToPlainNoSSL): %S is the server hostname
+imapAuthChangeEncryptToPlainNoSSL=Die IMAP-bediener %S ondersteun blykbaar nie geënkripteerde wagwoorde nie. Indien u pas dié rekening opgestel het, probeer om te verander na 'Wagwoord, onveilig oorgedra' as die 'Magtigingsmetode by 'Rekeningopstelling | Bedieneropstelling'. As dit voorheen gewerk het en nou skielik misluk, is dit algemeen 'n geval hoe iemand u wagwoord kan steel.
+
+# LOCALIZATION NOTE (imapAuthMechNotSupported): %S is the server hostname
+imapAuthMechNotSupported=Die IMAP-bediener %S ondersteun nie die gekose magtigingsmetode nie. Verander die 'Magtigingsmetode' by 'Rekeningopstelling | Bedieneropstelling'.
+
+# LOCALIZATION NOTE (imapAuthGssapiFailed): %S is the server hostname
+imapAuthGssapiFailed=Die Kerberos/GSSAPI-kaartjie is nie aanvaar deur die IMAP-bediener %S nie. Kontroleer dat u aangemeld is by die Kerberos/GSSAPI-gebied.
+
+# 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=Die huidige opdrag het misluk. Die posbediener vir rekening %1$S het geantwoord: %2$S\u0020
+
+# 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=Die huidige bewerking op '%2$S' het misluk. Die posbediener vir rekening %1$S het geantwoord: %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.
+
+
+#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 - logging on
+imapStatusSendingLogin=Sending login information…
+# Status - auth logon
+imapStatusSendingAuthLogin=Sending login information…
+# 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…
+# 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 (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
+imapOAuth2Error=Authentication failure while connecting to server %S.
+imapTlsError=Non-overridable TLS error occurred. Handshake error or probably the TLS version or certificate used by server %S is incompatible.
+imapSpecialChar2=The %S character is reserved on this imap server. Please choose another name.
+# 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.
+# 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 (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/af/chrome/af/locale/af/messenger/importDialog.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/importDialog.dtd
new file mode 100644
index 0000000000..1014412acc
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/importDialog.dtd
@@ -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 : '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.
+-->
+
+
+<!--
+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 "Invoer">
+<!ENTITY importAll.label "Voer alles in">
+<!ENTITY importAll.accesskey "a">
+<!ENTITY importMail.label "Pos">
+<!ENTITY importMail.accesskey "P">
+
+
+<!ENTITY importAddressbook.label "Adresboeke">
+<!ENTITY importAddressbook.accesskey "A">
+<!ENTITY importSettings.label "Instellings">
+<!ENTITY importSettings.accesskey "I">
+<!ENTITY importFilters.label "Filters">
+<!ENTITY importFilters.accesskey "F">
+
+<!ENTITY importTitle.label "&brandShortName; se invoerslimmerd">
+<!ENTITY importShortDesc.label "Voer pos, adresboeke, instellings en filters uit ander programme in">
+
+<!ENTITY importDescription2.label "Sodra dit ingevoer is, sal u vanuit &brandShortName; daartoe toegang hê.">
+
+<!ENTITY selectDescription.label "Kies die soort lêer wat u wil invoer:">
+
+<!ENTITY selectDescription.accesskey "K">
+<!ENTITY acctName.label "Naam:">
+<!ENTITY acctName.accesskey "N">
+
+
+<!ENTITY back.label "&lt; Terug">
+<!ENTITY forward.label "Volgende &gt;">
+<!ENTITY finish.label "Klaar">
+<!ENTITY cancel.label "Kanselleer">
+
+<!ENTITY select.label "of kies die soort stof wat u wil invoer:">
+
+<!ENTITY title.label "Titel">
+<!ENTITY processing.label "Voer tans in…">
+
+<!ENTITY importFeeds.label "Feed Subscriptions">
+<!ENTITY importFeeds.accesskey "d">
+<!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 selectDescriptionB.label "Please select an existing account or create a new account:">
+<!ENTITY noModulesFound.label "No application or file to import data from was found.">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/importMsgs.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/importMsgs.properties
new file mode 100644
index 0000000000..553cc36ea2
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/importMsgs.properties
@@ -0,0 +1,307 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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
+
+# 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=Geen adresboeke is gevind om in te voer nie.
+
+# Error: Address book import not intialized
+## @name IMPORT_ERROR_AB_NOTINITIALIZED
+## @loc None
+2001=Kon nie adresbeoeke invoer nie: inisialiseerprobleem.
+
+# Error: Unable to create the import thread
+## @name IMPORT_ERROR_AB_NOTHREAD
+## @loc None
+2002=Kon nie adresbeoeke invoer nie: kan nie invoerdraad skep nie.
+
+# 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=Kon nie %S invoer nie: kon nie adresbeoek skep nie.
+
+# Success message when no mailboxes are found to import
+## @name IMPORT_NO_MAILBOXES
+## @loc None
+2004=Geen posbusse is gevind om in te voer nie
+
+# Error: Mailbox import not intialized
+## @name IMPORT_ERROR_MB_NOTINITIALIZED
+## @loc None
+2005=Kon nie posbusse invoer nie, inisialiseerprobleem
+
+# Error: Unable to create the import thread
+## @name IMPORT_ERROR_MB_NOTHREAD
+## @loc None
+2006=Kon nie posbusse invoer nie, kan nie invoerdraad skep nie
+
+# Error: Unable to create the proxy object for importing mailboxes
+## @name IMPORT_ERROR_MB_NOPROXY
+## @loc None
+2007=Kon nie posbusse invoer nie, kan nie instaanbedienerobjek vir teikenposbusse skep nie
+
+# 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=Kon nie teikenposbusse skep nie, kan nie posbus %S vind nie
+
+# 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=Kon nie posbus %S invoer nie, kon nie teikenposbus skep nie
+
+# Error: No destination folder to import mailboxes
+## @name IMPORT_ERROR_MB_NODESTFOLDER
+## @loc None
+2010=Kon nie vouer skep in pos by in te voer nie
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC_START
+## @loc None
+2100=Voornaam
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2101=Van
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2102=Vertoonnaam
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2103=Bynaam
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2104=Primêre e-posadres
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2105=Sekondêre e-posadres
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2106=Telefoon werk
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2107=Telefoon tuis
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2108=Faksnommer
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2109=Roepernommer
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2110=Selfoonnommer
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2111=Huis adres
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2112=Huis adres 2
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2113=Huis stad/dorp
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2114=Huis deelstaat
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2115=Huis poskode
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2116=Huis land
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2117=Werk adres
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2118=Werk adres 2
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2119=Werk stad/dorp
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2120=Werk deelstaat
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2121=Werk poskode
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2122=Werk land
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2123=Postitel
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2124=Afdeling
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2125=Organisasie
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2126=Webbladsy 1
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2127=Webbladsy 2
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2128=Geboortejaar
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2129=Geboortemaand
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2130=Geboortedag
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2131=Doelmaak 1
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2132=Doelmaak 2
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2133=Doelmaak 3
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2134=Doelmaak 4
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2135=Aantekeninge
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC_END
+## @loc None
+2136=Skermnaam
+
+#Error strings
+ImportAlreadyInProgress=Daar is tans besig om in te voer. Probeer weer wanneer die huidige invoeraksie afgehandel is.
+
+#Error strings for settings import
+ImportSettingsBadModule=Kon nie die opstelingmodule laai nie
+ImportSettingsNotFound=Kon nie opstelling vind nie. Maak seker die toepassing is op hierdie masjien geïnstalleer.
+ImportSettingsFailed=Kon nie opstelling invoer nie. Net sommige of geen van die data is dalk ingevoer.
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+ImportSettingsSuccess=Opstelling is van %S af ingevoer
+
+#Error string for mail import
+ImportMailBadModule=Kon nie posinvoermodule laai nie
+ImportMailNotFound=Kon nie pos vind om in te voer nie. Maak seker dat die postoepassing korrek op hierdie masjien geïnstalleer is.
+ImportEmptyAddressBook=Kan nie leë adresboek %S invoer nie.
+# LOCALIZATION NOTE: Do not translate the word "%S" below.
+ImportMailFailed=Kon nie pos van %S invoer nie
+# LOCALIZATION NOTE: Do not translate the word "%S" below.
+ImportMailSuccess=Pos is suksesvol van %S af ingevoer
+
+# Error string for address import
+ImportAddressBadModule=Kon nie adresboek-invoermodule laai nie.
+ImportAddressNotFound=Kon nie enige adresboeke vind om in te voer nie. Maak seker dat die gekose toepassing of formaat korrek op hierdie masjien geïnstalleer is.
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+ImportAddressFailed=Kon nie adresse van %S invoer nie.
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+ImportAddressSuccess=Adresse is suksesvol van %S af ingevoer.
+
+# Error string for filters import
+ImportFiltersBadModule=Kon nie filterinvoermodule laai nie.
+# LOCALIZATION NOTE : The %S will get replaced by the name of the import module.
+ImportFiltersFailed=Kon nie filters van %S af invoer nie.
+# LOCALIZATION NOTE : The %S will get replaced by the name of the import module.
+ImportFiltersSuccess=Filters suksesvol van %S af ingevoer.
+# LOCALIZATION NOTE : The %S will get replaced by the name of the import module.
+ImportFiltersPartial=Filters gedeeltelik van %S af ingevoer. Berigte hier onder:
+
+#Progress strings
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+MailProgressMeterText=Skakel tans posbusse van %S af om
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+AddrProgressMeterText=Skakel tans adresboeke van %S af om
+
+#Import file dialog strings
+ImportSelectSettings=Kies opstellinglêer
+ImportSelectMailDir=Kies posgids
+ImportSelectAddrDir=Kies adresboekgids
+ImportSelectAddrFile=Kies adresboeklêer
+
+# Folder Names for imported Mail
+DefaultFolderName=Ingevoerde pos
+# LOCALIZATION NOTE: Do not translate the word "%S" below.
+ImportModuleFolderName=%S-invoer
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/joinChat.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/joinChat.dtd
new file mode 100644
index 0000000000..561bcce663
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/joinChat.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 account.label "Rekening">
+
+
+
+<!ENTITY joinChatWindow.title "Join chat">
+<!ENTITY name.label "Room">
+<!ENTITY optional.label "(optional)">
+<!ENTITY autojoin.label "Auto-join this Chat Room">
+<!ENTITY autojoin.accesskey "A">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/junkLog.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/junkLog.dtd
new file mode 100644
index 0000000000..9db10c03f2
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/junkLog.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 clearLog.label "Maak staaflêer leeg">
+<!ENTITY clearLog.accesskey "M">
+<!ENTITY closeLog.label "Sluit">
+<!ENTITY closeLog.accesskey "u">
+
+<!ENTITY adaptiveJunkLog.title "Adaptive Junk Mail Log">
+<!ENTITY adaptiveJunkLogInfo.label "Log of adaptive junk mail control activity.">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/localMsgs.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/localMsgs.properties
new file mode 100644
index 0000000000..becd3faae7
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/localMsgs.properties
@@ -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 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.
+
+# 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=Tik u wagwoord vir %1$S op %2$S in:
+
+# 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=Tik 'n nuwe wagwoord vir gebruiker %1$S op %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;
+
+# Status - connecting to host
+
+# Status - no messages to download
+
+# 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
+
+# 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=Bou tans opsomminglêer vir %S…
+
+# Status - parsing folder
+localStatusDocumentDone=Klaar
+
+# Status - pop3 server error
+#LOCALIZATION NOTE (pop3ServerError): Do not translate POP3 in the following line.
+pop3ServerError=Daar het fout gegaan met die POP3-posbediener.
+
+# Status - pop3 user name failed
+pop3UsernameFailure=Kon nie gebruikernaam stuur nie.
+
+# Status - password failed
+#LOCALIZATION NOTE (pop3PasswordFailed): Do not translate "%1$S" below.
+# Place the word %1$S where the user name should appear.
+
+# Status - write error occurred
+pop3MessageWriteError=Kon nie die e-pos na die posbus skryf nie. Maak seker u het skryftoestemming op die lêerstelsel, en dat u genoeg skyfspasie het om die posbus te kopieer.
+
+# Status - retr failure from the server
+pop3RetrFailure=Die RETR-bevel het misluk. Kon nie 'n boodskap kry nie.
+
+# Status - password undefined
+pop3PasswordUndefined=Kon nie poswagwoord kry nie.
+
+# Status - username undefined
+pop3UsernameUndefined=U het nie 'n gebruikernaam vir hierdie bediener verskaf nie. Verskaf een in die rekeningopstellingkieslys en probeer weer.
+
+# Status - list failure
+pop3ListFailure=Die LIST-bevel het misluk. Kon nie die ID en grootte van 'n boodskap kry nie.
+
+# Status - delete error
+pop3DeleFailure=Die DELE-bevel het misluk. Kon nie 'n boodskap as geskrap merk nie.
+
+# Status - stat failed
+pop3StatFail=Die STAT-bevel het misluk. Kon nie die nommer en grootte van boodskappe kry nie.
+
+#LOCALIZATION NOTE (pop3ServerSaid): Do not remove the leading space during translation.
+pop3ServerSaid= Posbediener %S se respons is:\u0020
+
+copyingMessagesStatus=Kopieer tans %S van %S boodskappe na %S
+
+movingMessagesStatus=Verskuif tans %S van %S boodskappe na %S
+
+# Status - write error occurred
+# LOCALIZATION NOTE (pop3ServerBusy): Do not translate the word "%S" below.
+# Place %S where the account name should appear.
+
+#LOCALIZATION NOTE (movemailCantParseSpool): %S is file name
+
+pop3TmpDownloadError=Kon nie die volgende boodskap aflaai nie: \nVan: %S\n Onderwerp: %S\n Hierdie boodskap bevat dalk 'n virus of daar is nie genoeg skryfspasie nie. Slaan hierdie boodskap oor?
+
+# 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=Die POP3-posbediener (%S) werk nie met UIDL of XTND XLST nie, wat vereis word om die ''Laat op bediener''-, ''Maksimum boodskapgrootte'' of ''Kry net kopskrifte''-opsies te implementeer. Om u pos af te laai, skakel hierdie opsies in u posbediener se Bedieneropstelling af in die Rekeningopstelling-venster.
+
+# 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=Die POP3-posbediener (%S) werk nie met die TOP-bevel nie. As die bediener nie hiermee werk nie, kan die ''Maksimum boodskapgrootte'' of ''Kry net kopskrifte''-voorkeure nie geïmplementeer word nie. Hierdie opsie is gedeaktiveer, en boodskappe sal afgelaai word ongeag die grootte.
+
+nsErrorCouldNotConnectViaTls=Kon nie TLS-verbinding met POP3-bediener bewerkstellig nie. Die bediener is dalk af of is dalk verkeerd opgestel. Kontroleer of u die korrekte opstelling in u posbediener se Bedieneropstelling in die Rekeningopstelling-venster het, en probeer weer.
+
+# LOCALIZATION NOTE (pop3MoveFolderToTrash): Do not translate the word %S below.
+# "%S" is the the name of the folder.
+pop3MoveFolderToTrash=Is u seker u wil die vouer '%S' skrap?
+
+pop3DeleteFolderDialogTitle=Skrap vouer
+
+pop3DeleteFolderButtonLabel=&Skrap vouer
+
+pop3AuthInternalError=Fout met die interne toestand tydens POP3-bedienermagtiging. Hierdie is 'n interne, onverwagse fout in die program. Rapporteer dit asb. as 'n fout.
+
+pop3AuthChangeEncryptToPlainNoSSL=Die POP3-bediener ondersteun blykbaar nie geënkripteerde wagwoord nie. Indien u pas die rekening opgestel het, probeer om te verander na 'Wagwoord, onveilig oorgedra' as die 'Magtigingsmetode by 'Rekeningopstelling | Bedieneropstelling'. As dit voorheen gewerk het en nou skielik misluk, is dit algemeen 'n geval hoe iemand u wagwoord kan steel.
+
+pop3AuthChangeEncryptToPlainSSL=Die POP3-bediener ondersteun blykbaar nie geënkripteerde wagwoord nie. Indien u pas dié rekening opgestel het, probeer om te verander na 'Normale wagwoord' as die 'Magtigingsmetode by 'Rekeningopstelling | Bedieneropstelling'. As dit voorheen gewerk het en nou skielik misluk, kontak u e-posadministrateur of -diensverskaffer.
+
+pop3AuthChangePlainToEncrypt=Dié POP3-bediener laat nie skoontekswagwoorde toe nie. Probeer verander na 'Geënkripteerde wagwoord' as die 'Magtigingsmetode' by 'Rekeningopstelling | Bedieneropstelling'.
+
+# Authentication server caps and pref don't match
+pop3AuthMechNotSupported=Die bediener ondersteun nie die gekose magtigingsmetode nie. Verander die 'Magtigingsmetode' by 'Rekeningopstelling | Bedieneropstelling'.
+
+# Status - Could not log in to GSSAPI, and it was the only method
+pop3GssapiFailure=Die Kerberos/GSSAPI-kaartjie is nie aanvaar deur die IMAP-bediener %S nie. Kontroleer dat u aangemeld is by die Kerberos/GSSAPI-gebied.
+
+# 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
+# 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 - 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.
+#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.
+# 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.
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/mailEditorOverlay.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/mailEditorOverlay.dtd
new file mode 100644
index 0000000000..a877bd4ef6
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Stuur bladsy…">
+<!ENTITY sendPage.accesskey "S">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/mailOverlay.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/mailOverlay.dtd
new file mode 100644
index 0000000000..0d5d44d086
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Boodskap">
+<!ENTITY newMessageCmd.accesskey "o">
+
+<!ENTITY newContactCmd.label "Adresboek-kennis…">
+<!ENTITY newContactCmd.accesskey "k">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/mailViewList.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/mailViewList.dtd
new file mode 100644
index 0000000000..d535ad3f18
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/mailViewList.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 msgViewPickerOverlay.dtd UI for showing various views on a folder -->
+
+
+<!ENTITY mailViewListTitle.label "Pasmaak boodskapaansigte">
+
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/mailViewSetup.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/mailViewSetup.dtd
new file mode 100644
index 0000000000..a6dcb8d84e
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/mailViewSetup.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/. -->
+
+<!--LOCALIZATION NOTE msgViewPickerOverlay.dtd UI for showing various views on a folder -->
+
+
+<!ENTITY mailViewSetupTitle.label "Boodskapaansig-opstelling">
+<!ENTITY mailViewHeading.label "Boodskapaansig-naam:">
+<!ENTITY mailViewHeading.accesskey "o">
+<!ENTITY searchTermCaption.label "Wanneer hierdie draad gekies is, vertoon net boodskappe wat:">
+
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/mailviews.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/mailviews.properties
new file mode 100644
index 0000000000..88b631a9f4
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Mense wat ek ken
+mailViewRecentMail=Onlangse pos
+mailViewLastFiveDays=Onlangse 5 dae
+mailViewNotJunk=Nie gemors nie
+mailViewHasAttachments=Het aanhegsels
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/markByDate.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/markByDate.dtd
new file mode 100644
index 0000000000..3960ef9519
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Merk boodskappe as gelees volgend datum">
+<!ENTITY markByDateLower.label "Merk boodskappe as gelees van:">
+<!ENTITY markByDateLower.accesskey "v">
+<!ENTITY markByDateUpper.label "Aan:">
+<!ENTITY markByDateUpper.accesskey "A">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/messenger.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messenger.dtd
new file mode 100644
index 0000000000..dbf99b599d
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messenger.dtd
@@ -0,0 +1,1184 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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 "Vouer…">
+<!ENTITY newFolderCmd.accesskey "V">
+
+
+
+
+
+
+
+<!-- LOCALIZATION NOTE (moveToNewWindow.label):
+ Menu option to cause the current tab to be migrated to a new Thunderbird
+ window.
+ -->
+
+<!ENTITY newVirtualFolderCmd.label "Gestoorde soektog…">
+<!ENTITY newVirtualFolderCmd.accesskey "G">
+
+
+
+
+
+
+
+
+
+
+<!ENTITY openMessageFileCmd.label "Open gestoorde boodskap…">
+<!ENTITY openMessageFileCmd.accesskey "O">
+<!ENTITY saveAsMenu.label "Stoor as">
+<!ENTITY saveAsMenu.accesskey "S">
+<!ENTITY saveAsFileCmd.key "s">
+<!ENTITY saveAsTemplateCmd.label "Sjabloon">
+<!ENTITY saveAsTemplateCmd.accesskey "S">
+<!ENTITY getNewMsgForCmd.label "Kry nuwe boodskappe vir">
+<!ENTITY getNewMsgForCmd.accesskey "u">
+<!ENTITY getAllNewMsgCmdPopupMenu.label "Alle rekeninge">
+<!ENTITY getAllNewMsgCmdPopupMenu.accesskey "A">
+<!ENTITY getNewMsgCurrentAccountCmdPopupMenu.label "Huidige rekening">
+<!ENTITY getNewMsgCurrentAccountCmdPopupMenu.accesskey "H">
+
+
+<!ENTITY sendUnsentCmd.label "Stuur ongestuurde boodskappe">
+<!ENTITY sendUnsentCmd.accesskey "u">
+<!ENTITY subscribeCmd.label "Inteken…">
+<!ENTITY subscribeCmd.accesskey "I">
+<!ENTITY deleteFolder.label "Skrap vouer">
+<!ENTITY deleteFolder.accesskey "S">
+<!ENTITY renameFolder.label "Hernoem vouer…">
+<!ENTITY renameFolder.accesskey "H">
+<!ENTITY renameFolder.key "VK_F2">
+<!ENTITY compactFolders.label "Kompakteer vouers">
+<!ENTITY compactFolders.accesskey "v">
+<!ENTITY emptyTrashCmd.label "Maak snippermandjie leeg">
+<!ENTITY emptyTrashCmd.accesskey "M">
+<!ENTITY offlineMenu.label "Aflyn">
+<!ENTITY offlineMenu.accesskey "l">
+<!ENTITY offlineGoOfflineCmd.label "Werk aflyn">
+<!ENTITY offlineGoOfflineCmd.accesskey "W">
+<!ENTITY synchronizeOfflineCmd.label "Laai nou af/sinchroniseer nou…">
+<!ENTITY synchronizeOfflineCmd.accesskey "s">
+
+
+<!ENTITY downloadSelectedCmd.label "Kry gemerkte boodskappe">
+<!ENTITY downloadSelectedCmd.accesskey "K">
+<!ENTITY downloadStarredCmd.label "Kry gevlagde boodskappe">
+<!ENTITY downloadStarredCmd.accesskey "g">
+<!ENTITY printCmd.label "Druk…">
+<!ENTITY printCmd.accesskey "D">
+<!ENTITY printCmd.key "p">
+<!-- Edit Menu -->
+
+<!ENTITY deleteMsgCmd.label "Skrap boodskap">
+<!ENTITY deleteMsgCmd.accesskey "S">
+<!ENTITY undeleteMsgCmd.label "Ontskrap boodskap">
+<!ENTITY undeleteMsgCmd.accesskey "t">
+<!ENTITY deleteMsgsCmd.label "Skrap gemerkte boodskappe">
+<!ENTITY deleteMsgsCmd.accesskey "S">
+<!ENTITY undeleteMsgsCmd.label "Ontskrap gemerkte boodskappe">
+<!ENTITY undeleteMsgsCmd.accesskey "t">
+<!ENTITY deleteFolderCmd.label "Skrap vouer">
+<!ENTITY deleteFolderCmd.accesskey "S">
+
+
+<!ENTITY selectMenu.label "Merk">
+<!ENTITY selectMenu.accesskey "M">
+<!ENTITY all.label "Almal">
+<!ENTITY all.accesskey "A">
+<!ENTITY selectThreadCmd.label "Draad">
+<!ENTITY selectThreadCmd.accesskey "D">
+<!ENTITY selectThreadCmd.key "a">
+<!ENTITY selectFlaggedCmd.label "Gevlagde boodskappe">
+<!ENTITY selectFlaggedCmd.accesskey "G">
+<!ENTITY menuFavoriteFolder.label "Gunsteling-vouer">
+<!ENTITY menuFavoriteFolder.accesskey "G">
+
+
+
+
+<!ENTITY undoDeleteMsgCmd.label "Ontdoen skrap van boodskap">
+<!ENTITY redoDeleteMsgCmd.label "Herdoen skrap van boodskap">
+<!ENTITY undoMoveMsgCmd.label "Ontdoen skuif van boodskap">
+<!ENTITY redoMoveMsgCmd.label "Herdoen skuif van boodskap">
+<!ENTITY undoCopyMsgCmd.label "Ontdoen kopieer van boodskap">
+<!ENTITY redoCopyMsgCmd.label "Herdoen kopieer van boodskap">
+<!ENTITY undoMarkAllCmd.label "Ontdoen almal as gelees merk">
+<!ENTITY redoMarkAllCmd.label "Herdoen almal as gelees merk">
+<!ENTITY undoDefaultCmd.label "Ontdoen">
+<!ENTITY undoDefaultCmd.accesskey "O">
+<!ENTITY redoDefaultCmd.label "Herdoen">
+<!ENTITY redoDefaultCmd.accesskey "H">
+<!-- View Menu -->
+
+<!ENTITY showMessengerToolbarCmd.label "Posnutsbalk">
+<!ENTITY showMessengerToolbarCmd.accesskey "u">
+<!ENTITY customizeToolbar.label "Doelmaak…">
+<!ENTITY customizeToolbar.accesskey "D">
+
+<!ENTITY messagePaneLayoutStyle.label "Uitleg">
+<!ENTITY messagePaneLayoutStyle.accesskey "U">
+<!ENTITY messagePaneClassic.label "Klassieke aansig">
+<!ENTITY messagePaneClassic.accesskey "K">
+<!ENTITY messagePaneWide.label "Wye aansig">
+<!ENTITY messagePaneWide.accesskey "W">
+<!ENTITY messagePaneVertical.label "Vertikale aansig">
+<!ENTITY messagePaneVertical.accesskey "V">
+
+
+
+
+<!ENTITY showMessageCmd.label "Boodskappaneel">
+<!ENTITY showMessageCmd.accesskey "B">
+
+<!ENTITY folderView.label "Vouers">
+<!ENTITY folderView.accesskey "V">
+<!ENTITY unifiedFolders.label "Verenig">
+<!ENTITY unifiedFolders.accesskey "n">
+<!ENTITY allFolders.label "Almal">
+<!ENTITY allFolders.accesskey "A">
+<!ENTITY unreadFolders.label "Ongelees">
+<!ENTITY unreadFolders.accesskey "O">
+<!ENTITY favoriteFolders.label "Gunsteling">
+<!ENTITY favoriteFolders.accesskey "G">
+<!ENTITY recentFolders.label "Onlangs">
+<!ENTITY recentFolders.accesskey "O">
+
+
+
+
+
+<!-- Sort Menu -->
+
+<!ENTITY sortMenu.label "Rangskik volgens">
+<!ENTITY sortMenu.accesskey "R">
+<!ENTITY sortByDateCmd.label "Datum">
+<!ENTITY sortByDateCmd.accesskey "u">
+<!ENTITY sortByReceivedCmd.label "Ontvang">
+<!ENTITY sortByReceivedCmd.accesskey "O">
+<!ENTITY sortByStarCmd.label "Vlag">
+<!ENTITY sortByStarCmd.accesskey "V">
+
+
+<!ENTITY sortByPriorityCmd.label "Prioriteit">
+<!ENTITY sortByPriorityCmd.accesskey "P">
+<!ENTITY sortBySizeCmd.label "Grootte">
+<!ENTITY sortBySizeCmd.accesskey "o">
+<!ENTITY sortByStatusCmd.label "Status">
+<!ENTITY sortByStatusCmd.accesskey "u">
+<!ENTITY sortByTagsCmd.label "Merkers">
+<!ENTITY sortByTagsCmd.accesskey "M">
+<!ENTITY sortByJunkStatusCmd.label "Gemors-status">
+<!ENTITY sortByJunkStatusCmd.accesskey "G">
+<!ENTITY sortBySubjectCmd.label "Onderwerp">
+<!ENTITY sortBySubjectCmd.accesskey "O">
+<!ENTITY sortByFromCmd.label "Van">
+<!ENTITY sortByFromCmd.accesskey "V">
+<!ENTITY sortByRecipientCmd.label "Ontvanger">
+<!ENTITY sortByRecipientCmd.accesskey "v">
+
+
+<!ENTITY sortByUnreadCmd.label "Lees">
+<!ENTITY sortByUnreadCmd.accesskey "L">
+<!ENTITY sortByOrderReceivedCmd.label "Volgorde ontvang">
+<!ENTITY sortByOrderReceivedCmd.accesskey "V">
+<!ENTITY sortAscending.label "Oplopend">
+<!ENTITY sortAscending.accesskey "O">
+<!ENTITY sortDescending.label "Aflopend">
+<!ENTITY sortDescending.accesskey "f">
+<!ENTITY sortThreaded.label "Gedraad">
+<!ENTITY sortThreaded.accesskey "G">
+<!ENTITY sortUnthreaded.label "Ongedraad">
+<!ENTITY sortUnthreaded.accesskey "O">
+<!ENTITY groupBySort.label "Groepeer volgens rangskikking">
+<!ENTITY groupBySort.accesskey "G">
+<!ENTITY msgsMenu.label "Boodskappe">
+<!ENTITY msgsMenu.accesskey "B">
+<!ENTITY threads.label "Drade">
+<!ENTITY threads.accesskey "a">
+<!ENTITY allMsgsCmd.label "Almal">
+<!ENTITY allMsgsCmd.accesskey "A">
+<!ENTITY expandAllThreadsCmd.label "Vou alle drade uit">
+<!ENTITY expandAllThreadsCmd.accesskey "V">
+<!ENTITY expandAllThreadsCmd.key "*">
+<!ENTITY collapseAllThreadsCmd.label "Vou alle drade in">
+<!ENTITY collapseAllThreadsCmd.accesskey "o">
+<!ENTITY collapseAllThreadsCmd.key "\">
+<!ENTITY unreadMsgsCmd.label "Ongelees">
+<!ENTITY unreadMsgsCmd.accesskey "O">
+<!ENTITY threadsWithUnreadCmd.label "Drade met ongelees">
+<!ENTITY threadsWithUnreadCmd.accesskey "D">
+<!ENTITY watchedThreadsWithUnreadCmd.label "Dopgehoude drade met ongelees">
+<!ENTITY watchedThreadsWithUnreadCmd.accesskey "D">
+<!ENTITY ignoredThreadsCmd.label "Geïgnoreerde drade">
+<!ENTITY ignoredThreadsCmd.accesskey "G">
+
+<!ENTITY headersMenu.label "Kopskrifte">
+<!ENTITY headersMenu.accesskey "K">
+<!ENTITY headersAllCmd.label "Almal">
+<!ENTITY headersAllCmd.accesskey "A">
+<!ENTITY headersNormalCmd.label "Gewoon">
+<!ENTITY headersNormalCmd.accesskey "G">
+<!ENTITY bodyMenu.label "Boodskaplyf as">
+<!ENTITY bodyMenu.accesskey "l">
+<!ENTITY bodyAllowHTML.label "Oorspronklike HTML">
+<!ENTITY bodyAllowHTML.accesskey "H">
+<!ENTITY bodySanitized.label "Eenvoudige HTML">
+<!ENTITY bodySanitized.accesskey "E">
+<!ENTITY bodyAsPlaintext.label "Skoonteks">
+<!ENTITY bodyAsPlaintext.accesskey "S">
+
+
+
+<!ENTITY bodyMenuFeed.label "Voerboodskaplyf as">
+<!ENTITY bodyMenuFeed.accesskey "l">
+<!ENTITY viewFeedWebPage.label "Webbladsy">
+<!ENTITY viewFeedWebPage.accesskey "W">
+<!ENTITY viewFeedSummary.label "Opsomming">
+<!ENTITY viewFeedSummary.accesskey "O">
+<!ENTITY viewFeedSummaryFeedPropsPref.label "Verstekformaat">
+<!ENTITY viewFeedSummaryFeedPropsPref.accesskey "V">
+
+<!ENTITY viewAttachmentsInlineCmd.label "Wys aanhegsels inlyn">
+<!ENTITY viewAttachmentsInlineCmd.accesskey "a">
+
+<!ENTITY pageSourceCmd.label "Boodskapbron">
+<!ENTITY pageSourceCmd.accesskey "b">
+<!ENTITY pageSourceCmd.key "u">
+
+
+<!-- Search Menu -->
+
+<!ENTITY findMenu.label "Vind">
+<!ENTITY findMenu.accesskey "V">
+<!ENTITY findCmd.label "Vind in hierdie boodskap…">
+<!ENTITY findCmd.accesskey "V">
+<!ENTITY findCmd.key "f">
+<!ENTITY findAgainCmd.label "Vind weer">
+<!ENTITY findAgainCmd.accesskey "e">
+<!ENTITY findAgainCmd.key "g">
+<!ENTITY findAgainCmd.key2 "VK_F3">
+<!ENTITY findPrevCmd.key "g">
+<!ENTITY findPrevCmd.key2 "VK_F3">
+<!ENTITY searchMailCmd.label "Deursoek boodskappe…">
+<!ENTITY searchMailCmd.accesskey "b">
+<!ENTITY searchMailCmd.key "f">
+<!ENTITY searchAddressesCmd.label "Deursoek adresse…">
+<!ENTITY searchAddressesCmd.accesskey "D">
+<!-- Go Menu -->
+
+<!ENTITY goMenu.label "Gaan">
+<!ENTITY goMenu.accesskey "G">
+<!ENTITY nextMenu.label "Volgende">
+<!ENTITY nextMenu.accesskey "n">
+<!ENTITY nextMsgCmd.label "Boodskap">
+<!ENTITY nextMsgCmd.accesskey "o">
+<!ENTITY nextMsgCmd.key "f">
+<!ENTITY nextUnreadMsgCmd.label "Ongelese boodskap">
+<!ENTITY nextUnreadMsgCmd.accesskey "O">
+<!ENTITY nextUnreadMsgCmd.key "n">
+<!ENTITY nextStarredMsgCmd.label "Gevlagde boodskap">
+<!ENTITY nextStarredMsgCmd.accesskey "G">
+<!ENTITY nextUnreadThread.label "Ongelese draad">
+<!ENTITY nextUnreadThread.accesskey "d">
+
+<!ENTITY prevMenu.label "Vorige">
+<!ENTITY prevMenu.accesskey "V">
+<!ENTITY prevMsgCmd.label "Boodskap">
+<!ENTITY prevMsgCmd.accesskey "o">
+<!ENTITY prevMsgCmd.key "b">
+<!ENTITY prevUnreadMsgCmd.label "Ongelese boodskap">
+<!ENTITY prevUnreadMsgCmd.accesskey "O">
+<!ENTITY prevUnreadMsgCmd.key "p">
+<!ENTITY goForwardCmd.label "Aanstuur">
+<!ENTITY goForwardCmd.accesskey "A">
+<!ENTITY goForwardCmd.commandKey "]">
+<!ENTITY goBackCmd.label "Terug">
+<!ENTITY goBackCmd.accesskey "T">
+<!ENTITY goBackCmd.commandKey "[">
+
+
+
+<!ENTITY prevStarredMsgCmd.label "Gevlagde boodskap">
+<!ENTITY prevStarredMsgCmd.accesskey "G">
+
+
+
+
+<!ENTITY startPageCmd.label "Posbeginbladsy">
+<!ENTITY startPageCmd.accesskey "b">
+<!-- Message Menu -->
+
+<!ENTITY msgMenu.label "Boodskap">
+<!ENTITY msgMenu.accesskey "o">
+<!ENTITY newMsgCmd.label "Nuwe boodskap">
+<!ENTITY newMsgCmd.accesskey "N">
+<!ENTITY newNewMsgCmd.label "Boodskap">
+<!ENTITY newNewMsgCmd.accesskey "o">
+<!ENTITY archiveMsgCmd.label "Argief">
+<!ENTITY archiveMsgCmd.accesskey "A">
+<!ENTITY archiveMsgCmd.key "a">
+
+
+<!ENTITY replyMsgCmd.label "Antwoord">
+<!ENTITY replyMsgCmd.accesskey "r">
+<!ENTITY replyMsgCmd.key "r">
+<!ENTITY replySenderCmd.label "Antwoord net aan afsender">
+<!ENTITY replySenderCmd.accesskey "A">
+
+
+<!ENTITY replyToAllMsgCmd.label "Antwoord aan almal">
+<!ENTITY replyToAllMsgCmd.accesskey "n">
+<!ENTITY replyToAllMsgCmd.key "r">
+<!ENTITY replyToListMsgCmd.label "Antwoord aan lys">
+<!ENTITY replyToListMsgCmd.accesskey "l">
+<!ENTITY replyToListMsgCmd.key "l">
+<!ENTITY forwardMsgCmd.label "Aanstuur">
+<!ENTITY forwardMsgCmd.accesskey "u">
+<!ENTITY forwardMsgCmd.key "l">
+<!ENTITY forwardAsMenu.label "Stuur aan as">
+<!ENTITY forwardAsMenu.accesskey "t">
+
+
+
+
+
+
+
+
+
+<!ENTITY createFilter.label "Skep filter uit boodskap…">
+<!ENTITY createFilter.accesskey "S">
+<!ENTITY moveMsgToMenu.label "Skuif na">
+<!ENTITY moveMsgToMenu.accesskey "S">
+<!ENTITY moveCopyMsgRecentMenu.label "Onlangs">
+<!ENTITY moveCopyMsgRecentMenu.accesskey "O">
+<!ENTITY copyMessageLocation.label "Kopieer boodskapligging">
+<!ENTITY copyMessageLocation.accesskey "b">
+<!ENTITY copyMsgToMenu.label "Kopieer na">
+<!ENTITY copyMsgToMenu.accesskey "K">
+<!ENTITY moveToFolderAgain.label "Verskuif weer">
+<!ENTITY moveToFolderAgain.accesskey "i">
+<!ENTITY moveToFolderAgainCmd.key "m">
+
+
+<!ENTITY killThreadMenu.key "k">
+<!ENTITY killSubthreadMenu.label "Ignoreer subdraad">
+<!ENTITY killSubthreadMenu.accesskey "s">
+<!ENTITY killSubthreadMenu.key "k">
+<!ENTITY watchThreadMenu.label "Hou draad dop">
+<!ENTITY watchThreadMenu.accesskey "H">
+<!ENTITY watchThreadMenu.key "w">
+<!ENTITY tagMenu.label "Merker">
+<!ENTITY tagMenu.accesskey "M">
+
+<!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 "Merk">
+<!ENTITY markMenu.accesskey "k">
+
+<!ENTITY markAsReadCmd.label "As gelees">
+<!ENTITY markAsReadCmd.accesskey "g">
+<!ENTITY markAsUnreadCmd.label "As ongelees">
+<!ENTITY markAsUnreadCmd.accesskey "o">
+<!ENTITY markThreadAsReadCmd.label "Draad as gelees">
+<!ENTITY markThreadAsReadCmd.accesskey "D">
+<!ENTITY markThreadAsReadCmd.key "r">
+<!ENTITY markReadByDateCmd.label "As gelees teen datum…">
+<!ENTITY markReadByDateCmd.accesskey "d">
+<!ENTITY markReadByDateCmd.key "c">
+<!ENTITY markAllReadCmd.label "Alles lees">
+<!ENTITY markAllReadCmd.accesskey "A">
+<!ENTITY markAllReadCmd.key "c">
+<!ENTITY markStarredCmd.label "Voeg vlag by">
+<!ENTITY markStarredCmd.accesskey "v">
+<!ENTITY markStarredCmd.key "v">
+<!ENTITY markAsJunkCmd.label "As Gemors">
+<!ENTITY markAsJunkCmd.accesskey "G">
+<!ENTITY markAsJunkCmd.key "j">
+<!ENTITY markAsNotJunkCmd.label "As nie gemors nie">
+<!ENTITY markAsNotJunkCmd.accesskey "n">
+<!ENTITY markAsNotJunkCmd.key "j">
+<!ENTITY recalculateJunkScoreCmd.label "Laat gemorsposkontrole loop">
+<!ENTITY recalculateJunkScoreCmd.accesskey "k">
+<!ENTITY openMessageWindowCmd.label "Open boodskap">
+<!ENTITY openMessageWindowCmd.accesskey "O">
+<!ENTITY openMessageWindowCmd.key "o">
+
+
+
+
+
+
+
+
+<!ENTITY openFeedWebPageInMP.label "Wissel webbladsy en opsomming in boodskappaneel">
+<!ENTITY openFeedWebPageInMP.accesskey "W">
+<!-- Windows Menu -->
+
+<!ENTITY windowMenu.label "Venster">
+<!-- Tools Menu -->
+
+<!ENTITY tasksMenu.label "Nutsgoed">
+<!ENTITY tasksMenu.accesskey "u">
+
+
+<!ENTITY addressBookCmd.label "Adresboek">
+<!ENTITY addressBookCmd.accesskey "b">
+<!ENTITY addressBookCmd.key "B">
+<!ENTITY activitymanager.label "Aktiwiteitbestuurder">
+<!ENTITY activitymanager.accesskey "A">
+
+
+
+
+
+
+
+
+<!ENTITY savedFiles.label "Gestoorde lêers">
+<!ENTITY savedFiles.accesskey "l">
+<!ENTITY savedFiles.key "j">
+
+
+<!ENTITY filtersApply.label "Laat loop filters op vouer">
+<!ENTITY filtersApply.accesskey "L">
+<!ENTITY filtersApplyToSelection.label "Laat loop filters op gemerkte boodskappe">
+<!ENTITY filtersApplyToSelection.accesskey "t">
+<!ENTITY filtersApplyToMessage.label "Laat loop filters op boodskap">
+<!ENTITY filtersApplyToMessage.accesskey "t">
+<!ENTITY runJunkControls.label "Laat loop Gemorsposkontroles op vouer">
+<!ENTITY runJunkControls.accesskey "k">
+<!ENTITY deleteJunk.label "Skrap pos gemerk as gemors in vouer">
+<!ENTITY deleteJunk.accesskey "S">
+<!ENTITY importCmd.label "Invoer…">
+<!ENTITY importCmd.accesskey "n">
+
+
+
+
+<!-- LOCALIZATION NOTE (accountManagerCmdUnix.accesskey):
+ Belongs to accountManagerCmd.label, which is placed under the Edit menu
+ on Unix systems
+ -->
+<!-- Developer Tools Submenu -->
+
+
+
+
+
+
+
+
+<!ENTITY errorConsoleCmd.label "Foutkonsole">
+<!ENTITY errorConsoleCmd.accesskey "F">
+
+
+
+<!--LOCALIZATION NOTE (scratchpadCmd.keycode):
+ This should be a key code constant as per
+ https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode#Constants_for_keyCode_value
+ (but without the DOM_ prefix) -->
+<!--LOCALIZATION NOTE (scratchpadCmd.keytext):
+ This should be the text printed on the key defined in the previous string. -->
+
+<!-- Mail Toolbar -->
+<!ENTITY newMsgButton.label "Skryf">
+<!ENTITY replyButton.label "Antwoord">
+<!ENTITY replyAllButton.label "Almalantwoord">
+<!ENTITY replyListButton.label "Antwoord aan lys">
+<!ENTITY forwardButton.label "Aanstuur">
+<!ENTITY fileButton.label "Lêer">
+<!ENTITY archiveButton.label "Argief">
+
+
+
+
+
+
+
+<!ENTITY backButton1.label "Terug">
+<!ENTITY goForwardButton1.label "Vorentoe">
+
+
+<!ENTITY markButton.label "Merk">
+<!ENTITY printButton.label "Druk">
+<!ENTITY stopButton.label "Stop">
+<!ENTITY throbberItem.title "Aktiwitietaanwyser">
+
+
+
+<!ENTITY addressBookButton.label "Adresboek">
+
+<!ENTITY glodaSearch.title "Globale soektog">
+<!ENTITY searchItem.title "Kitssoektog">
+<!ENTITY mailViewsToolbarItem.title "Posaansigte">
+<!ENTITY folderLocationToolbarItem.title "Vouerligging">
+<!ENTITY tagButton.label "Merker">
+<!ENTITY compactButton.label "Kompakteer">
+
+<!-- Mail Toolbar Tooltips-->
+
+<!ENTITY advancedButton.tooltip "Gevorderde boodskapsoektog">
+<!ENTITY getMsgButton.tooltip "Kry nuwe boodskappe">
+<!ENTITY getAllNewMsgCmd.label "Kry alle nuwe boodskappe">
+<!ENTITY getAllNewMsgCmd.accesskey "K">
+<!ENTITY newMsgButton.tooltip "Skep 'n nuwe boodskap">
+<!ENTITY replyButton.tooltip "Antwoord op die boodskap">
+<!ENTITY replyAllButton.tooltip "Antwoord aan afsender en alle ontvangers">
+<!ENTITY replyListButton.tooltip "Antwoord aan poslys">
+<!ENTITY forwardButton.tooltip "Stuur gemerkte boodskap aan">
+
+
+<!ENTITY fileButton.tooltip "Lêerskiesboodskap">
+<!ENTITY archiveButton.tooltip "Argiveer gemerkte boodskappe">
+
+<!ENTITY nextButton.tooltip "Gaan na volgende ongelese boodskappe">
+
+<!ENTITY previousButton.tooltip "Gaan na vorige ongelese boodskappe">
+
+<!ENTITY goForwardButton.tooltip "Gaan een boodskap vorentoe">
+<!ENTITY goBackButton.tooltip "Gaan een boodskap terug">
+<!ENTITY markButton.tooltip "Merk boodskap">
+<!ENTITY printButton.tooltip "Druk hierdie boodskap">
+<!ENTITY stopButton.tooltip "Staak die huidige oordrag">
+<!ENTITY addressBookButton.tooltip "Gaan na die adresboek">
+
+<!ENTITY tagButton.tooltip "Merk boodskappe">
+<!ENTITY compactButton.tooltip "Verwyder geskrapte boodskappe uit gemerkte vouer">
+
+<!-- Toolbar Button Popup -->
+
+<!-- Remote Content Button Popup -->
+
+
+
+
+
+<!-- Phishing Button Popup -->
+
+
+
+
+
+<!-- AppMenu Popup -->
+
+
+
+
+
+<!-- Tags Menu Popup -->
+
+<!ENTITY addNewTag.label "Nuwe merker…">
+<!ENTITY addNewTag.accesskey "N">
+
+
+<!-- Folder Pane -->
+
+<!ENTITY folderNameColumn.label "Naam">
+
+
+<!ENTITY folderSizeColumn.label "Grootte">
+<!-- Folder Pane Context Menu -->
+
+<!ENTITY folderContextGetMessages.label "Kry boodskappe">
+<!ENTITY folderContextGetMessages.accesskey "K">
+
+
+
+
+
+<!ENTITY folderContextOpenNewTab.label "Open in nuwe oortjie">
+<!ENTITY folderContextOpenNewTab.accesskey "o">
+<!ENTITY folderContextNew.label "Nuwe subvouer…">
+<!ENTITY folderContextNew.accesskey "N">
+<!ENTITY folderContextRename.label "Hernoem">
+<!ENTITY folderContextRename.accesskey "r">
+<!ENTITY folderContextRemove.label "Skrap">
+<!ENTITY folderContextRemove.accesskey "S">
+<!ENTITY folderContextCompact.label "Kompakteer">
+<!ENTITY folderContextCompact.accesskey "K">
+<!ENTITY folderContextEmptyTrash.label "Maak snippermandjie leeg">
+<!ENTITY folderContextEmptyTrash.accesskey "M">
+<!ENTITY folderContextEmptyJunk.label "Maak Gemors leeg">
+<!ENTITY folderContextEmptyJunk.accesskey "G">
+<!ENTITY folderContextSendUnsentMessages.label "Stuur ongestuurde boodskappe">
+<!ENTITY folderContextSendUnsentMessages.accesskey "u">
+<!ENTITY folderContextUnsubscribe.label "Afteken">
+<!ENTITY folderContextUnsubscribe.accesskey "A">
+<!ENTITY folderContextMarkNewsgroupRead.label "Merk nuusgroep as gelees">
+<!ENTITY folderContextMarkNewsgroupRead.accesskey "r">
+<!ENTITY folderContextMarkMailFolderRead.label "Merk vouer as gelees">
+<!ENTITY folderContextMarkMailFolderRead.accesskey "r">
+<!ENTITY folderContextSubscribe.label "Inteken…">
+<!ENTITY folderContextSubscribe.accesskey "I">
+
+
+
+
+<!ENTITY folderContextFavoriteFolder.label "Gunsteling-vouer">
+<!ENTITY folderContextFavoriteFolder.accesskey "G">
+
+
+<!-- Search Bar -->
+
+<!ENTITY SearchNameOrEmail.label "Naam of e-pos bevat:">
+<!ENTITY SearchNameOrEmail.accesskey "N">
+<!-- Gloda Search Bar -->
+
+<!ENTITY glodaSearchBar.placeholder "Deursoek boodskappe…">
+<!-- Quick Search Menu Bar -->
+
+<!ENTITY searchSubjectMenu.label "Onderwerp">
+<!ENTITY searchFromMenu.label "Van">
+<!ENTITY searchSubjectOrFromMenu.label "Onderwerp of van">
+<!ENTITY searchRecipient.label "Aan of CC">
+<!ENTITY searchSubjectOrRecipientMenu.label "Onderwerp, aan of CC">
+<!ENTITY searchMessageBody.label "Hele boodskap">
+<!ENTITY saveAsVirtualFolderMenu.label "Stoor soektog as 'n vouer…">
+<!-- Thread Pane -->
+
+<!ENTITY threadColumn.label "Draad">
+<!ENTITY fromColumn.label "Van">
+<!ENTITY recipientColumn.label "Ontvanger">
+
+<!ENTITY subjectColumn.label "Onderwerp">
+<!ENTITY dateColumn.label "Datum">
+<!ENTITY priorityColumn.label "Prioriteit">
+<!ENTITY tagsColumn.label "Merker">
+<!ENTITY accountColumn.label "Rekening">
+<!ENTITY statusColumn.label "Status">
+<!ENTITY sizeColumn.label "Grootte">
+<!ENTITY junkStatusColumn.label "Gemors-status">
+
+
+<!ENTITY readColumn.label "Lees">
+<!ENTITY receivedColumn.label "Ontvang">
+<!ENTITY starredColumn.label "Gevlag">
+<!ENTITY locationColumn.label "Ligging">
+<!ENTITY idColumn.label "Volgorde ontvang">
+<!ENTITY attachmentColumn.label "Aanhegsels">
+<!-- Thread Pane Tooltips -->
+
+
+
+
+
+
+
+
+
+
+
+
+<!ENTITY unreadColumn2.tooltip "Getal ongelese boodskappe in draad">
+<!ENTITY totalColumn2.tooltip "Totale getal boodskappe in draad">
+
+
+
+
+
+
+<!-- Thread Pane Context Menu -->
+
+<!ENTITY contextOpenNewWindow.label "Open boodskap in nuwe venster">
+<!ENTITY contextOpenNewWindow.accesskey "v">
+<!-- The key 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 boodskap in nuwe oortjie">
+<!ENTITY contextOpenNewTab.accesskey "o">
+<!ENTITY contextOpenConversation.label "Open boodskap in gesprek">
+<!ENTITY contextOpenConversation.accesskey "n">
+
+
+
+
+
+<!ENTITY contextArchive.label "Argief">
+<!ENTITY contextArchive.accesskey "A">
+<!ENTITY contextReplySender.label "Antwoord net aan afsender">
+<!ENTITY contextReplySender.accesskey "A">
+
+
+<!ENTITY contextReplyAll.label "Antwoord almal">
+<!ENTITY contextReplyAll.accesskey "a">
+<!ENTITY contextReplyList.label "Antwoord aan lys">
+<!ENTITY contextReplyList.accesskey "l">
+<!ENTITY contextForward.label "Aanstuur">
+<!ENTITY contextForward.accesskey "A">
+
+
+
+
+
+
+<!ENTITY contextMultiForwardAsAttachment.label "Stuur aan as aanhegsels">
+<!ENTITY contextMultiForwardAsAttachment.accesskey "t">
+<!ENTITY contextMoveMsgMenu.label "Skuif na">
+<!ENTITY contextMoveMsgMenu.accesskey "S">
+<!ENTITY contextMoveCopyMsgRecentMenu.label "Onlangs">
+<!ENTITY contextMoveCopyMsgRecentMenu.accesskey "O">
+<!ENTITY contextCopyMsgMenu.label "Kopieer na">
+<!ENTITY contextCopyMsgMenu.accesskey "K">
+
+
+
+
+
+<!-- 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 "Stoor as…">
+<!ENTITY contextSaveAs.accesskey "S">
+<!ENTITY contextPrint.label "Druk…">
+<!ENTITY contextPrint.accesskey "D">
+<!ENTITY contextPrintPreview.label "Drukvoorskou">
+<!ENTITY contextPrintPreview.accesskey "v">
+<!-- Thread Pane Column Picker -->
+<!-- LOCALIZATION NOTE (columnPicker.resetToInbox.label):
+ This option in the thread pane column picker causes us to reset the
+ customizations for the thread pane columns in this folder to their default.
+ -->
+
+<!-- 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 "Pas kolomme toe op…">
+<!-- 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 "Vouer…">
+<!-- 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 "Vouer en sy kinders…">
+<!-- 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 "Dié vouer">
+<!-- Media (video/audio) controls -->
+
+
+<!ENTITY contextPlay.label "Speel">
+<!ENTITY contextPlay.accesskey "S">
+<!ENTITY contextPause.label "Laat wag">
+<!ENTITY contextPause.accesskey "L">
+<!ENTITY contextMute.label "Dower">
+<!ENTITY contextMute.accesskey "D">
+<!ENTITY contextUnmute.label "Ontdower">
+<!ENTITY contextUnmute.accesskey "d">
+
+<!-- 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.
+ -->
+<!-- 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.
+ -->
+<!-- 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.
+ -->
+<!-- Message Header Context Menu -->
+
+<!ENTITY AddToAddressBook.label "Voeg by adresboek…">
+<!ENTITY AddToAddressBook.accesskey "b">
+<!ENTITY AddDirectlyToAddressBook.label "Voeg by adresboek">
+<!ENTITY AddDirectlyToAddressBook.accesskey "b">
+
+
+<!ENTITY ViewContact.label "Bekyk kennis">
+<!ENTITY ViewContact.accesskey "B">
+<!ENTITY SubscribeToNewsgroup.label "Teken in op nuusgroep">
+<!ENTITY SubscribeToNewsgroup.accesskey "n">
+<!ENTITY SendMessageTo.label "Skryf boodskap aan">
+<!ENTITY SendMessageTo.accesskey "S">
+<!ENTITY CopyEmailAddress.label "Kopieer e-posadres">
+<!ENTITY CopyEmailAddress.accesskey "K">
+
+
+<!ENTITY CopyNewsgroupName.label "Kopieer nuusgroepnaam">
+<!ENTITY CopyNewsgroupName.accesskey "K">
+<!ENTITY CopyNewsgroupURL.label "Kopieer nuusgroep-URL">
+<!ENTITY CopyNewsgroupURL.accesskey "U">
+<!ENTITY CreateFilterFrom.label "Skep filter uit…">
+<!ENTITY CreateFilterFrom.accesskey "f">
+<!ENTITY reportPhishingURL.label "Rapporteer e-posswendelary">
+<!ENTITY reportPhishingURL.accesskey "R">
+<!-- Spell checker context menu items -->
+
+<!-- Content Pane Context Menu -->
+
+<!ENTITY saveLinkAsCmd.label "Stoor skakel as…">
+<!ENTITY saveLinkAsCmd.accesskey "e">
+<!ENTITY saveImageAsCmd.label "Stoor prent as…">
+<!ENTITY saveImageAsCmd.accesskey "o">
+
+
+<!ENTITY copyImageAllCmd.label "Kopieer prent">
+<!ENTITY copyImageAllCmd.accesskey "p">
+<!ENTITY copyEmailCmd.label "Kopieer e-posadres">
+<!ENTITY copyEmailCmd.accesskey "e">
+<!ENTITY stopCmd.label "Stop">
+<!ENTITY stopCmd.accesskey "S">
+<!ENTITY reloadCmd.label "Herlaai">
+<!ENTITY reloadCmd.accesskey "H">
+<!ENTITY openInBrowser.label "Open in blaaier">
+<!ENTITY openInBrowser.accesskey "O">
+<!ENTITY openLinkInBrowser.label "Open skakel in blaaier">
+<!ENTITY openLinkInBrowser.accesskey "O">
+<!-- Statusbar -->
+
+<!ENTITY statusText.label "Klaar">
+<!-- Mac OS X Window Menu -->
+
+<!ENTITY minimizeWindow.label "Minimeer">
+<!ENTITY minimizeWindow.key "m">
+<!ENTITY bringAllToFront.label "Bring alles na vore">
+<!ENTITY zoomWindow.label "Zoem">
+
+<!-- Mac OS X Application Menu (Cocoa widgets) -->
+<!ENTITY preferencesCmdMac.commandkey ",">
+<!ENTITY preferencesCmdMac.modifiers "accel">
+<!ENTITY servicesMenuMac.label "Dienste">
+<!ENTITY hideThisAppCmdMac.label "Verskuil &brandShortName;">
+<!ENTITY hideThisAppCmdMac.commandkey "V">
+<!ENTITY hideThisAppCmdMac.modifiers "accel">
+<!ENTITY hideOtherAppsCmdMac.label "Verskuil ander">
+<!ENTITY hideOtherAppsCmdMac.commandkey "V">
+
+<!ENTITY showAllAppsCmdMac.label "Wys almal">
+<!-- Mac OS X Dock Icon pop-up menu -->
+
+
+
+<!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 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 getNextNMsgCmd2.label "Get Next News Messages">
+<!ENTITY getNextNMsgCmd2.accesskey "t">
+<!ENTITY settingsOfflineCmd2.label "Offline Settings">
+<!ENTITY settingsOfflineCmd2.accesskey "e">
+<!-- View Menu -->
+<!ENTITY menubarCmd.label "Menu Bar">
+<!ENTITY menubarCmd.accesskey "M">
+<!ENTITY showFolderPaneCmd.label "Folder Pane">
+<!ENTITY showFolderPaneCmd.accesskey "F">
+<!ENTITY compactVersion.label "Compact View">
+<!ENTITY compactVersion.accesskey "C">
+<!ENTITY sortByAttachmentsCmd.label "Attachments">
+<!ENTITY sortByAttachmentsCmd.accesskey "m">
+<!ENTITY sortByCorrespondentCmd.label "Correspondents">
+<!ENTITY sortByCorrespondentCmd.accesskey "n">
+<!ENTITY bodyAllParts.label "All Body Parts">
+<!ENTITY bodyAllParts.accesskey "A">
+<!ENTITY getNewMessagesCmd.key "y">
+<!ENTITY getAllNewMessagesCmd.key "Y">
+<!ENTITY glodaSearchCmd.label "Global Search…">
+<!ENTITY glodaSearchCmd.accesskey "G">
+<!ENTITY nextUnreadThread.key "t">
+<!ENTITY goChatCmd.label "Chat">
+<!ENTITY goChatCmd.accesskey "c">
+<!ENTITY folderMenu.label "Folder">
+<!ENTITY folderMenu.accesskey "O">
+<!ENTITY goRecentlyClosedTabs.label "Recently Closed Tabs">
+<!ENTITY goRecentlyClosedTabs.accesskey "R">
+<!ENTITY cancelNewsMsgCmd.label "Cancel Message">
+<!ENTITY cancelNewsMsgCmd.accesskey "C">
+<!ENTITY replyNewsgroupCmd2.label "Followup to Newsgroup">
+<!ENTITY replyNewsgroupCmd2.accesskey "u">
+<!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">
+<!ENTITY killThreadMenu.label "Ignore Thread">
+<!ENTITY killThreadMenu.accesskey "I">
+<!ENTITY tagCmd0.key "0">
+<!ENTITY toggleReadCmd.key "m">
+<!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 messengerCmd.label "Mail &amp; Newsgroups">
+<!ENTITY messengerCmd.accesskey "N">
+<!ENTITY addonNoPrefs.label "No Add-on settings found.">
+<!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 filtersCmd2.label "Message Filters">
+<!ENTITY filtersCmd2.accesskey "F">
+<!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.commandkey "j">
+<!-- Mail Toolbar -->
+<!ENTITY getMsgButton1.label "Get Messages">
+<!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 deleteItem.title "Delete">
+<!ENTITY junkItem.title "Junk">
+<!ENTITY chatButton.label "Chat">
+<!ENTITY appmenuButton.label "AppMenu">
+<!ENTITY forwardAsInline.tooltip "Forward selected message as inline text">
+<!ENTITY forwardAsAttachment.tooltip "Forward selected message as an attachment">
+<!ENTITY openMsgConversationButton.tooltip "Show conversation of selected message">
+<!ENTITY nextMsgButton.tooltip "Move to the next message">
+<!ENTITY previousMsgButton.tooltip "Move to the previous message">
+<!ENTITY chatButton.tooltip "Show the Chat tab">
+<!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 appmenuToolbarLayout.label "Toolbar Layout…">
+<!ENTITY manageTags.label "Manage Tags…">
+<!ENTITY manageTags.accesskey "M">
+<!ENTITY folderUnreadColumn.label "Unread">
+<!ENTITY folderTotalColumn.label "Total">
+<!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 folderContextSearchForMessages.label "Search Messages…">
+<!ENTITY folderContextSearchForMessages.accesskey "S">
+<!ENTITY folderContextProperties2.label "Properties">
+<!ENTITY folderContextProperties2.accesskey "P">
+<!ENTITY folderContextSettings2.label "Settings">
+<!ENTITY folderContextSettings2.accesskey "e">
+<!-- Thread Pane -->
+<!ENTITY selectColumn.label "Select Messages">
+<!ENTITY correspondentColumn.label "Correspondents">
+<!ENTITY unreadColumn.label "Unread">
+<!ENTITY totalColumn.label "Total">
+<!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 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 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 contextReplyNewsgroup2.label "Followup to Newsgroup">
+<!ENTITY contextReplyNewsgroup2.accesskey "u">
+<!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 contextMoveCopyMsgFavoritesMenu.label "Favorites">
+<!ENTITY contextMoveCopyMsgFavoritesMenu.accesskey "F">
+<!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 (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;">
+<!ENTITY EditContact1.label "Edit Contact">
+<!ENTITY EditContact1.accesskey "E">
+<!ENTITY CopyNameAndEmailAddress.label "Copy Name and Email Address">
+<!ENTITY CopyNameAndEmailAddress.accesskey "N">
+<!-- Spell checker context menu items -->
+<!ENTITY spellAddDictionaries.label "Add Dictionaries…">
+<!ENTITY spellAddDictionaries.accesskey "A">
+<!ENTITY copyLinkCmd.label "Copy Link Location">
+<!ENTITY copyLinkCmd.accesskey "L">
+<!-- Mac OS X Application Menu (Cocoa widgets) -->
+<!ENTITY preferencesCmdMac2.label "Preferences">
+<!ENTITY hideOtherAppsCmdMac.modifiers "accel,alt">
+<!-- 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/af/chrome/af/locale/af/messenger/messenger.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messenger.properties
new file mode 100644
index 0000000000..983207ee33
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messenger.properties
@@ -0,0 +1,915 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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...
+
+removeAccount=Skrap rekening…
+newFolderMenuItem=Vouer…
+newSubfolderMenuItem=Subvouer…
+newFolder=Nuwe vouer…
+newSubfolder=Nuwe subvouer…
+markFolderRead=Merk vouer gelees;Merk vouers gelees
+markNewsgroupRead=Merk nuusgroep gelees;Merk nuusgroepe gelees
+folderProperties=Vouereienskappe
+newTag=Nuwe merker…
+# LOCALIZATION NOTE (getNextNewsMessages): Semi-colon list of plural forms.
+# #1 is the number of news messages to get.
+advanceNextPrompt=Gaan voort na volgende ongelese boodskappe in %S?
+titleNewsPreHost=aan
+replyToSender=Antwoord aan afsender
+reply=Antwoord
+EMLFiles=Poslêers
+OpenEMLFiles=Open boodskap
+# LOCALIZATION NOTE(defaultSaveMessageAsFileName): Do not translate ".eml"
+# in the line below. Also, the complete file name should be 8.3.
+defaultSaveMessageAsFileName=boodskap.eml
+# LOCALIZATION NOTE(longMsgSubjectTruncator): A suffix string appended to the filename
+# (created from message subject) if it needed to be truncated due to length.
+SaveMailAs=Stoor boodskap as
+SaveAttachment=Stoor aanhegsel
+SaveAllAttachments=Stoor alle aanhegsels
+ChooseFolder=Kies gids
+MessageLoaded=Boodskap gelaai…
+PreviewTitle=%S - %S
+saveAttachmentFailed=Kon nie die aanhegsel stoor nie. Kontroleer u lêernaam en probeer later weer.
+saveMessageFailed=Kon nie die boodskap stoor nie. Kontroleer u lêernaam en probeer later weer.
+fileExists=%S bestaan reeds. Wil u dit vervang?
+# LOCALIZATION NOTE(failedToReadFile): %1$S is replaced by the file name, %2$S is replaced by the reason the file load failed.
+
+downloadingNewsgroups=Laai nuusgroepe af vir aflyngebruik
+downloadingMail=Laai pos af vir aflyngebruik
+sendingUnsent=Stuur ongestuurde boodskappe
+
+folderExists='n Vouer met daardie naam bestaan reeds. Kies asseblief 'n ander naam.
+# LOCALIZATION NOTE(confirmDuplicateFolderRename): %1$S is name of folder being moved, %2$S is parent folder name, %3$S is proposed new folder name
+folderCreationFailed=Die vouer kon nie geskep word nie omdat die vouernaam wat u aangedui het, 'n onherkende karakter bevat. Kies asseblief 'n ander naam en probeer weer.
+
+compactingFolder=Kompakteer tans vouer %S…
+
+confirmFolderDeletionForFilter=As u die vouer '%S' skrap, sal dit die geassosieerde filter(s) deaktiveer. Is u seker u wil die vouer skrap?
+alertFilterChanged=Filters wat met hierdie vouer geassosieer word, sal bygewerk word.
+filterDisabled=Die vouer '%S' kon nie gevind word nie, en daarom word filter(s) wat met hierdie vouer geassosieer word, gedeaktiveer. Kontroleer dat die vouer bestaan, en dat filters na 'n geldige teikenvouer wys.
+filterFolderDeniedLocked=Die boodskappe kon nie na vouer '%S' gefilter word nie omdat 'n ander operasie besig is.
+deletingMsgsFailed=Kon nie die boodskappe in vouer %S skrap nie omdat dit deur 'n ander operasie gebruik word. Wag tot daardie operasie afgehandel is en probeer dan weer.
+alertFilterCheckbox=Moenie my weer waarsku nie.
+compactFolderDeniedLock=Die vouer '%S' kan nie gekompakteer word nie omdat 'n ander operasie besig is. Probeer later weer.
+compactFolderWriteFailed=Die vouer '%S' kon nie gekompakteer word nie omdat daar nie tot die vouer geskryf kon word nie. Maak seker dat u genoeg skyfspasie het, en dat u skryftoestemming op die lêerstelsel het, en probeer weer.
+filterFolderWriteFailed=Die boodskappe kon nie na vouer '%S' gefilter word nie omdat daar nie tot die vouer geskryf kon word nie. Maak seker dat u genoeg skyfspasie het, en dat u skryftoestemming op die lêerstelsel het, en probeer weer.
+copyMsgWriteFailed=Die boodskappe kon nie na vouer '%S' verskuif of gekopieer word nie omdat daar nie tot die vouer geskryf kon word nie. Om beskikbare skyfspasie groter te maak, kies Maak snippermandjie leeg op die Lêer-kieslys, en kies dan Kompakteer vouers, en probeer weer.
+cantMoveMsgWOBodyOffline=U kan nie terwyl U aflyn werk boodskappe skuif of kopieer wat nie vir aflyngebruik gekopieer is nie. Uit die Pos-venster, open die Lêer-kieslys, kies Aflyn, en ontmerk 'Werk aflyn', en probeer weer.
+folderRenameFailed=Die vouer kon nie hernoem word nie. Dalk word die vouer herontleed, of dalk is die nuwe naam nie 'n geldige vouernaam nie.
+# LOCALIZATION NOTE(verboseFolderFormat): %1$S is folder name, %2$S is server name
+verboseFolderFormat=%1$S op %2$S
+# LOCALIZATION NOTE(filterFolderTruncateFailed): %1$S is replaced by the folder name, %2$S is replaced by the brandShortName
+filterFolderTruncateFailed=Kon nie die inkassie afknot nadat 'n boodskap na vouer '%1$S' gefilter is nie. U sal moontlik %2$S moet afsluit en INBOX.msf skrap.
+
+mailboxTooLarge=Die vouer %S is vol, en kan nie nog boodskappe hou nie. Om plek vir meer boodskappe te maak, skrap enige ou of ongewenste pos en kompakteer die vouer.
+outOfDiskSpace=Daar is nie genoeg skryfspasie om nuwe boodskappe af te laai nie. Skrap ou pos, maak die snippermandjie leeg, en kompakteer u posvouers, en probeer dan weer.
+errorGettingDB=Kon nie die opsomminglêer vir %S open nie. Dalk was daar 'n fout op die skyf, of dalk is die volle pad te lank.
+defaultServerTag=(Verstek)
+
+# Used in message database list view to provide a text value for graphic based cells.
+messageUnread=Ongelees
+messageHasFlag=Gevlag
+messageHasAttachment=Het aanhegsel
+messageJunk=Gemors
+messageExpanded=Uitgevou
+messageCollapsed=Ingevou
+
+# Used in the SMTP Account Settings panel when a server value has no properties
+smtpServerList-NotSpecified=<nie gespesifiseer nie>
+smtpServer-ConnectionSecurityType-0=Geen
+smtpServer-ConnectionSecurityType-1=STARTTLS, indien beskikbaar
+smtpServer-ConnectionSecurityType-2=STARTTLS
+smtpServer-ConnectionSecurityType-3=SSL/TLS
+smtpServers-confirmServerDeletionTitle=Skrap bediener
+smtpServers-confirmServerDeletion=Is u seker u wil die bediener skrap: \n %S?
+
+# Account Settings - Both Incoming and SMTP server
+authNo=Geen magtiging
+authOld=Wagwoord, oorspronklike metode (onveilig)
+authPasswordCleartextInsecurely=Wagwoord, onveilig oorgedra
+authPasswordCleartextViaSSL=Normale wagwoord
+authPasswordEncrypted=Geënkripteerde wagwoord
+authKerberos=Kerberos / GSSAPI
+authNTLM=NTLM
+authAnySecure=Enige veilige metode (afgekeur)
+authAny=Enige metode (onveilig)
+
+# 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.
+
+# LOCALIZATION NOTE(serverType-nntp): Do not translate "NNTP" in the line below
+serverType-nntp=Nuusgroepbediener (NNTP)
+# LOCALIZATION NOTE(serverType-pop3): Do not translate "POP" in the line below
+serverType-pop3=POP-posbediener
+# LOCALIZATION NOTE(serverType-imap): Do not translate "IMAP" in the line below
+serverType-imap=IMAP-posbediener
+serverType-none=Plaaslike posstoor
+
+sizeColumnHeader=Grootte
+linesColumnHeader=Reëls
+
+# LOCALIZATION NOTE (getMsgButtonTooltip): Do not translate the word "%S" below.
+# Place the word "%S" in your translation where the name of the comma seperated accounts should appear.
+# Used to separate email addresses in a list. Note the trailing space ', '
+
+# status feedback stuff
+documentDone=
+documentLoading=Laai tans boodskap…
+
+# 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=Sinchroniseer tans boodskappe in %1$S uit %2$S…
+
+unreadMsgStatus=Ongelees: %S
+selectedMsgStatus=Gekies: %S
+totalMsgStatus=Totaal: %S
+
+# localized folder names
+
+localFolders=Plaaslike vouers
+
+# LOCALIZATION NOTE (inboxFolderName): OK to translate all foldernames, bugzilla #57440 & bugzilla #23625 fixed
+inboxFolderName=Inkassie
+trashFolderName=Snippermandjie
+sentFolderName=Gestuur
+draftsFolderName=Onvoltooid
+templatesFolderName=Sjablone
+outboxFolderName=Uitkassie
+junkFolderName=Gemors
+archivesFolderName=Argief
+
+# "Normal" priority is often blank,
+# depending on the consumers of these strings
+priorityLowest=Laagste
+priorityLow=Laag
+priorityNormal=Gewoon
+priorityHigh=Hoog
+priorityHighest=Hoogste
+
+#Group by date thread pane titles
+today=Vandag
+yesterday=Gister
+lastWeek=Laas week
+twoWeeksAgo=Twee weke gelede
+
+#Grouped By Tags
+untaggedMessages=Ongemerkte boodskappe
+
+# Grouped by status
+messagesWithNoStatus=Geen status nie
+
+#Grouped by priority
+noPriority=Geen prioriteit nie
+
+#Grouped by has attachments
+noAttachments=Geen aanhegsels
+attachments=Aanhegsels
+
+#Grouped by starred
+notFlagged=Nie gevlag nie
+groupFlagged=Gevlag
+
+# defaults descriptions for tag prefs listed in mailnews.js
+# (we keep the .labels. names for backwards compatibility)
+mailnews.tags.remove=Verwyder alle merkers
+mailnews.labels.description.1=Belangrik
+mailnews.labels.description.2=Werk
+mailnews.labels.description.3=Persoonlik
+mailnews.labels.description.4=Moetdoen
+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=Beantwoord
+forwarded=Aangestuur
+new=Nuwe
+read=Lees
+flagged=Gevlag
+
+# for junk status picker in search and mail views
+junk=Gemors
+
+# for junk score origin picker in search and mail views
+junkScoreOriginPlugin=Inprop
+junkScoreOriginFilter=Filter
+junkScoreOriginWhitelist=Witlys
+junkScoreOriginUser=Gebruiker
+junkScoreOriginImapFlag=IMAP-vlag
+
+# for the has attachment picker in search and mail views
+hasAttachments=Het aanhegsels
+
+# for the Tag picker in search and mail views.
+tag=Merkers
+
+# mailnews.js
+
+# 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 Chistian year
+# otherwise mm/dd/yyyy (option 3) is used
+#
+mailnews.search_date_format=1
+# 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
+
+# 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=Pos
+newsAcctType=Nuus
+
+# LOCALIZATION NOTE(nocachedbodytitle): Do not translate "<TITLE>" or "</TITLE>" in the line below
+nocachedbodytitle=<TITLE>Gaan aanlyn om hierdie boodskap te bekyk</TITLE>\n
+
+# mailWindowOverlay.js
+confirmUnsubscribeTitle=Bevestig aftekening
+confirmUnsubscribeText=Is u seker dat u van %S wil afteken?
+confirmUnsubscribeManyText=Is u seker dat u van hierdie nuusgroep wil afteken?
+
+# LOCALIZATION NOTE(junkBarMessage): %S is brand
+junkBarButton=Nie gemors nie
+
+# LOCALIZATION NOTE(remoteContentBarMessage): %S is brand
+
+# LOCALIZATION NOTE(remoteAllowResource): %S is origin
+# LOCALIZATION NOTE(remoteAllowAll): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/Localization_and_Plurals
+# #1 is the number of origins
+
+phishingBarMessage=Hierdie boodskap is dalk swendelary.
+
+mdnBarIgnoreButton=Ignoreer versoek
+
+
+# msgHdrViewOverlay.js
+openLabel=Open
+saveLabel=Stoor as…
+saveLabelAccesskey=A
+detachLabel=Afheg…
+detachLabelAccesskey=D
+deleteAttachments=Die volgende aanhegsels sal permanent van hierdie boodskap af geskrap word:\n%S\nHierdie aksie kan nie ontdoen word nie. Wil u voortgaan?
+detachAttachments=Die volgende aanhegsels is suksesvol gestoor en sal nou permanent van hierdie boodskap af geskrap word:\n%S\nHierdie aksie kan nie ontdoen word nie. Wil u voortgaan?
+deleteAttachmentFailure=Kon nie die gemerkte aanhegsels skrap nie.
+emptyAttachment=Hierdie aanhegsel blyk leeg te wees.\nVra gerus die persoon wat dit gestuur het.\nMaatskappye se brandmure of viruswering vernietig soms aanhegsels.
+
+# LOCALIZATION NOTE (attachmentCount): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/Localization_and_Plurals
+# #1 number of 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.
+
+# LOCALIZATION NOTE (attachmentSizeUnknown): The string to show for the total
+# size of all attachments when none of the attachments' sizes can be detected.
+
+# 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.
+
+# 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
+
+# Connection Error Messages
+# LOCALIZATION NOTE(unknownHostError): %S is the server name
+unknownHostError=Kon nie aan bediener %S verbind nie.
+# LOCALIZATION NOTE(connectionRefusedError): %S is the server name
+connectionRefusedError=Kon nie aan bediener %S verbind nie; die verbinding is geweier.
+# LOCALIZATION NOTE(netTimeoutError): %S is the server name
+netTimeoutError=Verbinding aan bediener %S het uitgetel.
+
+recipientSearchCriteria=Onderwerp of ontvanger bevat:
+fromSearchCriteria=Onderwerp of Van bevat:
+
+# LOCALIZATION NOTE(biffNotification): %1$S is the number of new messages
+biffNotification_message=het %1$S nuwe boodskap
+biffNotification_messages=het %1$S nuwe boodskappe
+
+# LOCALIZATION NOTE(newMailNotification_message): %1$S is the name of the account %2$S is the number of new messages
+
+# LOCALIZATION NOTE(newMailNotification_messages): %1$S is the name of the account %2$S is the number of 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
+
+# LOCALIZATION NOTE(newMailAlert_message):
+# Semi-colon list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the name of the account, #2 is the number of new messages
+
+# Used to separate names/email addresses in a list. Note the trailing space ', '
+
+quotaPercentUsed=%S%% vol
+# for quota in main window (commandglue.js)
+percent=%S%%
+
+# for message views
+confirmViewDeleteTitle=Bevestig
+confirmViewDeleteMessage=Is u seker u wil hierdie aansig skrap?
+
+# for virtual folders
+confirmSavedSearchTitle=Bevestig skrap
+confirmSavedSearchDeleteMessage=Is u seker u wil hierdie gestoorde soektog skrap?
+
+## @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=Tik u wagwoord vir %1$S op %2$S in:
+
+## @name ENTER_PASSWORD_PROMPT_TITLE
+## @loc None
+passwordTitle=Posbedienerwagwoord verlang
+
+# for checking if the user really wants to open lots of messages in separate windows.
+openWindowWarningTitle=Bevestig
+# LOCALIZATION NOTE (openWindowWarningConfirmation): Semi-colon list of plural forms.
+# #1 is the number of messages the user is attempting to open.
+
+# for checking if the user really wants to open lots of messages in tabs.
+# LOCALIZATION NOTE (openTabWarningConfirmation): Semi-colon list of plural forms.
+# #1 is the number of messages the user is attempting to open.
+
+# for warning the user that a tag they're trying to create already exists
+tagExists='n Merker met daardie naam bestaan reeds.
+
+# title of the edit tag dialog
+editTagTitle=Redigeer merker
+
+# for the virtual folder list dialog title
+# %S is the name of the saved search folder
+editVirtualFolderPropertiesTitle=Redigeer gestoorde soekeienskappe vir %S
+# LOCALIZATION NOTE (foldersChosen): #1 number of chosen folders
+
+#alert to inform the user to choose one or more folders to search for a saved search folder
+alertNoSearchFoldersSelected=U moet ten minste een vouer kies om te soek vir die gestoorde soektogvouer.
+
+# These are displayed in the message and folder pane windows
+# LOCALIZATION NOTE %.*f is the abbreviated size in the appropriate units
+
+## LOCALIZATION NOTE(folderWithAccount):
+## This is used to show folder name together with an account name.
+## %1$S = folder name
+## %2$S = account name
+## 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
+## 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
+## 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
+
+# Error message if message for a message id wasn't found
+errorOpenMessageForMessageIdTitle=Kon nie boodskap-ID open nie
+errorOpenMessageForMessageIdMessage=Boodskap vir boodskap-ID %S nie gevind nie
+
+# Warnings to alert users about phishing urls
+confirmPhishingTitle=E-posswendelary-waarskuwing
+#LOCALIZATION NOTE %1$S is the brand name, %2$S is the host name of the url being visited
+confirmPhishingUrl=%1$S dink hierdie boodskap is swendelary! Die skakels in die boodskap probeer dalk webbladsye wat u besoek, na te aap. Is u seker u wil %2$S besoek?
+
+# 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=Kontroleer vir bywerkings…
+updatesItem_defaultFallback=Kontroleer vir bywerkings…
+updatesItem_downloading=Laai tans %S af…
+updatesItem_downloadingFallback=Laai tans bywerking af…
+updatesItem_downloading.accesskey=D
+updatesItem_resumeFallback=Hervat aflaai van bywerking…
+updatesItem_resume.accesskey=D
+updatesItem_pending=Pas afgelaaide bywerking toe…
+updatesItem_pendingFallback=Pas afgelaaide bywerking toe…
+updatesItem_pending.accesskey=D
+
+# Folder Pane Header Title Strings
+folderPaneModeHeader_all=Alle vouers
+folderPaneModeHeader_unread=Ongelese vouers
+folderPaneModeHeader_favorite=Gunstling-vouers
+folderPaneModeHeader_recent=Onlangse vouers
+folderPaneModeHeader_smart=Verenigde gidse
+unifiedAccountName=Verenigde gidse
+
+# 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=Skuif weer na "%1$S"
+moveToFolderAgainAccessKey=w
+#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=Kopieer weer na "%1$S"
+copyToFolderAgainAccessKey=w
+
+#LOCALIZATION NOTE %1$S is the e-mail address of the person we will allow remote content for
+
+#LOCALIZATION NOTE(mdnBarMessageNormal) %1$S is the name of the sender
+#LOCALIZATION NOTE(mdnBarMessageAddressDiffers) %1$S is the name of the sender, %2$S is the address(es) to send return receipt to
+
+# mailCommands.js
+emptyJunkDontAsk=Moenie my weer vra nie.
+emptyTrashDontAsk=Moenie my weer vra nie.
+
+# junkCommands.js
+junkAnalysisPercentComplete=Gemorsontleding %S klaar
+processingJunkMessages=Gemorsboodskappe verwerk
+
+# Messenger bootstrapping messages
+fileNotFoundTitle = Lêer nie gevind nie
+#LOCALIZATION NOTE(fileNotFoundMsg): %S is the filename
+fileNotFoundMsg = Die lêer %S bestaan nie.
+
+fileEmptyTitle = Lêer leeg
+#LOCALIZATION NOTE(fileEmptyMsg): %S is the filename
+fileEmptyMsg = Die lêer %S is leeg.
+
+# 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".
+# <http://developer.mozilla.org/en/Localization_and_Plurals> has details
+# on this mechanism.
+headerMoreAddrs=#1 meer;#1 meer
+
+# 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".
+# <http://developer.mozilla.org/en/Localization_and_Plurals> has details
+# on this mechanism.
+
+# 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.
+
+# LOCALIZATION NOTE (headerfromFieldMe): first person prepositional object
+# pronoun used in the "from" header of the message header pane.
+
+# LOCALIZATION NOTE (headerreply-toFieldMe): first person prepositional
+# object pronoun used in the "reply-to" header of the message header pane.
+
+# LOCALIZATION NOTE (headerccFieldMe): first person prepositional object
+# pronoun used in the "cc" header of the message header pane.
+
+# LOCALIZATION NOTE (headerbccFieldMe): first person prepositional object
+# pronoun used in the "bcc" header of the message header pane.
+
+
+# Shown when content tabs are being loaded.
+loadingTab=Laai tans…
+
+# LOCALIZATION NOTE (xpinstallPromptAllowButton.accesskey):
+# 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 http://www.mozilla.org/access/keyboard/accesskey for details
+
+# LOCALIZATION NOTE (addonsInstalled, addonsInstalledNeedsRestart):
+# Semi-colon list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 first add-on's name, #2 number of add-ons, #3 application name
+
+# LOCALIZATION NOTE (addonError-1, addonError-2, addonError-3, addonError-4):
+# #1 is the add-on name, #2 is the host name, #3 is the application name
+# #4 is the application version
+
+# LOCALIZATION NOTE (addonLocalError-1, addonLocalError-2, addonLocalError-3, addonLocalError-4, addonErrorIncompatible, addonErrorBlocklisted):
+# #1 is the add-on name, #3 is the application name, #4 is the application version
+
+
+mailServerLoginFailedTitle=Kon nie aanmeld nie
+# LOCALIZATION NOTE (mailServerLoginFailedTitleWithAccount):
+# "%S" is the account name.
+# LOCALIZATION NOTE (mailServerLoginFailed2):
+# %1$S is the host name of the server, %2$S is the user name.
+mailServerLoginFailedRetryButton=&Probeer weer
+mailServerLoginFailedEnterNewPasswordButton=&Tik nuwe wagwoord
+
+# 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=Pas veranderinge toe?
+# 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=Pas die huidige vouer se kolomme toe op %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=Pas veranderinge toe?
+# 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=Pas die huidige vouer se kolomme toe op %S en sy kinders?
+
+# LOCALIZATION NOTE (lwthemeInstallRequest.message): %S will be replaced with
+# the host name of the site.
+lwthemeInstallRequest.message=Die werf (%S) het probeer om 'n tema te installeer.
+lwthemeInstallRequest.allowButton=Laat toe
+lwthemeInstallRequest.allowButton.accesskey=a
+
+lwthemePostInstallNotification.message='n Nuwe tema is geïnstalleer.
+lwthemePostInstallNotification.undoButton=Ontdoen
+lwthemePostInstallNotification.manageButton=Bestuur temas…
+lwthemePostInstallNotification.manageButton.accesskey=B
+
+# safeModeRestart
+
+# LOCALIZATION NOTE (downloadAndInstallButton.label): %S is replaced by the
+# version of the update: "Update to 28.0".
+
+
+# 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 -->
+# 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.
+# 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.
+
+# LOCALIZATION NOTE (ignoredThreadFeedback): #1 is the message thread title
+# LOCALIZATION NOTE (ignoredSubthreadFeedback): #1 is the message subthread title
+# LOCALIZATION NOTE (ignoredThreadsFeedback): Semi-colon list of plural forms.
+# #1 is the number of threads
+# LOCALIZATION NOTE (ignoredSubthreadsFeedback): Semi-colon list of plural forms.
+# #1 is number of subthreads
+# LOCALIZATION NOTE (saveAsType): replace %S with the extension of the file to be saved.
+saveAsType=%S-lêer
+
+# 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.
+
+# 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.
+
+# 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)".
+
+
+# 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
+# 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
+# LOCALIZATION NOTE(longMsgSubjectTruncator): A suffix string appended to the filename
+# (created from message subject) if it needed to be truncated due to length.
+longMsgSubjectTruncator=...
+DetachAttachment=Detach Attachment
+DetachAllAttachments=Detach All Attachments
+# 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
+# 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'?
+# LOCALIZATION NOTE(compactingDone): %1$S is the compaction gain.
+compactingDone=Done compacting (approx. %1$S saved).
+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.
+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.
+operationFailedFolderBusy=The operation failed because another operation is using the folder. Please wait for that operation to finish and then try again.
+authExternal=TLS Certificate
+authOAuth2=OAuth2
+# 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
+sizeColumnTooltip2=Sort by size
+linesColumnTooltip2=Sort by 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
+last7Days=Last 7 Days
+last14Days=Last 14 Days
+older=Older
+futureDate=Future
+redirected=Redirected
+# 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.
+# 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.
+feedsAcctType=Feeds
+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.
+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
+phishingBarPrefLabel=Options
+phishingBarPrefAccesskey=O
+phishingBarPrefLabelUnix=Preferences
+phishingBarPrefAccesskeyUnix=P
+mdnBarIgnoreButtonKey=n
+mdnBarSendReqButton=Send Receipt
+mdnBarSendReqButtonKey=S
+draftMessageMsg=This is a draft message.
+draftMessageButton=Edit
+draftMessageButtonKey=E
+openLabelAccesskey=O
+deleteLabel=Delete
+deleteLabelAccesskey=E
+openFolderLabel=Open Containing Folder
+openFolderLabelAccesskey=F
+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 heading for the attachment summary when printing an email
+attachmentsPrintHeader=Attachments:
+# 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.
+# 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
+# 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?
+# LOCALIZATION NOTE (foldersChosen): #1 number of chosen folders
+virtualFolderSourcesChosen=#1 folder chosen;#1 folders chosen
+# 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
+linkMismatchTitle=Link Mismatch Detected
+#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
+updatesItem_default.accesskey=C
+updatesItem_resume=Resume Downloading %S…
+#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?
+emptyTrashFolderTitle=Empty "%S"
+emptyTrashFolderMessage=Delete all messages and subfolders in the Trash folder?
+# 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
+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
+# 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.
+lwthemePostInstallNotification.undoButton.accesskey=U
+# 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 (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/af/chrome/af/locale/af/messenger/messengercompose/EdAdvancedEdit.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EdAdvancedEdit.dtd
new file mode 100644
index 0000000000..6b3e57277c
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Gevorderde-eienskappe-redigeerder">
+<!ENTITY AttName.label "Attribuut: ">
+<!ENTITY AttValue.label "Waarde: ">
+<!ENTITY PropertyName.label "Eienskap: ">
+<!ENTITY currentattributesfor.label "Huidige attribute vir: ">
+<!ENTITY tree.attributeHeader.label "Attribuut">
+<!ENTITY tree.propertyHeader.label "Eienskap">
+<!ENTITY tree.valueHeader.label "Waarde">
+<!ENTITY tabHTML.label "HTML-attribute">
+<!ENTITY tabCSS.label "Inlynstyl">
+<!ENTITY tabJSE.label "JavaScript-gebeure">
+
+<!ENTITY editAttribute.label "Kliek op 'n item hierbo om sy waarde te wysig">
+<!ENTITY removeAttribute.label "Verwyder">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EdColorPicker.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EdColorPicker.dtd
new file mode 100644
index 0000000000..72e19cf517
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EdColorPicker.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 windowTitle.label "Kleur">
+<!ENTITY lastPickedColor.label "Mees onlangs gekose kleur">
+<!ENTITY lastPickedColor.accessKey "M">
+
+<!ENTITY default.label "Verstek">
+<!ENTITY default.accessKey "V">
+<!ENTITY palette.label "Palet:">
+<!ENTITY standardPalette.label "Standaard">
+<!ENTITY webPalette.label "Alle webkleure">
+<!ENTITY background.label "Agtergrond vir:">
+<!ENTITY background.accessKey "A">
+<!ENTITY table.label "Tabel">
+<!ENTITY table.accessKey "T">
+<!ENTITY cell.label "Sel(le)">
+<!ENTITY cell.accessKey "S">
+
+<!ENTITY chooseColor1.label "Choose a color:">
+<!ENTITY chooseColor2.label "Enter an HTML color string">
+<!ENTITY chooseColor2.accessKey "H">
+<!ENTITY setColorExample.label "(e.g.: &quot;#0000ff&quot; or &quot;blue&quot;):">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EdConvertToTable.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EdConvertToTable.dtd
new file mode 100644
index 0000000000..b01fb8d94d
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Omskep na tabel">
+<!ENTITY instructions1.label "Composer skep 'n nuwe tabelry vir elke paragraaf in die gemerkte deel.">
+<!ENTITY instructions2.label "Kies die karakter wat die gemerkte deel in kolomme moet deel:">
+<!ENTITY commaRadio.label "Komma">
+<!ENTITY spaceRadio.label "Spasie">
+<!ENTITY otherRadio.label "Ander karakter:">
+<!ENTITY deleteCharCheck.label "Skrap skeierkarakter">
+<!ENTITY collapseSpaces.label "Ignoreer ekstra spasies">
+<!ENTITY collapseSpaces.tooltip "Omskep aanliggende spasies in een skeier">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EdDialogOverlay.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EdDialogOverlay.dtd
new file mode 100644
index 0000000000..9e734d6bcd
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EdDialogOverlay.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 AdvancedEditButton.label "Gevorderd redigeer…">
+<!ENTITY AdvancedEditButton.accessKey "r">
+<!ENTITY AdvancedEditButton.tooltip "Wysig of voeg HTML-attribute, styl-attribute en JavaScript by">
+<!ENTITY chooseFileButton.label "Kies lêer…">
+<!ENTITY chooseFileButton.accessKey "l">
+<!ENTITY chooseFileLinkButton.label "Kies lêer…">
+<!ENTITY chooseFileLinkButton.accessKey "l">
+
+
+<!ENTITY makeUrlRelative.tooltip "Verander tussen relatiewe en absolute URL. U moet eers die bladsy stoor voor u dit verander.">
+<!-- Shared by Link and Image dialogs -->
+
+
+<!ENTITY makeUrlRelative.label "URL is relative to page location">
+<!ENTITY makeUrlRelative.accessKey "r">
+<!-- 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/af/chrome/af/locale/af/messenger/messengercompose/EdNamedAnchorProperties.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EdNamedAnchorProperties.dtd
new file mode 100644
index 0000000000..71ace0de34
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EdNamedAnchorProperties.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 windowTitle.label "Genoemdeanker-eienskappe">
+<!ENTITY anchorNameEditField.label "Ankernaam:">
+<!ENTITY anchorNameEditField.accessKey "n">
+<!ENTITY nameInput.tooltip "Tik 'n unieke naam vir hierdie genoemde anker in (teiken)">
+
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorColorProperties.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorColorProperties.dtd
new file mode 100644
index 0000000000..cbd399af81
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorColorProperties.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/. -->
+<!-- Window title -->
+
+<!ENTITY windowTitle.label "Bladsykleure en -agtergrond">
+<!ENTITY pageColors.label "Bladsykleure">
+<!ENTITY defaultColorsRadio.label "Leser se verstek-kleure (moenie kleure in die bladsy opstel nie)">
+<!ENTITY defaultColorsRadio.accessKey "m">
+<!ENTITY defaultColorsRadio.tooltip "Gebruik slegs die kleuropstelling uit die leser se blaaier">
+<!ENTITY customColorsRadio.label "Gebruik pasgemaakte kleure:">
+<!ENTITY customColorsRadio.accessKey "p">
+<!ENTITY customColorsRadio.tooltip "Hierdie kleuropstelling oorheers die leser se blaaieropstelling">
+
+<!ENTITY normalText.label "Gewone teks">
+<!ENTITY normalText.accessKey "G">
+<!ENTITY linkText.label "Skakelteks">
+<!ENTITY linkText.accessKey "S">
+<!ENTITY activeLinkText.label "Teks van aktiewe skakels">
+<!ENTITY activeLinkText.accessKey "a">
+<!ENTITY visitedLinkText.label "Teks van besoekte skakels">
+<!ENTITY visitedLinkText.accessKey "b">
+<!ENTITY background.label "Agtergrond:">
+<!ENTITY background.accessKey "A">
+<!ENTITY colon.character ":">
+<!ENTITY backgroundImage.label "Agtergrondprent:">
+<!ENTITY backgroundImage.accessKey "p">
+<!ENTITY backgroundImage.tooltip "Gebruik 'n prentlêer as die agtergrond van u bladsy">
+
+
+<!ENTITY backgroundImage.shortenedDataURI "Shortened data URI (copy will place the full URI onto the clipboard)">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorHLineProperties.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorHLineProperties.dtd
new file mode 100644
index 0000000000..33ad14dc1c
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Eienskappe van horisontale strepe">
+
+<!ENTITY dimensionsBox.label "Dimensies">
+<!ENTITY heightEditField.label "Hoogte:">
+<!ENTITY heightEditField.accessKey "g">
+<!ENTITY widthEditField.label "Wydte:">
+<!ENTITY widthEditField.accessKey "W">
+<!ENTITY pixelsPopup.value "pixels">
+<!ENTITY alignmentBox.label "Gerigtheid">
+<!ENTITY leftRadio.label "Links">
+<!ENTITY leftRadio.accessKey "L">
+<!ENTITY centerRadio.label "Middel">
+<!ENTITY centerRadio.accessKey "M">
+<!ENTITY rightRadio.label "Regs">
+<!ENTITY rightRadio.accessKey "R">
+
+<!ENTITY threeDShading.label "3-D skaduwees">
+<!ENTITY threeDShading.accessKey "s">
+<!ENTITY saveSettings.label "Gebruik as verstek">
+<!ENTITY saveSettings.accessKey "v">
+<!ENTITY saveSettings.tooltip "Stoor dié opstelling vir die invoeg van nuwe horisontale strepe">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorImageProperties.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorImageProperties.dtd
new file mode 100644
index 0000000000..3f005777bb
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorImageProperties.dtd
@@ -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/. -->
+
+<!-- These strings are for use specifically in the editor's image and form image dialogs. -->
+<!-- Window title -->
+
+
+<!ENTITY windowTitle.label "Prenteienskappe">
+
+<!ENTITY pixelsPopup.value "pixels">
+<!-- These are in the Location tab panel -->
+
+<!ENTITY locationEditField.label "Prentligging:">
+<!ENTITY locationEditField.accessKey "l">
+<!ENTITY locationEditField.tooltip "Tik die prent se lêernaam of ligging in">
+
+<!ENTITY title.label "Nutswenk:">
+<!ENTITY title.accessKey "N">
+<!ENTITY title.tooltip "Die HTML-&quot;title&quot;-attribuut wat as opwipwenk vertoon">
+<!ENTITY altText.label "Alt-teks:">
+<!ENTITY altText.accessKey "A">
+<!ENTITY altTextEditField.tooltip "Tik teks in wat in die plek van die prent vertoon moet word">
+<!ENTITY noAltText.label "Moenie Alt-teks gebruik nie">
+<!ENTITY noAltText.accessKey "M">
+
+<!ENTITY previewBox.label "Prentvoorskou">
+
+<!-- These controls are in the Dimensions tab panel -->
+<!-- actualSize.label should be same as actualSizeRadio.label + ":" -->
+
+<!ENTITY actualSize.label "Werklike grootte:">
+<!ENTITY actualSizeRadio.label "Werklike grootte">
+<!ENTITY actualSizeRadio.accessKey "W">
+<!ENTITY actualSizeRadio.tooltip "Keer terug na prent se werklike grootte">
+<!ENTITY customSizeRadio.label "Gepasmaakte grootte">
+<!ENTITY customSizeRadio.accessKey "g">
+<!ENTITY customSizeRadio.tooltip "Wysig die prent se grootte soos vertoon op die bladsy">
+<!ENTITY heightEditField.label "Hoogte:">
+<!ENTITY heightEditField.accessKey "g">
+<!ENTITY widthEditField.label "Wydte:">
+<!ENTITY widthEditField.accessKey "W">
+<!ENTITY constrainCheckbox.label "Beperk">
+<!ENTITY constrainCheckbox.accessKey "B">
+<!ENTITY constrainCheckbox.tooltip "Behou die prent se aspekverhouding">
+<!-- These controls are in the Image Map box of the expanded area -->
+
+<!ENTITY imagemapBox.label "Prentkaart">
+<!ENTITY removeImageMapButton.label "Verwyder">
+<!ENTITY removeImageMapButton.accessKey "V">
+<!-- These are the options for image alignment -->
+
+<!ENTITY alignment.label "Rig teks volgens prent">
+<!ENTITY bottomPopup.value "Aan die onderkant">
+<!ENTITY topPopup.value "Aan die bokant">
+<!ENTITY centerPopup.value "In die middel">
+<!ENTITY wrapRightPopup.value "Vou na regs">
+<!ENTITY wrapLeftPopup.value "Vou na links">
+<!-- These controls are in the Spacing Box -->
+
+<!ENTITY spacingBox.label "Spasiëring">
+<!ENTITY leftRightEditField.label "Links en regs:">
+<!ENTITY leftRightEditField.accessKey "L">
+<!ENTITY topBottomEditField.label "Bo- en onderkant:">
+<!ENTITY topBottomEditField.accessKey "B">
+<!ENTITY borderEditField.label "Soliede rand:">
+<!ENTITY borderEditField.accessKey "r">
+<!-- These controls are in the Link Box -->
+
+<!ENTITY showImageLinkBorder.label "Wys rand rondom geskakelde prent">
+<!ENTITY showImageLinkBorder.accessKey "r">
+
+
+<!ENTITY LinkAdvancedEditButton.tooltip "Wysig of voeg HTML-attribute, styl-attribute en JavaScript by">
+<!-- These tabs are currently used in the image input dialog -->
+
+<!ENTITY imageInputTab.label "Vorm">
+<!ENTITY imageLocationTab.label "Ligging">
+<!ENTITY imageDimensionsTab.label "Dimensies">
+<!ENTITY imageAppearanceTab.label "Voorkoms">
+<!ENTITY imageLinkTab.label "Skakel">
+
+<!ENTITY locationEditField.shortenedDataURI "Shortened data URI (copy will place the full URI onto the clipboard)">
+<!ENTITY LinkAdvancedEditButton.label "Link Advanced Edit…">
+<!ENTITY LinkAdvancedEditButton.accessKey "L">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorInsertChars.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorInsertChars.dtd
new file mode 100644
index 0000000000..b99196c403
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Voeg karakter in">
+<!ENTITY category.label "Kategorie">
+<!ENTITY letter.label "Letter:">
+<!ENTITY letter.accessKey "L">
+<!ENTITY character.label "Karakter:">
+<!ENTITY character.accessKey "K">
+<!ENTITY accentUpper.label "Aksent-bokas">
+<!ENTITY accentLower.label "Aksent-onderkas">
+<!ENTITY otherUpper.label "Ander bokas">
+<!ENTITY otherLower.label "Ander onderkas">
+<!ENTITY commonSymbols.label "Algemene simbole">
+<!ENTITY insertButton.label "Invoeg">
+<!ENTITY closeButton.label "Sluit">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorInsertMath.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorInsertMath.dtd
new file mode 100644
index 0000000000..8cc60938fd
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorInsertMath.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/. -->
+<!-- Window title -->
+
+
+<!ENTITY options.label "Opsies">
+
+
+
+
+
+
+
+
+
+<!ENTITY insertButton.label "Invoeg">
+<!ENTITY insertButton.accesskey "I">
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Insert Math">
+<!ENTITY sourceEditField.label "Enter LaTeX source code:">
+<!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">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorInsertSource.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorInsertSource.dtd
new file mode 100644
index 0000000000..576f78f1d5
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Voeg HTML in">
+<!ENTITY sourceEditField.label "Tik HTML-merkers en teks in:">
+<!ENTITY example.label "Byvoorbeeld: ">
+<!-- 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 "Hallo wêreld!">
+<!ENTITY insertButton.label "Voeg in">
+<!ENTITY insertButton.accesskey "V">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorInsertTOC.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorInsertTOC.dtd
new file mode 100644
index 0000000000..fb0a6f83c1
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Inhoudsopgawe">
+<!ENTITY buildToc.label "Bou tabel op uit inhoud van:">
+<!ENTITY tag.label "Merker:">
+<!ENTITY class.label "Klas:">
+<!ENTITY header1.label "Vlak 1">
+<!ENTITY header2.label "Vlak 2">
+<!ENTITY header3.label "Vlak 3">
+<!ENTITY header4.label "Vlak 4">
+<!ENTITY header5.label "Vlak 5">
+<!ENTITY header6.label "Vlak 6">
+<!ENTITY makeReadOnly.label "Maak die inhoudsopgawe leesalleen">
+<!ENTITY orderedList.label "Nommer alle inskrywings in die inhoudsopgawe">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorInsertTable.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorInsertTable.dtd
new file mode 100644
index 0000000000..41b0241af2
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Voeg tabel in">
+
+<!ENTITY size.label "Grootte">
+<!ENTITY numRowsEditField.label "Rye:">
+<!ENTITY numRowsEditField.accessKey "R">
+<!ENTITY numColumnsEditField.label "Kolomme:">
+<!ENTITY numColumnsEditField.accessKey "K">
+<!ENTITY widthEditField.label "Wydte:">
+<!ENTITY widthEditField.accessKey "W">
+<!ENTITY borderEditField.label "Rand:">
+<!ENTITY borderEditField.accessKey "R">
+<!ENTITY borderEditField.tooltip "Tik 'n getal in vir die tabel se randgrootte, of tik nul (0) vir geen rand nie">
+<!ENTITY pixels.label "pixels">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorLinkProperties.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorLinkProperties.dtd
new file mode 100644
index 0000000000..063ec766bb
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Skakel-eienskappe">
+<!ENTITY LinkURLBox.label "Skakelligging">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorListProperties.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorListProperties.dtd
new file mode 100644
index 0000000000..cd3c150b20
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Lys-eienskappe">
+
+<!ENTITY ListType.label "Lyssoort">
+<!ENTITY bulletStyle.label "Koeëltjiestyl:">
+<!ENTITY startingNumber.label "Begin by:">
+<!ENTITY startingNumber.accessKey "B">
+<!ENTITY none.value "Geen">
+<!ENTITY bulletList.value "Koeëltjielys (nommerloos)">
+<!ENTITY numberList.value "Genommerde lys">
+<!ENTITY definitionList.value "Definisielys">
+<!ENTITY changeEntireListRadio.label "Verander hele lys">
+<!ENTITY changeEntireListRadio.accessKey "V">
+<!ENTITY changeSelectedRadio.label "Verander slegs gemerkte items">
+<!ENTITY changeSelectedRadio.accessKey "i">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorPersonalDictionary.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorPersonalDictionary.dtd
new file mode 100644
index 0000000000..8e13cd6b55
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Persoonlike subgids">
+
+<!ENTITY wordEditField.label "Nuwe woord:">
+<!ENTITY wordEditField.accessKey "N">
+<!ENTITY AddButton.label "Voeg by">
+<!ENTITY AddButton.accessKey "V">
+<!ENTITY DictionaryList.label "Woorde in woordeboek:">
+<!ENTITY DictionaryList.accessKey "W">
+<!ENTITY RemoveButton.label "Verwyder">
+<!ENTITY RemoveButton.accessKey "e">
+
+<!ENTITY CloseButton.label "Sluit">
+<!ENTITY CloseButton.accessKey "S">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorReplace.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorReplace.dtd
new file mode 100644
index 0000000000..34abac2bef
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorReplace.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/. -->
+<!-- extracted from EdReplace.xul -->
+
+
+<!-- extracted from EdReplace.xhtml -->
+
+<!ENTITY replaceDialog.title "Vind en vervang">
+<!ENTITY findField.label "Vind teks:">
+<!ENTITY findField.accesskey "n">
+<!ENTITY replaceField.label "Vervang met:">
+<!ENTITY replaceField.accesskey "v">
+
+
+<!ENTITY wrapCheckbox.label "Vou om">
+<!ENTITY wrapCheckbox.accesskey "V">
+<!ENTITY backwardsCheckbox.label "Deursoek terugwaarts">
+<!ENTITY backwardsCheckbox.accesskey "t">
+<!ENTITY findNextButton.label "Vind volgende">
+<!ENTITY findNextButton.accesskey "V">
+<!ENTITY replaceButton.label "Vervang">
+<!ENTITY replaceButton.accesskey "V">
+<!ENTITY replaceAndFindButton.label "Vervang en vind">
+<!ENTITY replaceAndFindButton.accesskey "n">
+<!ENTITY replaceAllButton.label "Vervang alles">
+<!ENTITY replaceAllButton.accesskey "a">
+
+
+
+<!ENTITY caseSensitiveCheckbox.label "Match exact case">
+<!ENTITY caseSensitiveCheckbox.accesskey "M">
+<!ENTITY closeButton.label "Close">
+<!ENTITY closeButton.accesskey "C">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorSpellCheck.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorSpellCheck.dtd
new file mode 100644
index 0000000000..da4a9964a8
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorSpellCheck.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/. -->
+<!-- Window title -->
+
+<!ENTITY windowTitle.label "Toets spelling">
+
+<!ENTITY misspelledWord.label "Spelfout:">
+<!ENTITY wordEditField.label "Vervang met:">
+<!ENTITY wordEditField.accessKey "m">
+<!ENTITY checkwordButton.label "Kontroleer woord">
+<!ENTITY checkwordButton.accessKey "r">
+<!ENTITY suggestions.label "Voorstelle:">
+<!ENTITY suggestions.accessKey "o">
+<!ENTITY ignoreButton.label "Ignoreer">
+<!ENTITY ignoreButton.accessKey "I">
+<!ENTITY ignoreAllButton.label "Ignoreer alles">
+<!ENTITY ignoreAllButton.accessKey "n">
+<!ENTITY replaceButton.label "Vervang">
+<!ENTITY replaceButton.accessKey "V">
+<!ENTITY replaceAllButton.label "Vervang alles">
+<!ENTITY replaceAllButton.accessKey "a">
+
+
+<!ENTITY userDictionary.label "Persoonlike subgids:">
+<!ENTITY moreDictionaries.label "Laai nog woordeboeke af…">
+<!ENTITY addToUserDictionaryButton.label "Voeg woord by">
+<!ENTITY addToUserDictionaryButton.accessKey "o">
+<!ENTITY editUserDictionaryButton.label "Redigeer…">
+<!ENTITY editUserDictionaryButton.accessKey "e">
+
+
+<!ENTITY closeButton.label "Sluit">
+<!ENTITY closeButton.accessKey "S">
+<!ENTITY sendButton.label "Stuur">
+<!ENTITY sendButton.accessKey "S">
+<!ENTITY languagePopup.label "Taal:">
+<!ENTITY languagePopup.accessKey "T">
+
+<!ENTITY stopButton.label "Stop">
+<!ENTITY stopButton.accessKey "o">
+<!ENTITY recheckButton2.label "Recheck Text">
+<!ENTITY recheckButton2.accessKey "T">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorTableProperties.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/EditorTableProperties.dtd
new file mode 100644
index 0000000000..25dcae6aaf
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Tabel-eienskappe">
+<!ENTITY applyButton.label "Toepas">
+<!ENTITY applyButton.accesskey "T">
+<!ENTITY closeButton.label "Sluit">
+<!ENTITY tableTab.label "Tabel">
+<!ENTITY cellTab.label "Selle">
+<!ENTITY tableRows.label "Rye:">
+<!ENTITY tableRows.accessKey "R">
+<!ENTITY tableColumns.label "Kolomme:">
+<!ENTITY tableColumns.accessKey "K">
+<!ENTITY tableHeight.label "Hoogte:">
+<!ENTITY tableHeight.accessKey "g">
+<!ENTITY tableWidth.label "Wydte:">
+<!ENTITY tableWidth.accessKey "W">
+<!ENTITY tableBorderSpacing.label "Randte en spasiëring">
+<!ENTITY tableBorderWidth.label "Rand:">
+<!ENTITY tableBorderWidth.accessKey "R">
+<!ENTITY tableSpacing.label "Spasiëring:">
+<!ENTITY tableSpacing.accessKey "S">
+<!ENTITY tablePadding.label "Opvulling:">
+<!ENTITY tablePadding.accessKey "O">
+<!ENTITY tablePxBetwCells.label "pixels tussen selle">
+<!ENTITY tablePxBetwBrdrCellContent.label "pixels tussen selrand en -inhoud">
+<!ENTITY tableAlignment.label "Tabelbelyning:">
+<!ENTITY tableAlignment.accessKey "T">
+<!ENTITY tableCaption.label "Byskrif:">
+<!ENTITY tableCaption.accessKey "f">
+<!ENTITY tableCaptionAbove.label "Bokant tabel">
+<!ENTITY tableCaptionBelow.label "Onderkant tabel">
+<!ENTITY tableCaptionLeft.label "Links van tabel">
+<!ENTITY tableCaptionRight.label "Regs van tabel">
+<!ENTITY tableCaptionNone.label "Geen">
+<!ENTITY tableInheritColor.label "(Laat bladsykleur deurskyn)">
+
+<!ENTITY cellSelection.label "Seleksie">
+<!ENTITY cellSelectCell.label "Sel">
+<!ENTITY cellSelectRow.label "Ry">
+<!ENTITY cellSelectColumn.label "Kolom">
+<!ENTITY cellSelectNext.label "Volgende">
+<!ENTITY cellSelectNext.accessKey "n">
+<!ENTITY cellSelectPrevious.label "Vorige">
+<!ENTITY cellSelectPrevious.accessKey "V">
+<!ENTITY applyBeforeChange.label "Huidige wysigings sal toegepas word voor die seleksie verander word.">
+<!ENTITY cellContentAlignment.label "Inhoudgerigtheid">
+<!ENTITY cellHorizontal.label "Horisontaal:">
+<!ENTITY cellHorizontal.accessKey "s">
+<!ENTITY cellVertical.label "Vertikaal:">
+<!ENTITY cellVertical.accessKey "V">
+<!ENTITY cellStyle.label "Selstyl:">
+<!ENTITY cellStyle.accessKey "S">
+<!ENTITY cellNormal.label "Gewoon">
+<!ENTITY cellHeader.label "Kop">
+<!ENTITY cellTextWrap.label "Teksomvou:">
+<!ENTITY cellTextWrap.accessKey "T">
+<!ENTITY cellWrap.label "Omvou">
+<!ENTITY cellNoWrap.label "Moenie omvou nie">
+<!ENTITY cellAlignTop.label "Bo">
+<!ENTITY cellAlignMiddle.label "Middel">
+<!ENTITY cellAlignBottom.label "Onder">
+<!ENTITY cellAlignJustify.label "Alkanthaaks">
+<!ENTITY cellInheritColor.label "(Laat tabelkleur deurskyn)">
+<!ENTITY cellUseCheckboxHelp.label "Gebruik merkblokkies om te bepaal watter eienskappe op al die gemerkte selle toegepas word">
+<!-- Used in both Table and Cell panels -->
+
+<!ENTITY size.label "Grootte">
+<!ENTITY pixels.label "pixels">
+<!ENTITY backgroundColor.label "Agtergrondkleur:">
+<!ENTITY backgroundColor.accessKey "A">
+<!ENTITY AlignLeft.label "Links">
+<!ENTITY AlignCenter.label "Sentreer">
+<!ENTITY AlignRight.label "Regs">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/composeMsgs.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/composeMsgs.properties
new file mode 100644
index 0000000000..f74e7a0a3d
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/composeMsgs.properties
@@ -0,0 +1,580 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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=Kan nie lêer %S open nie.
+unableToOpenTmpFile=Kan nie die tydelike lêer %S open nie. Gaan u 'Tydelike subgids'-opstelling na.
+noRecipients=Geen ontvangers is gespesifiseer nie. Tik asseblief 'n ontvanger of nuusgroep in die ontvangerveld in.
+errorWritingFile=Kon nie tydelike lêer skryf nie.
+
+## LOCALIZATION NOTE (errorSendingFromCommand): argument %s is the Outgoing server (SMTP) response
+
+## LOCALIZATION NOTE (errorSendingDataCommand): argument %s is the Outgoing server (SMTP) response
+
+## LOCALIZATION NOTE (errorSendingMessage): argument %s is the Outgoing server (SMTP) response
+errorSendingMessage=Daar het fout gegaan met die stuur van die pos. Die posbediener se respons is: %s. Gaan boodskap na, en probeer weer.
+
+## LOCALIZATION NOTE (smtpServerError): argument %s is the Outgoing server (SMTP) response
+
+## LOCALIZATION NOTE (communicationsError): argument %d is the error code
+communicationsError=Daar was die volgende kommunikasiefout: %d. Probeer asseblief weer.
+dontShowAlert=HIERDIE IS NET 'N PLEKHOUER. U IS NIE VERONDERSTEL OM HIERDIE STRING TE KAN SIEN NIE.
+
+mimeMpartAttachmentError=Fout met aanhegsel.
+failedCopyOperation=Die boodskap is suksesvol gestuur, maar kon nie na u Gestuur-vouer gekopieer word nie.
+nntpNoCrossPosting=U kan 'n boodskap aan net een nuusbediener op 'n slag stuur.
+msgCancelling=Kanselleer tans…
+errorReadingFile=Kon nie lêer lees nie.
+followupToSenderMessage=Die skrywer van hierdie boodskap het versoek dat antwoorde net aan die skrywer gepos word. As u 'n antwoord ook aan die nuusgroep wil stuur, voeg 'n nuwe ry by die adresveld, kies die nuusgroep uit die ontvangerlys, en tik die naam van die nuusgroep in.
+
+## LOCALIZATION NOTE (errorAttachingFile): argument %S is the file name/URI of the object to be attached
+
+## LOCALIZATION NOTE (incorrectSmtpGreeting): argument %s is the Outgoing server (SMTP) greeting
+
+## LOCALIZATION NOTE (errorSendingRcptCommand): argument %1$S is the Outgoing server (SMTP) response, argument %2$S is the intended message recipient.
+
+## LOCALIZATION NOTE (startTlsFailed): argument %S is the Outgoing server (SMTP)
+
+## LOCALIZATION NOTE (smtpPasswordUndefined): argument %S is the Outgoing server (SMTP) account
+
+## LOCALIZATION NOTE (smtpTempSizeExceeded): argument %s is the Outgoing server (SMTP) response
+smtpTempSizeExceeded=Die grootte van die boodskap wat u probeer stuur, oorskry 'n tydelike beperking van die bediener. Die boodskap is nie gestuur nie. Probeer die boodskap se grootte verminder of wag 'n bietjie en probeer dan weer. Die bediener se respons was: %s.
+
+## LOCALIZATION NOTE (smtpPermSizeExceeded1): argument %d is the Outgoing server (SMTP) size limit
+smtpPermSizeExceeded1=Die grootte van die boodskap wat u probeer stuur, oorskry die globale beperking (%d grepe) van die bediener. Die boodskap is nie gestuur nie. Probeer die boodskap se grootte verminder en probeer dan weer.
+
+## LOCALIZATION NOTE (smtpPermSizeExceeded2): argument %s is the Outgoing server (SMTP) response
+smtpPermSizeExceeded2=Die grootte van die boodskap wat u probeer stuur, oorskry die globale beperking van die bediener. Die boodskap is nie gestuur nie. Probeer die boodskap se grootte verminder en probeer dan weer. Die bediener se respons was: %s.
+
+## LOCALIZATION NOTE (smtpSendFailedUnknownServer): argument %S is the Outgoing server (SMTP)
+
+## LOCALIZATION NOTE (smtpSendRequestRefused): argument %S is the Outgoing server (SMTP)
+
+## LOCALIZATION NOTE (smtpSendInterrupted): argument %S is the Outgoing server (SMTP)
+
+## LOCALIZATION NOTE (smtpSendTimeout): argument %S is the Outgoing server (SMTP)
+
+## LOCALIZATION NOTE (smtpSendFailedUnknownReason): argument %S is the Outgoing server (SMTP)
+
+# LOCALIZATION NOTE (smtpHintAuthEncryptToPlainNoSsl): %S is the server hostname
+
+# LOCALIZATION NOTE (smtpHintAuthEncryptToPlainSsl): %S is the server hostname
+
+# LOCALIZATION NOTE (smtpHintAuthPlainToEncrypt): %S is the server hostname
+
+# LOCALIZATION NOTE (smtpAuthFailure): %S is the server hostname
+
+# LOCALIZATION NOTE (smtpAuthGssapi): %S is the server hostname
+
+# LOCALIZATION NOTE (smtpAuthMechNotSupported): %S is the server hostname
+
+# LOCALIZATION NOTE (smtpAuthenticationNotSupported): %S is the server hostname
+
+# LOCALIZATION NOTE (errorIllegalLocalPart): %s is an email address with an illegal localpart
+
+## Strings used for the save message dialog shown when the user closes a message compose window
+saveDlogTitle=Stoor boodskap
+
+## LOCALIZATION NOTE (saveDlogMessages2): 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 "windowTitlePrefix" below.
+
+## generics string
+defaultSubject=(onderwerploos)
+chooseFileToAttach=Heg lêer(s) aan
+
+## LOCALIZATION NOTE (undisclosedRecipients): this string must use only US_ASCII characters
+undisclosedRecipients=onvermelde ontvangers
+
+# LOCALIZATION NOTE (chooseFileToAttachViaCloud): %1$S is the cloud
+# provider to save the file to.
+
+## Strings used by the empty subject dialog
+subjectEmptyTitle=Onderwerpherinnerings
+subjectEmptyMessage=Dit lyk nie of u boodskap 'n onderwerp het nie.
+sendWithEmptySubjectButton=&Stuur sonder onderwerp
+cancelSendingButton=&Kanselleer stuur
+
+## Strings used by the dialog that informs about the lack of newsgroup support.
+noNewsgroupSupportTitle=Werk nie met nuusgroep nie
+recipientDlogMessage=Hierdie bediener werk net met e-posontvangers. As u voortgaan, sal die nuusgroepe geïgnoreer word.
+
+## Strings used by the alert that tells the user that an e-mail address is invalid.
+addressInvalidTitle=Ongeldige ontvangeradres
+addressInvalid=%1$S is nie 'n geldige e-posadres nie omdat dit nie in die vorm gebruiker@gasheer is nie. U moet dit regmaak voor u die e-pos kan stuur.
+
+## String used by the dialog that asks the user to attach a web page
+attachPageDlogTitle=Dui asseblief 'n ligging aan om aan te heg
+attachPageDlogMessage=Webbladsy (URL):
+
+## String used for attachment pretty name, when the attachment is a message
+messageAttachmentSafeName=Aangehegde boodskap
+
+## String used for attachment pretty name, when the attachment is a message part
+partAttachmentSafeName=Aangehegde boodskapdeel
+
+# LOCALIZATION NOTE (attachmentCount): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/Localization_and_Plurals
+# #1 number of attachments
+
+## String used by the Initialization Error dialog
+initErrorDlogTitle=Skryf 'n boodskap
+initErrorDlgMessage=Kon nie 'n briefskryf-venster skep nie. Probeer gerus weer.
+
+## String used if a file to attach does not exist when passed as
+## a command line argument
+
+## LOCALIZATION NOTE (errorFileAttachMessage): %1$S will be replaced by the non-existent file name.
+
+## String used if a file to serve as message body does not exist or cannot be loaded when passed
+## as a command line argument
+
+## LOCALIZATION NOTE (errorFileMessageMessage): %1$S will be replaced by the non-existent file name.
+
+## LOCALIZATION NOTE (errorLoadFileMessageMessage): %1$S will be replaced by the name of the file that can't be loaded.
+
+## Strings used by the Save as Draft/Template dialog
+SaveDialogTitle=Stoor boodskap
+
+## LOCALIZATION NOTE (SaveDialogMsg): %1$S is the folder name, %2$S is the host name
+SaveDialogMsg=U boodskap is in die vouer %1$S onder %2$S gestoor.
+CheckMsg=Moenie hierdie weer wys nie.
+
+## Strings used by the prompt when Quitting while in progress
+quitComposeWindowTitle=Stuur tans boodskap
+
+## LOCALIZATION NOTE (quitComposeWindowMessage2): don't translate \n
+quitComposeWindowMessage2=%1$S is tans besig om 'n boodskap te stuur.\nWil u wag tot die boodskap gestuur is voor u afsluit, of wil u nou afsluit?
+quitComposeWindowQuitButtonLabel2=&Afsluit
+quitComposeWindowWaitButtonLabel2=&Wag
+
+## LOCALIZATION NOTE (quitComposeWindowSaveMessage): don't translate \n
+
+## Strings used by the prompt for Ctrl-Enter check before sending message
+sendMessageCheckWindowTitle=Stuur boodskap
+sendMessageCheckLabel=Is u seker u is gereed om hierdie boodskap te stuur?
+sendMessageCheckSendButtonLabel=Stuur
+assemblingMessageDone=Stel boodskap saam… klaar
+assemblingMessage=Stel tans boodskap saam…
+smtpDeliveringMail=Lewer tans pos af…
+smtpMailSent=Pos suksesvol gestuur
+assemblingMailInformation=Stel tans posinligting saam…
+
+## LOCALIZATION NOTE (gatheringAttachment): argument %S is the file name/URI of attachment
+creatingMailMessage=Skep tans posboodskap…
+
+## LOCALIZATION NOTE (copyMessageStart): argument %S is the folder name
+copyMessageStart=Kopieer tans boodskap na %S-vouer…
+copyMessageComplete=Kopiëring voltooi.
+copyMessageFailed=Kopiëring gefaal.
+
+## LOCALIZATION NOTE (largeMessageSendWarning):
+## Do not translate %S. It is the size of the message in user-friendly notation.
+sendingMessage=Stuur tans boodskap…
+sendMessageErrorTitle=Kon nie boodskap stuur nie
+postingMessage=Pos tans boodskap…
+sendLaterErrorTitle=Probleem met uitgestelde versending van boodskap
+saveDraftErrorTitle=Probleem met stoor van onvoltooide boodskap
+saveTemplateErrorTitle=Probleem met stoor van sjabloon
+
+## LOCALIZATION NOTE (failureOnObjectEmbeddingWhileSaving): argument %.200S is the file name/URI of object to be embedded
+
+## LOCALIZATION NOTE (failureOnObjectEmbeddingWhileSending): argument %.200S is the file name/URI of object to be embedded
+returnToComposeWindowQuestion=Wil u graag na die skrywer-venster terugkeer?
+
+## reply header in composeMsg
+## LOCALIZATION NOTE (mailnews.reply_header_authorwrotesingle): #1 is the author (name of the person replying to)
+
+## LOCALIZATION NOTE (mailnews.reply_header_ondateauthorwrote): #1 is the author, #2 is the date, #3 is the time
+
+## LOCALIZATION NOTE (mailnews.reply_header_authorwroteondate): #1 is the author, #2 is the date, #3 is the time
+
+## reply header in composeMsg
+## user specified
+mailnews.reply_header_originalmessage=-------- Oorspronklike boodskap --------
+
+## forwarded header in composeMsg
+## user specified
+
+## Strings used by the rename attachment dialog
+renameAttachmentTitle=Hernoem aanhegsel
+renameAttachmentMessage=Nuwe aanhegselnaam:
+
+## Attachment Reminder
+## LOCALIZATION NOTE (mail.compose.attachment_reminder_keywords): comma separated
+## words that should trigger an attachment reminder.
+
+remindLaterButton=Herinner my later
+attachmentReminderTitle=Aanhegselherinnering
+attachmentReminderMsg=Het u dalk vergeet om 'n aanhegsel aan te heg?
+
+# LOCALIZATION NOTE (attachmentReminderKeywordsMsgs): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/Localization_and_Plurals
+# #1 number of keywords
+attachmentReminderKeywordsMsgs=Aanhegselwoord opgemerk:;#1 aanhegselwoorde opgemerk:
+attachmentReminderOptionsMsg=Aanhegselherinningswoorde kan in jou voorkeure opgestel word
+attachmentReminderYesIForgot=O ja, ek het!
+attachmentReminderFalseAlarm=Nee, stuur nou
+
+# Strings used by the Filelink offer notification bar.
+
+# LOCALIZATION NOTE (bigFileDescription): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/Localization_and_Plurals
+# #1 number of big attached files
+
+# LOCALIZATION NOTE(cloudFileUploadingTooltip): Do not translate the string
+# %S. %S is the display name for the cloud account the attachment is being
+# uploaded to.
+
+# LOCALIZATION NOTE(cloudFileUploadedTooltip): Do not translate the string
+# %S. %S is the display name for the cloud account the attachment was uploaded
+# to.
+
+## LOCALIZATION NOTE(smtpEnterPasswordPrompt): Do not translate the
+## word %S. Place the word %S where the host name should appear.
+smtpEnterPasswordPrompt=Tik u wagwoord vir %S in:
+
+## 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=Tik u wagwoord vir %2$S op %1$S in:
+
+# LOCALIZATION NOTE (removeAttachmentMsgs): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/Localization_and_Plurals
+
+## LOCALIZATION NOTE(promptToSaveSentLocally): Do not translate the stings %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 "windowTitlePrefix" above.
+
+## LOCALIZATION NOTE(promptToSaveDraftLocally): Do not translate the stings %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").
+
+## LOCALIZATION NOTE(promptToSaveTemplateLocally): Do not translate the stings %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").
+
+## 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.
+
+## LOCALIZATION NOTE(errorCloudFileAuth.message):
+## %1$S is the name of the online storage service against which the authentication failed.
+
+## 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.
+
+## 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.
+
+## LOCALIZATION NOTE(errorCloudFileNameLimit.message):
+## %1$S is the name of the online storage service being uploaded to.
+## %2$S is the name of the file that could not be uploaded due to the excess file name length
+
+## 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.
+
+## LOCALIZATION NOTE(errorCloudFileOther.message):
+## %1$S is the name of the online storage service that cannot be communicated with.
+
+## 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.
+
+## LOCALIZATION NOTE(cloudAttachmentCountHeader): A line of text describing how
+## many uploaded files have been appended to this message. Emphasis should be
+## on sharing as opposed to attaching. This item is used as a header to a list,
+## hence the colon. This header is only displayed in HTML emails.
+## Using PluralForm (so don't replace the #1).
+
+## LOCALIZATION NOTE(cloudAttachmentListFooter): %1$S is a link, whose text
+## contents are the brandFullName of this application.
+
+## LOCALIZATION NOTE(cloudAttachmentListItem): A line of text describing a cloud
+## attachment to be inserted into the message body. Do not translate the words
+## %1$S, %2$S, %3$S, or %4$S. %1$S is the attachment name, %2$S is its size,
+## %3$S is the name of the cloud storage service, and %4$S is the link to the
+## attachment.
+
+## LOCALIZATION NOTE(stopShowingUploadingNotification): This string is used in the Filelink
+## upload notification bar to allow the user to dismiss the notification permanently.
+
+## LOCALIZATION NOTE(blockedAllowResource): %S is the URL to load.
+## LOCALIZATION NOTE (blockedContentMessage): Semi-colon list of plural forms.
+## See: http://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.
+
+
+
+
+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.
+## 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.
+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.
+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.
+sendFailedButNntpOk=Your message has been posted to the newsgroup but has not been sent to the other recipient.
+## 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 (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.
+## 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 (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.
+## 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
+genericFailureExplanation=Please verify that your account settings are correct and try again.
+# 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 email 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
+# 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 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.
+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?
+## LOCALIZATION NOTE (gatheringAttachment): argument %S is the file name/URI of attachment
+gatheringAttachment=Attaching %S…
+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?
+## 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?
+## 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:
+## forwarded header in composeMsg
+## user specified
+mailnews.forward_header_originalmessage=-------- Forwarded Message --------
+## 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.accesskey=L
+disableAttachmentReminderButton=Disable attachment reminder for current message
+# 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(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
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/editor.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/editor.properties
new file mode 100644
index 0000000000..72f93684f8
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/editor.properties
@@ -0,0 +1,211 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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=Nee
+Save=Stoor
+More=Meer
+Less=Minder
+MoreProperties=Meer eienskappe
+FewerProperties=Minder eienskappe
+PropertiesAccessKey=e
+None=Geen
+none=geen
+OpenHTMLFile=Open HTML-lêer
+SelectImageFile=Kies prentlêer
+SaveDocument=Stoor bladsy
+SaveDocumentAs=Stoor bladsy as
+EditMode=Redigeermodus
+Preview=Voorskou
+Publish=Publiseer
+PublishPage=Publiseer bladsy
+DontPublish=Moenie publiseer nie
+SavePassword=Laat wagwoordbestuurder hierdie wagwoord onthou
+CorrectSpelling=(korrekte spelling)
+NoSuggestedWords=(geen voorgestelde woorde nie)
+NoMisspelledWord=Geen spelfoute nie
+CheckSpellingDone=Speltoets voltooi.
+CheckSpelling=Toets spelling
+InputError=Fout
+Alert=Oppas
+CantEditFramesetMsg=Composer kan nie HTML-raamstelle of bladsye met inlynrame redigeer nie. Vir raamstelle, probeer elke raam apart redigeer. Vir inlynrame, stoor 'n afskrif van die bladsy en verwyder die <iframe>-merker.
+CantEditMimeTypeMsg=Hierdie soort bladsy kan nie geredigeer word nie.
+CantEditDocumentMsg=Hierdie bladsy kan vanweë 'n onbekende rede nie geredigeer word nie.
+BeforeClosing=voor afsluiting
+BeforePreview=voordat in die blaaier bekyk word
+BeforeValidate=voordat die dokument gevalideer word
+# LOCALIZATION NOTE (SaveFilePrompt, PublishPrompt): Don't translate %title% and %reason% (this is the reason for asking user to close, such as "before closing")
+SaveFilePrompt=Stoor wysigings aan "%title%" %reason%?\u0020
+PublishPrompt=Stoor wysigings aan "%title%" %reason%?\u0020
+SaveFileFailed=Kon lêer nie stoor nie!
+
+# Publishing error strings:
+# LOCALIZATION NOTE Don't translate %dir% or %file% in the Publishing error strings:
+FileNotFound=Kon %file% nie vind nie.
+SubdirDoesNotExist=Die subgids "%dir%" bestaan nie op hierdie webwerf nie, of die lêernaam "%file%" word reeds deur 'n ander subgids gebruik.
+FilenameIsSubdir=Die lêernaam "%file%" word reeds deur 'n ander subgids gebruik.
+ServerNotAvailable=Die bediener is nie beskikbaar nie. Gaan u verbinding na en probeer later weer.
+Offline=U werk tans aflyn. Kliek die ikoon digby die regter onderste hoek van enige venster as u aanlyn wil werk.
+DiskFull=Daar is nie genoeg skyfspasie om die lêer "%file%" te stoor nie.
+NameTooLong=Die lêernaam of subgidsnaam is te lank.
+AccessDenied=U het nie die nodige magtiging om na hierdie ligging te publiseer nie.
+UnknownPublishError=Daar was 'n onbekende publiseerprobleem.
+PublishFailed=Kon nie publiseer nie.
+PublishCompleted=Klaar gepubliseer.
+AllFilesPublished=Alle lêers gepubliseer
+# LOCALIZATION NOTE Don't translate %x% or %total%
+FailedFileMsg=Kon %x% van %total% lêers nie publiseer nie.
+# End-Publishing error strings
+Prompt=Por
+# LOCALIZATION NOTE (PromptFTPUsernamePassword): Don't translate %host%
+PromptFTPUsernamePassword=Tik gebruikernaam en wagwoord vir FTP-bediener by %host% in
+RevertCaption=Keer terug na mees onlangse afskrif
+Revert=Keer terug
+SendPageReason=voordat hierdie bladsy versend word
+Send=Stuur
+## LOCALIZATION NOTE (PublishProgressCaption, PublishToSite, AbandonChanges): Don't translate %title%
+PublishProgressCaption=Publiseer tans: %title%
+PublishToSite=Publiseer tans na werf: %title%
+AbandonChanges=Laat vaar ongestoorde wysigings aan "%title%" en herlaai bladsy?
+DocumentTitle=Bladsytitel
+NeedDocTitle=Tik 'n titel vir die huidige bladsy in.
+DocTitleHelp=Dit identifiseer die bladsy in die venstertitel en boekmerke.
+CancelPublishTitle=Kanselleer publisering?
+## LOCALIZATION NOTE: "Continue" in this sentence must match the text for
+## the CancelPublishContinue key below
+CancelPublishMessage=As u kanselleer terwyl publisering besig is, kan u lêer(s) dalk onvolledig oorgedra word. Wil u voortgaan of kanselleer?
+CancelPublishContinue=Gaan voort
+MissingImageError=Kies of tik die naam van 'n gif-, jpg- of png-prent in.
+EmptyHREFError=Kies waar u die nuwe skakel wil skep.
+LinkText=Skakelteks
+LinkImage=Skakelprent
+MixedSelection=[Gemengde seleksie]
+Mixed=(gemeng)
+# LOCALIZATION NOTE (NotInstalled): %S is the name of the font
+EnterLinkText=Tik teks wat vir hierdie skakel vertoon moet word, in:
+EnterLinkTextAccessKey=T
+EmptyLinkTextError=Tik teks in vir hierdie skakel.
+EditTextWarning=Dit sal die bestaande inhoud vervang.
+#LOCALIZATION NOTE (ValidateNumber):Don't translate: %n% %min% %max%
+ValidateRangeMsg=Die getal wat u ingevoer het (%n%) is buite die toegelate getalreeks.
+ValidateNumberMsg=Tik 'n getal in tussen %min% en %max%.
+MissingAnchorNameError=Tik 'n naam vir hierdie anker in.
+#LOCALIZATION NOTE (DuplicateAnchorNameError): Don't translate %name%
+DuplicateAnchorNameError="%name%" bestaan reeds op hierdie bladsy. Kies asseblief 'n ander naam.
+BulletStyle=Koeëltjiestyl
+SolidCircle=Soliede kolletjie
+OpenCircle=Oop kolletjie
+SolidSquare=Soliede vierkantjie
+NumberStyle=Nommerstyl
+Automatic=Outomaties
+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=persent
+PercentOfCell=% van sel
+PercentOfWindow=% van venster
+PercentOfTable=% van tabel
+#LOCALIZATION NOTE (untitledTitle): %S is the window #. No plural handling needed.
+untitledDefaultFilename=titelloos
+ShowToolbar=Vertoon nutsbalk
+HideToolbar=Verskuil nutsbalk
+ImapError=Kon nie prent laai nie\u0020
+ImapCheck=\nKies asseblief 'n nuwe ligging (URL) en probeer weer.
+SaveToUseRelativeUrl=Relatiewe URL'e kan net gebruik word op bladsye wat gestoor is
+NoNamedAnchorsOrHeadings=(Geen genoemde ankers of koppe in hierdie bladsy nie)
+TextColor=Tekskleur
+HighlightColor=Verligtingskleur
+PageColor=Bladsyagtergrondkleur
+BlockColor=Blokagtergrondkleur
+TableColor=Tabelagtergrondkleur
+CellColor=Selagtergrondkleur
+TableOrCellColor=Tabel- of selkleur
+LinkColor=Skakeltekskleur
+ActiveLinkColor=Kleur van aktiewe skakels
+VisitedLinkColor=Kleur van besoekte skakels
+NoColorError=Kliek op 'n kleur of tik 'n geldige HTML-kleurstring in
+Table=Tabel
+TableCell=Tabelsel
+NestedTable=Geneste tabel
+HLine=Horisontale streep
+Link=Skakel
+Image=Prent
+ImageAndLink=Prent en skakel
+NamedAnchor=Genoemde anker
+List=Lys
+ListItem=Lysitem
+Form=Vorm
+InputTag=Vormveld
+InputImage=Vormprent
+TextArea=Teksarea
+Select=Seleksielys
+Button=Knoppie
+Label=Etiket
+FieldSet=Veldstel
+Tag=Merker
+MissingSiteNameError=Tik 'n naam vir hierdie publiseerwerf in.
+MissingPublishUrlError=Tik 'n ligging in waar hierdie bladsy gepubliseer moet word.
+MissingPublishFilename=Tik 'n lêernaam vir die huidige bladsy in.
+#LOCALIZATION NOTE (DuplicateSiteNameError): Don't translate %name%
+DuplicateSiteNameError="%name%" bestaan reeds. Tik 'n ander werfnaam in.
+AdvancedProperties=Gevorderde eienskappe…
+AdvancedEditForCellMsg=Gevorderde redigering is nie beskikbaar vir meervoudige selle nie
+# LOCALIZATION NOTE (ObjectProperties):Don't translate "%obj%" it will be replaced with one of above object nouns
+ObjectProperties=%obj%-eienskappe…
+# LOCALIZATION NOTE This character must be in the above string and not confict with other accesskeys in Format menu
+ObjectPropertiesAccessKey=i
+# LOCALIZATION NOTE (JoinSelectedCells): This variable should contain the "tableJoinCells.accesskey"
+# letter as defined in editorOverlay.dtd
+JoinSelectedCells=Smelt gemerkte selle saam
+# LOCALIZATION NOTE (JoinCellToRight): This variable should contain the "tableJoinCells.accesskey"
+# letter as defined in editorOverlay.dtd
+JoinCellToRight=Smelt sel met sel regs saam
+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=Skrap
+DeleteCells=Skrap selle
+DeleteTableTitle=Skrap rye of kolomme
+DeleteTableMsg=As u die getal rye of kolomme verminder, sal die tabelselle en hul inhoud verlore gaan. Wil u dit regtig doen?
+Clear=Maak skoon
+#Mouse actions
+Click=Kliek
+Drag=Sleep
+Unknown=Onbekend
+#
+# LOCALIZATION NOTE "RemoveTextStylesAccesskey" is used for both
+# menu items: "RemoveTextStyles" and "StopTextStyles"
+RemoveTextStylesAccesskey=k
+RemoveTextStyles=Verwyder alle teksstyl
+StopTextStyles=Staak gebruik van teksstyl
+#
+# LOCALIZATION NOTE "RemoveLinksAccesskey" is used for both
+# menu items: "RemoveLinks" and "StopLinks"
+RemoveLinksAccesskey=l
+RemoveLinks=Verwyder skakels
+StopLinks=Staak gebruik van skakel
+#
+NoFormAction=Ons beveel aan dat u 'n aksie vir hierdie vorm invul. Vorms wat hulself pos is 'n gevorderde tegniek wat nie konsekwent in alle blaaiers mag werk nie.
+NoAltText=Indien die prent met die inhoud van die dokument verband hou, moet u Alt-teks voorsien wat in skoonteksblaaiers vertoon sal word en wat in ander blaaiers sal verskyn terwyl die prent laai of waarin die laai van prente gedeaktiveer is.
+#
+Malformed=Die bron kon nie weer na die dokument omskep word nie omdat dit nie geldige XHTML is nie.
+NoLinksToCheck=Daar is geen elemente met skakels vir nagaan nie
+
+OpenTextFile=Open Text File
+SaveTextAs=Save Text As
+# LOCALIZATION NOTE (NotInstalled): %S is the name of the font
+NotInstalled=%S (not installed)
+#LOCALIZATION NOTE (untitledTitle): %S is the window #. No plural handling needed.
+untitledTitle=untitled-%S
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/editorOverlay.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/editorOverlay.dtd
new file mode 100644
index 0000000000..b5014074fd
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/editorOverlay.dtd
@@ -0,0 +1,339 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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. -->
+<!-- File menu items -->
+<!-- Edit menu items -->
+
+<!ENTITY pasteNoFormatting.key "V">
+
+
+<!ENTITY pasteAsQuotationCmd.label "Plak as aanhaling">
+<!ENTITY pasteAsQuotationCmd.accesskey "a">
+
+
+<!-- Insert menu items -->
+
+<!ENTITY insertMenu.label "Invoeg">
+<!ENTITY insertMenu.accesskey "I">
+<!ENTITY insertLinkCmd2.label "Skakel…">
+<!ENTITY insertLinkCmd2.accesskey "S">
+
+<!ENTITY insertAnchorCmd.label "Benoemde anker…">
+<!ENTITY insertAnchorCmd.accesskey "a">
+<!ENTITY insertImageCmd.label "Prent…">
+<!ENTITY insertImageCmd.accesskey "P">
+<!ENTITY insertHLineCmd.label "Horisontale streep">
+<!ENTITY insertHLineCmd.accesskey "o">
+<!ENTITY insertTableCmd.label "Tabel…">
+<!ENTITY insertTableCmd.accesskey "T">
+<!ENTITY insertHTMLCmd.label "HTML…">
+<!ENTITY insertHTMLCmd.accesskey "H">
+
+
+<!ENTITY insertCharsCmd.label "Karakters en simbole…">
+<!ENTITY insertCharsCmd.accesskey "K">
+<!ENTITY insertBreakAllCmd.label "Breuk onder prent(e)">
+<!ENTITY insertBreakAllCmd.accesskey "k">
+<!-- Used just in context popup. -->
+
+<!ENTITY createLinkCmd.label "Skep skakel…">
+<!ENTITY createLinkCmd.accesskey "s">
+<!ENTITY editLinkCmd.label "Redigeer skakel in nuwe Composer">
+<!ENTITY editLinkCmd.accesskey "e">
+<!-- Font Face SubMenu -->
+
+<!ENTITY FontFaceSelect.tooltip "Kies lettertipe">
+<!ENTITY fontfaceMenu.label "Font">
+<!ENTITY fontfaceMenu.accesskey "F">
+<!ENTITY fontVarWidth.label "Wisselende wydte">
+<!ENTITY fontVarWidth.accesskey "W">
+<!ENTITY fontFixedWidth.label "Vaste wydte">
+<!ENTITY fontFixedWidth.accesskey "w">
+<!ENTITY fontFixedWidth.key "T">
+<!ENTITY fontHelvetica.label "Helvetica, Arial">
+<!ENTITY fontHelvetica.accesskey "H">
+<!ENTITY fontTimes.label "Times">
+<!ENTITY fontTimes.accesskey "T">
+<!ENTITY fontCourier.label "Courier">
+<!ENTITY fontCourier.accesskey "C">
+<!-- Font Size SubMenu -->
+
+<!ENTITY FontSizeSelect.tooltip "Kies lettertipegrootte">
+<!ENTITY decreaseFontSize.label "Kleiner">
+<!ENTITY decreaseFontSize.accesskey "K">
+<!ENTITY decrementFontSize.key "&lt;">
+<!-- < is above this key on many keyboards -->
+<!ENTITY increaseFontSize.label "Groter">
+<!ENTITY increaseFontSize.accesskey "G">
+<!ENTITY incrementFontSize.key "&gt;">
+<!-- > is above this key on many keyboards -->
+<!ENTITY incrementFontSize.key2 ".">
+
+<!-- > is above this key on many keyboards -->
+
+<!ENTITY fontSizeMenu.label "Grootte">
+<!ENTITY fontSizeMenu.accesskey "G">
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- Font Style SubMenu -->
+
+<!ENTITY fontStyleMenu.label "Teksstyl">
+<!ENTITY fontStyleMenu.accesskey "s">
+<!ENTITY styleBoldCmd.label "Vet">
+<!ENTITY styleBoldCmd.accesskey "V">
+<!ENTITY styleBoldCmd.key "B">
+<!ENTITY styleItalicCmd.label "Skuins">
+<!ENTITY styleItalicCmd.accesskey "S">
+<!ENTITY styleItalicCmd.key "I">
+<!ENTITY styleUnderlineCmd.label "Onderstreep">
+<!ENTITY styleUnderlineCmd.accesskey "O">
+<!ENTITY styleUnderlineCmd.key "U">
+<!ENTITY styleStrikeThruCmd.label "Deurhaal">
+<!ENTITY styleStrikeThruCmd.accesskey "D">
+<!ENTITY styleSuperscriptCmd.label "Boskrif">
+<!ENTITY styleSuperscriptCmd.accesskey "B">
+<!ENTITY styleSubscriptCmd.label "Onderskrif">
+<!ENTITY styleSubscriptCmd.accesskey "O">
+<!ENTITY styleNonbreakingCmd.label "Niebrekend">
+<!ENTITY styleNonbreakingCmd.accesskey "N">
+<!ENTITY styleEm.label "Benadruk">
+<!ENTITY styleEm.accesskey "B">
+<!ENTITY styleStrong.label "Sterker benadruk">
+<!ENTITY styleStrong.accesskey "t">
+<!ENTITY styleCite.label "Aanhaling">
+<!ENTITY styleCite.accesskey "A">
+<!ENTITY styleAbbr.label "Afkorting">
+<!ENTITY styleAbbr.accesskey "A">
+<!ENTITY styleAcronym.label "Akroniem">
+<!ENTITY styleAcronym.accesskey "o">
+<!ENTITY styleCode.label "Kode">
+<!ENTITY styleCode.accesskey "o">
+<!ENTITY styleSamp.label "Voorbeeld-afvoer">
+<!ENTITY styleSamp.accesskey "o">
+<!ENTITY styleVar.label "Veranderlike">
+<!ENTITY styleVar.accesskey "V">
+
+<!ENTITY formatFontColor.label "Tekskleur…">
+<!ENTITY formatFontColor.accesskey "k">
+<!ENTITY tableOrCellColor.label "Tabel- of selagtergrondkleur…">
+<!ENTITY tableOrCellColor.accesskey "a">
+
+<!ENTITY formatRemoveStyles.key "Y">
+
+<!ENTITY formatRemoveNamedAnchors.label "Verwyder genoemde ankers">
+<!ENTITY formatRemoveNamedAnchors.accesskey "V">
+<!ENTITY formatRemoveNamedAnchors2.key "R">
+
+<!ENTITY paragraphMenu.label "Paragraaf">
+<!ENTITY paragraphMenu.accesskey "P">
+<!ENTITY paragraphParagraphCmd.label "Paragraaf">
+<!ENTITY paragraphParagraphCmd.accesskey "P">
+<!ENTITY heading1Cmd.label "Kop 1">
+<!ENTITY heading1Cmd.accesskey "1">
+<!ENTITY heading2Cmd.label "Kop 2">
+<!ENTITY heading2Cmd.accesskey "2">
+<!ENTITY heading3Cmd.label "Kop 3">
+<!ENTITY heading3Cmd.accesskey "3">
+<!ENTITY heading4Cmd.label "Kop 4">
+<!ENTITY heading4Cmd.accesskey "4">
+<!ENTITY heading5Cmd.label "Kop 5">
+<!ENTITY heading5Cmd.accesskey "5">
+<!ENTITY heading6Cmd.label "Kop 6">
+<!ENTITY heading6Cmd.accesskey "6">
+<!ENTITY paragraphAddressCmd.label "Adres">
+<!ENTITY paragraphAddressCmd.accesskey "A">
+<!ENTITY paragraphPreformatCmd.label "Preformaat">
+<!ENTITY paragraphPreformatCmd.accesskey "P">
+<!-- List menu items -->
+
+<!ENTITY formatlistMenu.label "Lys">
+<!ENTITY formatlistMenu.accesskey "L">
+<!ENTITY noneCmd.label "Geen">
+<!ENTITY noneCmd.accesskey "G">
+<!ENTITY listBulletCmd.label "Koeëltjies">
+<!ENTITY listBulletCmd.accesskey "K">
+<!ENTITY listNumberedCmd.label "Getalle">
+<!ENTITY listNumberedCmd.accesskey "G">
+<!ENTITY listTermCmd.label "Term">
+<!ENTITY listTermCmd.accesskey "T">
+<!ENTITY listDefinitionCmd.label "Definisie">
+<!ENTITY listDefinitionCmd.accesskey "D">
+<!ENTITY listPropsCmd.label "Lys-eienskappe…">
+<!ENTITY listPropsCmd.accesskey "L">
+
+<!ENTITY ParagraphSelect.tooltip "Kies paragraafformaat">
+<!-- Shared in Paragraph, and Toolbar menulist -->
+<!ENTITY bodyTextCmd.label "Lyfteks">
+<!ENTITY bodyTextCmd.accesskey "t">
+<!-- Align menu items -->
+
+<!ENTITY alignMenu.label "Belyn">
+<!ENTITY alignMenu.accesskey "B">
+<!ENTITY alignLeft.label "Links">
+<!ENTITY alignLeft.accesskey "L">
+<!ENTITY alignLeft.tooltip "Rig linkshaaks">
+<!ENTITY alignCenter.label "Middel">
+<!ENTITY alignCenter.accesskey "M">
+<!ENTITY alignCenter.tooltip "Rig middelhaaks">
+<!ENTITY alignRight.label "Regs">
+<!ENTITY alignRight.accesskey "R">
+<!ENTITY alignRight.tooltip "Rig regshaaks">
+<!ENTITY alignJustify.label "Alkanthaaks">
+<!ENTITY alignJustify.accesskey "A">
+<!ENTITY alignJustify.tooltip "Rig alkanthaaks">
+<!-- Layer toolbar items -->
+
+<!ENTITY increaseIndent.label "Meer inkeep">
+<!ENTITY increaseIndent.accesskey "M">
+<!ENTITY increaseIndent.key "]">
+<!ENTITY decreaseIndent.label "Minder inkeep">
+<!ENTITY decreaseIndent.accesskey "M">
+<!ENTITY decreaseIndent.key "[">
+
+<!ENTITY colorsAndBackground.label "Bladsykleure en -agtergrond…">
+<!ENTITY colorsAndBackground.accesskey "a">
+<!-- Table Menu -->
+
+<!ENTITY tableMenu.label "Tabel">
+<!ENTITY tableMenu.accesskey "T">
+<!-- Select Submenu -->
+
+<!ENTITY tableSelectMenu.label "Kies">
+<!ENTITY tableSelectMenu.accesskey "K">
+
+<!ENTITY tableSelectMenu2.label "Tabelkies">
+<!ENTITY tableSelectMenu2.accesskey "k">
+<!ENTITY tableInsertMenu2.label "Tabelinvoeg">
+<!ENTITY tableInsertMenu2.accesskey "i">
+<!ENTITY tableDeleteMenu2.label "Tabelskrap">
+<!ENTITY tableDeleteMenu2.accesskey "s">
+<!-- Insert SubMenu -->
+
+<!ENTITY tableInsertMenu.label "Invoeg">
+<!ENTITY tableInsertMenu.accesskey "I">
+<!ENTITY tableTable.label "Tabel">
+<!ENTITY tableTable.accesskey "T">
+<!ENTITY tableRow.label "Ry">
+<!ENTITY tableRows.label "Ry(e)">
+<!ENTITY tableRow.accesskey "R">
+<!ENTITY tableRowAbove.label "Ry bokant">
+<!ENTITY tableRowAbove.accesskey "R">
+<!ENTITY tableRowBelow.label "Ry onderkant">
+<!ENTITY tableRowBelow.accesskey "o">
+<!ENTITY tableColumn.label "Kolom">
+<!ENTITY tableColumns.label "Kolom(me)">
+<!ENTITY tableColumn.accesskey "K">
+<!ENTITY tableColumnBefore.label "Kolom voor">
+<!ENTITY tableColumnBefore.accesskey "K">
+<!ENTITY tableColumnAfter.label "Kolom na">
+<!ENTITY tableColumnAfter.accesskey "a">
+<!ENTITY tableCell.label "Sel">
+<!ENTITY tableCells.label "Sel(le)">
+<!ENTITY tableCell.accesskey "S">
+<!ENTITY tableCellContents.label "Selinhoud">
+<!ENTITY tableCellContents.accesskey "i">
+<!ENTITY tableAllCells.label "Alle selle">
+<!ENTITY tableAllCells.accesskey "A">
+<!ENTITY tableCellBefore.label "Sel voor">
+<!ENTITY tableCellBefore.accesskey "S">
+<!ENTITY tableCellAfter.label "Sel ná">
+<!ENTITY tableCellAfter.accesskey "n">
+<!-- Delete SubMenu -->
+
+<!-- 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 "Verdeel sel">
+<!ENTITY tableSplitCell.accesskey "s">
+<!ENTITY convertToTable.label "Skep tabel uit gemerkte deel">
+<!ENTITY convertToTable.accesskey "S">
+<!ENTITY tableProperties.label "Tabeleienskappe…">
+<!ENTITY tableProperties.accesskey "e">
+<!-- Toolbar-only items -->
+
+
+
+<!ENTITY imageToolbarCmd.label "Prent">
+<!ENTITY imageToolbarCmd.tooltip "Voeg nuwe prent in of redigeer gemerkte prent se eienskappe">
+<!ENTITY hruleToolbarCmd.label "H.streep">
+<!ENTITY hruleToolbarCmd.tooltip "Voeg horisontale streep in of redigeer gemerkte streep se eienskappe">
+<!ENTITY tableToolbarCmd.label "Tabel">
+<!ENTITY tableToolbarCmd.tooltip "Voeg nuwe tabel in of redigeer gemerkte tabel se eienskappe">
+<!ENTITY linkToolbarCmd.label "Skakel">
+<!ENTITY linkToolbarCmd.tooltip "Voeg nuwe skakel in of redigeer gemerkte skakel se eienskappe">
+<!ENTITY anchorToolbarCmd.label "Anker">
+<!ENTITY anchorToolbarCmd.tooltip "Voeg nuwe genoemde anker in of redigeer gemerkte anker se eienskappe">
+<!ENTITY TextColorButton.tooltip "Kies kleur vir teks">
+<!ENTITY BackgroundColorButton.tooltip "Kies kleur vir agtergrond">
+
+<!-- Editor toolbar -->
+<!ENTITY decreaseFontSizeToolbarCmd.tooltip "Kleiner lettertipe">
+<!ENTITY increaseFontSizeToolbarCmd.tooltip "Groter lettertipe">
+<!ENTITY boldToolbarCmd.tooltip "Vet">
+<!ENTITY italicToolbarCmd.tooltip "Skuins">
+<!ENTITY underlineToolbarCmd.tooltip "Onderstreep">
+<!ENTITY bulletListToolbarCmd.tooltip "Verwyder of voeg kollys by">
+<!ENTITY numberListToolbarCmd.tooltip "Verwyder of voeg nommerlys by">
+<!ENTITY outdentToolbarCmd.tooltip "Keep teks uit (skuif links)">
+<!ENTITY indentToolbarCmd.tooltip "Keep teks in (skuif regs)">
+<!ENTITY AlignPopupButton.tooltip "Kies teksgerigtheid">
+<!ENTITY InsertPopupButton.tooltip "Voeg 'n skakel, anker, prent, horisontale streep of tabel in">
+<!ENTITY alignLeftButton.tooltip "Rig teks langs linkerkantlyn langs">
+<!ENTITY alignCenterButton.tooltip "Rig teks middelhaaks">
+<!ENTITY alignRightButton.tooltip "Rig teks langs regterkantlyn langs">
+<!ENTITY alignJustifyButton.tooltip "Rig teks langs linker- en regterkantlyn langs">
+<!-- Structure Toolbar Context Menu items -->
+
+<!-- TOC manipulation -->
+
+<!ENTITY insertTOC.label "Invoeg">
+<!ENTITY insertTOC.accesskey "I">
+<!ENTITY updateTOC.label "Werk by">
+<!ENTITY updateTOC.accesskey "W">
+<!ENTITY removeTOC.label "Verwyder">
+<!ENTITY removeTOC.accesskey "V">
+<!ENTITY tocMenu.label "Inhoudsopgawe…">
+<!ENTITY tocMenu.accesskey "I">
+
+<!-- Edit menu items -->
+<!ENTITY pasteNoFormatting.label "Paste Without Formatting">
+<!ENTITY pasteNoFormatting.accesskey "n">
+<!ENTITY insertLinkCmd2.key "K">
+<!ENTITY insertMathCmd.label "Math…">
+<!ENTITY insertMathCmd.accesskey "M">
+<!ENTITY decrementFontSize.key2 ",">
+<!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">
+<!ENTITY formatRemoveLinks.key "K">
+<!-- Delete SubMenu -->
+<!ENTITY tableDeleteMenu.label "Delete">
+<!ENTITY tableDeleteMenu.accesskey "D">
+<!-- Editor toolbar -->
+<!ENTITY absoluteFontSizeToolbarCmd.tooltip "Set font size">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/mailComposeEditorOverlay.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/mailComposeEditorOverlay.dtd
new file mode 100644
index 0000000000..44c7198be7
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Hang hierdie prent by die boodskap aan">
+<!ENTITY attachImageSource.accesskey "h">
+
+<!ENTITY attachLinkSource.label "Hang die bron van hierdie skakel by die boodskap aan">
+<!ENTITY attachLinkSource.accesskey "b">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/messengercompose.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/messengercompose.dtd
new file mode 100644
index 0000000000..4c1adc468e
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/messengercompose.dtd
@@ -0,0 +1,343 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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 "Skryf: (onderwerploos)">
+<!-- File Menu -->
+
+<!ENTITY fileMenu.label "Lêer">
+<!ENTITY fileMenu.accesskey "L">
+<!ENTITY newMenu.label "Nuwe">
+<!ENTITY newMenu.accesskey "N">
+<!ENTITY newMessage.label "Boodskap">
+<!ENTITY newMessageCmd2.key "N">
+<!ENTITY newContact.label "Adresboek-kennis…">
+<!ENTITY newContact.accesskey "k">
+
+
+
+<!ENTITY attachPageCmd.label "Webbladsy…">
+<!ENTITY attachPageCmd.accesskey "W">
+
+
+<!ENTITY closeCmd.label "Sluit">
+<!ENTITY closeCmd.key "W">
+<!ENTITY closeCmd.accesskey "S">
+<!ENTITY saveCmd.label "Stoor">
+<!ENTITY saveCmd.key "S">
+<!ENTITY saveCmd.accesskey "S">
+<!ENTITY saveAsCmd.label "Stoor as">
+<!ENTITY saveAsCmd.accesskey "a">
+<!ENTITY saveAsFileCmd.label "Lêer…">
+<!ENTITY saveAsFileCmd.accesskey "L">
+<!ENTITY saveAsDraftCmd.label "Onvoltooid">
+<!ENTITY saveAsDraftCmd.accesskey "O">
+<!ENTITY saveAsTemplateCmd.label "Sjabloon">
+<!ENTITY saveAsTemplateCmd.accesskey "S">
+<!ENTITY sendNowCmd.label "Versend nou">
+<!ENTITY sendCmd.keycode "VK_RETURN">
+<!ENTITY sendNowCmd.accesskey "s">
+<!ENTITY sendLaterCmd.label "Versend later">
+<!ENTITY sendLaterCmd.keycode "VK_RETURN">
+<!ENTITY sendLaterCmd.accesskey "l">
+<!ENTITY printCmd.label "Druk…">
+<!ENTITY printCmd.key "P">
+<!ENTITY printCmd.accesskey "D">
+<!-- Edit Menu -->
+
+<!ENTITY editMenu.label "Redigeer">
+<!ENTITY editMenu.accesskey "e">
+<!ENTITY undoCmd.label "Ontdoen">
+<!ENTITY undoCmd.key "Z">
+<!ENTITY undoCmd.accesskey "O">
+<!ENTITY redoCmd.label "Herdoen">
+<!ENTITY redoCmd.key "Y">
+<!ENTITY redoCmd.accesskey "H">
+<!ENTITY cutCmd.key "X">
+<!ENTITY copyCmd.key "C">
+<!ENTITY pasteCmd.key "V">
+<!ENTITY pasteNoFormattingCmd.key "V">
+<!ENTITY pasteAsQuotationCmd.key "o">
+<!ENTITY editRewrapCmd.accesskey "o">
+<!ENTITY deleteCmd.label "Skrap">
+<!ENTITY deleteCmd.accesskey "S">
+<!ENTITY editRewrapCmd.label "Heromvou">
+<!ENTITY editRewrapCmd.key "R">
+
+
+<!ENTITY selectAllCmd.accesskey "a">
+
+
+
+
+
+
+<!ENTITY findAgainCmd.label "Vind weer">
+<!ENTITY findAgainCmd.accesskey "e">
+<!ENTITY findAgainCmd.key "G">
+<!ENTITY findAgainCmd.key2 "VK_F3">
+<!ENTITY findPrevCmd.label "Vind vorige">
+<!ENTITY findPrevCmd.accesskey "n">
+<!ENTITY findPrevCmd.key "G">
+<!ENTITY findPrevCmd.key2 "VK_F3">
+<!-- View Menu -->
+
+<!ENTITY viewMenu.label "Bekyk">
+<!ENTITY viewMenu.accesskey "B">
+<!ENTITY viewToolbarsMenuNew.label "Nutsbalke">
+<!ENTITY viewToolbarsMenuNew.accesskey "N">
+
+
+<!ENTITY showCompositionToolbarCmd.label "Skryf-nutsbalk">
+<!ENTITY showCompositionToolbarCmd.accesskey "S">
+<!ENTITY showFormattingBarCmd.label "Formateringbalk">
+<!ENTITY showFormattingBarCmd.accesskey "F">
+<!ENTITY showTaskbarCmd.label "Statusbalk">
+<!ENTITY showTaskbarCmd.accesskey "S">
+<!ENTITY customizeToolbar.label "Doelmaak…">
+<!ENTITY customizeToolbar.accesskey "D">
+
+<!ENTITY addressSidebar.label "Kennisse-kantbalk">
+<!ENTITY addressSidebar.accesskey "e">
+<!-- Format Menu -->
+
+<!ENTITY formatMenu.label "Formaat">
+<!ENTITY formatMenu.accesskey "o">
+<!-- Options Menu -->
+
+<!ENTITY optionsMenu.label "Opsies">
+<!ENTITY optionsMenu.accesskey "p">
+<!ENTITY checkSpellingCmd2.label "Toets spelling…">
+<!ENTITY checkSpellingCmd2.key "p">
+<!ENTITY checkSpellingCmd2.key2 "VK_F7">
+<!ENTITY checkSpellingCmd2.accesskey "T">
+<!ENTITY enableInlineSpellChecker.label "Gaan spelling na terwyl u tik">
+<!ENTITY enableInlineSpellChecker.accesskey "G">
+<!ENTITY quoteCmd.label "Haal boodskap aan">
+<!ENTITY quoteCmd.accesskey "H">
+<!--LOCALIZATION NOTE attachVCard.label Don't translate the term 'vCard' -->
+
+<!ENTITY attachVCard.label "Heg persoonlike kaart (vCard) aan">
+<!ENTITY attachVCard.accesskey "v">
+
+<!ENTITY returnReceiptMenu.label "Ontvangsnota">
+<!ENTITY returnReceiptMenu.accesskey "v">
+<!ENTITY dsnMenu.label "Afleweringstatus-kennisgewing">
+<!ENTITY dsnMenu.accesskey "k">
+
+
+<!ENTITY priorityMenu.label "Prioriteit">
+<!ENTITY priorityMenu.accesskey "P">
+
+
+<!ENTITY priorityButton.label "Prioriteit:">
+<!ENTITY lowestPriorityCmd.label "Laagste">
+<!ENTITY lowestPriorityCmd.accesskey "L">
+<!ENTITY lowPriorityCmd.label "Laag">
+<!ENTITY lowPriorityCmd.accesskey "a">
+<!ENTITY normalPriorityCmd.label "Gewoon">
+<!ENTITY normalPriorityCmd.accesskey "G">
+<!ENTITY highPriorityCmd.label "Hoog">
+<!ENTITY highPriorityCmd.accesskey "o">
+<!ENTITY highestPriorityCmd.label "Hoogste">
+<!ENTITY highestPriorityCmd.accesskey "H">
+<!ENTITY fileCarbonCopyCmd.label "Stuur 'n afskrif aan">
+<!ENTITY fileCarbonCopyCmd.accesskey "r">
+<!ENTITY fileHereMenu.label "Liasseer hier">
+<!-- Tools Menu -->
+
+<!ENTITY tasksMenu.label "Nutsgoed">
+<!ENTITY tasksMenu.accesskey "u">
+
+
+<!ENTITY messengerCmd.commandkey "1">
+<!ENTITY addressBookCmd.label "Adresboek">
+<!ENTITY addressBookCmd.accesskey "A">
+<!ENTITY addressBookCmd.key "B">
+
+
+
+
+
+<!-- Mac OS X Window Menu -->
+<!ENTITY minimizeWindow.label "Minimeer">
+<!ENTITY bringAllToFront.label "Bring alles na vore">
+<!ENTITY zoomWindow.label "Zoem">
+<!ENTITY windowMenu.label "Venster">
+<!-- Mail Toolbar -->
+
+<!ENTITY sendButton.label "Stuur">
+<!ENTITY quoteButton.label "Aanhaal">
+<!ENTITY addressButton.label "Kennisse">
+<!ENTITY spellingButton.label "Spelling">
+<!ENTITY saveButton.label "Stoor">
+<!ENTITY printButton.label "Druk">
+<!-- Mail Toolbar Tooltips -->
+
+<!ENTITY sendButton.tooltip "Versend hierdie boodskap nou">
+<!ENTITY sendlaterButton.tooltip "Versend hierdie boodskap later">
+<!ENTITY quoteButton.tooltip "Haal die vorige boodskap aan">
+<!ENTITY addressButton.tooltip "Selekteer 'n ontvanger uit 'n adresboek">
+
+
+<!ENTITY saveButton.tooltip "Stoor hierdie boodskap">
+<!ENTITY cutButton.tooltip "Knip">
+<!ENTITY copyButton.tooltip "Kopieer">
+<!ENTITY pasteButton.tooltip "Plak">
+<!ENTITY printButton.tooltip "Druk hierdie boodskap">
+
+<!-- Headers -->
+<!-- Headers -->
+<!ENTITY fromAddr.accesskey "a">
+<!ENTITY subject.accesskey "O">
+<!-- LOCALIZATION NOTE attachments.accesskey This access key should correspond
+ to the strings in attachmentCount in composeMsgs.properties -->
+<!-- Format Toolbar, imported from editorAppShell.xul -->
+
+<!ENTITY SmileButton.tooltip "Voeg gesiggie in">
+<!ENTITY smiley1Cmd.label "Glimlag">
+<!ENTITY smiley2Cmd.label "Frons">
+<!ENTITY smiley3Cmd.label "Knipoog">
+<!ENTITY smiley4Cmd.label "Tong uitsteek">
+<!ENTITY smiley5Cmd.label "Laggend">
+<!ENTITY smiley6Cmd.label "Verleë">
+<!ENTITY smiley7Cmd.label "Besluiteloos">
+<!ENTITY smiley8Cmd.label "Verrassing">
+<!ENTITY smiley9Cmd.label "Soentjie">
+<!ENTITY smiley10Cmd.label "Gil">
+<!ENTITY smiley11Cmd.label "Koel">
+<!ENTITY smiley12Cmd.label "Geldbek">
+<!ENTITY smiley13Cmd.label "Voet-in-die-mond">
+<!ENTITY smiley14Cmd.label "Onskuldig">
+<!ENTITY smiley15Cmd.label "Huil">
+<!ENTITY smiley16Cmd.label "Mond-is-verseël">
+<!-- Message Pane Context Menu -->
+
+<!ENTITY spellCheckNoSuggestions.label "Geen voorstel gevind nie">
+<!ENTITY spellCheckIgnoreWord.label "Ignoreer woord">
+<!ENTITY spellCheckIgnoreWord.accesskey "I">
+<!ENTITY spellCheckAddToDictionary.label "Voeg by woordeboek">
+<!ENTITY spellCheckAddToDictionary.accesskey "e">
+<!ENTITY undo.label "Ontdoen">
+<!ENTITY undo.accesskey "O">
+<!ENTITY cut.label "Knip">
+<!ENTITY cut.accesskey "p">
+<!ENTITY copy.label "Kopieer">
+<!ENTITY copy.accesskey "K">
+<!ENTITY paste.label "Plak">
+<!ENTITY paste.accesskey "P">
+<!ENTITY pasteQuote.label "Plak as aanhaling">
+<!ENTITY pasteQuote.accesskey "a">
+
+<!ENTITY openAttachment.label "Open">
+<!ENTITY openAttachment.accesskey "O">
+<!ENTITY delete.label "Skrap">
+<!ENTITY delete.accesskey "S">
+<!ENTITY removeAttachment.label "Verwyder aanhegsel">
+<!ENTITY removeAttachment.accesskey "V">
+<!ENTITY renameAttachment.label "Hernoem…">
+<!ENTITY renameAttachment.accesskey "H">
+<!ENTITY selectAll.label "Merk alles">
+<!ENTITY selectAll.accesskey "a">
+
+
+
+
+
+
+
+
+<!ENTITY attachPage.label "Heg webbladsy aan…">
+<!ENTITY attachPage.accesskey "w">
+<!-- Spell checker context menu items -->
+
+<!-- Title for the address picker panel -->
+
+<!-- Attachment Pane Header Bar Context Menu -->
+
+<!ENTITY addressesSidebarTitle.label "Kennisse">
+<!-- Identity popup customize menuitem -->
+
+
+<!ENTITY newMessage.accesskey "M">
+<!ENTITY attachMenu.label "Attach">
+<!ENTITY attachMenu.accesskey "h">
+<!ENTITY attachCloudCmd.label "Filelink">
+<!ENTITY attachCloudCmd.accesskey "i">
+<!ENTITY remindLater.label "Remind Me Later">
+<!ENTITY remindLater.accesskey "L">
+<!ENTITY renameAttachmentCmd.label "Rename Attachment…">
+<!ENTITY renameAttachmentCmd.accesskey "e">
+<!ENTITY reorderAttachmentsCmd.label "Reorder Attachments…">
+<!ENTITY reorderAttachmentsCmd.accesskey "s">
+<!ENTITY reorderAttachmentsCmd.key "x">
+<!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">
+<!-- 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">
+<!ENTITY menubarCmd.label "Menu Bar">
+<!ENTITY menubarCmd.accesskey "M">
+<!ENTITY priorityButton.title "Priority">
+<!ENTITY priorityButton.tooltiptext "Change the message priority">
+<!ENTITY messengerCmd.label "Mail &amp; Newsgroups">
+<!ENTITY messengerCmd.accesskey "m">
+<!ENTITY accountManagerCmd2.label "Account Settings">
+<!ENTITY accountManagerCmd2.accesskey "S">
+<!ENTITY accountManagerCmdUnix2.accesskey "S">
+<!-- Mac OS X Window Menu -->
+<!ENTITY minimizeWindow.key "m">
+<!ENTITY spellingButton.tooltip "Check spelling of selection or entire message">
+<!--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 replyAddr2.label "Reply-To">
+<!ENTITY newsgroupsAddr2.label "Newsgroup">
+<!ENTITY followupAddr2.label "Followup-To">
+<!ENTITY subject2.label "Subject">
+<!ENTITY attachmentBucketCloseButton.tooltip "Hide the attachment pane">
+<!ENTITY reorderAttachments.label "Reorder Attachments…">
+<!ENTITY reorderAttachments.accesskey "s">
+<!ENTITY removeAllAttachments.label "Remove All Attachments">
+<!ENTITY removeAllAttachments.accesskey "v">
+<!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">
+<!-- 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">
+<!-- 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/af/chrome/af/locale/af/messenger/messengercompose/sendProgress.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/sendProgress.dtd
new file mode 100644
index 0000000000..78320a47fc
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/sendProgress.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 sendProgress.dtd Main UI for Send Message Progress Dialog -->
+<!ENTITY status.label "Status:">
+<!ENTITY progress.label "Vordering:">
+
+<!--LOCALIZATION NOTE sendProgress.dtd Main UI for Send Message Progress Dialog -->
+<!ENTITY sendDialog.title "Processing Message">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/sendProgress.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/sendProgress.properties
new file mode 100644
index 0000000000..eeb7b1ad45
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/messengercompose/sendProgress.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 (titleSendMsgSubject):
+# %S will be replaced by the message subject.
+# LOCALIZATION NOTE (titleSaveMsgSubject):
+# %S will be replaced by the message subject.
+
+# 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=Jou boodskap is gestuur.
+messageSaved=Jou boodskap is gestoor.
+
+# 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
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/migration/migration.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/migration/migration.dtd
new file mode 100644
index 0000000000..dc4fa36fc5
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/migration/migration.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/. -->
+
+
+<!ENTITY migrationWizard.title "Invoerslimmerd">
+
+<!ENTITY importFromWin.label "Voer opsies, rekeningopstelling, adresboek, filters en ander data van:">
+<!ENTITY importFromNonWin.label "Voer voorkeure, rekeningopstelling, adresboek, filters en ander data van:">
+
+
+<!ENTITY importFromNothing.label "Moenie enigiets invoer nie">
+<!ENTITY importFromNothing.accesskey "M">
+
+
+<!ENTITY importFromOutlook.label "Outlook">
+<!ENTITY importFromOutlook.accesskey "O">
+
+<!ENTITY importSource.title "Voer instellings en posvouers in">
+<!ENTITY importItems.title "Items om in te voer">
+<!ENTITY importItems.label "Kies watter items om in te voer:">
+
+<!ENTITY migrating.title "Voer tans in…">
+<!ENTITY migrating.label "Die volgende items word tans ingevoer…">
+
+<!ENTITY selectProfile.title "Kies profiel">
+<!ENTITY selectProfile.label "Die volgende profiele kan ingevoer word vanaf:">
+
+<!ENTITY done.title "Invoer afgehandel">
+<!ENTITY done.label "Die volgende items is suksesvol ingevoer:">
+
+<!ENTITY importSourceNotFound.label "No application to import data from found.">
+<!ENTITY importFromSeamonkey3.label "SeaMonkey 2 or later">
+<!ENTITY importFromSeamonkey3.accesskey "S">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/migration/migration.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/migration/migration.properties
new file mode 100644
index 0000000000..2fca5ac93b
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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
+
+2_seamonkey=Rekeningopstelling
+2_outlook=Rekeningopstelling
+
+
+
+
+
+
+128_seamonkey=Posvouers
+128_outlook=Posvouers
+
+# Import Sources
+1_seamonkey=Preferences
+1_thunderbird=Preferences
+2_thunderbird=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_thunderbird=Mail Folders
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/mime.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/mime.properties
new file mode 100644
index 0000000000..6b947b80fd
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/mime.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/.
+
+#
+# The following are used by libmime to emit header display in HTML
+#
+
+# Mail subject
+## @name MIME_MHTML_SUBJECT
+## @loc None
+1000=Onderwerp
+
+# Resent-Comments
+## @name MIME_MHTML_RESENT_COMMENTS
+## @loc
+1001=Herstuur-opmerking
+
+# Resent-Date
+## @name MIME_MHTML_RESENT_DATE
+## @loc
+1002=Herstuur-datum
+
+# Resent-Sender
+## @name MIME_MHTML_RESENT_SENDER
+## @loc
+1003=Herstuur-afsender
+
+# Resent-From
+## @name MIME_MHTML_RESENT_FROM
+## @loc
+1004=Herstuur-van
+
+# Resent-To
+## @name MIME_MHTML_RESENT_TO
+## @loc
+1005=Herstuur-aan
+
+# Resent-CC
+## @name MIME_MHTML_RESENT_CC
+## @loc
+1006=Herstuur-CC
+
+# Date
+## @name MIME_MHTML_DATE
+## @loc
+1007=Datum
+
+# Sender
+## @name MIME_MHTML_SENDER
+## @loc
+1008=Afsender
+
+# From
+## @name MIME_MHTML_FROM
+## @loc
+1009=Van
+
+# Reply-To
+## @name MIME_MHTML_REPLY_TO
+## @loc
+1010=Antwoord-aan
+
+# Organization
+## @name MIME_MHTML_ORGANIZATION
+## @loc
+1011=Organisasie
+
+# To
+## @name MIME_MHTML_TO
+## @loc
+1012=Aan
+
+# CC
+## @name MIME_MHTML_CC
+## @loc
+1013=CC
+
+# Newsgroups
+## @name MIME_MHTML_NEWSGROUPS
+## @loc
+1014=Nuusgroepe
+
+# Followup-To
+## @name MIME_MHTML_FOLLOWUP_TO
+## @loc
+1015=Opvolg-aan
+
+# References
+## @name MIME_MHTML_REFERENCES
+## @loc
+1016=Verwysings
+
+# Message ID
+## @name MIME_MHTML_MESSAGE_ID
+## @loc
+1021=Boodskap-ID
+
+# BCC
+## @name MIME_MHTML_BCC
+## @loc
+1023=BCC
+
+# Link to doc
+## @name MIME_MSG_LINK_TO_DOCUMENT
+## @loc
+1026=Skakel na dokument
+
+# Get Doc info
+## @name MIME_MSG_DOCUMENT_INFO
+## @loc
+1027=<B>Lêerinligting:</B>
+
+# Msg Attachment
+## @name MIME_MSG_ATTACHMENT
+## @loc
+1028=Aanhegsels
+
+# 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=Deel %s
+
+# default forwarded message prefix
+## @name MIME_FORWARDED_MESSAGE_HTML_USER_WROTE
+## @loc
+1041=-------- Oorspronklike boodskap --------
+
+# Partial Message Truncated
+## @name MIME_MSG_PARTIAL_TRUNCATED
+## @loc
+
+# Partial Message Truncated Explanation
+## @name MIME_MSG_PARTIAL_TRUNCATED_EXPLANATION
+## @loc
+
+# Partial Message Not Downloaded
+## @name MIME_MSG_PARTIAL_NOT_DOWNLOADED
+## @loc
+
+# Partial Message Not Downloaded Explanation
+## @name MIME_MSG_PARTIAL_NOT_DOWNLOADED_EXPLANATION
+## @loc
+
+# MIME_MSG_PARTIAL_CLICK_FOR_REST
+## @name MIME_MSG_PARTIAL_CLICK_FOR_REST
+## @loc
+
+
+# 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/af/chrome/af/locale/af/messenger/mimeheader.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/mimeheader.properties
new file mode 100644
index 0000000000..42ad2fafeb
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Aan
+BCC=BCC
+CC=CC
+DATE=Datum
+DISTRIBUTION=Verspreiding
+FCC=FCC
+FOLLOWUP-TO=Opvolg-aan
+FROM=Van
+STATUS=Status
+LINES=Reëls
+MESSAGE-ID=Boodskap-ID
+MIME-VERSION=MIME-weergawe
+NEWSGROUPS=Nuusgroepe
+ORGANIZATION=Organisasie
+REFERENCES=Verwysings
+REPLY-TO=Antwoord-aan
+RESENT-COMMENTS=Herstuur-opmerking
+RESENT-DATE=Herstuur-datum
+RESENT-FROM=Herstuur-van
+RESENT-MESSAGE-ID=Herstuur-boodskap-ID
+RESENT-SENDER=Herstuur-afsender
+RESENT-TO=Herstuur-aan
+RESENT-CC=Herstuur-CC
+SENDER=Afsender
+SUBJECT=Onderwerp
+APPROVED-BY=Goedgekeur-deur
+USER-AGENT=Gebruikeragent
+FILENAME=Lêernaam
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/morkImportMsgs.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/morkImportMsgs.properties
new file mode 100644
index 0000000000..ce65917ca4
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/messenger/msgAccountCentral.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/msgAccountCentral.dtd
new file mode 100644
index 0000000000..9cc9469078
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/msgAccountCentral.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/. -->
+
+<!ENTITY emailSectionHdr.label "E-pos">
+<!ENTITY readMsgsLink.label "Lees boodskappe">
+<!ENTITY composeMsgLink.label "Skryf 'n nuwe boodskap">
+
+<!ENTITY newsSectionHdr.label "Nuusgroepe">
+<!ENTITY subscribeNewsLink.label "Bestuur nuusgroepintekeninge">
+
+<!ENTITY feedsSectionHdr.label "Voere">
+<!ENTITY subscribeFeeds.label "Bestuur intekeninge">
+
+
+
+<!ENTITY accountsSectionHdr.label "Rekeninge">
+<!ENTITY subscribeImapFolders.label "Bestuur vouerintekeninge">
+<!ENTITY settingsLink.label "Bekyk opstelling vir hierdie rekening">
+
+
+<!ENTITY advFeaturesSectionHdr.label "Gevorderde kenmerke">
+<!ENTITY searchMsgsLink.label "Deursoek boodskappe">
+<!ENTITY filtersLink.label "Bestuur boodskapfilters">
+<!ENTITY junkSettings.label "Gemorspos-opstelling">
+<!ENTITY offlineLink.label "Aflynopstelling">
+
+<!ENTITY chat.label "Chat">
+<!ENTITY setupNewAcct.label "Set up an account:">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/msgHdrViewOverlay.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/msgHdrViewOverlay.dtd
new file mode 100644
index 0000000000..e8bcb610a5
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/msgHdrViewOverlay.dtd
@@ -0,0 +1,177 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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 "Aan">
+<!ENTITY fromField4.label "Van">
+<!ENTITY senderField4.label "Afsender">
+
+
+
+
+<!ENTITY ccField4.label "CC">
+<!ENTITY bccField4.label "BCC">
+
+
+
+<!ENTITY dateField4.label "Datum">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!ENTITY hdrTrashButton1.label "Skrap">
+
+
+<!ENTITY hdrViewToolbarShowFull.label "Wys ikone en teks">
+<!ENTITY hdrViewToolbarShowFull.accesskey "e">
+<!ENTITY hdrViewToolbarShowIcons.label "Wys net ikone">
+<!ENTITY hdrViewToolbarShowIcons.accesskey "i">
+<!ENTITY hdrViewToolbarShowText.label "Wys net teks">
+<!ENTITY hdrViewToolbarShowText.accesskey "t">
+<!ENTITY hdrViewToolbarAlwaysReplySender.label "Wys altyd antwoord aan afsender">
+<!ENTITY hdrViewToolbarAlwaysReplySender.accesskey "a">
+
+<!ENTITY otherActionsButton2.label "Meer">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- Attachment bar context menu items -->
+
+<!-- Attachment context menu items -->
+
+<!ENTITY openAttachmentCmd.label "Open">
+<!ENTITY openAttachmentCmd.accesskey "O">
+
+
+
+
+
+
+
+
+<!ENTITY saveAllAttachmentsCmd.label "Stoor alle…">
+<!ENTITY saveAllAttachmentsCmd.accesskey "S">
+<!ENTITY detachAllAttachmentsCmd.label "Afheg alle…">
+<!ENTITY detachAllAttachmentsCmd.accesskey "A">
+<!ENTITY deleteAllAttachmentsCmd.label "Skrap alle…">
+<!ENTITY deleteAllAttachmentsCmd.accesskey "S">
+
+<!-- Attachment toolbar items -->
+
+<!ENTITY saveAttachmentButton1.label "Stoor">
+
+
+
+
+<!ENTITY copyLinkCmd.label "Kopieer skakelligging">
+<!ENTITY copyLinkCmd.accesskey "K">
+
+
+
+
+
+
+
+<!ENTITY author.label "Author">
+<!ENTITY organizationField4.label "Organization">
+<!ENTITY replyToField4.label "Reply to">
+<!ENTITY subjectField4.label "Subject">
+<!ENTITY newsgroupsField4.label "Newsgroups">
+<!ENTITY followupToField4.label "Followup to">
+<!ENTITY tagsHdr4.label "Tags">
+<!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.tooltip "Delete this message">
+<!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">
+<!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 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">
+<!ENTITY saveAttachmentButton1.tooltip "Save the attached file">
+<!ENTITY saveAllAttachmentsButton1.label "Save All">
+<!ENTITY saveAllAttachmentsButton1.tooltip "Save all the attached files">
+<!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/af/chrome/af/locale/af/messenger/msgSynchronize.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/msgSynchronize.dtd
new file mode 100644
index 0000000000..18ab9fda3e
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/msgSynchronize.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 MsgSynchronize.xul and msgSelectOffline.xul-->
+
+
+<!-- extracted from MsgSynchronize.xul and msgSelectOfflineFolders.xul-->
+
+<!-- extracted from MsgSynchronize.xhtml and msgSelectOfflineFolders.xhtml-->
+
+<!ENTITY MsgSynchronize.label "Laai af en sinchroniseer boodskappe">
+<!ENTITY MsgSelect.label "Items vir aflyngebruik">
+
+<!ENTITY MsgSyncDirections.label "Laai af en sinchroniseer die volgende:">
+<!ENTITY syncTypeMail.label "Posboodskappe">
+<!ENTITY syncTypeMail.accesskey "P">
+<!ENTITY syncTypeNews.label "Nuusgroepboodskappe">
+<!ENTITY syncTypeNews.accesskey "N">
+<!ENTITY sendMessage.label "Stuur ongestuurde boodskappe">
+<!ENTITY sendMessage.accesskey "S">
+<!ENTITY workOffline.label "Werk aflyn sodra aflaai en/of sinchronisering afgehandel is">
+<!ENTITY workOffline.accesskey "W">
+<!ENTITY selectButton.label "Kies…">
+<!ENTITY selectButton.accesskey "K">
+<!ENTITY MsgSelectDesc.label "Kies posvouers en nuusgroepe vir aflyngebruik.">
+<!ENTITY MsgSelectInd.label "Aflaai">
+<!ENTITY MsgSelectItems.label "Vouers en nuusgroepe">
+
+<!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.">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/msgViewPickerOverlay.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/msgViewPickerOverlay.dtd
new file mode 100644
index 0000000000..7e0a997db2
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/msgViewPickerOverlay.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/. -->
+
+<!--LOCALIZATION NOTE msgViewPickerOverlay.dtd UI for showing various views on a folder -->
+
+
+<!ENTITY viewPicker.label "Bekyk:">
+<!ENTITY viewPicker.accesskey "e">
+<!ENTITY viewAll.label "Almal">
+<!ENTITY viewAll.accesskey "A">
+<!ENTITY viewUnread.label "Ongelees">
+<!ENTITY viewUnread.accesskey "O">
+<!ENTITY viewNotDeleted.label "Nie geskrap">
+<!ENTITY viewNotDeleted.accesskey "g">
+<!ENTITY viewTags.label "Merkers">
+<!ENTITY viewTags.accesskey "M">
+<!ENTITY viewCustomViews.label "Doelmaak aansigte">
+<!ENTITY viewCustomViews.accesskey "a">
+<!ENTITY viewVirtualFolder.label "Stoor aansig as 'n vouer…">
+<!ENTITY viewVirtualFolder.accesskey "S">
+<!ENTITY viewCustomizeView.label "Doelmaak…">
+<!ENTITY viewCustomizeView.accesskey "D">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/msgmdn.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/msgmdn.properties
new file mode 100644
index 0000000000..fc889855e1
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Let wel: Hierdie ontvangstrokie erken net dat die boodskap op die ontvanger se rekenaar vertoon is. Daar is geen waarborg dat die ontvanger die boodskap gelees of die inhoud daarvan verstaan het nie.
+MsgMdnDispatched=Die boodskap is óf gedruk, gefaks of aangestuur sonder dat dit aan die ontvanger gewys is. Daar is geen waarborg dat die ontvanger die boodskap op 'n later stadium sal lees nie.
+MsgMdnProcessed=Die boodskap is deur die ontvanger se e-posprogram verwerk sonder dat dit gewys is. Daar is geen waarborg dat die boodskap op 'n later stadium gelees sal word nie.
+MsgMdnDeleted=Die boodskap is geskrap. Dis onmoontlik om te bepaal of die persoon aan wie u dit gestuur het, dit gesien het. Hulle kan dit moontlik later ontskrap en dit lees.
+MsgMdnDenied=Die ontvanger van die boodskap wil nie 'n ontvangstrokie aan u stuur nie.
+MsgMdnFailed=Iets het skeefgeloop. 'n Behoorlike ontvangstrokie kon nie gegenereer of aan u gestuur word nie.
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+MsgMdnMsgSentTo=Hierdie is die ontvangstrokie vir die pos wat u aan %S gestuur het.
+MdnDisplayedReceipt=Ontvangstrokie (gewys)
+MdnDispatchedReceipt=Ontvangstrokie (gestuur)
+MdnProcessedReceipt=Ontvangstrokie (verwerk)
+MdnDeletedReceipt=Ontvangstrokie (geskrap)
+MdnDeniedReceipt=Ontvangstrokie (geweier)
+MdnFailedReceipt=Ontvangstrokie (misluk)
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/multimessageview.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/multimessageview.dtd
new file mode 100644
index 0000000000..cfdaab9e76
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/multimessageview.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 "Boodskapopsomming">
+<!ENTITY selectedmessages.label "Gemerkte boodskappe">
+
+
+
+<!ENTITY archiveButton.label "Archive">
+<!ENTITY deleteButton.label "Delete">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/multimessageview.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/multimessageview.properties
new file mode 100644
index 0000000000..dc425fc36d
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/multimessageview.properties
@@ -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/.
+
+# LOCALIZATION NOTE (numConversations): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/Localization_and_Plurals
+# The number of conversations (threads or solitary messages) selected. #1 is the
+# number of conversations.
+numConversations=#1 gesprek; #1 gesprekke
+
+# LOCALIZATION NOTE (atLeastNumConversations): Semi-colon list of plural forms.
+# See: http://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!).
+
+# LOCALIZATION NOTE (numMessages): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/Localization_and_Plurals
+# The number of messages in a thread. #1 is the number of messages.
+numMessages=#1 boodskap;#1 boodskappe
+
+# LOCALIZATION NOTE (numUnread): Semi-colon list of plural forms.
+# See: http://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 ongelees;, #1 ongelees
+
+# LOCALIZATION NOTE (numIgnored): Semi-colon list of plural forms.
+# See: http://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.
+
+# LOCALIZATION NOTE (atLeastNumIgnored): Semi-colon list of plural forms.
+# See: http://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!).
+
+# LOCALIZATION NOTE (noSubject): What to display for a message if it has no
+# subject.
+noSubject=(onderwerploos)
+
+# LOCALIZATION NOTE (messagesTotalSize): A message indicating the total size on
+# disk of the selected messages. #1 is the size, e.g. "123 KB".
+
+# 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.
+
+# 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= (Let wel: #1 boodskappe gemerk, die eerste #2 gewys)
+
+
+# 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 (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 (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 (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/af/chrome/af/locale/af/messenger/newFolderDialog.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/newFolderDialog.dtd
new file mode 100644
index 0000000000..c5d3da4de6
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/newFolderDialog.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/. -->
+<!-- Labels -->
+
+<!ENTITY newFolderDialog.title "Nuwe vouer">
+<!ENTITY name.label "Naam:">
+<!ENTITY name.accesskey "N">
+<!ENTITY description.label "Skep as 'n subvouer van:">
+<!ENTITY description.accesskey "S">
+<!ENTITY folderRestriction1.label "Hierdie bediener beperk vouers tot twee spesiale soorte.">
+<!ENTITY folderRestriction2.label "Laat u nuwe vouer toe om dit te bevat:">
+<!ENTITY foldersOnly.label "Net vouers">
+<!ENTITY messagesOnly.label "Net boodskappe">
+
+
+
+<!ENTITY accept.label "Create Folder">
+<!ENTITY accept.accesskey "r">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/news.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/news.properties
new file mode 100644
index 0000000000..aced12fbbd
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/news.properties
@@ -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/.
+downloadHeadersTitlePrefix=Laai kopstukke af
+downloadHeadersInfoText=Daar is %S nuwe boodskapkopstukke wat vir hierdie nuusgroep afgelaai moet word.
+cancelDisallowed=Dit lyk nie of hierdie boodskap van u af kom nie. U kan net u eie plasings kanselleer, en nie dié wat deur ander gedoen is nie.
+cancelConfirm=Is u seker u wil hierdie boodskap kanselleer?
+messageCancelled=Boodskap gekanselleer.
+# LOCALIZATION NOTE (enterUserPassServer): %S is the server being accessed
+# 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
+okButtonText=Aflaai
+
+noNewMessages=Daar is nie nuwe boodskappe op die bediener nie.
+# 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=Laai tans %1$S van %2$S kopskrifte vir %3$S af
+# 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=Kopskrifte vir filters kry: %1$S (%2$S/%3$S) op %4$S
+downloadingArticles=Laai tans %S-%S artikels af
+bytesReceived=Laai tans nuusgroepe af: %S ontvang (%S KG gelees teen %S KG/s)
+downloadingArticlesForOffline=Laai tans artikels %S-%S in %S af
+
+# LOCALIZATION NOTE (autoUnsubscribeText): %1$S is the newsgroup and %2$S is the newsgroup-server it is being removed from.
+autoUnsubscribeText=Dit lyk nie of die nuusgroep %1$S op die gasheer %2$S bestaan nie. Wil u daarvan afteken?
+
+# LOCALIZATION NOTE (autoSubscribeText): %1$S is the newsgroup.
+autoSubscribeText=Wil u op %1$S inteken?
+
+# LOCALIZATION NOTE (Error -304): In the following item, don't translate "NNTP"
+# Error - server error
+## @name NNTP_ERROR_MESSAGE
+## @loc None
+-304='n Nuus- (NNTP) probleem het plaasgevind: \u0020
+
+# Error - newsgroup scan error
+## @name NNTP_NEWSGROUP_SCAN_ERROR
+## @loc None
+-305='n Nuusprobleem het plaasgevind. Die ondersoek na alle nuusgroepe is onvolledig. Probeer om weer al die nuusgroepe te sien
+
+# Error - NNTP authinfo failure
+## @name NNTP_AUTH_FAILED
+## @loc None
+-260=Daar was 'n magtigingsfout. Probeer weer u naam en/of wagwoord intik.
+
+# Error - TCP error
+## @name TCP_ERROR
+## @loc None
+-206=Daar was 'n kommunikasieprobleem. Probeer weer koppel. TCP-probleem:
+
+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:
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/newsError.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/newsError.dtd
new file mode 100644
index 0000000000..be88a12507
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/messenger/offline.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/offline.properties
new file mode 100644
index 0000000000..3c58a4d142
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/offline.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/.
+
+# Download Messages Prompt
+downloadMessagesWindowTitle1=Laai boodskappe af
+downloadMessagesLabel1=Wil u boodskappe aflaai vir aflyngebruik voor u aflyn gaan?
+downloadMessagesCheckboxLabel1=Vra my altyd wanneer ek aflyn gaan
+
+# Send Messages Prompt
+sendMessagesWindowTitle1=Ongestuurde boodskappe
+sendMessagesLabel2=Wil u nou u ongestuurde boodskappe stuur?
+sendMessagesCheckboxLabel1=Vra my altyd wanneer ek aanlyn gaan
+
+
+# GetMessages While Offline Prompt
+getMessagesOfflineLabel1=U is tans aflyn. Wil u aanlyn gaan om nuwe boodskappe te kry?
+
+# Send Messages Offline Prompt
+sendMessagesOfflineWindowTitle1=Ongestuurde boodskappe
+sendMessagesOfflineLabel1=U is tans aflyn. Wil u aanlyn gaan om ongestuurde boodskappe te stuur?
+
+offlineTooltip=U is tans aflyn.
+onlineTooltip=U is tans aanlyn.
+
+downloadMessagesNow2=&Download Now
+sendMessagesNow2=&Send Now
+processMessagesLater2=&Later
+# GetMessages While Offline Prompt
+getMessagesOfflineWindowTitle1=Get Messages
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/offlineStartup.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/offlineStartup.properties
new file mode 100644
index 0000000000..e8b349582a
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Werk aanlyn
+desc=Wil u nou aanlyn gaan?\n\n(As u kies om aflyn te werk, kan u later aanlyn gaan - Kies 'Aflyn' uit die 'Lêer'-kieslys en ontmerk 'Werk aflyn'.)
+workOnline=Werk aanlyn
+workOffline=Werk aflyn
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/outlookImportMsgs.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/outlookImportMsgs.properties
new file mode 100644
index 0000000000..ef1d342529
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/outlookImportMsgs.properties
@@ -0,0 +1,82 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 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 -pos, -adresboeke en -instellings
+
+# 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=Posbus %S, %d ingevoerde boodskappe
+
+# Error message
+## @name OUTLOOKIMPORT_MAILBOX_BADPARAM
+## @loc None
+2003=Swak parameter aangegee vir posbusinvoer.
+
+# 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=Kon nie posbus %S invoer nie, moontlik nie alle boodskappe is uit hierdie posbus ingevoer nie.
+
+# Address book name
+## @name OUTLOOKIMPORT_ADDRNAME
+## @loc None
+## LOCALIZATION NOTE (2005): In this item, don't translate "Outlook"
+2005=Outlook-adresboeke
+
+# 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=Ingevoerde adresboekbron %S
+
+# Error message
+## @name OUTLOOKIMPORT_ADDRESS_BADPARAM
+## @loc None
+2007=Swak parameter aangegee vir adresboekinvoer.
+
+# 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=Kon nie toegang tot die lêer vir adresboek %S kry nie.
+
+# 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=Kon nie adresboek %S invoer nie, moontlik nie alle adresse is ingevoer nie.
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/pgpmime.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/pgpmime.properties
new file mode 100644
index 0000000000..2754392a07
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/messenger/preferences/applicationManager.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/preferences/applicationManager.properties
new file mode 100644
index 0000000000..ebc9a2a435
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Die volgende toepassings kan gebruik word vir %S.
+
+handleProtocol=%S-skakels
+handleFile=%S-inhoud
+
+descriptionWebApp=Hierdie webtoepassing word gehuisves by:
+descriptionLocalApp=Hierdie toepassing is geleë te:
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/preferences/applications.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/preferences/applications.properties
new file mode 100644
index 0000000000..5d367f4b21
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Is u seker u wil die rekening "%S" skrap?
+
+
+# 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/af/chrome/af/locale/af/messenger/preferences/messagestyle.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/preferences/messagestyle.properties
new file mode 100644
index 0000000000..9a2081a522
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/messenger/preferences/preferences.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/preferences/preferences.properties
new file mode 100644
index 0000000000..d99253e7ae
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/preferences/preferences.properties
@@ -0,0 +1,118 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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=Bevestig
+confirmResetJunkTrainingText=Is u seker u wil die aanpassende filteropleidingdata teruglaai?
+
+#### Downloads
+desktopFolderName=Werkskerm
+myDownloadsFolderName=My aflaaie
+chooseAttachmentsFolderTitle=Kies gids
+
+#### Applications
+
+fileEnding=%S-lêer
+saveFile=Stoor lêer
+
+# LOCALIZATION NOTE (useApp, useDefault): %S = Application name
+useApp=Gebruik %S
+useDefault=Gebruik %S (verstek)
+
+useOtherApp=Gebruik ander…
+fpTitleChooseApp=Kies hulptoepassing
+manageApp=Toepassingdetail…
+alwaysAsk=Vra altyd
+delete=Skrap aksie
+confirmDeleteTitle=Skrap aksie
+confirmDeleteText=Is u seker u wil hierdie aksie skrap?
+
+# 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=Kies klank
+
+#### Remote content
+
+#### Cookies
+cookiepermissionstitle=Uitsonderings - Koekies
+cookiepermissionstext=U kan spesifiseer watter webwerwe altyd of nooit toegelaat moet word om koekies te gebruik nie. Tik die webadres van die werf wat u wil bestuur, presies in en kliek dan Blokkeer, Toelaat vir sessie, of Toelaat.
+
+#### Cookie Viewer
+hostColon=Gasheer:
+domainColon=Domein:
+forSecureOnly=Slegs geënkripteerde verbindings
+forAnyConnection=Enige soort verbinding
+
+noCookieSelected=<geen koekie geselekteer nie>
+cookiesAll=Die volgende koekies is op u rekenaar gestoor:
+cookiesFiltered=Die volgende koekies pas by u soektog:
+# LOCALIZATION NOTE (removeSelectedCookies):
+# Semicolon-separated list of plural forms. See:
+# http://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
+
+####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.)
+
+# LOCALIZATION NOTE (labelDefaultFont): %S = font name
+
+# LOCALIZATION NOTE (appLocaleString): %S = Name of the application locale,
+# e.g. English (United States)
+# LOCALIZATION NOTE (rsLocaleString): %S = Name of the locale chosen in regional settings,
+# e.g. German (Germany)
+
+
+#### 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 email address. Type the address of the site or email you want to manage and then click Block or Allow.
+imagepermissionstitle=Exceptions - Remote Content
+expireAtEndOfSession=At end of session
+# 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/af/chrome/af/locale/af/messenger/prefs.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/prefs.properties
new file mode 100644
index 0000000000..4bebb018af
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/prefs.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/.
+
+# The following are used by the Account Wizard
+#
+enterValidEmail=Tik 'n geldige e-posadres in.
+modifiedAccountExists=Daar bestaan reeds 'n rekening met daardie gebruikernaam en bedienernaam. Tik 'n ander gebruikernaam en/of bedienernaam in.
+userNameChanged=U gebruikernaam is bygewer. Dalk moet u ook u e-posadres en/of gebruikernaam wat met hierdie rekening geassosieer word, bywerk.
+serverNameChanged=Die bedienernaam-opstelling het verander. Kontroleer dat enige vouers wat deur filters gebruik word, op die bediener bestaan.
+# LOCALIZATION NOTE (junkSettingsBroken): %1$S is the account name
+# LOCALIZATION NOTE (localDirectoryChanged): %1$S is program name (&brandShortName;)
+# LOCALIZATION NOTE (localDirectoryInvalid): %1$S is path to folder
+# LOCALIZATION NOTE (localDirectoryNotAllowed): %1$S is path to folder
+# 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=Is u seker u wil die rekeningslimmerd afsluit?\n\nAs u afsluit, sal enige inligting wat u ingetik het, verlore gaan en die rekening sal nie geskep word nie.
+accountWizard=Rekeningslimmerd
+WizardExit=Afsluit
+WizardContinue=Kanselleer
+# when the wizard already has a domain (Should we say something different?)
+failedRemoveAccount=Kon nie hierdie rekening verwyder nie.
+#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.
+confirmDeferAccountTitle=Verwys rekening?
+
+#Provide default example values for sample email address
+exampleEmailUserName=gebruiker
+exampleEmailDomain=voorbeeld.net
+emailFieldText=E-posadres:
+#LOCALIZATION NOTE: defaultEmailText: %1$S is user name, %2$S is domain
+defaultEmailText=Tik u e-posadres in. Dit is die adres wat ander sal gebruik om pos aan u te stuur (byvoorbeeld "%1$S@%2$S").\u0020
+#LOCALIZATION NOTE: customizedEmailText: %1$S is provider, %2$S is email username, %3$S is sample email, %4$S is sample username
+customizedEmailText=Tik u %1$S %2$S in (byvoorbeeld as u %1$S e-posadres "%3$S" is, is u %2$S "%4$S").\u0020
+
+# account manager stuff
+prefPanel-server=Bedieneropstelling
+prefPanel-copies=Afskrifte en vouers
+prefPanel-synchronization=Sinchronisasie en berging
+prefPanel-diskspace=Skyfspasie
+prefPanel-addressing=Opmaak en adressering
+prefPanel-junk=Gemorspos-opstelling
+## LOCALIZATION NOTE (prefPanel-smtp): Don't translate "SMTP"
+prefPanel-smtp=Uitgaande bediener (SMTP)
+
+# account manager multiple identity support
+#LOCALIZATION NOTE: accountName: %1$S
+identity-list-title=Identiteite vir %1$S
+
+## LOCALIZATION NOTE (identityDialogTitleEdit): %S is the identity name
+
+identity-edit-req=U moet 'n geldige e-posadres vir hierdie identiteit aandui.
+identity-edit-req-title=Kon nie identiteit skep nie
+
+## 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.
+## LOCALIZATION NOTE (identity-delete-confirm-title): %S is the account name
+identity-delete-confirm-button=Skrap
+
+choosefile=Kies 'n lêer
+
+
+
+accountNameExists=An account with this name already exists. Please enter a different account name.
+accountNameEmpty=The account name can not be empty.
+# 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.
+# when the wizard already has a domain (Should we say something different?)
+enterValidServerName=Please enter a valid server name.
+# 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 email 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 email in a different 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.
+identityDialogTitleAdd=New Identity
+## LOCALIZATION NOTE (identityDialogTitleEdit): %S is the identity name
+identityDialogTitleEdit=Edit %S
+## 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
+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/af/chrome/af/locale/af/messenger/profileDowngrade.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/profileDowngrade.dtd
new file mode 100644
index 0000000000..c23dc62d13
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/profileDowngrade.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:
+ 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.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/af/chrome/af/locale/af/messenger/removeAccount.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/removeAccount.dtd
new file mode 100644
index 0000000000..fbc22bcec3
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/messenger/removeAccount.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/removeAccount.properties
new file mode 100644
index 0000000000..535fd1ea9c
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/messenger/renameFolderDialog.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/renameFolderDialog.dtd
new file mode 100644
index 0000000000..c74700d338
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Herbenoem vouer">
+<!ENTITY rename.label "Tik die nuwe naam vir u vouer in:">
+<!ENTITY rename.accesskey "T">
+<!ENTITY accept.label "Hernoem">
+<!ENTITY accept.accesskey "r">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/sanitize.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/sanitize.dtd
new file mode 100644
index 0000000000..6112c3c54e
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/sanitize.dtd
@@ -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/. -->
+
+<!-- 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.today "Vandag">
+
+<!-- Localization note (clearTimeDuration.suffix) - trailing entity for languages
+that require it. -->
+<!ENTITY clearTimeDuration.suffix "">
+<!-- LOCALIZATION NOTE (detailsProgressiveDisclosure.*): Labels and accesskeys
+ of the "Details" progressive disclosure button. See UI mockup at bug
+ 480169 -->
+
+
+
+
+
+
+
+<!-- LOCALIZATION NOTE (sanitizeEverythingUndoWarning): Second warning paragraph
+ that appears when "Time range to clear" is set to "Everything". See UI
+ mockup at bug 480169 -->
+
+
+
+<!ENTITY sanitizeDialog2.title "Clear Recent History">
+<!-- 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.everything "Everything">
+<!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/af/chrome/af/locale/af/messenger/seamonkeyImportMsgs.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/seamonkeyImportMsgs.properties
new file mode 100644
index 0000000000..5e0b9d8499
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/messenger/search-attributes.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/search-attributes.properties
new file mode 100644
index 0000000000..1ca4a57b88
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Onderwerp
+From=Van
+Body=Lyf
+Date=Datum
+Priority=Prioriteit
+Status=Status
+To=Aan
+Cc=CC
+ToOrCc=Aan of CC
+AgeInDays=Ouderdom in dae
+SizeKB=Grootte (KG)
+Tags=Merkers
+# for AB and LDAP
+AnyName=Enige naam
+DisplayName=Vertoonnaam
+Nickname=Bynaam
+ScreenName=Skermnaam
+Email=E-pos
+AdditionalEmail=Bykomende e-pos
+AnyNumber=Enige nommer
+WorkPhone=Telefoon werk
+HomePhone=Telefoon tuis
+Fax=Faks
+Pager=Roeper
+Mobile=Selfoon
+City=Dorp/stad
+Street=Straat
+Title=Titel
+Organization=Organisasie
+Department=Afdeling
+# more mailnews
+FromToCcOrBcc=Van, Aan, CC of BCC
+JunkScoreOrigin=Gemorsgraderingoorsprong
+JunkPercent=Gemorspersentasie
+AttachmentStatus=Aanhegselstatus
+JunkStatus=Gemors-status
+Label=Etiket
+Customize=Doelmaak…
+MissingCustomTerm=Vermiste doelgemaakte term
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/search-operators.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/search-operators.properties
new file mode 100644
index 0000000000..888633fee3
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=bevat
+1=bevat nie
+2=is
+3=is nie
+4=is leeg
+
+5=is voor
+6=is na
+
+7=is hoër as
+8=is laer as
+
+9=begin met
+10=eindig met
+
+11=klink soos
+12=LdapDwim
+
+13=is groter as
+14=is minder as
+
+15=NameCompletion
+16=is in my adresboek
+17=is nie in my adresboek nie
+18=is nie leeg nie
+19=pas by
+20=pas nie by nie
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/search.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/search.properties
new file mode 100644
index 0000000000..7a2d5540c6
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/search.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/.
+
+# 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=Soek tans…
+# LOCALIZATION NOTE (matchesFound): #1 number of matches found
+noMatchesFound=Geen resultate gevind nie
+labelForStopButton=Stop
+labelForSearchButton=Soek
+labelForStopButton.accesskey=S
+labelForSearchButton.accesskey=S
+
+moreButtonTooltipText=Voeg 'n nuwe reël by
+lessButtonTooltipText=Verwyder hierdie reël
+
+# LOCALIZATION NOTE (matchesFound): #1 number of matches found
+matchesFound=#1 match found;#1 matches found
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/searchTermOverlay.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/searchTermOverlay.dtd
new file mode 100644
index 0000000000..5c01989213
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/searchTermOverlay.dtd
@@ -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/. -->
+
+<!ENTITY matchAll.label "Pas al die volgende">
+<!ENTITY matchAll.accesskey "a">
+<!ENTITY matchAny.label "Pas enige van die volgende">
+<!ENTITY matchAny.accesskey "e">
+
+
+<!-- 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 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/af/chrome/af/locale/af/messenger/shutdownWindow.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/shutdownWindow.properties
new file mode 100644
index 0000000000..36f2f0e208
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Afskakelingvordering-venster
+taskProgress=Verwerk tans %1$S van %2$S take\u0020
+
+# These strings are loaded by the individual shutdown tasks.
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/smime.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/smime.properties
new file mode 100644
index 0000000000..9a545dac9d
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/smime.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/.
+
+#
+# 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=Hierdie is 'n <B>GEËNKRIPTEERDE</B> of <B>ONDERTEKENDE</B> boodskap.<br> Hierdie postoepassing werk nie met geënkripteerde of ondertekende pos nie.
+
+
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/smtpEditOverlay.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/smtpEditOverlay.dtd
new file mode 100644
index 0000000000..237a6fe179
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Opstelling">
+<!ENTITY security.caption "Sekuriteit en magtiging">
+<!ENTITY serverName.label "Bedienernaam:">
+<!ENTITY serverName.accesskey "B">
+<!ENTITY serverDescription.label "Beskrywing:">
+<!ENTITY serverDescription.accesskey "B">
+<!ENTITY serverPort.label "Poort:">
+<!ENTITY serverPort.accesskey "P">
+<!ENTITY userName.label "Gebruikernaam:">
+<!ENTITY userName.accesskey "a">
+<!ENTITY connectionSecurity.label "Verbindingsekuriteit:">
+<!ENTITY connectionSecurity.accesskey "V">
+<!ENTITY connectionSecurityType-0.label "Geen">
+<!ENTITY connectionSecurityType-1.label "STARTTLS, indien beskikbaar">
+<!ENTITY connectionSecurityType-2.label "STARTTLS">
+<!ENTITY connectionSecurityType-3.label "SSL/TLS">
+<!ENTITY smtpEditTitle.label "SMTP-bediener">
+<!ENTITY serverPortDefault.label "Verstek:">
+<!ENTITY authMethod.label "Magtigingmetode:">
+<!ENTITY authMethod.accesskey "i">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/subscribe.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/subscribe.dtd
new file mode 100644
index 0000000000..7247cb713b
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Inteken">
+<!ENTITY subscribeButton.label "Inteken">
+<!ENTITY subscribeButton.accesskey "I">
+<!ENTITY unsubscribeButton.label "Afteken">
+<!ENTITY unsubscribeButton.accesskey "A">
+<!ENTITY newGroupsTab.label "Nuwe groepe">
+<!ENTITY newGroupsTab.accesskey "N">
+<!ENTITY refreshButton.label "Verfris">
+<!ENTITY refreshButton.accesskey "V">
+<!ENTITY stopButton.label "Stop">
+<!ENTITY stopButton.accesskey "t">
+<!ENTITY server.label "Rekening:">
+<!ENTITY server.accesskey "R">
+<!ENTITY subscribedHeader.label "Inteken">
+<!-- commenting out until bug 38906 is fixed
+<!ENTITY messagesHeader.label "Messages"> -->
+<!ENTITY namefield.label "Wys items wat dit bevat:">
+<!ENTITY namefield.accesskey "y">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/subscribe.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/subscribe.properties
new file mode 100644
index 0000000000..a73abe0b39
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/subscribe.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/.
+
+subscribeLabel-nntp=Kies watter nuusgroepe om op in te teken:
+subscribeLabel-imap=Kies watter vouers om op in te teken:
+pleaseWaitString=Wag asseblief…
+
+currentListTab-nntp.label=Current Group List
+currentListTab-nntp.accesskey=L
+currentListTab-imap.label=Folder List
+currentListTab-imap.accesskey=L
+offlineState=You are offline. Items could not be retrieved from the server.
+errorPopulating=Error retrieving items from the server.
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/tabmail.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/tabmail.dtd
new file mode 100644
index 0000000000..c182dd4e51
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Sluit oortjie">
+<!ENTITY listAllTabs.label "Lys alle oortjies">
+<!-- LOCALIZATION NOTE(defaultTabTitle.label): This is the default tab
+ title to show when the tab has no title. -->
+<!ENTITY defaultTabTitle.label "Huis">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/taskbar.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/taskbar.properties
new file mode 100644
index 0000000000..47959f9102
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/messenger/telemetry.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/telemetry.properties
new file mode 100644
index 0000000000..d1751e8c38
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/telemetry.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/.
+
+# 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.
+telemetryYesButtonLabel = Ja
+telemetryNoButtonLabel = Nee
+
+# 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
+telemetryYesButtonAccessKey = Y
+telemetryNoButtonAccessKey = N
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/templateUtils.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/templateUtils.properties
new file mode 100644
index 0000000000..bce6dbc3c6
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=gister
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/textImportMsgs.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/textImportMsgs.properties
new file mode 100644
index 0000000000..a04442e5b1
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/textImportMsgs.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/.
+
+#
+# The following are used by the outlook express import code to display status/error
+# and informational messages
+#
+
+#
+# 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=Tekslêer (LDIF, .tab, .csv, .txt)
+
+# Description of import module
+## @name TEXTIMPORT_DESCRIPTION
+## @loc None
+2001=Voer 'n adresboek uit 'n tekslêer in, waaronder: LDIF- (.ldif, .ldi), keepgeskeide (.tab, .txt) of kommageskeide (.csv) formate.
+
+# Description of import module
+## @name TEXTIMPORT_ADDRESS_NAME
+## @loc None
+2002=Teksadresboek
+
+# Description
+## @name TEXTIMPORT_ADDRESS_SUCCESS
+## @loc None
+2003=Ingevoerde adresboekbron %S
+
+# Error message
+## @name TEXTIMPORT_ADDRESS_BADPARAM
+## @loc None
+2004=Swak parameter aangegee vir adresboekinvoer.
+
+# Error message
+## @name TEXTIMPORT_ADDRESS_BADSOURCEFILE
+## @loc None
+2005=Kon nie toegang tot die lêer vir adresboek %S kry nie.
+
+# Error message
+## @name TEXTIMPORT_ADDRESS_CONVERTERROR
+## @loc None
+2006=Kon nie adresboek %S invoer nie, moontlik nie alle adresse is ingevoer nie.
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/vCardImportMsgs.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/vCardImportMsgs.properties
new file mode 100644
index 0000000000..26dcaf5fcb
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/vCardImportMsgs.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/.
+
+#
+# The following are used by the vCard import code to display status, error, and
+# informational messages
+#
+
+
+
+
+# LOCALIZATION NOTE (vCardImportAddressSuccess): %S is replaced by the
+# name of the address book being imported.
+
+# LOCALIZATION NOTE (vCardImportAddressSuccess): %S is replaced by the
+# name of the address book being imported.
+vCardImportAddressBadSourceFile=Kon nie toegang tot die lêer vir adresboek %S kry nie.
+
+# LOCALIZATION NOTE (vCardImportAddressSuccess): %S is replaced by the
+# name of the address book being imported.
+
+
+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.
+vCardImportAddressConvertError=Error importing address book %S, all addresses may not have been imported.
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/viewLog.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/viewLog.dtd
new file mode 100644
index 0000000000..d764664166
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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 "Filterstaaflêer">
+<!ENTITY viewLogInfo.text "Die filterstaaflêer teken aan watter filters vir hierdie rekening gebruik is. Merk die blokkie hieronder om boekstawing te aktiveer.">
+<!ENTITY clearLog.label "Maak staaflêer leeg">
+<!ENTITY clearLog.accesskey "M">
+<!ENTITY enableLog.label "Aktiveer die filterstaaflêer">
+<!ENTITY enableLog.accesskey "A">
+<!ENTITY closeLog.label "Sluit">
+<!ENTITY closeLog.accesskey "u">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/viewSource.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/viewSource.dtd
new file mode 100644
index 0000000000..7895345453
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/viewSource.dtd
@@ -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/. -->
+
+<!-- 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/af/chrome/af/locale/af/messenger/viewSource.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/viewSource.properties
new file mode 100644
index 0000000000..ea79ace721
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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/af/chrome/af/locale/af/messenger/viewZoomOverlay.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/viewZoomOverlay.dtd
new file mode 100644
index 0000000000..7f59e125da
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/viewZoomOverlay.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/. -->
+
+<!-- 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 "Zoem in">
+<!ENTITY fullZoomEnlargeCmd.accesskey "i">
+
+<!-- + is above this key on many keyboards -->
+<!ENTITY fullZoomEnlargeCmd.commandkey3 "">
+
+<!ENTITY fullZoomReduceCmd.label "Zoem uit">
+<!ENTITY fullZoomReduceCmd.accesskey "u">
+
+<!ENTITY fullZoomReduceCmd.commandkey2 "">
+
+<!ENTITY fullZoomResetCmd.label "Teruglaai">
+<!ENTITY fullZoomResetCmd.accesskey "T">
+
+<!ENTITY fullZoomResetCmd.commandkey2 "">
+
+<!ENTITY fullZoomToggleCmd.label "Zoem net teks">
+<!ENTITY fullZoomToggleCmd.accesskey "t">
+<!ENTITY fullZoom.label "Zoem">
+<!ENTITY fullZoom.accesskey "Z">
+
+<!ENTITY fullZoomEnlargeCmd.commandkey "+">
+<!ENTITY fullZoomEnlargeCmd.commandkey2 "=">
+<!ENTITY fullZoomReduceCmd.commandkey "-">
+<!ENTITY fullZoomResetCmd.commandkey "0">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/virtualFolderListDialog.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/virtualFolderListDialog.dtd
new file mode 100644
index 0000000000..a84b6fac1e
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/virtualFolderListDialog.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 virtualFolderListTitle.title "Kies vouer(s)">
+<!ENTITY virtualFolderDesc.label "Kies watter vouers deursoek moet word:">
+
+
+<!ENTITY folderName.label "Folder name">
+<!ENTITY folderSearch.label "Search">
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/messenger/virtualFolderProperties.dtd b/thunderbird-l10n/af/chrome/af/locale/af/messenger/virtualFolderProperties.dtd
new file mode 100644
index 0000000000..f60d1e0c37
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/messenger/virtualFolderProperties.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/. -->
+
+<!ENTITY virtualFolderProperties.title "Nuwe gestoorde soekvouer">
+<!ENTITY name.label "Naam:">
+<!ENTITY name.accesskey "N">
+<!ENTITY description.label "Skep as 'n subvouer van:">
+<!ENTITY description.accesskey "S">
+
+<!ENTITY searchTermCaption.label "Stel die soektogkriteria op wat vir hierdie gestoorde soektogvouer gebruik word: ">
+
+<!ENTITY folderSelectionCaption.label "Kies watter vouers deursoek moet word: ">
+<!ENTITY chooseFoldersButton.label "Kies…">
+<!ENTITY chooseFoldersButton.accesskey "K">
+
+<!ENTITY searchOnline.label "Soek aanlyn (gee jou bygewerkte resultate vir IMAP- en nuusvouers maar neem langer om vouer te open)">
+<!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/af/chrome/af/locale/af/messenger/wmImportMsgs.properties b/thunderbird-l10n/af/chrome/af/locale/af/messenger/wmImportMsgs.properties
new file mode 100644
index 0000000000..7df1741755
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Instellings vir Windows Live Mail
+
+# 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=Posbus %1$S, %2$d boodskappe ingevoer
+
+# Error message
+## @name WMIMPORT_MAILBOX_BADPARAM
+## @loc None
+2003=Swak parameter aangegee vir posbusinvoer.
+
+# 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=Kon nie toegang tot die lêer vir posbus %S kry nie.
+
+# 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=Kon nie posbus %S invoer nie, moontlik nie alle boodskappe is uit hierdie posbus ingevoer nie.
+
+# Default name of imported addressbook
+## @name WMIMPORT_DEFAULT_NAME
+## @loc None
+2006=Adresboek vir Windows Live Mail
+
+# Autofind description
+## @name WMIMPORT_AUTOFIND
+## @loc None
+2007=Adresboek vir Windows Live Mail (Windows-adresboek
+
+# 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=Adresboek %S ingevoer
+
+# 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=Kon nie adresboek %S invoer nie, sommige adresse is moontlik nie ingevoer nie.
+
+# Error message
+## @name WMIMPORT_ADDRESS_BADPARAM
+## @loc None
+2010=Swak parameter aangegee vir adresboekinvoer.
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/mozapps/downloads/downloads.properties b/thunderbird-l10n/af/chrome/af/locale/af/mozapps/downloads/downloads.properties
new file mode 100644
index 0000000000..99a5ab8a25
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Aflaaie
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/mozapps/downloads/unknownContentType.properties b/thunderbird-l10n/af/chrome/af/locale/af/mozapps/downloads/unknownContentType.properties
new file mode 100644
index 0000000000..acfa524dfc
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/mozapps/downloads/unknownContentType.properties
@@ -0,0 +1,24 @@
+# -*- 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=Open %S
+saveDialogTitle=Tik naam van lêer in om na te stoor…
+defaultApp=%S (verstek)
+chooseAppFilePickerTitle=Kies helper-toepassing
+badApp=Die toepassing wat u gekies het ("%S") kon nie gevind word nie. Gaan die lêernaam na of kies 'n ander toepassing.
+badApp.title=Toepassing nie gevind nie
+badPermissions=Hierdie lêer kon nie gestoor word nie omdat u nie die nodige toestemming het nie. Kies 'n ander teikengids.
+badPermissions.title=Ongeldige stoortoestemming
+unknownAccept.label=Stoor lêer
+unknownCancel.label=Kanselleer
+fileType=%S-lêer
+# 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/af/chrome/af/locale/af/mozapps/profile/profileSelection.properties b/thunderbird-l10n/af/chrome/af/locale/af/mozapps/profile/profileSelection.properties
new file mode 100644
index 0000000000..cac8c22a7b
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/mozapps/profile/profileSelection.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/.
+
+# LOCALIZATION NOTE: These strings are used for startup/profile problems and the profile manager.
+
+# Application not responding
+# LOCALIZATION NOTE (restartTitle, restartMessageNoUnlocker, restartMessageUnlocker, restartMessageNoUnlockerMac, restartMessageUnlockerMac): Messages displayed when the application is running but is not responding to commands. %S is the application name.
+restartTitle=Sluit %S af
+restartMessageUnlocker=%S loop reeds, maar reageer nie. Die ou %S-proses moet afgesluit word om 'n nuwe venster te open.
+restartMessageNoUnlockerMac='n Afskrif van %S is reeds oop. Net een afskrif van %S kan op 'n slag oop wees.
+restartMessageUnlockerMac='n Afskrif van %S is reeds oop. Die huidig lopende afskrif van %S sal afsluit sodat hierdie een kan open.
+
+# Profile manager
+# LOCALIZATION NOTE (profileTooltip): First %S is the profile name, second %S is the path to the profile folder.
+profileTooltip=Profiel: '%S' - Pad: '%S'
+
+pleaseSelectTitle=Kies profiel
+pleaseSelect=Kies 'n profiel om %S te begin, of skep 'n nuwe profiel.
+
+renameProfileTitle=Hernoem profiel
+renameProfilePrompt=Hernoem die profiel "%S" na:
+
+profileNameInvalidTitle=Ongeldige profielnaam
+profileNameInvalid=Die profielnaam "%S" word nie toegelaat nie.
+
+chooseFolder=Kies profielvouer
+profileNameEmpty='n Leë profielnaam word nie toegelaat nie.
+invalidChar=Die karakter "%S" word nie in profielname toegelaat nie. Kies 'n ander naam.
+
+deleteTitle=Skrap profiel
+deleteProfileConfirm=As u 'n profiel skrap, sal dit die profiel van die lys beskikbare profiele verwyder word, en dit kan nie ontdoen word nie.\nU kan ook kies om die profieldatalêers te skrap, waaronder u instellings, sertifikate en ander gebruikerverwante data. Hierdie opsie sal die vouer "%S" skrap, en dit kan nie ontdoen word nie.\nWil u die profieldatalêers skrap?
+deleteFiles=Skrap lêers
+dontDeleteFiles=Moenie lêers skrap nie
+
+profileCreationFailed=Profiel kon nie geskep word nie. Die geselekteerde vouer is waarskynlik nie skryfbaar nie.
+profileCreationFailedTitle=Kon nie profiel skep nie
+profileExists='n Profiel bestaan al met hierdie naam. Kies 'n ander naam.
+profileFinishText=Kliek Voltooi om hierdie nuwe profiel te skep.
+profileFinishTextMac=Kliek Klaar om hierdie nuwe profiel te skep.
+profileMissing=Die %S-profiel kan nie gelaai word nie. Dit word dalk vermis of is ontoeganklik.
+profileMissingTitle=Profiel vermis
+profileDeletionFailed=Die profiel kon nie geskrap word nie, want dit is in gebruik.
+profileDeletionFailedTitle=Skrapping het misluk
+
+# 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=Ou %S-data
+
+
+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.
+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/af/chrome/af/locale/af/mozapps/update/updates.properties b/thunderbird-l10n/af/chrome/af/locale/af/mozapps/update/updates.properties
new file mode 100644
index 0000000000..f57ace3b6d
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/mozapps/update/updates.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: 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=Nee dankie
+noThanksButton.accesskey=N
+# NOTE: The restartLaterButton string is also used in
+# mozapps/extensions/content/blocklist.js
+restartLaterButton=Herbegin later
+restartLaterButton.accesskey=L
+restartNowButton=Herbegin %S
+restartNowButton.accesskey=H
+
+statusFailed=Installering het misluk
+
+installSuccess=Die bywerking is suksesvol geïnstalleer
+installPending=Installering wag tans
+patchApplyFailure=Die bywerking kon nie geïnstalleer word nie (kon nie pleister toepas nie)
+elevationFailure=U het nie die nodige toestemming om dié bywerking te installeer nie. Kontak asb. u stelseladministrateur.
+
+check_error-200=Bywerking-XML-lêer wangevorm (200)
+check_error-403=Toegang geweier (403)
+check_error-404=Bywerking-XML-lêer nie gevind nie (404)
+check_error-500=Interne bedienerfout (500)
+check_error-2152398849=Het misluk (onbekende rede)
+check_error-2152398861=Verbinding geweier
+check_error-2152398862=Verbinding het uitgetel
+# NS_ERROR_OFFLINE
+check_error-2152398864=Netwerk is vanlyn (gaan aanlyn)
+check_error-2152398867=Poort nie toegelaat nie
+check_error-2152398868=Geen data is ontvang nie (probeer weer)
+check_error-2152398878=Bywerkbediener nie gevind nie (kontroleer u internetverbinding)
+check_error-2152398890=Instaanbediener nie gevind nie (kontroleer u internetverbinding)
+# NS_ERROR_DOCUMENT_NOT_CACHED
+check_error-2152398918=Netwerk is vanlyn (gaan aanlyn)
+check_error-2152398919=Dataoordrag is onderbreek (probeer weer)
+check_error-2152398920=Instaanbediener-verbinding geweier
+check_error-2153390069=Bedienersertifikaat het verval (verstel u stelselklok na die regte datum en tyd as dit verkeerd is)
+check_error-verification_failed=Die integriteit van die bywerking kon nie bevestig word nie
+
+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/af/chrome/af/locale/af/mozldap/ldap.properties b/thunderbird-l10n/af/chrome/af/locale/af/mozldap/ldap.properties
new file mode 100644
index 0000000000..06c5161e4d
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/mozldap/ldap.properties
@@ -0,0 +1,272 @@
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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/.
+
+# The following two strings are used when prompting the user for authentication
+# information:
+
+## @name AUTH_PROMPT_TITLE
+## @loc none
+authPromptTitle=LDAP-bedienerwagwoord verlang
+
+## @name AUTH_PROMPT_TEXT
+## @loc %1$S should not be localized. It is the hostname of the LDAP server.
+authPromptText=Tik u wagwoord vir %1$S in.
+
+# 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.
+
+# 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=Probleem met operasie
+
+## @name PROTOCOL_ERROR
+## @loc none
+2=Probleem met protokol
+
+## @name TIMELIMIT_EXCEEDED
+## @loc none
+3=Tydsbeperking oorskry
+
+## @name SIZELIMIT_EXCEEDED
+## @loc none
+4=Grootte oorskry
+
+## @name COMPARE_FALSE
+## @loc none
+5=Vergelyking vals
+
+## @name COMPARE_TRUE
+## @loc none
+6=Vergelyking waar
+
+## @name STRONG_AUTH_NOT_SUPPORTED
+## @loc none
+7=Werk nie met dié magtigingsmetode nie
+
+## @name STRONG_AUTH_REQUIRED
+## @loc none
+8=Sterk magtiging verlang
+
+## @name PARTIAL_RESULTS
+## @loc none
+9=Gedeeltelike resultate en verwysing ontvang
+
+## @name REFERRAL
+## @loc none
+10=Verwysing ontvang
+
+## @name ADMINLIMIT_EXCEEDED
+## @loc none
+11=Administratiewe perk oorskry
+
+## @name UNAVAILABLE_CRITICAL_EXTENSION
+## @loc none
+12=Onbeskikbare kritiese uitbreiding
+
+## @name CONFIDENTIALITY_REQUIRED
+## @loc none
+13=Vertroulikheid verlang
+
+## @name SASL_BIND_IN_PROGRESS
+## @loc none
+14=SASL-binding besig
+
+## @name NO_SUCH_ATTRIBUTE
+## @loc none
+16=Geen so 'n attribuut nie
+
+## @name UNDEFINED_TYPE
+## @loc none
+17=Ongedefinieerde attribuutsoort
+
+## @name INAPPROPRIATE MATCHIN
+## @loc none
+18=Ongeskikte passing
+
+## @name CONSTRAINT_VIOLATION
+## @loc none
+19=Beperkingsoortreding
+
+## @name TYPE_OR_VALUE_EXISTS
+## @loc none
+20=Soort of waarde bestaan
+
+## @name INVALID_SYNTAX
+## @loc none
+21=Ongeldige sintaksis
+
+## @name NO_SUCH_OBJECT
+## @loc none
+32=Geen so 'n objek nie
+
+## @name ALIAS_PROBLEM
+## @loc none
+33=Aliasprobleem
+
+## @name INVALID_DN_ SYNTAX
+## @loc none
+34=Ongeldige DN-sintaksis
+
+## @name IS_LEAF
+## @loc none
+35=Objek is 'n blaar
+
+## @name ALIAS_DEREF_PROBLEM
+## @loc none
+36=Aliasontverwysingsprobleem
+
+## @name INAPPROPRIATE_AUTH
+## @loc none
+48=Niegeskikte magtiging
+
+## @name INVALID_CREDENTIALS
+## @loc none
+49=Ongeldige besonderhede
+
+## @name INSUFFICIENT_ACCESS
+## @loc none
+50=Onvoldoende toegang
+
+## @name BUSY
+## @loc none
+51=Die LDAP-bediener is besig
+
+## @name UNAVAILABLE
+## @loc none
+52=Die LDAP-bediener is onbeskikbaar
+
+## @name UNWILLING_TO_PERFORM
+## @loc none
+53=LDAP-bediener is onwillig om te reageer
+
+## @name LOOP_DETECT
+## @loc none
+54=Lus bespeur
+
+## @name SORT_CONTROL_MISSING
+## @loc none
+60=Rangskikkontrole is weg
+
+## @name INDEX_RANGE_ERROR
+## @loc none
+61=Soekresultate oorskry reikwydte deur die grense gespesifiseer
+
+## @name NAMING_VIOLATION
+## @loc none
+64=Benoemingsoortreding
+
+## @name OBJECT_CLASS_VIOLATION
+## @loc none
+65=Objekklas-oortreding
+
+## @name NOT_ALLOWED_ON_NONLEAF
+## @loc none
+66=Operasie nie op nieblaar toegelaat nie
+
+## @name NOT_ALLOWED_ON_RDN
+## @loc none
+67=Operasie nie op RDN toegelaat nie
+
+## @name ALREADY_EXISTS
+## @loc none
+68=Bestaan reeds
+
+## @name NO_OBJECT_CLASS_MODS
+## @loc none
+69=Kan nie objekklas wysig nie
+
+## @name RESULTS_TOO_LARGE
+## @loc none
+70=Resultate te groot
+
+## @name AFFECTS_MULTIPLE_DSAS
+## @loc none
+71=Affekteer veelvoudige bedieners
+
+## @name OTHER
+## @loc none
+80=Onbekende probleem
+
+## @name SERVER_DOWN
+## @loc none
+81=Kan nie LDAP-bediener kontak nie
+
+## @name LOCAL_ERROR
+## @loc none
+82=Plaaslike probleem
+
+## @name ENCODING_ERROR
+## @loc none
+83=Koderingsprobleem
+
+## @name DECODING_ERROR
+## @loc none
+84=Probleem met stoor van sjabloon
+
+## @name TIMEOUT
+## @loc none
+85=Die LDAP-bediener is besig
+
+## @name AUTH_UNKNOWN
+## @loc none
+86=Onbekende magtigingsmetode
+
+## @name FILTER_ERROR
+## @loc none
+87=Ongeldige soekfilter
+
+## @name USER_CANCELLED
+## @loc none
+88=Gebruiker het operasie gekanselleer
+
+## @name PARAM_ERROR
+## @loc none
+89=Swak parameter aan 'n LDAP-roetine
+
+## @name NO_MEMORY
+## @loc none
+90=Onvoldoende geheue
+
+## @name CONNECT_ERROR
+## @loc none
+91=Kan nie aan LDAP-bediener koppel nie
+
+## @name NOT_SUPPORTED
+## @loc none
+92=Werk nie met hierdie weergawe van die LDAP-protokol nie
+
+## @name CONTROL_NOT_FOUND
+## @loc none
+93=Kon nie versoekte LDAP-kontrole vind nie
+
+## @name NO_RESULTS_RETURNED
+## @loc none
+94=Geen resultate aangegee nie
+
+## @name MORE_RESULTS_TO_RETURN
+## @loc none
+95=Meer resultate om aan te gee
+
+## @name CLIENT_LOOP
+## @loc none
+96=Kliëntlus bespeur
+
+## @name REFERRAL_LIMIT_EXCEEDED
+## @loc none
+97=Verwysinghopperk oorskry
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/necko/necko.properties b/thunderbird-l10n/af/chrome/af/locale/af/necko/necko.properties
new file mode 100644
index 0000000000..9bb5cd634e
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/necko/necko.properties
@@ -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/.
+
+#ResolvingHost=Looking up
+#ConnectedTo=Connected to
+#ConnectingTo=Connecting to
+#SendingRequestTo=Sending request to
+#TransferringDataFrom=Transferring data from
+
+3=Soek tans %1$S op…
+4=Gekoppel aan %1$S…
+5=Stuur tans versoek na %1$S…
+6=Dra tans data oor van %1$S…
+7=Koppel tans aan %1$S…
+8=Lees %1$S\u0020
+9=Skryf %1$S
+10=Wag tans vir %1$S…
+11=Het %1$S opgesoek…
+12=Maak 'n TLS-bladskud na %1$S…
+13=Die TLS-bladskud na %1$S is klaar…
+
+RepostFormData=Hierdie webbladsy word na 'n nuwe ligging herverwys. Wil u die vormdata wat u ingevul het, na die nuwe ligging toe herstuur?
+
+# Directory listing strings
+DirTitle=Indeks van %1$S
+DirGoUp=Boontoe na hoërvlak-subgids
+ShowHidden=Wys versteekte objekte
+DirColName=Naam
+DirColSize=Grootte
+DirColMTime=Laas gewysig
+DirFileLabel=Lêer:\u0020
+
+SuperfluousAuth=U is op die punt om aan te meld by die werf "%1$S" met die gebruikernaam "%2$S", maar die webwerf vereis nie magtiging nie. Dit is moontlik 'n poging om u om die bos te lei.\n\nIs "%1$S" die werf wat u wil besoek?
+AutomaticAuth=U is op die punt om aan te meld by die werf "%1$S" met die gebruikernaam "%2$S".
+
+UnsafeUriBlocked=Die hulpbron by “%1$S” is deur Safe Browsing geblokkeer.
+
+
+TrackerUriBlocked=The resource at “%1$S” was blocked because content blocking is enabled.
+# 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”.
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/passwordmgr/passwordmgr.properties b/thunderbird-l10n/af/chrome/af/locale/af/passwordmgr/passwordmgr.properties
new file mode 100644
index 0000000000..83406fe156
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/passwordmgr/passwordmgr.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/.
+
+rememberPassword = Gebruik wagwoordbestuurder om hierdie wagwoord te onthou.
+savePasswordTitle = Bevestig
+saveLoginButtonAllow.label = Stoor
+saveLoginButtonAllow.accesskey = S
+saveLoginButtonDeny.label = Moenie stoor nie
+saveLoginButtonDeny.accesskey = M
+updateLoginButtonText = Werk by
+updateLoginButtonAccessKey = W
+updateLoginButtonDeny.label = Moenie bywerk nie
+updateLoginButtonDeny.accesskey = M
+# 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 = Wil u die wagwoord vir "%1$S" op %2$S onthou?
+# LOCALIZATION NOTE (rememberPasswordMsgNoUsername):
+# String is the login's hostname.
+rememberPasswordMsgNoUsername = Wil u die wagwoord op %S onthou?
+# LOCALIZATION NOTE (noUsernamePlaceholder):
+# This is displayed in place of the username when it is missing.
+noUsernamePlaceholder=Geen gebruikernaam
+togglePasswordLabel=Wys wagwoord
+togglePasswordAccessKey2=y
+notNowButtonText = &Nie nou nie
+neverForSiteButtonText = Nooit &vir hierdie werf nie
+rememberButtonText = &Onthou
+passwordChangeTitle = Bevestig wagwoordwysiging
+# LOCALIZATION NOTE (updatePasswordMsg):
+# String is the username for the login.
+updatePasswordMsg = Wil u die gestoorde wagwoord vir "%S" verander?
+updatePasswordMsgNoUser = Wil u die gestoorde wagwoord verander?
+userSelectText2 = Kies watter rekening om by te werk:
+loginsDescriptionAll2=Aantekenings vir die volgende webwerwe word op U rekenaar gestoor
+
+# 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=Geen gebruikernaam nie
+
+# LOCALIZATION NOTE (insecureFieldWarningDescription2, insecureFieldWarningDescription3):
+# %1$S will contain insecureFieldWarningLearnMore and look like a link to indicate that clicking will open a tab with support information.
+insecureFieldWarningDescription2 = Dié verbinding is nie beveilig nie. Rekeninginligting wat hier getik word kan onderskep word. %1$S
+insecureFieldWarningLearnMore = Meer inligting
+
+
+# LOCALIZATION NOTE (saveLoginMsg2, saveLoginMsgNoUser2):
+# %S is the login's hostname.
+saveLoginMsg2 = Save login for %S?
+saveLoginMsgNoUser2 = Save password for %S?
+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?
+updateLoginButtonDelete.label = Remove saved login
+updateLoginButtonDelete.accesskey = R
+# 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 (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 (viewSavedLogins.label):
+# This label is used in the footer of login autocomplete menus.
+viewSavedLogins.label= View Saved Logins
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/pipnss/nsserrors.properties b/thunderbird-l10n/af/chrome/af/locale/af/pipnss/nsserrors.properties
new file mode 100644
index 0000000000..7e9bfa636f
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/pipnss/nsserrors.properties
@@ -0,0 +1,332 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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=Kon nie beveilig kommunikeer nie. Eweknie werk nie met hoëgraadse enkripsie nie.
+SSL_ERROR_US_ONLY_SERVER=Kon nie beveilig kommunikeer nie. Eweknie vereis hoëgraadse enkripsie, wat nie hier werk nie.
+SSL_ERROR_NO_CYPHER_OVERLAP=Kan nie beveilig met eweknie kommunikeer nie: geen gemene enkripsiealgoritme(s) nie.
+SSL_ERROR_NO_CERTIFICATE=Kon nie die sertifikaat of sleutel vind wat nodig is vir magtiging nie.
+SSL_ERROR_BAD_CERTIFICATE=Kon nie beveilig met eweknie kommunikeer nie: eweknie se sertifikaat is verwerp.
+SSL_ERROR_BAD_CLIENT=Die bediener het slegte data van die kliënt teëgekom.
+SSL_ERROR_BAD_SERVER=Die kliënt het slegte data van die bediener teëgekom.
+SSL_ERROR_UNSUPPORTED_CERTIFICATE_TYPE=Nieondersteunde sertifikaatsoort.
+SSL_ERROR_UNSUPPORTED_VERSION=Eweknie wat nieondersteunde weergawe van die sekuriteitsprotokol gebruik.
+SSL_ERROR_WRONG_CERTIFICATE=Kliëntmagtiging het misluk: private sleutel in sleuteldatabasis pas nie by die publieke sleutel in die sertifikaatdatabasis nie.
+SSL_ERROR_BAD_CERT_DOMAIN=Kon nie beveilig met eweknie kommunikeer nie: aangevraagde domeinnaam pas nie by die bediener se sertifikaat nie.
+SSL_ERROR_POST_WARNING=Onbekende SSL-foutkode.
+SSL_ERROR_SSL2_DISABLED=Eweknie werk net met SSL weergawe 2, wat plaaslik gedeaktiveer is.
+SSL_ERROR_BAD_MAC_READ=SSL het 'n rekord ontvang waarvan die boodskapmagtigingskode nie korrek is nie.
+SSL_ERROR_BAD_MAC_ALERT=SSL-eweknie rapporteer foutiewe boodskapmagtigingskode.
+SSL_ERROR_BAD_CERT_ALERT=SSL-eweknie kan nie u sertifikaat verifieer nie.
+SSL_ERROR_REVOKED_CERT_ALERT=SSL-eweknie het u sertifikaat verwerp as opgehef.
+SSL_ERROR_EXPIRED_CERT_ALERT=SSL-eweknie het u sertifikaat verwerp as verval.
+SSL_ERROR_SSL_DISABLED=Kan nie koppel nie: SSL is gedeaktiveer.
+SSL_ERROR_FORTEZZA_PQG=Kan nie koppel nie: SSL-eweknie is in 'n ander FORTEZZA-domain.
+SSL_ERROR_UNKNOWN_CIPHER_SUITE='n Onbekende SSL-syfersuite is aangevra.
+SSL_ERROR_NO_CIPHERS_SUPPORTED=Geen syfersuites is teenwoordig en in hierdie program geaktiveer nie.
+SSL_ERROR_BAD_BLOCK_PADDING=SSL het 'n rekord ontvang met swak blokopvulling.
+SSL_ERROR_RX_RECORD_TOO_LONG=SSL het 'n rekord ontvang wat langer as die maksimum toegelate lengte is.
+SSL_ERROR_TX_RECORD_TOO_LONG=SSL het probeer om 'n rekord te stuur wat langer as die maksimum toegelate lengte is.
+SSL_ERROR_RX_MALFORMED_HELLO_REQUEST=SSL het 'n wanvormde Hello Request-bladskudboodskap ontvang.
+SSL_ERROR_RX_MALFORMED_CLIENT_HELLO=SSL het 'n wanvormde Client Hello-bladskudboodskap ontvang.
+SSL_ERROR_RX_MALFORMED_SERVER_HELLO=SSL het 'n wanvormde Server Hello-bladskudboodskap ontvang.
+SSL_ERROR_RX_MALFORMED_CERTIFICATE=SSL het 'n wanvormde Certificate-bladskudboodskap ontvang.
+SSL_ERROR_RX_MALFORMED_SERVER_KEY_EXCH=SSL het 'n wanvormde Server Key Exchange-bladskudboodskap ontvang.
+SSL_ERROR_RX_MALFORMED_CERT_REQUEST=SSL het 'n wanvormde Certificate Request-bladskudboodskap ontvang.
+SSL_ERROR_RX_MALFORMED_HELLO_DONE=SSL het 'n wanvormde Server Hello Done-bladskudboodskap ontvang.
+SSL_ERROR_RX_MALFORMED_CERT_VERIFY=SSL het 'n wanvormde Certificate Verify-bladskudboodskap ontvang.
+SSL_ERROR_RX_MALFORMED_CLIENT_KEY_EXCH=SSL het 'n wanvormde Client Key Exchange-bladskudboodskap ontvang.
+SSL_ERROR_RX_MALFORMED_FINISHED=SSL het 'n wanvormde Finished-bladskudboodskap ontvang.
+SSL_ERROR_RX_MALFORMED_CHANGE_CIPHER=SSL het 'n wanvormde Change Cipher Spec-rekord ontvang.
+SSL_ERROR_RX_MALFORMED_ALERT=SSL het 'n wanvormde Alert-rekord ontvang.
+SSL_ERROR_RX_MALFORMED_HANDSHAKE=SSL het 'n wanvormde Handshake-rekord ontvang.
+SSL_ERROR_RX_MALFORMED_APPLICATION_DATA=SSL het 'n wanvormde Application Data-rekord ontvang.
+SSL_ERROR_RX_UNEXPECTED_HELLO_REQUEST=SSL het 'n onverwagte Hello Request-bladskudboodskap ontvang.
+SSL_ERROR_RX_UNEXPECTED_CLIENT_HELLO=SSL het 'n onverwagte Client Hello-bladskudboodskap ontvang.
+SSL_ERROR_RX_UNEXPECTED_SERVER_HELLO=SSL het 'n onverwagte Server Hello-bladskudboodskap ontvang.
+SSL_ERROR_RX_UNEXPECTED_CERTIFICATE=SSL het 'n onverwagte Certificate-bladskudboodskap ontvang.
+SSL_ERROR_RX_UNEXPECTED_SERVER_KEY_EXCH=SSL het 'n onverwagte Server Key Exchange-bladskudboodskap ontvang.
+SSL_ERROR_RX_UNEXPECTED_CERT_REQUEST=SSL het 'n onverwagte Certificate Request-bladskudboodskap ontvang.
+SSL_ERROR_RX_UNEXPECTED_HELLO_DONE=SSL het 'n onverwagte Server Hello Done-bladskudboodskap ontvang.
+SSL_ERROR_RX_UNEXPECTED_CERT_VERIFY=SSL het 'n onverwagte Certificate Verify-bladskudboodskap ontvang.
+SSL_ERROR_RX_UNEXPECTED_CLIENT_KEY_EXCH=SSL het 'n onverwagte Client Key Exchange-bladskudboodskap ontvang.
+SSL_ERROR_RX_UNEXPECTED_FINISHED=SSL het 'n onverwagte Finished-bladskudboodskap ontvang.
+SSL_ERROR_RX_UNEXPECTED_CHANGE_CIPHER=SSL het 'n onverwagse Change Cipher Spec-rekord ontvang.
+SSL_ERROR_RX_UNEXPECTED_ALERT=SSL het 'n onverwagse Alert-rekord ontvang.
+SSL_ERROR_RX_UNEXPECTED_HANDSHAKE=SSL het 'n onverwagse Handshake-rekord ontvang.
+SSL_ERROR_RX_UNEXPECTED_APPLICATION_DATA=SSL het 'n onverwagse Application Data-rekord ontvang.
+SSL_ERROR_RX_UNKNOWN_RECORD_TYPE=SSL het 'n rekord ontvang met onbekende inhoudtipe.
+SSL_ERROR_RX_UNKNOWN_HANDSHAKE=SSL het 'n bladskudboodskap ontvang met onbekende boodskapsoort.
+SSL_ERROR_RX_UNKNOWN_ALERT=SSL het 'n berigrekord ontvang met onbekende berigbeskrywing.
+SSL_ERROR_CLOSE_NOTIFY_ALERT=SSL-eweknie het die verbinding gesluit.
+SSL_ERROR_HANDSHAKE_UNEXPECTED_ALERT=SSL-eweknie het nie 'n bladskudboodskap gekry wat dit verwag het nie.
+SSL_ERROR_DECOMPRESSION_FAILURE_ALERT=SSL-eweknie kon nie 'n SLL-rekord wat dit ontvang het, suksesvol uitpak nie.
+SSL_ERROR_HANDSHAKE_FAILURE_ALERT=SSL-eweknie kon nie oor 'n aanvaarbare stel sekuriteitsparameters onderhandel nie.
+SSL_ERROR_ILLEGAL_PARAMETER_ALERT=SSL-eweknie het 'n bladskudboodskap verwerp vir onaanvaarbare inhoud.
+SSL_ERROR_UNSUPPORTED_CERT_ALERT=SSL-eweknie werk nie met sertifikate van die tipe wat dit ontvang het nie.
+SSL_ERROR_CERTIFICATE_UNKNOWN_ALERT=SSL-eweknie het 'n ongespesifiseerde probleem met sertifikaat wat dit ontvang het.
+SSL_ERROR_GENERATE_RANDOM_FAILURE=SSL se lukraaknommergenerator wou nie werk nie.
+SSL_ERROR_SIGN_HASHES_FAILURE=Kon nie data digitaal onderteken wat nodig is om u sertifikate te verifieer nie.
+SSL_ERROR_EXTRACT_PUBLIC_KEY_FAILURE=SSL kon nie die publieke sleutel uit die eweknie se sertifikaat trek nie.
+SSL_ERROR_SERVER_KEY_EXCHANGE_FAILURE=Ongespesifiseerde faling terwyl SSL-Server Key Exchange-bladskud verwerk het.
+SSL_ERROR_CLIENT_KEY_EXCHANGE_FAILURE=Ongespesifiseerde faling terwyl SSL-Client Key Exchange-bladskud verwerk het.
+SSL_ERROR_ENCRYPTION_FAILURE=Grootmaatdataenkripsiealgoritme in die gemerkte syfersuite het misluk.
+SSL_ERROR_DECRYPTION_FAILURE=Grootmaatdatadekripsiealgoritme in die gemerkte syfersuite het misluk.
+SSL_ERROR_SOCKET_WRITE_FAILURE=Poging om geënkripteerde data na onderliggende sok te skryf, het misluk.
+SSL_ERROR_MD5_DIGEST_FAILURE=MD5-bundelfunksie het misluk.
+SSL_ERROR_SHA_DIGEST_FAILURE=SHA-1-bundelfunksie het misluk.
+SSL_ERROR_MAC_COMPUTATION_FAILURE=MAC-berekening het misluk.
+SSL_ERROR_SYM_KEY_CONTEXT_FAILURE=Kon nie simmetriese sleutelkonteks skep nie.
+SSL_ERROR_SYM_KEY_UNWRAP_FAILURE=Kon nie die simmetriese sleutel in Client Key Exchange-boodskap ontvou nie.
+SSL_ERROR_PUB_KEY_SIZE_LIMIT_EXCEEDED=SSL-bediener het probeer om publieke sleutel van binnelandse graad met uitvoersyfersuite te gebruik.
+SSL_ERROR_IV_PARAM_FAILURE=PKCS11-kode kon nie 'n IV in 'n param vertaal nie.
+SSL_ERROR_INIT_CIPHER_SUITE_FAILURE=Kon nie die gemerkte syfersuite inisialiseer nie.
+SSL_ERROR_SESSION_KEY_GEN_FAILURE=Kliënt kon nie sessiesleutels vir die SSL-sessie genereer nie.
+SSL_ERROR_NO_SERVER_KEY_FOR_ALG=Bediener het geen sleutel vir die gepoogde sleutelruilalgoritme nie.
+SSL_ERROR_TOKEN_INSERTION_REMOVAL=PKCS#11-teken is ingevoeg of verwyder terwyl bewerking besig was.
+SSL_ERROR_TOKEN_SLOT_NOT_FOUND=Geen PKCS#11-teken kon gevind word om 'n vereiste bewerking uit te voer nie.
+SSL_ERROR_NO_COMPRESSION_OVERLAP=Kan nie beveilig met eweknie kommunikeer nie: geen gemene inpakalgoritme(s) nie.
+SSL_ERROR_HANDSHAKE_NOT_COMPLETED=Kan nie nog 'n SSL-bladskud inisieer voor huidige bladskud klaar is nie.
+SSL_ERROR_BAD_HANDSHAKE_HASH_VALUE=Verkeerde bladskudhutswaardes van eweknie ontvang.
+SSL_ERROR_CERT_KEA_MISMATCH=Die sertifikaat wat aangegee is, kan nie met die gemerkte sleutelruilalgoritme gebruik word nie.
+SSL_ERROR_NO_TRUSTED_SSL_CLIENT_CA=Geen sertifikaatowerheid word vertrou vir SSL-kliëntmagtiging nie.
+SSL_ERROR_SESSION_NOT_FOUND=Kliënt se SSL-sessie-ID nie in bediener se sessiekas gevind nie.
+SSL_ERROR_DECRYPTION_FAILED_ALERT=Eweknie kon nie 'n SLL-rekord wat dit ontvang het, dekripteer nie.
+SSL_ERROR_RECORD_OVERFLOW_ALERT=Eweknie het 'n SLL-rekord ontvang wat langer was as wat toegelaat word.
+SSL_ERROR_UNKNOWN_CA_ALERT=Eweknie herken en vertrou nie die owerheid wat u sertifikaat uitgereik het nie.
+SSL_ERROR_ACCESS_DENIED_ALERT=Eweknie het 'n geldige sertifikaat ontvang, maar toegang is geweier.
+SSL_ERROR_DECODE_ERROR_ALERT=Eweknie kon nie 'n SSL-bladskudboodskap dekodeer nie.
+SSL_ERROR_DECRYPT_ERROR_ALERT=Eweknie meld faling van handtekeningverifikasie of sleutelruil.
+SSL_ERROR_EXPORT_RESTRICTION_ALERT=Eweknie meld onderhandeling voldoen nie aan uitvoerregulasies nie.
+SSL_ERROR_PROTOCOL_VERSION_ALERT=Eweknie meld onversoenbare of nieondersteunde protokolweergawe.
+SSL_ERROR_INSUFFICIENT_SECURITY_ALERT=Bediener vereis syfers wat meer beveilig is as waarmee kliënt werk.
+SSL_ERROR_INTERNAL_ERROR_ALERT=Eweknie meld dat dit 'n interne probleem teëgekom het.
+SSL_ERROR_USER_CANCELED_ALERT=Eweknie-gebruiker het bladskud gekanselleer.
+SSL_ERROR_NO_RENEGOTIATION_ALERT=Eweknie laat nie heronderhandeling oor SSL-sekuriteitsparameters toe nie.
+SSL_ERROR_SERVER_CACHE_NOT_CONFIGURED=SSL-bedienerkas is nie opgestel en nie gedeaktiveer vir hierdie sok nie.
+SSL_ERROR_UNSUPPORTED_EXTENSION_ALERT=SSL-eweknie werk nie met aangevraagde TLS-hello-uitbreiding nie.
+SSL_ERROR_CERTIFICATE_UNOBTAINABLE_ALERT=SSL-eweknie kon nie u sertifikaat van die voorsiende URL kry nie.
+SSL_ERROR_UNRECOGNIZED_NAME_ALERT=SSL-eweknie het geen sertifikaat vir die aangevraagde DNS-naam nie.
+SSL_ERROR_BAD_CERT_STATUS_RESPONSE_ALERT=SSL-eweknie kon nie 'n OCSP-respons vir sy sertifikaat kry nie.
+SSL_ERROR_BAD_CERT_HASH_VALUE_ALERT=SSL-eweknie meld slegte sertifikaathutswaarde.
+SSL_ERROR_RX_UNEXPECTED_NEW_SESSION_TICKET=SSL het 'n onverwagte New Session Ticket-bladskudboodskap ontvang.
+SSL_ERROR_RX_MALFORMED_NEW_SESSION_TICKET=SSL het 'n wanvormde New Session Ticket-bladskudboodskap ontvang.
+SSL_ERROR_UNSAFE_NEGOTIATION=Eweknie het oustyl- (potensieel kwesbare) bladskud probeer.
+SSL_ERROR_RX_UNEXPECTED_UNCOMPRESSED_RECORD=SSL het 'n onverwagse niesaamgepakte rekord ontvang.
+SSL_ERROR_WEAK_SERVER_EPHEMERAL_DH_KEY=SSL het 'n swak efemere Diffie-Hellman-sleutel in die bedienersleutelruil-bladskudboodskap ontvang.
+SEC_ERROR_IO='n T/A-fout het tydens sekuriteitsmagtiging voorgekom.
+SEC_ERROR_LIBRARY_FAILURE=sekuriteitsprogrammateekfaling.
+SEC_ERROR_BAD_DATA=sekuriteitsprogrammateek: het slegte data ontvang.
+SEC_ERROR_OUTPUT_LEN=sekuriteitsprogrammateek: afvoerlengtefout.
+SEC_ERROR_INPUT_LEN=sekuriteitsprogrammateek het 'n toevoerlengtefout ervaar.
+SEC_ERROR_INVALID_ARGS=sekuriteitsprogrammateek: ongeldige argumente.
+SEC_ERROR_INVALID_ALGORITHM=sekuriteitsprogrammateek: ongeldige algoritme.
+SEC_ERROR_INVALID_AVA=sekuriteitsprogrammateek: ongeldige AVA.
+SEC_ERROR_INVALID_TIME=Onbehoorlik geformateerde tydstring.
+SEC_ERROR_BAD_DER=sekuriteitsprogrammateek: onbehoorlik geformateerde DER-geënkodeerde boodskap.
+SEC_ERROR_BAD_SIGNATURE=Eweknie se sertifikaat het 'n ongeldige handtekening.
+SEC_ERROR_EXPIRED_CERTIFICATE=Eweknie se sertifikaat het verval.
+SEC_ERROR_REVOKED_CERTIFICATE=Eweknie se sertifikaat is opgehef.
+SEC_ERROR_UNKNOWN_ISSUER=Eweknie se sertifikaatuitreiker word nie herken nie.
+SEC_ERROR_BAD_KEY=Eweknie se publieke sleutel is ongeldig.
+SEC_ERROR_BAD_PASSWORD=Die sekuriteitswagwoord wat ingetik is, is verkeerd.
+SEC_ERROR_RETRY_PASSWORD=Nuwe wagwoord wat ingetik is, is verkeerd. Probeer gerus weer.
+SEC_ERROR_NO_NODELOCK=sekuriteitsprogrammateek: geen nodusslot nie.
+SEC_ERROR_BAD_DATABASE=sekuriteitsprogrammateek: slegte databasis.
+SEC_ERROR_NO_MEMORY=sekuriteitsprogrammateek: geheuetoewysingsfaling.
+SEC_ERROR_UNTRUSTED_ISSUER=Eweknie se sertifikaatuitreiker is gemerk as nie deur die gebruiker vertrou nie.
+SEC_ERROR_UNTRUSTED_CERT=Eweknie se sertifikaat is gemerk as nie deur die gebruiker vertrou nie.
+SEC_ERROR_DUPLICATE_CERT=Sertifikaat bestaan reeds in u databasis.
+SEC_ERROR_DUPLICATE_CERT_NAME=Afgelaaide sertifikaat se naam is 'n duplikaat van een reeds in die databasis.
+SEC_ERROR_ADDING_CERT=Kon nie sertifikaat by databasis voeg nie.
+SEC_ERROR_FILING_KEY=Kon nie die sleutel vir hierdie sertifikaat herliasseer nie.
+SEC_ERROR_NO_KEY=Die private sleutel vir hierdie sertifikaat kan nie in die sleuteldatabasis gevind word nie.
+SEC_ERROR_CERT_VALID=Hierdie sertifikaat is geldig.
+SEC_ERROR_CERT_NOT_VALID=Hierdie sertifikaat is nie geldig nie.
+SEC_ERROR_CERT_NO_RESPONSE=Sertprogrammateek: Geen respons nie
+SEC_ERROR_EXPIRED_ISSUER_CERTIFICATE=Die sertifikaatuitreiker se sertifikaat het verval. Kontroleer die stelsel se datum en tyd.
+SEC_ERROR_CRL_EXPIRED=Die SOL vir die sertifikaatuitreiker het verval. Werk dit by of kontroleer die stelsel se datum en tyd.
+SEC_ERROR_CRL_BAD_SIGNATURE=Die SOL vir die sertifikaatuitreiker het 'n ongeldige handtekening.
+SEC_ERROR_CRL_INVALID=Nuwe SOL het 'n ongeldige formaat.
+SEC_ERROR_EXTENSION_VALUE_INVALID=Sertifikaat-uitbreidingwaarde is ongeldig.
+SEC_ERROR_EXTENSION_NOT_FOUND=Sertifikaat-uitbreiding nie gevind nie.
+SEC_ERROR_CA_CERT_INVALID=Uitreiker-sertifikaat is ongeldig.
+SEC_ERROR_PATH_LEN_CONSTRAINT_INVALID=Sertifikaatpadlengtebeperking is ongeldig.
+SEC_ERROR_CERT_USAGES_INVALID=Sertifikaatgebruikveld is ongeldig.
+SEC_INTERNAL_ONLY=**NET interne module**
+SEC_ERROR_INVALID_KEY=Die sleutel werk nie met die aangevraagde bewerking nie.
+SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION=Sertifikaat bevat onbekende kritieke uitbreiding.
+SEC_ERROR_OLD_CRL=Nuwe SOL is nie jonger as die huidige een nie.
+SEC_ERROR_NO_EMAIL_CERT=Nie geënkripteer of onderteken nie: u het nog nie 'n e-possertifikaat nie.
+SEC_ERROR_NO_RECIPIENT_CERTS_QUERY=Nie geënkripteer nie: u het nog nie 'n sertifikaat vir elkeen van die ontvangers nie.
+SEC_ERROR_NOT_A_RECIPIENT=Kan nie dekripteer nie: u is nie 'n ontvanger nie, of passende sertifikaat en private sleutel nie gevind nie.
+SEC_ERROR_PKCS7_KEYALG_MISMATCH=Kan nie dekripteer nie: sleutelenkripsiealgoritme pas nie by u sertifikaat nie.
+SEC_ERROR_PKCS7_BAD_SIGNATURE=Handtekeningverifikasie het misluk: geen ondertekenaar gevind nie, te veel ondertekenaars gevind, of onbehoorlike of gekorrumpeerde data.
+SEC_ERROR_UNSUPPORTED_KEYALG=Nieondersteunde of onbekende sleutelalgoritme.
+SEC_ERROR_DECRYPTION_DISALLOWED=Kan nie dekripteer nie: geënkripteer met 'n nietoegelate algoritme of sleutelgrootte.
+XP_SEC_FORTEZZA_BAD_CARD=Fortezza-kaart nie behoorlik geïnisialiseer nie. Verwyder dit en gee dit terug aan u uitreiker.
+XP_SEC_FORTEZZA_NO_CARD=Geen Fortezza-kaart gevind nie
+XP_SEC_FORTEZZA_NONE_SELECTED=Geen Fortezza-kaart gekies nie
+XP_SEC_FORTEZZA_MORE_INFO=Kies asseblief 'n persoonlikheid om meer info oor te kry
+XP_SEC_FORTEZZA_PERSON_NOT_FOUND=Persoonlikheid nie gevind nie
+XP_SEC_FORTEZZA_NO_MORE_INFO=Geen verdere inligting oor daardie persoonlikheid nie
+XP_SEC_FORTEZZA_BAD_PIN=Ongeldige pen
+XP_SEC_FORTEZZA_PERSON_ERROR=Kon nie Fortezza-persoonlikhede inisialiseer nie.
+SEC_ERROR_NO_KRL=Kon geen KRL vir hierdie werf se sertifikaat vind nie.
+SEC_ERROR_KRL_EXPIRED=Die KRL vir hierdie werf se sertifikaat het verval.
+SEC_ERROR_KRL_BAD_SIGNATURE=Die KRL vir hierdie werf se sertifikaat het 'n ongeldige handtekening.
+SEC_ERROR_REVOKED_KEY=Die sleutel vir hierdie werf se sertifikaat is ingetrek.
+SEC_ERROR_KRL_INVALID=Nuwe KRL het 'n ongeldige formaat.
+SEC_ERROR_NEED_RANDOM=sekuriteitsprogrammateek: het lukraak data ontvang.
+SEC_ERROR_NO_MODULE=sekuriteitsprogrammateek: geen sekuriteitmodule kan die aangevraagde bewerking uitvoer nie.
+SEC_ERROR_NO_TOKEN=Die sekuriteitkaart of teken bestaan nie, moet geïnisialiseer word, of is ingetrek.
+SEC_ERROR_READ_ONLY=sekuriteitsprogrammateek: het leesalleen data ontvang.
+SEC_ERROR_NO_SLOT_SELECTED=Geen gleuf of teken is gekies nie.
+SEC_ERROR_CERT_NICKNAME_COLLISION='n Sertifikaat met dieselfde bynaam bestaan reeds.
+SEC_ERROR_KEY_NICKNAME_COLLISION='n Sleutel met dieselfde bynaam bestaan reeds.
+SEC_ERROR_SAFE_NOT_CREATED=kon nie veilige objek skep nie
+SEC_ERROR_BAGGAGE_NOT_CREATED=kon nie baggasieobjek skep nie
+XP_JAVA_REMOVE_PRINCIPAL_ERROR=Kon nie die hoofelement verwyder nie
+XP_JAVA_DELETE_PRIVILEGE_ERROR=Kon nie die voorreg skrap nie
+XP_JAVA_CERT_NOT_EXISTS_ERROR=Die hoofelement het nie 'n sertifikaat nie
+SEC_ERROR_BAD_EXPORT_ALGORITHM=Vereiste algoritme nie toegelaat nie.
+SEC_ERROR_EXPORTING_CERTIFICATES=Kon nie sertifikate probeer uitvoer nie.
+SEC_ERROR_IMPORTING_CERTIFICATES=Kon nie sertifikate probeer invoer nie.
+SEC_ERROR_PKCS12_DECODING_PFX=Kon nie invoer nie. Dekodeerfout. Lêer nie geldig nie.
+SEC_ERROR_PKCS12_INVALID_MAC=Kon nie invoer nie. Ongeldige MAC. Verkeerde wagwoord of korrupte lêer.
+SEC_ERROR_PKCS12_UNSUPPORTED_MAC_ALGORITHM=Kon nie invoer nie. Werk nie met MAC-algoritme nie.
+SEC_ERROR_PKCS12_UNSUPPORTED_TRANSPORT_MODE=Kon nie invoer nie. Werk net met wagwoordintegriteit- en privaatheidmodusse.
+SEC_ERROR_PKCS12_CORRUPT_PFX_STRUCTURE=Kon nie invoer nie. Lêerstruktuur is korrup.
+SEC_ERROR_PKCS12_UNSUPPORTED_PBE_ALGORITHM=Kon nie invoer nie. Werk nie met enkripsiealgoritme nie.
+SEC_ERROR_PKCS12_UNSUPPORTED_VERSION=Kon nie invoer nie. Werk nie met lêerweergawe nie.
+SEC_ERROR_PKCS12_PRIVACY_PASSWORD_INCORRECT=Kon nie invoer nie. Verkeerde privaatheidwagwoord.
+SEC_ERROR_PKCS12_CERT_COLLISION=Kon nie invoer nie. Dieselfde bynaam bestaan reeds in databasis.
+SEC_ERROR_USER_CANCELLED=Die gebruiker het 'kanselleer' gedruk.
+SEC_ERROR_PKCS12_DUPLICATE_DATA=Nie ingevoer nie, reeds in databasis.
+SEC_ERROR_MESSAGE_SEND_ABORTED=Boodskap nie gestuur nie.
+SEC_ERROR_INADEQUATE_KEY_USAGE=Sertifikaatsleutelgebruik onvoldoende vir gepoogde werking.
+SEC_ERROR_INADEQUATE_CERT_TYPE=Sertifikaattipe nie vir toepassing goedgekeur.
+SEC_ERROR_CERT_ADDR_MISMATCH=Adres in ondertekende sertifikaat pas nie by adres in boodskapkop nie.
+SEC_ERROR_PKCS12_UNABLE_TO_IMPORT_KEY=Kon nie invoer nie. Kon nie private sleutel probeer invoer nie.
+SEC_ERROR_PKCS12_IMPORTING_CERT_CHAIN=Kon nie invoer nie. Kon nie sertifikaatketting invoer nie.
+SEC_ERROR_PKCS12_UNABLE_TO_LOCATE_OBJECT_BY_NAME=Kon nie uitvoer nie. Kon nie sertifikaat of sleutel volgens bynaam vind nie.
+SEC_ERROR_PKCS12_UNABLE_TO_EXPORT_KEY=Kon nie uitvoer nie. Kon nie private sleutel vind en uitvoer nie.
+SEC_ERROR_PKCS12_UNABLE_TO_WRITE=Kon nie uitvoer nie. Kon nie die uitvoerlêer skryf nie.
+SEC_ERROR_PKCS12_UNABLE_TO_READ=Kon nie invoer nie. Kon nie die invoerlêer lees nie.
+SEC_ERROR_PKCS12_KEY_DATABASE_NOT_INITIALIZED=Kon nie uitvoer nie. Sleuteldatabasis korrup of geskrap.
+SEC_ERROR_KEYGEN_FAIL=Kon nie publieke-/privatesleutel-paar genereer nie.
+SEC_ERROR_INVALID_PASSWORD=Ingetikte wagwoord is ongeldig. Kies asseblief 'n ander een.
+SEC_ERROR_RETRY_OLD_PASSWORD=Ou wagwoord verkeerd ingetik. Probeer gerus weer.
+SEC_ERROR_BAD_NICKNAME='n Sleutel met dieselfde bynaam bestaan reeds.
+SEC_ERROR_NOT_FORTEZZA_ISSUER=Eweknie FORTEZZA-ketting het 'n nie-FORTEZZA-sertifikaat.
+SEC_ERROR_CANNOT_MOVE_SENSITIVE_KEY='n Sensitiewe sleutel kan nie na die gleuf geskuif word waar dit nodig is nie.
+SEC_ERROR_JS_INVALID_MODULE_NAME=Ongeldige modulenaam.
+SEC_ERROR_JS_INVALID_DLL=Ongeldige modulepad/-naam.
+SEC_ERROR_JS_ADD_MOD_FAILURE=Kon nie module byvoeg nie
+SEC_ERROR_JS_DEL_MOD_FAILURE=Kon nie module skrap nie
+SEC_ERROR_OLD_KRL=Nuwe KRL is nie ouer as die huidige een nie.
+SEC_ERROR_CKL_CONFLICT=Nuwe CKL het ander uitreiker as huidige CKL. Skrap huidige CKL.
+SEC_ERROR_CERT_NOT_IN_NAME_SPACE=Die sertifiserende owerheid vir hierdie sertifikaat mag nie 'n sertifikaat met hierdie naam uitreik nie.
+SEC_ERROR_KRL_NOT_YET_VALID=Die sleutelopheffingslys vir hierdie sertifikaat is nog nie geldig nie.
+SEC_ERROR_CRL_NOT_YET_VALID=Die sertifikaatopheffingslys vir hierdie sertifikaat is nog nie geldig nie.
+SEC_ERROR_UNKNOWN_CERT=Kon nie die aangevraagde sertifikaat vind nie.
+SEC_ERROR_UNKNOWN_SIGNER=Kon nie die ondertekenaar se sertifikaat vind nie.
+SEC_ERROR_CERT_BAD_ACCESS_LOCATION=Die ligging vir die sertifikaatstatusbediener het 'n ongeldige formaat.
+SEC_ERROR_OCSP_UNKNOWN_RESPONSE_TYPE=Die OCSP-respons kan nie ten volle gedekodeer word nie, want dis van 'n onbekende tipe.
+SEC_ERROR_OCSP_BAD_HTTP_RESPONSE=Die OCSP-bediener het onverwagse/ongeldige HTTP-data gelewer.
+SEC_ERROR_OCSP_MALFORMED_REQUEST=Volgens die OCSP-bediener is die versoek korrup of nie behoorlik gevorm nie.
+SEC_ERROR_OCSP_SERVER_ERROR=Die OCSP-bediener het 'n interne probleem ervaar.
+SEC_ERROR_OCSP_TRY_SERVER_LATER=Die OCSP-bediener stel voor dat u later weer probeer.
+SEC_ERROR_OCSP_REQUEST_NEEDS_SIG=Die OCSP-bediener vereis 'n handtekening vir hierdie versoek.
+SEC_ERROR_OCSP_UNAUTHORIZED_REQUEST=Die OCSP-bediener het hierdie versoek van die hand gewys as ongemagtig.
+SEC_ERROR_OCSP_UNKNOWN_RESPONSE_STATUS=Die OCSP-bediener het 'n nieherkenbare status gelewer.
+SEC_ERROR_OCSP_UNKNOWN_CERT=Die OCSP-bediener het geen status vir die sertifikaat nie.
+SEC_ERROR_OCSP_NOT_ENABLED=U moet OCSP aktiveer voor u hierdie bewerking kan doen.
+SEC_ERROR_OCSP_NO_DEFAULT_RESPONDER=U moet die OCSP se verstek antwoorde opstel voor u hierdie bewerking kan doen.
+SEC_ERROR_OCSP_MALFORMED_RESPONSE=Die respons van die OCSP-bediener was korrup of nie behoorlik gevorm nie.
+SEC_ERROR_OCSP_UNAUTHORIZED_RESPONSE=Die ondertekenaar van die OCSP-respons is nie gemagtig om status vir hierdie sertifikaat te gee nie.
+SEC_ERROR_OCSP_FUTURE_RESPONSE=Die OCSP-respons is nog nie geldig nie (bevat 'n datum in die toekoms).
+SEC_ERROR_OCSP_OLD_RESPONSE=Die OCSP-respons bevat verouderde inligting.
+SEC_ERROR_DIGEST_NOT_FOUND=Kon nie die CMS of PKCS #7 Digest in die ondertekende boodskap vind nie.
+SEC_ERROR_UNSUPPORTED_MESSAGE_TYPE=Werk nie met CMS of die PKCS #7 Message-tipe nie.
+SEC_ERROR_MODULE_STUCK=Kon nie PKCS #11-module verwyder nie want dit is nog in gebruik.
+SEC_ERROR_BAD_TEMPLATE=Kon nie ASN.1-data dekodeer nie. Gespesifiseerde sjabloon was ongeldig.
+SEC_ERROR_CRL_NOT_FOUND=Kon geen passende SOL vind nie.
+SEC_ERROR_REUSED_ISSUER_AND_SERIAL=U het probeer om 'n sertifikaat in te voer met dieselfde uitreiker/reeksnommer as 'n bestaande sertifikaat, maar dit is nie dieselfde sertifikaat nie.
+SEC_ERROR_BUSY=NNS kon nie afskakel nie. Objekte is nog in gebruik.
+SEC_ERROR_EXTRA_INPUT=DER-geënkodeerde boodskap het ekstra ongebruikte data bevat.
+SEC_ERROR_UNSUPPORTED_ELLIPTIC_CURVE=Nieondersteunde elliptiese kurwe.
+SEC_ERROR_UNSUPPORTED_EC_POINT_FORM=Nieondersteunde elliptiesekurwe-puntvorm.
+SEC_ERROR_UNRECOGNIZED_OID=Nieherkende objekidentifiseerder.
+SEC_ERROR_OCSP_INVALID_SIGNING_CERT=Ongeldige OCSP-ondertekenende sertifikaat in OCSP-respons.
+SEC_ERROR_REVOKED_CERTIFICATE_CRL=Sertifikaat is opgehef in uitreiker se sertifikaatopheffingslys.
+SEC_ERROR_REVOKED_CERTIFICATE_OCSP=Volgens die uitreiker se OCSP-antwoorder is die sertifikaat opgehef.
+SEC_ERROR_CRL_INVALID_VERSION=Die uitreiker se sertifikaatopheffingslys het 'n onbekende weergawenommer.
+SEC_ERROR_CRL_V1_CRITICAL_EXTENSION=Uitreiker se V1-sertifikaatopheffingslys het 'n kritieke uitbreiding.
+SEC_ERROR_CRL_UNKNOWN_CRITICAL_EXTENSION=Uitreiker se V2-sertifikaatopheffingslys het 'n onbekende kritieke uitbreiding.
+SEC_ERROR_UNKNOWN_OBJECT_TYPE=Onbekende objektipe gespesifiseer.
+SEC_ERROR_INCOMPATIBLE_PKCS11=PKCS #11-drywer oortree die spesifikasie op 'n onversoenbare manier.
+SEC_ERROR_NO_EVENT=Geen nuwe gleufgebeurtenis is op dié oomblik beskikbaar nie.
+SEC_ERROR_CRL_ALREADY_EXISTS=SOL bestaan reeds.
+SEC_ERROR_NOT_INITIALIZED=NSS is nie geïnisialiseer nie.
+SEC_ERROR_TOKEN_NOT_LOGGED_IN=Die bewerking het misluk omdat dit PKCS #11-teken nie aangemeld is nie.
+SEC_ERROR_OCSP_RESPONDER_CERT_INVALID=Opgestelde OCSP-antwoorder se sertifikaat is ongeldig.
+SEC_ERROR_OCSP_BAD_SIGNATURE=OCSP-respons het 'n ongeldige handtekening.
+SEC_ERROR_OUT_OF_SEARCH_LIMITS=Sertifikaatvalidering-soektog is buite die soekperke.
+SEC_ERROR_INVALID_POLICY_MAPPING=Beleidkartering bevat enigebeleid
+SEC_ERROR_POLICY_VALIDATION_FAILED=Sertifikaatketting kon nie beleidvalidering slaag nie
+SEC_ERROR_UNKNOWN_AIA_LOCATION_TYPE=Onbekende liggingtipe in sertifikaat se AIA-uitbreiding
+SEC_ERROR_BAD_HTTP_RESPONSE=Bediener het swak HTTP-respons gelewer
+SEC_ERROR_BAD_LDAP_RESPONSE=Bediener het swak LDAP-respons gelewer
+SEC_ERROR_FAILED_TO_ENCODE_DATA=Kon nie data met ASN1-enkodeerder enkodeer nie
+SEC_ERROR_BAD_INFO_ACCESS_LOCATION=Swak inligtingtoegang-ligging in sertifikaatuitbreiding
+SEC_ERROR_LIBPKIX_INTERNAL=Interne libpkix-fout het tydens sertifikaatvalidering voorgekom.
+SEC_ERROR_PKCS11_GENERAL_ERROR='n PKCS #11-module het CKR_GENERAL_ERROR aangegee, wat aandui dat 'n onherwinbare fout voorgekom het.
+SEC_ERROR_PKCS11_FUNCTION_FAILED='n PKCS #11-module het CKR_FUNCTION_FAILED aangegee, wat aandui dat die aangevraagde funksie nie uitgevoer kon word nie. Probeer dieselfde bewerking weer, want dalk werk dit dan.
+SEC_ERROR_PKCS11_DEVICE_ERROR='n PKCS #11-module het CKR_DEVICE_ERROR aangegee, wat aandui dat 'n probleem met die teken of gleuf voorgekom het.
+SEC_ERROR_BAD_INFO_ACCESS_METHOD=Onbekende inligtingtoegangmetode in sertifikaatuitbreiding.
+SEC_ERROR_CRL_IMPORT_FAILED=Kon nie 'n SOL probeer invoer nie.
+SEC_ERROR_EXPIRED_PASSWORD=Die wagwoord het verval.
+SEC_ERROR_LOCKED_PASSWORD=Die wagwoord is vasgesluit.
+SEC_ERROR_UNKNOWN_PKCS11_ERROR=Onbekende PKCS #11-fout.
+MOZILLA_PKIX_ERROR_INADEQUATE_KEY_SIZE=Die bediener het 'n sertifikaat aangebied met 'n sleutelgrootte wat te klein is om 'n veilige verbinding te skep.
+MOZILLA_PKIX_ERROR_NOT_YET_VALID_CERTIFICATE=Die bediener het 'n sertifikaat aangebied wat nog nie geldig is nie.
+MOZILLA_PKIX_ERROR_NOT_YET_VALID_ISSUER_CERTIFICATE='n Sertifikaat wat nog nie geldig is nie is gebruik om die bediener se sertifikaat uit te reik.
+
+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_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_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_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_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/af/chrome/af/locale/af/pipnss/pipnss.properties b/thunderbird-l10n/af/chrome/af/locale/af/pipnss/pipnss.properties
new file mode 100644
index 0000000000..3e23aad8ad
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/pipnss/pipnss.properties
@@ -0,0 +1,150 @@
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 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=Ingeboude wortelmodule
+# 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=PSB- interne kriptografiedienste
+# LOCALIZATION NOTE (TokenDescription): string limit is 32 bytes after
+# conversion to UTF-8.
+# length_limit = 32 bytes
+TokenDescription=Generiese kriptografiedienste
+# LOCALIZATION NOTE (PrivateTokenDescription): string limit is 32 bytes after
+# conversion to UTF-8.
+# length_limit = 32 bytes
+PrivateTokenDescription=Sagtewaresekuriteitstoestel
+# LOCALIZATION NOTE (SlotDescription): string limit is 64 bytes after conversion
+# to UTF-8.
+# length_limit = 64 bytes
+SlotDescription=PSB- interne FIPS-140-1-kriptografiedienste
+# LOCALIZATION NOTE (PrivateSlotDescription): string limit is 64 bytes after
+# conversion to UTF-8.
+# length_limit = 64 bytes
+PrivateSlotDescription=PSB- private sleutels
+# LOCALIZATION NOTE (Fips140TokenDescription): string limit is 32 bytes after
+# conversion to UTF-8.
+# length_limit = 32 bytes
+# LOCALIZATION NOTE (Fips140SlotDescription): string limit is 64 bytes after
+# conversion to UTF-8.
+# length_limit = 64 bytes
+Fips140SlotDescription=FIPS 140-kriptografiese, sleutel- en sertifikaatdienste
+
+# 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 se %2$s-ID
+
+CertDumpKUSign=Ondertekening
+CertDumpKUNonRep=Nieontkenning
+CertDumpKUEnc=Sleutelversyfering
+CertDumpKUDEnc=Dataversyfering
+CertDumpKUKA=Sleutelooreenkoms
+CertDumpKUCertSign=Sertifikaatondertekenaar
+CertDumpKUCRLSigner=SOL-ondertekenaar
+
+PSMERR_SSL_Disabled=Kan nie beveilig koppel nie omdat die SSL-protokol gedeaktiveer is.
+PSMERR_SSL2_Disabled=Kan nie beveilig koppel nie omdat die werf 'n ouer, onveilige weergawe van die SSL-protokol gebruik.
+PSMERR_HostReusedIssuerSerial=U het 'n ongeldige sertifikaat ontvang. Kontak die bedieneradministrateur of e-poskorrespondent en gee aan hulle die volgende inligting:\n\nU sertifikaat het dieselfde reeksnommer as 'n ander sertifikaat wat deur die sertifikaatowerheid uitgereik is. Kry 'n nuwe sertifikaat wat 'n unieke reeksnommer het.
+
+# LOCALIZATION NOTE (SSLConnectionErrorPrefix2): %1$S is the host string, %2$S is more detailed information (localized as well).
+
+certErrorIntro=%S gebruik 'n ongeldige sekuriteitsertifikaat.
+
+certErrorTrust_SelfSigned=Die sertifikaat word nie vertrou nie omdat dit selfonderteken is.
+certErrorTrust_UnknownIssuer=Die sertifikaat word nie vertrou nie omdat die uitreikersertifikaat onbekend is.
+certErrorTrust_UnknownIssuer2=Dalk stuur die bediener nie die toepaslike intermediêre sertifikate nie.
+certErrorTrust_UnknownIssuer3='n Verdere wortelsertifikaat moet dalk ingevoer word.
+# LOCALIZATION NOTE (certErrorTrust_UnknownIssuer6): %1$S is replaced by the brand name, %2$S is replaced by host name.
+certErrorTrust_CaInvalid=Die sertifikaat word nie vertrou nie omdat dit deur 'n ongeldige SO-sertifikaat uitgereik is.
+certErrorTrust_Issuer=Die sertifikaat word nie vertrou nie omdat die uitreikersertifikaat nie vertrou word nie.
+certErrorTrust_SignatureAlgorithmDisabled=Die sertifikaat word nie vertrou nie omdat dit geteken is met 'n handtekeningalgoritme wat gedeaktiveer is omdat daardie algoritme nie veilig is nie.
+certErrorTrust_ExpiredIssuer=Die sertifikaat word nie vertrou nie omdat die uitreikersertifikaat verval het.
+certErrorTrust_Untrusted=Die sertifikaat kom nie van 'n vertroude bron nie.
+
+certErrorMismatch=Die sertifikaat is nie geldig vir die naam %S nie.
+# LOCALIZATION NOTE (certErrorMismatch3, certErrorMismatchSinglePrefix3, certErrorMismatchMultiple3): %1$S is replaced by the brand name, %2$S is replaced by host name.
+# LOCALIZATION NOTE (certErrorMismatchSinglePrefix): %S is replaced by the domain for which the certificate is valid
+certErrorMismatchMultiple=Die sertifikaat is net geldig vir die volgende name:
+
+# LOCALIZATION NOTE (certErrorExpiredNow): Do not translate %1$S (date+time of expired certificate) or %2$S (current date+time)
+certErrorExpiredNow=Die sertifikaat het verval op %1$S. Die huidige tyd is %2$S.
+
+
+# LOCALIZATION NOTE (certErrorNotYetValidNow): Do not translate %1$S (date+time certificate will become valid) or %2$S (current date+time)
+certErrorNotYetValidNow=Die sertifikaat is eers geldig op %1$S. Die huidige tyd is %2$S.
+
+
+# LOCALIZATION NOTE (certErrorMitM2): %S is brandShortName
+# LOCALIZATION NOTE (certErrorMitM3): %S is brandShortName
+
+# LOCALIZATION NOTE (certErrorSymantecDistrustDescription1): %S will be replaced by the domain for which the certificate is valid.
+
+
+# LOCALIZATION NOTE (certErrorCodePrefix3): %S is replaced by the error code.
+
+P12DefaultNickname=Ingevoerde sertifikaat
+CertUnknown=Onbekend
+CertNoEmailAddress=(geen e-posadres)
+CaCertExists=Hierdie sertifikaat is reeds geïnstalleer as 'n sertifikaatowerheid.
+NotACACert=Hierdie is nie 'n sertifikaatowerheid-sertifikaat nie, daarom kan dit nie in die sertifikaatowerheidlys ingevoer word nie.
+UserCertIgnoredNoPrivateKey=Hierdie persoonlike sertifikaat kan nie geïnstalleer word nie omdat u nie die ooreenstemmende private sleutel besit wat geskep is toe die sertifikaat aangevra is nie.
+UserCertImported=U persoonlike sertifikaat is geïnstalleer. U behoort 'n dekkopie van hierdie sertifikaat te maak.
+CertOrgUnknown=(Onbekend)
+CertNotStored=(Nie gestoor nie)
+CertExceptionPermanent=Permanent
+CertExceptionTemporary=Tydelik
+
+CertPasswordPrompt=Please enter the password for the PKCS#11 token %S.
+CertPasswordPromptDefault=Please enter your Primary Password.
+# LOCALIZATION NOTE (Fips140TokenDescription): string limit is 32 bytes after
+# conversion to UTF-8.
+# length_limit = 32 bytes
+Fips140TokenDescription=Software Security Device (FIPS)
+# 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
+certErrorTrust_MitM=Your connection is being intercepted by a TLS proxy. Uninstall it if possible or configure your device to trust its root certificate.
+# LOCALIZATION NOTE (certErrorMismatchSinglePrefix): %S is replaced by the domain for which the certificate is valid
+certErrorMismatchSinglePrefix=The certificate is only valid for %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
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/pippki/pippki.properties b/thunderbird-l10n/af/chrome/af/locale/af/pippki/pippki.properties
new file mode 100644
index 0000000000..b8de7af541
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/pippki/pippki.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/.
+
+# Download Cert dialog
+# LOCALIZATION NOTE(newCAMessage1):
+# %S is a string representative of the certificate being downloaded/imported.
+newCAMessage1=Wil u "%S" vertrou vir die volgende doeleindes?
+unnamedCA=Sertifikaatowerheid (onbenoemd)
+
+# PKCS#12 file dialogs
+getPKCS12FilePasswordMessage=Tik die wagwoord in wat gebruik is om hierdie sertifikaatrugsteun mee te enkripteer:
+
+# Client auth
+clientAuthRemember=Onthou hierdie besluit
+# 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=Organisasie: "%S"
+# LOCALIZATION NOTE(clientAuthMessage2): %S is the Organization of the issuer
+# cert of the server cert.
+clientAuthMessage2=Uitgereik onder: "%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=Uitgereik aan: %1$S
+# LOCALIZATION NOTE(clientAuthSerial): %1$S is the serial number of the selected
+# cert in AA:BB:CC hex format.
+clientAuthSerial=Reeksnommer: %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=Geldig vanaf %1$S tot %2$S
+# LOCALIZATION NOTE(clientAuthKeyUsages): %1$S is a comma separated list of
+# already localized key usages the selected cert is valid for.
+clientAuthKeyUsages=Belangrike gebruike: %1$S
+# LOCALIZATION NOTE(clientAuthEmailAddresses): %1$S is a comma separated list of
+# e-mail addresses the selected cert is valid for.
+clientAuthEmailAddresses=E-posadresse: %1$S
+# LOCALIZATION NOTE(clientAuthIssuedBy): %1$S is the Distinguished Name of the
+# cert which issued the selected cert.
+clientAuthIssuedBy=Uitgereik deur: %1$S
+# LOCALIZATION NOTE(clientAuthStoredOn): %1$S is the name of the PKCS #11 token
+# the selected cert is stored on.
+clientAuthStoredOn=Gestoor op: %1$S
+
+# Page Info
+pageInfo_NoEncryption=Verbinding nie geënkripteer nie
+pageInfo_Privacy_None1=Die webwerf %S ondersteun nie enkripsie vir die bladsy wat u bekyk nie.
+pageInfo_Privacy_None2=Inligting wat sonder enkripsie oor die internet gestuur word, kan deur ander mense gesien word terwyl dit gestuur word.\u0020
+pageInfo_Privacy_None4=Die bladsy wat u bekyk, is nié geënkripteer voor dit oor die internet versend is nie.
+# 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=Verbinding geënkripteer (%1$S, %2$S-bissleutel, %3$S)
+pageInfo_BrokenEncryption=Gebreekte enkripsie (%1$S, %2$S-bissleutel, %3$S)
+pageInfo_Privacy_Encrypted1=Die bladsy wat u bekyk, is geënkripteer voor dit oor die internet versend is.
+pageInfo_Privacy_Encrypted2=Enkripsie maak dit moeilik vir ongemagtigde mense om inligting wat tussen rekenaars beweeg, te bekyk. Dit is dus onwaarskynlik dat enige iemand hierdie bladsy lees wanneer dit oor die netwerk oorgedra word.
+pageInfo_MixedContent=Verbinding gedeeltelik geënkripteer
+pageInfo_MixedContent2=Dele van die bladsy wat u bekyk, is nie geënkripteer voor dit oor die internet versend is nie.
+pageInfo_WeakCipher=U verbinding aan dié webwerf gebruik swak enkripsie en is nie privaat nie. Ander mense kan u inligting sien of die webwerf se gedrag wysig.
+pageInfo_CertificateTransparency_Compliant=Dié webwerf voldoen aan die beleid vir sertifikaatdeursigtigheid.
+
+# Token Manager
+password_not_set=(nie opgestel)
+enable_fips=Aktiveer FIPS
+
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/places/places.properties b/thunderbird-l10n/af/chrome/af/locale/af/places/places.properties
new file mode 100644
index 0000000000..c36d84b44d
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/af/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=Boekmerke-kieslys
+BookmarksToolbarFolderTitle=Boekmerknutsbalk
+OtherBookmarksFolderTitle=Ander boekmerke
+TagsFolderTitle=Merkers
+MobileBookmarksFolderTitle=Selfoonboekmerke
+
+OrganizerQueryHistory=Geskiedenis
+OrganizerQueryDownloads=Afgelaaide items
+OrganizerQueryAllBookmarks=Alle boekmerke
+
+# LOCALIZATION NOTE :
+# These are used to generate history containers when history is grouped by date
+finduri-AgeInDays-is-0=Vandag
+finduri-AgeInDays-is-1=Gister
+finduri-AgeInDays-is=%S dae gelede
+finduri-AgeInDays-last-is=Afgelope %S dae
+finduri-AgeInDays-isgreater=Ouer as %S dae
+finduri-AgeInMonths-is-0=Vandeesmaand
+finduri-AgeInMonths-isgreater=Ouer as %S maande
+
+# LOCALIZATION NOTE (localhost):
+# This is used to generate local files container when history is grouped by site
+localhost=(plaaslike lêers)
+
+# LOCALIZATION NOTE (backupFileSizeText):
+# 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/af/chrome/af/locale/branding/brand.dtd b/thunderbird-l10n/af/chrome/af/locale/branding/brand.dtd
new file mode 100644
index 0000000000..0ed7d84857
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/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/af/chrome/af/locale/branding/brand.properties b/thunderbird-l10n/af/chrome/af/locale/branding/brand.properties
new file mode 100644
index 0000000000..9dd5011219
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/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/af/chrome/af/locale/pdfviewer/chrome.properties b/thunderbird-l10n/af/chrome/af/locale/pdfviewer/chrome.properties
new file mode 100644
index 0000000000..6c24dd5629
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/pdfviewer/chrome.properties
@@ -0,0 +1,21 @@
+# 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=Dié PDF-dokument sal dalk nie korrek vertoon word nie.
+unsupported_feature_forms=Dié PDF-dokument bevat vorms. Die invul van vormvelde word nie ondersteun nie.
+open_with_different_viewer=Open met 'n ander program
+open_with_different_viewer.accessKey=O
+
+unsupported_feature_signatures=This PDF document contains digital signatures. Validation of signatures is not supported.
diff --git a/thunderbird-l10n/af/chrome/af/locale/pdfviewer/viewer.properties b/thunderbird-l10n/af/chrome/af/locale/pdfviewer/viewer.properties
new file mode 100644
index 0000000000..8fbf0d788b
--- /dev/null
+++ b/thunderbird-l10n/af/chrome/af/locale/pdfviewer/viewer.properties
@@ -0,0 +1,251 @@
+# 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=Vorige bladsy
+previous_label=Vorige
+next.title=Volgende bladsy
+next_label=Volgende
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Bladsy
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=van {{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}} van {{pagesCount}})
+
+zoom_out.title=Zoem uit
+zoom_out_label=Zoem uit
+zoom_in.title=Zoem in
+zoom_in_label=Zoem in
+zoom.title=Zoem
+presentation_mode.title=Wissel na voorleggingsmodus
+presentation_mode_label=Voorleggingsmodus
+open_file.title=Open lêer
+open_file_label=Open
+print.title=Druk
+print_label=Druk
+
+# Secondary toolbar and context menu
+tools.title=Nutsgoed
+tools_label=Nutsgoed
+first_page.title=Gaan na eerste bladsy
+first_page_label=Gaan na eerste bladsy
+last_page.title=Gaan na laaste bladsy
+last_page_label=Gaan na laaste bladsy
+page_rotate_cw.title=Roteer kloksgewys
+page_rotate_cw_label=Roteer kloksgewys
+page_rotate_ccw.title=Roteer anti-kloksgewys
+page_rotate_ccw_label=Roteer anti-kloksgewys
+
+cursor_text_select_tool.title=Aktiveer gereedskap om teks te merk
+cursor_text_select_tool_label=Teksmerkgereedskap
+cursor_hand_tool.title=Aktiveer handjie
+cursor_hand_tool_label=Handjie
+
+# Document properties dialog box
+document_properties.title=Dokumenteienskappe…
+document_properties_label=Dokumenteienskappe…
+document_properties_file_name=Lêernaam:
+document_properties_file_size=Lêergrootte:
+# 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}} kG ({{size_b}} grepe)
+# 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}} MG ({{size_b}} grepe)
+document_properties_title=Titel:
+document_properties_author=Outeur:
+document_properties_subject=Onderwerp:
+document_properties_keywords=Sleutelwoorde:
+document_properties_creation_date=Skeppingsdatum:
+document_properties_modification_date=Wysigingsdatum:
+# 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=Skepper:
+document_properties_producer=PDF-vervaardiger:
+document_properties_version=PDF-weergawe:
+document_properties_page_count=Aantal bladsye:
+document_properties_close=Sluit
+
+print_progress_message=Berei tans dokument voor om te druk…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Kanselleer
+
+# 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=Sypaneel aan/af
+toggle_sidebar_label=Sypaneel aan/af
+document_outline.title=Wys dokumentskema (dubbelklik om alle items oop/toe te vou)
+document_outline_label=Dokumentoorsig
+attachments.title=Wys aanhegsels
+attachments_label=Aanhegsels
+thumbs.title=Wys duimnaels
+thumbs_label=Duimnaels
+findbar.title=Soek in dokument
+findbar_label=Vind
+
+# 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=Bladsy {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Duimnael van bladsy {{page}}
+
+# Find panel button title and messages
+find_input.title=Vind
+find_input.placeholder=Soek in dokument…
+find_previous.title=Vind die vorige voorkoms van die frase
+find_previous_label=Vorige
+find_next.title=Vind die volgende voorkoms van die frase
+find_next_label=Volgende
+find_highlight=Verlig almal
+find_match_case_label=Kassensitief
+find_reached_top=Bokant van dokument is bereik; gaan voort van onder af
+find_reached_bottom=Einde van dokument is bereik; gaan voort van bo af
+find_not_found=Frase nie gevind nie
+
+# Predefined zoom values
+page_scale_width=Bladsywydte
+page_scale_fit=Pas bladsy
+page_scale_auto=Outomatiese zoem
+page_scale_actual=Werklike grootte
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+loading_error='n Fout het voorgekom met die laai van die PDF.
+invalid_file_error=Ongeldige of korrupte PDF-lêer.
+missing_file_error=PDF-lêer is weg.
+unexpected_response_error=Onverwagse antwoord van bediener.
+
+rendering_error='n Fout het voorgekom toe die bladsy weergegee is.
+
+# 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}}-annotasie]
+password_label=Gee die wagwoord om dié PDF-lêer mee te open.
+password_invalid=Ongeldige wagwoord. Probeer gerus weer.
+password_ok=OK
+password_cancel=Kanselleer
+
+printing_not_supported=Waarskuwing: Dié blaaier ondersteun nie drukwerk ten volle nie.
+printing_not_ready=Waarskuwing: Die PDF is nog nie volledig gelaai vir drukwerk nie.
+web_fonts_disabled=Webfonte is gedeaktiveer: kan nie PDF-fonte wat ingebed is, gebruik nie.
+
+
+save.title=Save
+save_label=Save
+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
+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_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
+toggle_sidebar_notification2.title=Toggle Sidebar (document contains outline/attachments/layers)
+layers.title=Show Layers (double-click to reset all layers to the default state)
+layers_label=Layers
+current_outline_item.title=Find Current Outline Item
+current_outline_item_label=Current Outline Item
+additional_layers=Additional Layers
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Page {{page}}
+find_match_diacritics_label=Match Diacritics
+find_entire_word_label=Whole Words
+# 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
+# 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}}
+# Editor
+editor_free_text2.title=Text
+editor_free_text2_label=Text
+editor_ink2.title=Draw
+editor_ink2_label=Draw
+free_text2_default_content=Start typing…
+# Editor Parameters
+editor_free_text_color=Color
+editor_free_text_size=Size
+editor_ink_color=Color
+editor_ink_thickness=Thickness
+editor_ink_opacity=Opacity
+# 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/af/localization/af/browser/appExtensionFields.ftl b/thunderbird-l10n/af/localization/af/browser/appExtensionFields.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/browser/appExtensionFields.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/af/localization/af/browser/branding/brandings.ftl b/thunderbird-l10n/af/localization/af/browser/branding/brandings.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/browser/branding/brandings.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/af/localization/af/browser/components/mozSupportLink.ftl b/thunderbird-l10n/af/localization/af/browser/components/mozSupportLink.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/browser/components/mozSupportLink.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/af/localization/af/calendar/calendar-context-menus.ftl b/thunderbird-l10n/af/localization/af/calendar/calendar-context-menus.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/calendar-context-menus.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/af/localization/af/calendar/calendar-delete-prompt.ftl b/thunderbird-l10n/af/localization/af/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/calendar-delete-prompt.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/af/localization/af/calendar/calendar-editable-item.ftl b/thunderbird-l10n/af/localization/af/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/calendar-editable-item.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/af/localization/af/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/af/localization/af/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/calendar-event-dialog-reminder.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/af/localization/af/calendar/calendar-ics-file-dialog.ftl b/thunderbird-l10n/af/localization/af/calendar/calendar-ics-file-dialog.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/calendar-ics-file-dialog.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/af/localization/af/calendar/calendar-invitation-panel.ftl b/thunderbird-l10n/af/localization/af/calendar/calendar-invitation-panel.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/calendar-invitation-panel.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/af/localization/af/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/af/localization/af/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/calendar-invitations-dialog.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/af/localization/af/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/af/localization/af/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/calendar-itip-identity-dialog.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/af/localization/af/calendar/calendar-print.ftl b/thunderbird-l10n/af/localization/af/calendar/calendar-print.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/calendar-print.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/af/localization/af/calendar/calendar-recurrence-dialog.ftl b/thunderbird-l10n/af/localization/af/calendar/calendar-recurrence-dialog.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/calendar-recurrence-dialog.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/af/localization/af/calendar/calendar-summary-dialog.ftl b/thunderbird-l10n/af/localization/af/calendar/calendar-summary-dialog.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/calendar-summary-dialog.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/af/localization/af/calendar/calendar-uri-redirect-dialog.ftl b/thunderbird-l10n/af/localization/af/calendar/calendar-uri-redirect-dialog.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/calendar-uri-redirect-dialog.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/af/localization/af/calendar/calendar-widgets.ftl b/thunderbird-l10n/af/localization/af/calendar/calendar-widgets.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/calendar-widgets.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/af/localization/af/calendar/category-dialog.ftl b/thunderbird-l10n/af/localization/af/calendar/category-dialog.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/category-dialog.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/af/localization/af/calendar/preferences.ftl b/thunderbird-l10n/af/localization/af/calendar/preferences.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/preferences.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/af/localization/af/crashreporter/aboutcrashes.ftl b/thunderbird-l10n/af/localization/af/crashreporter/aboutcrashes.ftl
new file mode 100644
index 0000000000..1d1e849861
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/crashreporter/aboutcrashes.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/-
+
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = Omvalverslae
+
+delete-confirm-title = Is u seker?
+
+crashes-unsubmitted-label = Oningediende omvalverslae
+id-heading = Verslag-ID
+date-crashed-heading = Datum omgeval
+
+crashes-submitted-label = Ingediende omvalverslae
+date-submitted-heading = Datum ingedien
+
+no-reports-label = Geen omvalverslae is ingedien nie.
+no-config-label = Hierdie toepassing is nie opgestel om omvalverslae te wys nie. Die voorkeur <code>breakpad.reportURL</code> moet gestel word.
diff --git a/thunderbird-l10n/af/localization/af/devtools/client/compatibility.ftl b/thunderbird-l10n/af/localization/af/devtools/client/compatibility.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/devtools/client/compatibility.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/af/localization/af/devtools/client/perftools.ftl b/thunderbird-l10n/af/localization/af/devtools/client/perftools.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/devtools/client/perftools.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/af/localization/af/devtools/client/storage.ftl b/thunderbird-l10n/af/localization/af/devtools/client/storage.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/devtools/client/storage.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/af/localization/af/devtools/client/styleeditor.ftl b/thunderbird-l10n/af/localization/af/devtools/client/styleeditor.ftl
new file mode 100644
index 0000000000..73d8322409
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/devtools/client/styleeditor.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/.
+
+styleeditor-find =
+ .label = Vind
+ .accesskey = V
+styleeditor-find-again =
+ .label = Vind weer
+ .accesskey = e
+
diff --git a/thunderbird-l10n/af/localization/af/devtools/client/toolbox-options.ftl b/thunderbird-l10n/af/localization/af/devtools/client/toolbox-options.ftl
new file mode 100644
index 0000000000..32734c95c7
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/devtools/client/toolbox-options.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/.
+
+
+### Localization for Developer Tools options
+
+
+## Default Developer Tools section
+
+# The label for the heading of the radiobox corresponding to the theme
+options-select-dev-tools-theme-label = Temas
+
+## Inspector section
+
+# The heading
+options-context-inspector = Inspekteur
+
+## "Default Color Unit" options for the Inspector
+
+
+## Style Editor section
+
+# The heading
+options-styleeditor-label = Stylredigeerder
+
+## Screenshot section
+
+
+## Editor section
+
+options-sourceeditor-keybinding-default-label = Verstek
+
+## Advanced section
+
+
+##
+
diff --git a/thunderbird-l10n/af/localization/af/devtools/client/toolbox.ftl b/thunderbird-l10n/af/localization/af/devtools/client/toolbox.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/devtools/client/toolbox.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/af/localization/af/devtools/shared/debugger-paused-reasons.ftl b/thunderbird-l10n/af/localization/af/devtools/shared/debugger-paused-reasons.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/devtools/shared/debugger-paused-reasons.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/af/localization/af/devtools/shared/highlighters.ftl b/thunderbird-l10n/af/localization/af/devtools/shared/highlighters.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/devtools/shared/highlighters.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/af/localization/af/devtools/shared/webconsole-commands.ftl b/thunderbird-l10n/af/localization/af/devtools/shared/webconsole-commands.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/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/af/localization/af/devtools/startup/key-shortcuts.ftl b/thunderbird-l10n/af/localization/af/devtools/startup/key-shortcuts.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/devtools/startup/key-shortcuts.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/af/localization/af/dom/XMLPrettyPrint.ftl b/thunderbird-l10n/af/localization/af/dom/XMLPrettyPrint.ftl
new file mode 100644
index 0000000000..0cbd6ca7fd
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/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 = Dit blyk dat hierdie XML-leêr nie geassosieer is met enige stylinligting nie. Die dokumentboom word hier onder getoon.
diff --git a/thunderbird-l10n/af/localization/af/dom/media.ftl b/thunderbird-l10n/af/localization/af/dom/media.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/dom/media.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/af/localization/af/locales-preview/aboutTranslations.ftl b/thunderbird-l10n/af/localization/af/locales-preview/aboutTranslations.ftl
new file mode 100644
index 0000000000..68e9d8aafd
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/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/af/localization/af/messenger/about3Pane.ftl b/thunderbird-l10n/af/localization/af/messenger/about3Pane.ftl
new file mode 100644
index 0000000000..e55ef03865
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/about3Pane.ftl
@@ -0,0 +1,143 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 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 = Pas filters steeds toe wanneer vouers gewissel word
+# The tooltip for the filter button that causes us to filter results to only
+# include unread messages.
+quick-filter-bar-unread =
+ .title = Wys slegs ongelese boodskappe
+# The label for the filter button that causes us to filter results to only
+# include unread messages.
+quick-filter-bar-unread-label = Ongelees
+# 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 = Wys net 'n gevlagde boodskappe
+# 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 = Gevlag
+# 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 = Wys slegs boodskappe van mense in die adresboek
+# 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 = Kontak
+# 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 = Wys slegs boodskappe met etikette op
+# 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 = Etikette
+# The tooltip for the filter button that causes us to filter results to only
+# include messages with attachments.
+quick-filter-bar-attachment =
+ .title = Wys slegs boodskappe met aanhegsels
+# The label for the filter button that causes us to filter results to only
+# include messages with attachments.
+quick-filter-bar-attachment-label = Aanhegsel
+# 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 = Geen resultate nie
+# 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 } boodskap
+ *[other] { $count } boodskappe
+ }
+# The button label that toggles whether the text filter searches the message
+# sender for the string.
+quick-filter-bar-text-filter-sender = Afsender
+# The button label that toggles whether the text filter searches the message
+# recipients (to, cc) for the string.
+quick-filter-bar-text-filter-recipients = Ontvangers
+# The button label that toggles whether the text filter searches the message
+# subject for the string.
+quick-filter-bar-text-filter-subject = Onderwerp
+# The button label that toggles whether the text filter searches the message
+# body for the string.
+quick-filter-bar-text-filter-body = Lyf
+# 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 = Herhaal dié soektog oor alle vouers heen
+# 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 = Druk weer ‘Enter’ om die soektog te herhaal vir: { $text }
+
+## Folder pane
+
+folder-pane-get-all-messages-menuitem =
+ .label = Kry alle nuwe boodskappe
+ .accesskey = K
+
+## Message thread pane
+
+threadpane-column-label-thread =
+ .label = Draad
+threadpane-column-label-flagged =
+ .label = Gevlag
+threadpane-column-label-attachments =
+ .label = Aanhegsels
+threadpane-column-label-sender =
+ .label = Van
+threadpane-column-label-recipient =
+ .label = Ontvanger
+threadpane-column-label-subject =
+ .label = Onderwerp
+threadpane-column-label-date =
+ .label = Datum
+threadpane-column-label-received =
+ .label = Ontvang
+threadpane-column-label-status =
+ .label = Status
+threadpane-column-label-size =
+ .label = Grootte
+threadpane-column-label-tags =
+ .label = Merker
+threadpane-column-label-account =
+ .label = Rekening
+threadpane-column-label-priority =
+ .label = Prioriteit
+threadpane-column-label-location =
+ .label = Ligging
+threadpane-column-label-id =
+ .label = Volgorde ontvang
+
+## Message state variations
+
+apply-columns-to-menu =
+ .label = Pas kolomme toe op…
+apply-current-view-to-folder =
+ .label = Vouer…
+apply-current-view-to-folder-children =
+ .label = Vouer en sy kinders…
+
+## Apply columns confirmation dialog
+
+# Variables:
+# $name (String): The name of the folder to apply to.
+apply-current-columns-to-folder-message = Pas die huidige vouer se kolomme toe op { $name }?
+# Variables:
+# $name (String): The name of the folder to apply to.
+apply-current-columns-to-folder-with-children-message = Pas die huidige vouer se kolomme toe op { $name } en sy kinders?
diff --git a/thunderbird-l10n/af/localization/af/messenger/aboutAddonsExtra.ftl b/thunderbird-l10n/af/localization/af/messenger/aboutAddonsExtra.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/aboutAddonsExtra.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/af/localization/af/messenger/aboutDialog.ftl b/thunderbird-l10n/af/localization/af/messenger/aboutDialog.ftl
new file mode 100644
index 0000000000..51d4b732ca
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/aboutDialog.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/.
+
+cmd-close-mac-command-key =
+ .key = w
diff --git a/thunderbird-l10n/af/localization/af/messenger/aboutImport.ftl b/thunderbird-l10n/af/localization/af/messenger/aboutImport.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/aboutImport.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/af/localization/af/messenger/aboutProfilesExtra.ftl b/thunderbird-l10n/af/localization/af/messenger/aboutProfilesExtra.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/aboutProfilesExtra.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/af/localization/af/messenger/aboutRights.ftl b/thunderbird-l10n/af/localization/af/messenger/aboutRights.ftl
new file mode 100644
index 0000000000..3a27c0c1b0
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/aboutRights.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/.
+
+rights-title = Aangaande u regte
+rights-intro = { -brand-full-name } is vrye, oop sagteware wat deur 'n gemeenskap van derduisende mense van reg oor die wêreld gebou is. Hier is 'n paar dinge wat u moet weet:
+rights-intro-point-1 = { -brand-short-name } word aan u beskikbaar gestel ingevolge die <a data-l10n-name="mozilla-public-license-link">Mozilla Publieke Lisensie</a>. Dit beteken dat u { -brand-short-name } kan gebruik, kopieer en versprei. U kan ook die bronkode van { -brand-short-name } wysig, as u dit wil, om aan u behoeftes te voldoen. Die Mozilla Publieke Lisensie gee u ook die reg om gewysigde weergawes te versprei.
+rights-intro-point-3 = Sekere kenmerke in { -brand-short-name }, soos die omvalverslaggewer, gee die opsie om terugvoer aan { -vendor-short-name } te gee. As u kies om terugvoer te gee, gee u { -vendor-short-name } toestemming om die terugvoer te gebruik om sy produkte te verbeter, om die terugvoer op sy webwerwe te publiseer, en om die terugvoer te versprei.
+rights-intro-point-4 = Hoe ons u persoonlike inligting en terugvoer gebruik wat aan { -vendor-short-name } deur { -brand-short-name } ingedien is, word beskryf in <a data-l10n-name="mozilla-privacy-policy-link">{ -brand-short-name } se privaatheidbeleid</a>.
+rights-intro-point-5 = Sekere { -brand-short-name }-kenmerke gebruik webgebaseerde inligtingdienste, maar ons kan nie waarborg dat hulle 100% akkuraat of foutvry is nie. Meer inligting oor hoe om die kenmerke wat hierdie dienste gebruik, te deaktiveer, is in die <a data-l10n-name="mozilla-service-terms-link">diensbepalings</a> te kry.
+rights-intro-point-5-unbranded = Indien hierdie produk webdienste bevat, behoort enige toepaslike diensbepalings vir die diens(te) aan die <a data-l10n-name="mozilla-website-services-link">webwerfdienste</a>-afdeling gekoppel wees.
+rights-intro-point-6 = Om sekere soorte video te speel, laai { -brand-short-name } sekere modules vanaf derde partye af vir inhouddekripsie.
+rights-webservices-header = { -brand-full-name } se webgebaseerde inligtingsdienste
+rights-locationawarebrowsing = <strong>Liggingbewuste blaaiery: </strong>werk altyd met vóórtoestemming. Geen ligginginligting word ooit sonder u toestemming gestuur nie. As u die kenmerk volledig wil deaktiveer, volg hierdie stappe:
+rights-locationawarebrowsing-term-1 = In die URL-balk, tik <code>aangaande:konfig</code>
+rights-locationawarebrowsing-term-2 = Tik geo.enabled
+rights-locationawarebrowsing-term-3 = Dubbelkliek die geo.enabled-voorkeur
+rights-locationawarebrowsing-term-4 = Liggingbewuste blaaiery is nou gedeaktiveer
+rights-webservices-unbranded = 'n Oorsig oor die webwerfdienste wat die produk bevat, asook instruksies vir hoe om hulle te deaktiveer, indien van toepassing, behoort hierby ingesluit te wees.
+rights-webservices-term-unbranded = Enige toepaslike diensbepalings vir hierdie produk sal daar gelys wees.
+rights-webservices-term-1 = { -vendor-short-name } en sy bydraers, lisensiegewers en vennote probeer die akkuraatste, mees bygewerkte dienste bied. Ons kan egter nie waarborg dat die inligting omvattend of foutvry is nie. Veiligblaai kan byvoorbeeld nie alle riskante werwe merk nie, en kan ook sekere veilige werwe as onveilig aanmerk. Die liggingbewuste dienste se resultate is ook net by benadering en daarom kan die diensverskaffers nie die resultate waarborg nie.
+rights-webservices-term-2 = { -vendor-short-name } kan die dienste na goeddunke opskort of wysig.
+rights-webservices-term-3 = U is welkom om hierdie dienste te gebruik met die meegaande weergawe van { -brand-short-name }, en { -vendor-short-name } ken u die reg toe om dit te doen. { -vendor-short-name } en sy lisensiegewers behou alle ander regte in die dienste voor. Hierdie bepalings is nie bedoel om enige regte te beperk wat ingevolge oopbron-lisensies toegeken word wat op { -brand-short-name } en ooreenstemmende bronkode-weergawes van { -brand-short-name } van toepassing is nie.
+rights-webservices-term-4 = <strong>Die Dienste word voetstoots verskaf. { -vendor-short-name }, sy bydraers, lisensieerders en verspreiders ontken alle waarborge, hetsy uitdruklik of geïmpliseer, met inbegrip van, sonder beperking, waarborge dat die Dienste verhandelbaar is en geskik is vir u besondere doeleindes. U dra die volle risiko wat betref die keuse van die Dienste vir u doeleindes en die gehalte en prestasie van die Dienste. Sommige owerhede verbied die uitsluiting of beperking van geïmpliseerde waarborge. Hierdie ontkenning is dus moontlik nie op u van toepassing nie.</strong>
+rights-webservices-term-5 = <strong>Tensy die reg dit vereis is { -vendor-short-name } sy bydraers, lisensieerders en verspreiders nie aanspreeklik vir enige indirekte, spesiale, toevallige, gevolg- of bestraffende skadevergoeding wat spruit uit, of op enige manier te doen het met, die gebruik van { -brand-short-name } en die Dienste nie. Die gesamentlike aanspreeklikheid van hierdie bepalings sal nie $500 (vyfhonderd dollars) oorskry nie. Sommige owerhede verbied die uitsluiting of beperking van sekere skadevergoeding. Hierdie uitsluiting is dus moontlik nie op u van toepassing nie.</strong>
+rights-webservices-term-6 = { -vendor-short-name } kan dalk hierdie bepalings van tyd tot tyd bywerk indien nodig. Hierdie bepalings mag nie sonder { -vendor-short-name } se skriftelike toestemming gewysig of gekanselleer word nie.
+rights-webservices-term-7 = Hierdie bepalings word beheer deur die reg van die Staat van Kalifornië, V.S.A., met die uitsluiting van die bepalings in verband met internasionale privaatreg. As beslis word dat enige deel van hierdie bepalings ongeldig of onafdwingbaar is, bly die oorblywende dele ten volle van krag. In die geval waar die vertaalde weergawe in stryd is met die Engelse weergawe van hierdie bepalings, sal die Engelse bepalings geld.
diff --git a/thunderbird-l10n/af/localization/af/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/af/localization/af/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/aboutSupportCalendar.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/af/localization/af/messenger/aboutSupportChat.ftl b/thunderbird-l10n/af/localization/af/messenger/aboutSupportChat.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/aboutSupportChat.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/af/localization/af/messenger/aboutSupportMail.ftl b/thunderbird-l10n/af/localization/af/messenger/aboutSupportMail.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/aboutSupportMail.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/af/localization/af/messenger/accountCentral.ftl b/thunderbird-l10n/af/localization/af/messenger/accountCentral.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/accountCentral.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/af/localization/af/messenger/accountManager.ftl b/thunderbird-l10n/af/localization/af/messenger/accountManager.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/accountManager.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/af/localization/af/messenger/accountProvisioner.ftl b/thunderbird-l10n/af/localization/af/messenger/accountProvisioner.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/accountProvisioner.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/af/localization/af/messenger/accountcreation/accountHub.ftl b/thunderbird-l10n/af/localization/af/messenger/accountcreation/accountHub.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/accountcreation/accountHub.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/af/localization/af/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/af/localization/af/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/accountcreation/accountSetup.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/af/localization/af/messenger/addonNotifications.ftl b/thunderbird-l10n/af/localization/af/messenger/addonNotifications.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/addonNotifications.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/af/localization/af/messenger/addressbook/abCardDAVDialog.ftl b/thunderbird-l10n/af/localization/af/messenger/addressbook/abCardDAVDialog.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/addressbook/abCardDAVDialog.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/af/localization/af/messenger/addressbook/abCardDAVProperties.ftl b/thunderbird-l10n/af/localization/af/messenger/addressbook/abCardDAVProperties.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/addressbook/abCardDAVProperties.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/af/localization/af/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/af/localization/af/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/addressbook/aboutAddressBook.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/af/localization/af/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/af/localization/af/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/addressbook/fieldMapImport.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/af/localization/af/messenger/addressbook/vcard.ftl b/thunderbird-l10n/af/localization/af/messenger/addressbook/vcard.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/addressbook/vcard.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/af/localization/af/messenger/appmenu.ftl b/thunderbird-l10n/af/localization/af/messenger/appmenu.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/appmenu.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/af/localization/af/messenger/chat-verifySession.ftl b/thunderbird-l10n/af/localization/af/messenger/chat-verifySession.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/chat-verifySession.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/af/localization/af/messenger/chat.ftl b/thunderbird-l10n/af/localization/af/messenger/chat.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/chat.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/af/localization/af/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/af/localization/af/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/compactFoldersDialog.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/af/localization/af/messenger/exportDialog.ftl b/thunderbird-l10n/af/localization/af/messenger/exportDialog.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/exportDialog.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/af/localization/af/messenger/extensionPermissions.ftl b/thunderbird-l10n/af/localization/af/messenger/extensionPermissions.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/extensionPermissions.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/af/localization/af/messenger/extensions/popup.ftl b/thunderbird-l10n/af/localization/af/messenger/extensions/popup.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/extensions/popup.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/af/localization/af/messenger/extensionsUI.ftl b/thunderbird-l10n/af/localization/af/messenger/extensionsUI.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/extensionsUI.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/af/localization/af/messenger/firefoxAccounts.ftl b/thunderbird-l10n/af/localization/af/messenger/firefoxAccounts.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/firefoxAccounts.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/af/localization/af/messenger/flatpak.ftl b/thunderbird-l10n/af/localization/af/messenger/flatpak.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/flatpak.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/af/localization/af/messenger/folderprops.ftl b/thunderbird-l10n/af/localization/af/messenger/folderprops.ftl
new file mode 100644
index 0000000000..e7b60fa31d
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/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 }% vol
diff --git a/thunderbird-l10n/af/localization/af/messenger/importDialog.ftl b/thunderbird-l10n/af/localization/af/messenger/importDialog.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/importDialog.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/af/localization/af/messenger/mailWidgets.ftl b/thunderbird-l10n/af/localization/af/messenger/mailWidgets.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/mailWidgets.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/af/localization/af/messenger/menubar.ftl b/thunderbird-l10n/af/localization/af/messenger/menubar.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/menubar.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/af/localization/af/messenger/messageheader/headerFields.ftl b/thunderbird-l10n/af/localization/af/messenger/messageheader/headerFields.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/messageheader/headerFields.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/af/localization/af/messenger/messenger.ftl b/thunderbird-l10n/af/localization/af/messenger/messenger.ftl
new file mode 100644
index 0000000000..fe081d781b
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/messenger.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/.
+
+
+## Window controls
+
+
+## Content tabs
+
+
+# Back
+
+
+# Forward
+
+
+# Reload
+
+
+# Stop
+
+
+## Toolbar
+
+
+## Folder Pane
+
+
+## Folder Toolbar Header Popup
+
+show-tags-folders-label =
+ .label = Merkers
+ .accesskey = M
+
+## Menu
+
+
+## File Menu
+
+
+## Edit Menu
+
+menu-edit-delete-folder =
+ .label = Skrap vouer
+ .accesskey = S
+# Variables:
+# $count (Number) - Number of selected messages.
+menu-edit-delete-messages =
+ .label =
+ { $count ->
+ [one] Skrap boodskap
+ *[other] Skrap gemerkte boodskappe
+ }
+ .accesskey = S
+# Variables:
+# $count (Number) - Number of selected messages.
+menu-edit-undelete-messages =
+ .label =
+ { $count ->
+ [one] Ontskrap boodskap
+ *[other] Ontskrap gemerkte boodskappe
+ }
+ .accesskey = t
+
+## Message Menu
+
+
+## AppMenu
+
+
+## Context menu
+
+# Variables:
+# $count (Number) - Number of selected messages.
+mail-context-undelete-messages =
+ .label =
+ { $count ->
+ [one] Ontskrap boodskap
+ *[other] Ontskrap gemerkte boodskappe
+ }
+
+## Message header pane
+
+
+## Message header cutomize panel
+
+
+## Action Button Context Menu
+
+
+## Add-on removal warning
+
+
+## no-reply handling
+
+
+## error messages
+
+
+## Spaces toolbar
+
+
+## Spaces toolbar pinned tab menupopup
+
+
+## Spaces toolbar customize panel
+
+
+## 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 = Kitsfilterbalk
+ .accesskey = K
+
+## OpenPGP
+
+
+## Quota panel.
+
diff --git a/thunderbird-l10n/af/localization/af/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/af/localization/af/messenger/messengercompose/messengercompose.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/messengercompose/messengercompose.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/af/localization/af/messenger/migration.ftl b/thunderbird-l10n/af/localization/af/messenger/migration.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/migration.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/af/localization/af/messenger/multimessageview.ftl b/thunderbird-l10n/af/localization/af/messenger/multimessageview.ftl
new file mode 100644
index 0000000000..074c9ab681
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/multimessageview.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/.
+
+multi-message-window-title =
+ .title = Boodskapopsomming
+selected-messages-label =
+ .label = Gemerkte boodskappe
diff --git a/thunderbird-l10n/af/localization/af/messenger/openpgp/backupKeyPassword.ftl b/thunderbird-l10n/af/localization/af/messenger/openpgp/backupKeyPassword.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/openpgp/backupKeyPassword.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/af/localization/af/messenger/openpgp/changeExpiryDlg.ftl b/thunderbird-l10n/af/localization/af/messenger/openpgp/changeExpiryDlg.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/openpgp/changeExpiryDlg.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/af/localization/af/messenger/openpgp/composeKeyStatus.ftl b/thunderbird-l10n/af/localization/af/messenger/openpgp/composeKeyStatus.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/openpgp/composeKeyStatus.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/af/localization/af/messenger/openpgp/keyAssistant.ftl b/thunderbird-l10n/af/localization/af/messenger/openpgp/keyAssistant.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/openpgp/keyAssistant.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/af/localization/af/messenger/openpgp/keyWizard.ftl b/thunderbird-l10n/af/localization/af/messenger/openpgp/keyWizard.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/openpgp/keyWizard.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/af/localization/af/messenger/openpgp/msgReadStatus.ftl b/thunderbird-l10n/af/localization/af/messenger/openpgp/msgReadStatus.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/openpgp/msgReadStatus.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/af/localization/af/messenger/openpgp/oneRecipientStatus.ftl b/thunderbird-l10n/af/localization/af/messenger/openpgp/oneRecipientStatus.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/openpgp/oneRecipientStatus.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/af/localization/af/messenger/openpgp/openpgp-frontend.ftl b/thunderbird-l10n/af/localization/af/messenger/openpgp/openpgp-frontend.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/openpgp/openpgp-frontend.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/af/localization/af/messenger/openpgp/openpgp.ftl b/thunderbird-l10n/af/localization/af/messenger/openpgp/openpgp.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/openpgp/openpgp.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/af/localization/af/messenger/otr/add-finger.ftl b/thunderbird-l10n/af/localization/af/messenger/otr/add-finger.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/otr/add-finger.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/af/localization/af/messenger/otr/am-im-otr.ftl b/thunderbird-l10n/af/localization/af/messenger/otr/am-im-otr.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/otr/am-im-otr.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/af/localization/af/messenger/otr/auth.ftl b/thunderbird-l10n/af/localization/af/messenger/otr/auth.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/otr/auth.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/af/localization/af/messenger/otr/chat.ftl b/thunderbird-l10n/af/localization/af/messenger/otr/chat.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/otr/chat.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/af/localization/af/messenger/otr/finger-sync.ftl b/thunderbird-l10n/af/localization/af/messenger/otr/finger-sync.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/otr/finger-sync.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/af/localization/af/messenger/otr/finger.ftl b/thunderbird-l10n/af/localization/af/messenger/otr/finger.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/otr/finger.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/af/localization/af/messenger/otr/otr.ftl b/thunderbird-l10n/af/localization/af/messenger/otr/otr.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/otr/otr.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/af/localization/af/messenger/otr/otrUI.ftl b/thunderbird-l10n/af/localization/af/messenger/otr/otrUI.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/otr/otrUI.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/af/localization/af/messenger/policies/aboutPolicies.ftl b/thunderbird-l10n/af/localization/af/messenger/policies/aboutPolicies.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/policies/aboutPolicies.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/af/localization/af/messenger/policies/policies-descriptions.ftl b/thunderbird-l10n/af/localization/af/messenger/policies/policies-descriptions.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/policies/policies-descriptions.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/af/localization/af/messenger/preferences/am-copies.ftl b/thunderbird-l10n/af/localization/af/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/preferences/am-copies.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/af/localization/af/messenger/preferences/am-im.ftl b/thunderbird-l10n/af/localization/af/messenger/preferences/am-im.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/preferences/am-im.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/af/localization/af/messenger/preferences/application-manager.ftl b/thunderbird-l10n/af/localization/af/messenger/preferences/application-manager.ftl
new file mode 100644
index 0000000000..c9c51f9996
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/preferences/application-manager.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/.
+
+remove-app-button =
+ .label = Verwyder
+ .accesskey = r
diff --git a/thunderbird-l10n/af/localization/af/messenger/preferences/attachment-reminder.ftl b/thunderbird-l10n/af/localization/af/messenger/preferences/attachment-reminder.ftl
new file mode 100644
index 0000000000..0953ff0312
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/preferences/attachment-reminder.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/.
+
+attachment-reminder-window =
+ .title = Aanhegselherinneringwoorde
+attachment-reminder-dialog-title = Aanhegselherinneringwoorde
+attachment-reminder-label = { -brand-short-name } sal jou waarsku oor vermiste aanhegsels as op die punt is om 'n e-pos te stuur wat een van hierdie woorde bevat.
+keyword-remove-button =
+ .label = Skrap
+ .accesskey = S
+edit-keyword-title = Redigeer sleutelwoord
+edit-keyword-label = Woord:
diff --git a/thunderbird-l10n/af/localization/af/messenger/preferences/colors.ftl b/thunderbird-l10n/af/localization/af/messenger/preferences/colors.ftl
new file mode 100644
index 0000000000..23cc0106e4
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/preferences/colors.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/.
+
+text-color-label =
+ .value = Teks:
+ .accesskey = T
+
+background-color-label =
+ .value = Agtergrond:
+ .accesskey = A
+
diff --git a/thunderbird-l10n/af/localization/af/messenger/preferences/connection.ftl b/thunderbird-l10n/af/localization/af/messenger/preferences/connection.ftl
new file mode 100644
index 0000000000..046977abe5
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/preferences/connection.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/.
+
+connection-proxy-legend = Stel instaanbedieners op vir internettoegang
+
+proxy-type-no =
+ .label = Geen instaanbediener
+ .accesskey = G
+
+proxy-type-wpad =
+ .label = Outospeur instaanopstelling vir hierdie netwerk
+ .accesskey = w
+
+proxy-type-system =
+ .label = Gebruik stelselinstaaninstellings
+ .accesskey = G
+
+proxy-type-manual =
+ .label = Handmatige opstelling van instaanbediener:
+ .accesskey = H
+
+proxy-http-label =
+ .value = HTTP-instaanbediener:
+ .accesskey = H
+
+http-port-label =
+ .value = Poort:
+ .accesskey = P
+
+ssl-port-label =
+ .value = Poort:
+ .accesskey = P
+
+proxy-socks-label =
+ .value = SOCKS-gasheer:
+ .accesskey = C
+
+socks-port-label =
+ .value = Poort:
+ .accesskey = P
+
+proxy-socks4-label =
+ .label = SOCKS v4
+ .accesskey = K
+
+proxy-socks5-label =
+ .label = SOCKS v5
+ .accesskey = v
+
+proxy-type-auto =
+ .label = URL vir outomatiese opstelling van instaanbediener:
+ .accesskey = o
+
+proxy-reload-label =
+ .label = Herlaai
+ .accesskey = l
+
+no-proxy-label =
+ .value = Geen instaanbediener vir:
+ .accesskey = G
+
+no-proxy-example = Byvoorbeeld: .mozilla.org, .org.za, 192.168.1.0/24
+
diff --git a/thunderbird-l10n/af/localization/af/messenger/preferences/cookies.ftl b/thunderbird-l10n/af/localization/af/messenger/preferences/cookies.ftl
new file mode 100644
index 0000000000..df9d5c11a8
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/preferences/cookies.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/.
+
+cookies-window-dialog =
+ .title = Koekies
+ .style = width: 36em;
+
+window-close-key =
+ .key = w
+
+filter-search-label =
+ .value = Soek:
+ .accesskey = S
+
+cookies-on-system-label = Die volgende koekies is op u rekenaar gestoor:
+
+treecol-site-header =
+ .label = Werf
+
+treecol-name-header =
+ .label = Koekienaam
+
+props-name-label =
+ .value = Naam:
+props-value-label =
+ .value = Inhoud:
+props-domain-label =
+ .value = Gasheer:
+props-path-label =
+ .value = Pad:
+props-secure-label =
+ .value = Stuur met:
+props-expires-label =
+ .value = Verval:
+
+remove-cookie-button =
+ .label = Verwyder koekie
+ .accesskey = V
+
+remove-all-cookies-button =
+ .label = Verwyder alle koekies
+ .accesskey = a
+
+cookie-close-button =
+ .label = Sluit
+ .accesskey = S
diff --git a/thunderbird-l10n/af/localization/af/messenger/preferences/dock-options.ftl b/thunderbird-l10n/af/localization/af/messenger/preferences/dock-options.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/preferences/dock-options.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/af/localization/af/messenger/preferences/fonts.ftl b/thunderbird-l10n/af/localization/af/messenger/preferences/fonts.ftl
new file mode 100644
index 0000000000..5b1c653972
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/preferences/fonts.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/.
+
+fonts-language-legend =
+ .value = Fonte vir:
+ .accesskey = t
+
+fonts-proportional-label =
+ .value = Proporsioneel:
+ .accesskey = P
+
+## Languages
+
+font-language-group-japanese =
+ .label = Japannees
+font-language-group-trad-chinese =
+ .label = Tradisionele Sjinees (Taiwan)
+font-language-group-simpl-chinese =
+ .label = Vereenvoudigde Sjinees
+font-language-group-trad-chinese-hk =
+ .label = Tradisionele Sjinees (Hongkong)
+font-language-group-korean =
+ .label = Koreaans
+font-language-group-cyrillic =
+ .label = Cyrillies
+font-language-group-el =
+ .label = Grieks
+font-language-group-thai =
+ .label = Thais
+font-language-group-hebrew =
+ .label = Hebreeus
+font-language-group-arabic =
+ .label = Arabies
+font-language-group-devanagari =
+ .label = Devanagari
+font-language-group-tamil =
+ .label = Tamil
+font-language-group-armenian =
+ .label = Armeens
+font-language-group-bengali =
+ .label = Bengali
+font-language-group-canadian =
+ .label = Verenigde Kanadese sillabereeks
+font-language-group-ethiopic =
+ .label = Etiopies
+font-language-group-georgian =
+ .label = Georgies
+font-language-group-gujarati =
+ .label = Goedjarati
+font-language-group-gurmukhi =
+ .label = Goermukhi
+font-language-group-khmer =
+ .label = Khmer
+font-language-group-malayalam =
+ .label = Malabaars
+
+## Default font type
+
+default-font-serif =
+ .label = Serif
+
+default-font-sans-serif =
+ .label = Sans Serif
+
+font-serif-label =
+ .value = Serif:
+ .accesskey = S
+
+font-sans-serif-label =
+ .value = Sans-serif:
+ .accesskey = n
+
+font-monospace-label =
+ .value = Monospasie:
+ .accesskey = M
+
+font-min-size-label =
+ .value = Minimum fontgrootte:
+ .accesskey = r
+
+min-size-none =
+ .label = Geen
+
+## Fonts in message
+
+font-control-legend = Fontbeheer
+
+use-document-fonts-checkbox =
+ .label = Laat boodskappe toe om ander fonte te gebruik
+ .accesskey = a
+
+use-fixed-width-plain-checkbox =
+ .label = Gebruik vastewydte-font vir skoonteks-boodskappe
+ .accesskey = v
+
+## Language settings
+
+font-outgoing-email-label =
+ .value = Uitgaande pos:
+ .accesskey = U
+
+font-incoming-email-label =
+ .value = Inkomende pos:
+ .accesskey = I
+
diff --git a/thunderbird-l10n/af/localization/af/messenger/preferences/languages.ftl b/thunderbird-l10n/af/localization/af/messenger/preferences/languages.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/preferences/languages.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/af/localization/af/messenger/preferences/new-tag.ftl b/thunderbird-l10n/af/localization/af/messenger/preferences/new-tag.ftl
new file mode 100644
index 0000000000..48033aa37a
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/preferences/new-tag.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/.
+
+tag-name-label =
+ .value = Merkernaam:
+ .accesskey = M
+
diff --git a/thunderbird-l10n/af/localization/af/messenger/preferences/notifications.ftl b/thunderbird-l10n/af/localization/af/messenger/preferences/notifications.ftl
new file mode 100644
index 0000000000..62ed5822c3
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/preferences/notifications.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/.
+
+notifications-dialog-window =
+ .title = Doelmaak nuwepos-klank
+notifications-dialog-title = Doelmaak nuwepos-klank
+customize-alert-description = Kies watter velde in die kennisgewing gewys moet word:
+preview-text-checkbox =
+ .label = Boodskap-voorskouteks
+ .accesskey = B
+subject-checkbox =
+ .label = Onderwerpreël
+ .accesskey = O
+sender-checkbox =
+ .label = Afsender
+ .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-after =
+ .value = sekondes
diff --git a/thunderbird-l10n/af/localization/af/messenger/preferences/offline.ftl b/thunderbird-l10n/af/localization/af/messenger/preferences/offline.ftl
new file mode 100644
index 0000000000..e457a77fbf
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/preferences/offline.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/.
+
+offline-dialog-window =
+ .title = Aflynopstelling
+offline-dialog-title = Aflynopstelling
+status-radio-remember =
+ .label = Onthou vorige aanlynstaat
+ .accesskey = O
+going-online-label = Stuur ongestuurde boodskappe wanneer aanlyn gaan?
+going-online-auto =
+ .label = Ja
+ .accesskey = J
+going-online-not =
+ .label = Nee
+ .accesskey = N
+going-online-ask =
+ .label = Vra my
+ .accesskey = V
+going-offline-label = Laai boodskappe af vir aflyngebruik wanneer aflyn gaan?
+going-offline-auto =
+ .label = Ja
+ .accesskey = J
+going-offline-not =
+ .label = Nee
+ .accesskey = N
+going-offline-ask =
+ .label = Vra my
+ .accesskey = V
diff --git a/thunderbird-l10n/af/localization/af/messenger/preferences/passwordManager.ftl b/thunderbird-l10n/af/localization/af/messenger/preferences/passwordManager.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/preferences/passwordManager.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/af/localization/af/messenger/preferences/permissions.ftl b/thunderbird-l10n/af/localization/af/messenger/preferences/permissions.ftl
new file mode 100644
index 0000000000..4656bc60a4
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/preferences/permissions.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/.
+
+block-button =
+ .label = Blokkeer
+ .accesskey = B
+
+allow-button =
+ .label = Toelaat
+ .accesskey = T
+
+treehead-sitename-label =
+ .label = Werf
+
+treehead-status-label =
+ .label = Status
+
+remove-site-button =
+ .label = Verwyder werf
+ .accesskey = V
+
+remove-all-site-button =
+ .label = Verwyder alle werwe
+ .accesskey = e
+
+permission-can-label = Toelaat
+permission-can-session-label = Toelaat vir sessie
+permission-cannot-label = Blokkeer
+
+invalid-uri-message = Tik 'n geldige gasheernaam in
+invalid-uri-title = Ongeldige gasheernaam ingetik
diff --git a/thunderbird-l10n/af/localization/af/messenger/preferences/preferences.ftl b/thunderbird-l10n/af/localization/af/messenger/preferences/preferences.ftl
new file mode 100644
index 0000000000..6f45861183
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/preferences/preferences.ftl
@@ -0,0 +1,393 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+pane-compose-title = Opstelling
+category-compose =
+ .tooltiptext = Opstelling
+
+## OS Authentication dialog
+
+
+## General Tab
+
+general-legend = { -brand-short-name } se beginbladsy
+
+start-page-label =
+ .label = Wanneer { -brand-short-name } laat loop word, wys die beginbladsy in die boodskaparea
+ .accesskey = W
+
+location-label =
+ .value = Ligging:
+ .accesskey = i
+restore-default-label =
+ .label = Laai verstek terug
+ .accesskey = L
+
+new-message-arrival = Wanneer nuwe boodskappe arriveer:
+mail-play-button =
+ .label = Speel
+ .accesskey = S
+
+animated-alert-label =
+ .label = Wys 'n waarskuwing
+ .accesskey = W
+customize-alert-label =
+ .label = Doelmaak…
+ .accesskey = D
+
+mail-custom-sound-label =
+ .label = Gebruik die volgende klanklêer
+ .accesskey = G
+mail-browse-sound-button =
+ .label = Blaai…
+ .accesskey = B
+
+enable-gloda-search-label =
+ .label = Aktiveer globale soektog en indekseerder
+ .accesskey = A
+
+system-integration-legend = Stelselintegrasie
+always-check-default =
+ .label = Kontroleer altyd aan begin of { -brand-short-name } die verstek-poskliënt is
+ .accesskey = K
+
+# 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] Windowssoektog
+ *[other] { "" }
+ }
+
+search-integration-label =
+ .label = Laat { search-engine-name } toe om boodskappe te deursoek
+ .accesskey = b
+
+config-editor-button =
+ .label = Opstelling-redigeerder…
+ .accesskey = O
+
+return-receipts-description = Bepaal hoe { -brand-short-name } antwoordstrokies hanteer
+return-receipts-button =
+ .label = Antwoordstrokies…
+ .accesskey = A
+
+update-history-button =
+ .label = Wys bywerkgeskiedenis
+ .accesskey = W
+
+networking-legend = Verbinding
+proxy-config-description = Stel op hoe { -brand-short-name } aan die internet koppel
+
+network-settings-button =
+ .label = Opstelling…
+ .accesskey = O
+
+offline-legend = Aflyn
+offline-settings = Stel aflynopstelling op
+
+offline-settings-button =
+ .label = Aflyn…
+ .accesskey = A
+
+diskspace-legend = Skyfspasie
+
+## 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 = Gebruik tot
+ .accesskey = G
+
+use-cache-after = MG spasie vir die kasgeheue
+
+##
+
+clear-cache-button =
+ .label = Maak nou skoon
+ .accesskey = M
+
+default-font-label =
+ .value = Verstekfont:
+ .accesskey = V
+
+font-options-button =
+ .label = Gevorderd…
+ .accesskey = G
+
+display-width-legend = Skoonteks-boodskappe
+
+display-text-label = Wanneer aangehaalde teks in skoonteks boodskappe gewys word:
+
+style-label =
+ .value = Styl:
+ .accesskey = y
+
+regular-style-item =
+ .label = Gewoon
+bold-style-item =
+ .label = Vet
+italic-style-item =
+ .label = Skuins
+bold-italic-style-item =
+ .label = Vet skuinsdruk
+
+size-label =
+ .value = Grootte:
+ .accesskey = G
+
+regular-size-item =
+ .label = Gewoon
+bigger-size-item =
+ .label = Groter
+smaller-size-item =
+ .label = Kleiner
+
+save-to-label =
+ .label = Stoor lêers na
+ .accesskey = S
+
+choose-folder-label =
+ .label =
+ { PLATFORM() ->
+ [macos] Kies…
+ *[other] Blaai…
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [macos] K
+ *[other] B
+ }
+
+always-ask-label =
+ .label = Vra my altyd waar om lêers te stoor
+ .accesskey = V
+
+
+display-tags-text = Merkers kan gebruik word om u boodskappe te kategoriseer en te prioritiseer.
+
+delete-tag-button =
+ .label = Skrap
+ .accesskey = S
+
+auto-mark-as-read =
+ .label = Merk boodskappe outomaties as gelees
+ .accesskey = M
+
+mark-read-no-delay =
+ .label = Dadelik wanneer vertoon
+ .accesskey = w
+
+## Note: This will concatenate to "After displaying for [___] seconds",
+## using (mark-read-delay) and a number (seconds-label).
+
+mark-read-delay =
+ .label = Na vertoon is vir
+ .accesskey = v
+
+seconds-label = sekondes
+
+##
+
+open-msg-label =
+ .value = Open boodskappe in:
+
+open-msg-tab =
+ .label = 'n Nuwe oortjie
+ .accesskey = o
+
+open-msg-window =
+ .label = 'n Nuwe boodskapvenster
+ .accesskey = N
+
+open-msg-ex-window =
+ .label = 'n Bestaande boodskapvenster
+ .accesskey = B
+
+condensed-addresses-label =
+ .label = Wys net vertoonnaam vir mense in my adresboek
+ .accesskey = W
+
+## Compose Tab
+
+forward-label =
+ .value = Stuur boodskappe aan:
+ .accesskey = S
+
+inline-label =
+ .label = Inlyn
+
+as-attachment-label =
+ .label = As aanhegsel
+
+extension-label =
+ .label = voeg uitbreiding by lêernaam
+ .accesskey = u
+
+## Note: This will concatenate to "Auto Save every [___] minutes",
+## using (auto-save-label) and a number (auto-save-end).
+
+auto-save-label =
+ .label = Outostoor elke
+ .accesskey = O
+
+auto-save-end = minute
+
+##
+
+warn-on-send-accel-key =
+ .label = Bevestig wanneer sleutelbordkortpad gebruik word om boodskap te stuur
+ .accesskey = B
+
+spellcheck-label =
+ .label = Toets spelling voor versending
+ .accesskey = s
+
+spellcheck-inline-label =
+ .label = Gaan spelling na terwyl u tik
+ .accesskey = E
+
+language-popup-label =
+ .value = Taal:
+ .accesskey = T
+
+download-dictionaries-link = Laai nog woordeboeke af
+
+font-label =
+ .value = Font:
+ .accesskey = n
+
+font-color-label =
+ .value = Tekskleur:
+ .accesskey = T
+
+bg-color-label =
+ .value = Agtergrondkleur:
+ .accesskey = A
+
+restore-html-label =
+ .label = Laai verstek terug
+ .accesskey = L
+
+autocomplete-description = Wanneer boodskappe geskryf word, soek resultate in:
+
+ab-label =
+ .label = Plaaslike adresboeke
+ .accesskey = P
+
+directories-label =
+ .label = Gidsbediener:
+ .accesskey = G
+
+directories-none-label =
+ .none = Geen
+
+edit-directories-label =
+ .label = Wysig gidse…
+ .accesskey = W
+
+email-picker-label =
+ .label = Voeg uitgaande e-posadresse outomaties by my:
+ .accesskey = V
+
+attachment-label =
+ .label = Kontroleer vir vermiste aanhegsels
+ .accesskey = v
+
+attachment-options-label =
+ .label = Sleutelwoorde…
+ .accesskey = S
+
+
+## Privacy Tab
+
+web-content = Webinhoud
+
+keep-label =
+ .value = Hou tot:
+ .accesskey = H
+
+keep-expire =
+ .label = hulle verval
+keep-close =
+ .label = ek { -brand-short-name } afsluit
+keep-ask =
+ .label = vra elke keer
+
+cookies-button =
+ .label = Wys koekies…
+ .accesskey = W
+
+passwords-description = { -brand-short-name } kan wagwoorde vir al jou rekeninge onthou.
+
+passwords-button =
+ .label = Gestoorde wagwoorde…
+ .accesskey = G
+
+
+junk-description = Verstel die verstek gemorspos-opstelling. Rekeningspesifieke gemorspos-opstelling kan gedoen word by die rekeningopstelling.
+
+junk-label =
+ .label = Wanneer ek boodskappe as gemors merk:
+ .accesskey = W
+
+junk-delete-label =
+ .label = Skrap hulle
+ .accesskey = S
+
+junk-read-label =
+ .label = Merk boodskappe wat as gemors beskou word, as gemerk
+ .accesskey = M
+
+junk-log-button =
+ .label = Wys staaflêer
+ .accesskey = W
+
+reset-junk-button =
+ .label = Stel opleidingsdata terug
+ .accesskey = S
+
+phishing-description = { -brand-short-name } kan boodskappe analiseer vir verdagte e-posswendelary deur uit te kyk vir algemene tegnieke om mens om die bos te lei.
+
+phishing-label =
+ .label = Vertel my as die boodskap wat ek lees, dalk 'n e-posswendel is
+ .accesskey = V
+
+certificate-description = Wanneer 'n bediener my persoonlike sertifikaat aanvra:
+
+certificate-ask =
+ .label = Vra my elke keer
+ .accesskey = A
+
+## Chat Tab
+
+
+## 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.
+
+
+##
+
+chat-play-button =
+ .label = Speel
+ .accesskey = S
+
+chat-custom-sound-label =
+ .label = Gebruik die volgende klanklêer
+ .accesskey = G
+
+chat-browse-sound-button =
+ .label = Blaai…
+ .accesskey = B
+
+## Preferences UI Search Results
+
+## Settings UI Search Results
+
diff --git a/thunderbird-l10n/af/localization/af/messenger/preferences/receipts.ftl b/thunderbird-l10n/af/localization/af/messenger/preferences/receipts.ftl
new file mode 100644
index 0000000000..eb6b30d605
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/preferences/receipts.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/.
+
+receipts-dialog-window =
+ .title = Antwoordstrokies
+receipts-dialog-title = Antwoordstrokies
+receipt-arrive-label = Wanneer 'n strokie aankom:
+receipt-request-label = Wanneer ek 'n versoek om antwoordstrokie ontvang:
+receipt-send-never-label =
+ .label = Stuur nooit nie
+receipt-send-always-label =
+ .label = Stuur altyd
+receipt-send-ask-label =
+ .label = Vra my
diff --git a/thunderbird-l10n/af/localization/af/messenger/preferences/sync-dialog.ftl b/thunderbird-l10n/af/localization/af/messenger/preferences/sync-dialog.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/preferences/sync-dialog.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/af/localization/af/messenger/preferences/system-integration.ftl b/thunderbird-l10n/af/localization/af/messenger/preferences/system-integration.ftl
new file mode 100644
index 0000000000..b01be0cd23
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/preferences/system-integration.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/.
+
+system-integration-title =
+ .title = Stelselintegrasie
+system-integration-dialog-title = Stelselintegrasie
+default-client-intro = Gebruik { -brand-short-name } as die verstekkliënt vir:
+checkbox-email-label =
+ .label = E-pos
+ .tooltiptext = { unset-default-tooltip }
+checkbox-newsgroups-label =
+ .label = Nuusgroepe
+ .tooltiptext = { unset-default-tooltip }
+checkbox-feeds-label =
+ .label = Nuusvoere
+ .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] Windowssoektog
+ *[other] { "" }
+ }
+system-search-integration-label =
+ .label = Laat { system-search-engine-name } toe om boodskappe te deursoek
+ .accesskey = b
+check-on-startup-label =
+ .label = Kontroleer altyd wanneer { -brand-short-name } begin word
+ .accesskey = K
diff --git a/thunderbird-l10n/af/localization/af/messenger/shortcuts.ftl b/thunderbird-l10n/af/localization/af/messenger/shortcuts.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/shortcuts.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/af/localization/af/messenger/treeView.ftl b/thunderbird-l10n/af/localization/af/messenger/treeView.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/treeView.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/af/localization/af/messenger/troubleshootMode.ftl b/thunderbird-l10n/af/localization/af/messenger/troubleshootMode.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/troubleshootMode.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/af/localization/af/messenger/unifiedToolbar.ftl b/thunderbird-l10n/af/localization/af/messenger/unifiedToolbar.ftl
new file mode 100644
index 0000000000..e43b3c859c
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/unifiedToolbar.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/.
+
+
+### Unified Toolbar strings
+
+
+## Search bar
+
+
+## Unified toolbar context menu
+
+customize-menu-customize =
+ .label = Doelmaak…
+
+# Unified toolbar get messages button context menu
+
+toolbar-get-all-messages-menuitem =
+ .label = Kry alle nuwe boodskappe
+ .accesskey = K
+
+## Unified Toolbar customization
+
+
+## Unified toolbar customization palette context menu
+
+
+## Unified toolbar customization target context menu
+
diff --git a/thunderbird-l10n/af/localization/af/messenger/unifiedToolbarItems.ftl b/thunderbird-l10n/af/localization/af/messenger/unifiedToolbarItems.ftl
new file mode 100644
index 0000000000..c44951ec64
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/unifiedToolbarItems.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/.
+
+
+### Unified Toolbar Item Label strings
+
+toolbar-go-back-label = Terug
+toolbar-go-back =
+ .title = Gaan een boodskap terug
+toolbar-go-forward-label = Vorentoe
+toolbar-go-forward =
+ .title = Gaan een boodskap vorentoe
+toolbar-stop-label = Stop
+toolbar-stop =
+ .title = Staak die huidige oordrag
+toolbar-throbber-label = Aktiwitietaanwyser
+toolbar-throbber =
+ .title = Aktiwitietaanwyser
diff --git a/thunderbird-l10n/af/localization/af/messenger/viewSource.ftl b/thunderbird-l10n/af/localization/af/messenger/viewSource.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/viewSource.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/af/localization/af/security/certificates/certManager.ftl b/thunderbird-l10n/af/localization/af/security/certificates/certManager.ftl
new file mode 100644
index 0000000000..66f0dcc0f8
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/security/certificates/certManager.ftl
@@ -0,0 +1,197 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = Sertifikaatbestuurder
+
+certmgr-tab-mine =
+ .label = U sertifikate
+
+certmgr-tab-people =
+ .label = Mense
+
+certmgr-tab-servers =
+ .label = Bedieners
+
+certmgr-tab-ca =
+ .label = Owerhede
+
+certmgr-edit-ca-cert2 =
+ .title = Redigeer SO-sertifikaatvertroueopstelling
+ .style = min-width: 48em;
+
+certmgr-edit-cert-edit-trust = Redigeer vertroueopstelling:
+
+certmgr-edit-cert-trust-ssl =
+ .label = Hierdie sertifikaat kan webwerwe identifiseer.
+
+certmgr-edit-cert-trust-email =
+ .label = Hierdie sertifikaat kan e-posgebruikers identifiseer.
+
+certmgr-delete-cert2 =
+ .title = Skrap sertifikaat
+ .style = min-width: 48em; min-height: 24em;
+
+certmgr-cert-name =
+ .label = Naam van sertifikaat
+
+certmgr-cert-server =
+ .label = Bediener
+
+certmgr-token-name =
+ .label = Sekuriteitstoestel
+
+certmgr-begins-label =
+ .label = Begin op
+
+certmgr-expires-label =
+ .label = Verval op
+
+certmgr-email =
+ .label = E-posadres
+
+certmgr-serial =
+ .label = Reeksnommer
+
+certmgr-view =
+ .label = Bekyk…
+ .accesskey = B
+
+certmgr-edit =
+ .label = Redigeer vertroue…
+ .accesskey = R
+
+certmgr-export =
+ .label = Uitvoer…
+ .accesskey = i
+
+certmgr-delete =
+ .label = Skrap…
+ .accesskey = S
+
+certmgr-delete-builtin =
+ .label = Skrap of wantrou…
+ .accesskey = S
+
+certmgr-backup =
+ .label = Rugsteun…
+ .accesskey = R
+
+certmgr-backup-all =
+ .label = Rugsteun alles…
+ .accesskey = s
+
+certmgr-restore =
+ .label = Invoer…
+ .accesskey = n
+
+certmgr-add-exception =
+ .label = Voeg uitsondering by…
+ .accesskey = u
+
+exception-mgr =
+ .title = Voeg sekuriteituitsondering by
+
+exception-mgr-extra-button =
+ .label = Bevestig sekuriteituitsondering
+ .accesskey = B
+
+exception-mgr-supplemental-warning = Legitieme banke, winkels en ander publieke werwe sal u nie vra om dit te doen nie.
+
+exception-mgr-cert-location-url =
+ .value = Ligging:
+
+exception-mgr-cert-location-download =
+ .label = Kry sertifikaat
+ .accesskey = S
+
+exception-mgr-cert-status-view-cert =
+ .label = Bekyk…
+ .accesskey = B
+
+exception-mgr-permanent =
+ .label = Stoor hierdie uitsondering permanent
+ .accesskey = S
+
+pk11-bad-password = Die wagwoord wat ingetik is, is verkeerd.
+pkcs12-decode-err = Kon nie die lêer dekodeer nie. Dit is óf nie in PKCS #12-formaat nie, óf gekorrumpeer, óf die wagwoord wat ingetik is, is nie korrek nie.
+pkcs12-unknown-err-restore = Kon om onbekende redes nie die PKCS #12-lêer terugkopieer nie.
+pkcs12-unknown-err-backup = Kon om onbekende redes nie die PKCS #12-deklêer skep nie.
+pkcs12-unknown-err = Kon om onbekende redes nie die PKCS #12-operasie voltooi nie.
+pkcs12-info-no-smartcard-backup = Dis nie moontlik om dekkopieë van sertifikate van hardewaresekuriteitstoestelle soos knapkaarte te maak nie.
+pkcs12-dup-data = Die sertifikaat en private sleutel bestaan reeds op die sekuriteitstoestel.
+
+## PKCS#12 file dialogs
+
+choose-p12-backup-file-dialog = Lêernaam om te rugsteun
+file-browse-pkcs12-spec = PKCS12-lêers
+choose-p12-restore-file-dialog = Sertifikaatlêer om in te voer
+
+## Import certificate(s) file dialog
+
+file-browse-certificate-spec = Sertifikaatlêers
+import-ca-certs-prompt = Kies lêer wat SO-sertifikaat(e) bevat om in te voer
+import-email-cert-prompt = Kies lêer wat iemand se e-possertifikaat bevat om in te voer
+
+## For editing certificates trust
+
+# Variables:
+# $certName: the name of certificate
+edit-trust-ca = Die sertifikaat "{ $certName }" verteenwoordig 'n sertifikaatowerheid.
+
+## For Deleting Certificates
+
+delete-user-cert-title =
+ .title = Skrap u sertifikate
+delete-user-cert-confirm = Wil u definitief hierdie sertifikate skrap?
+delete-user-cert-impact = As u een van u eie sertifikate skrap, kan u dit nie meer gebruik om uself te identifiseer nie.
+
+
+delete-ca-cert-title =
+ .title = Skrap of wantrou nie meer SO-sertifikate
+delete-ca-cert-confirm = U het versoek dat hierdie SO-sertifikate geskrap word. Vir ingeboude sertifikate sal alle vertroue verwyder word, wat dieselfde uitwerking het. Wil u definitief skrap of wantrou?
+delete-ca-cert-impact = As jy 'n sertifikaatowerheid- (SO) sertifikaat skrap of wantrou, sal hierdie toepassing nie meer enige sertifikate vertrou wat deur daardie SO uitgereik word nie.
+
+
+delete-email-cert-title =
+ .title = Skrap e-possertifikate
+delete-email-cert-confirm = Wil u definitief hierdie persone se e-possertifikate skrap?
+delete-email-cert-impact = Indien u 'n persoon e-possertifikaat skrap, sal u nie meer geënkripteerde e-pos aan daardie mense kan stuur nie.
+
+# 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 = Sertifikaat met reeksnommer: { $serialNumber }
+
+## Used to show whether an override is temporary or permanent
+
+
+## Add Security Exception dialog
+
+add-exception-branded-warning = U gaan nou die manier waarop { -brand-short-name } hierdie werf identifiseer, oorheers.
+add-exception-invalid-header = Hierdie werf probeer homself met ongeldige inligting identifiseer.
+add-exception-domain-mismatch-short = Verkeerde werf
+add-exception-domain-mismatch-long = Die sertifikaat behoort aan 'n ander werf, wat moontlik beteken dat iemand die werf probeer namaak.
+add-exception-expired-short = Verouderde inligting
+add-exception-expired-long = Die sertifikaat is nie tans geldig nie. Dit is dalk gesteel of verloor, en word dalk deur iemand gebruik om die werf na te boots.
+add-exception-unverified-or-bad-signature-short = Onbekende identiteit
+add-exception-unverified-or-bad-signature-long = Die sertifikaat word nie vertrou nie omdat dit nie geverifieer is met 'n beveiligde handtekening as uitgereik deur 'n erkende owerheid nie.
+add-exception-valid-short = Geldige sertifikaat
+add-exception-valid-long = Hierdie werf verskaf 'n geldige, geverifieerde identifikasie. Dis nie nodig om 'n uitsondering te skep nie.
+add-exception-checking-short = Kontroleer van inligting
+add-exception-checking-long = Probeer tans dié werf te identifiseer…
+add-exception-no-cert-short = Geen inligting beskikbaar nie
+add-exception-no-cert-long = Kon nie identifikasiestatus vir dié werf verkry nie.
+
+## Certificate export "Save as" and error dialogs
+
+save-cert-as = Stoor sertifikaat na lêer
+cert-format-base64 = X.509-sertifikaat (PEM)
+cert-format-base64-chain = X.509-sertifikaat met ketting (PEM)
+cert-format-der = X.509-sertifikaat (DER)
+cert-format-pkcs7 = X.509-sertifikaat (PKCS#7)
+cert-format-pkcs7-chain = X.509-sertifikaat met ketting (PKCS#7)
+write-file-failure = Lêerfout
diff --git a/thunderbird-l10n/af/localization/af/security/certificates/deviceManager.ftl b/thunderbird-l10n/af/localization/af/security/certificates/deviceManager.ftl
new file mode 100644
index 0000000000..d34f2b574e
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/security/certificates/deviceManager.ftl
@@ -0,0 +1,120 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = Toestelbestuurder
+ .style = min-width: 67em; min-height: 32em;
+
+devmgr-devlist =
+ .label = Sekuriteitsmodules en -toestelle
+
+devmgr-header-details =
+ .label = Besonderhede
+
+devmgr-header-value =
+ .label = Waarde
+
+devmgr-button-login =
+ .label = Meld aan
+ .accesskey = a
+
+devmgr-button-logout =
+ .label = Meld af
+ .accesskey = M
+
+devmgr-button-changepw =
+ .label = Verander wagwoord
+ .accesskey = w
+
+devmgr-button-load =
+ .label = Laai
+ .accesskey = L
+
+devmgr-button-unload =
+ .label = Ontlaai
+ .accesskey = O
+
+devmgr-button-enable-fips =
+ .label = Aktiveer FIPS
+ .accesskey = F
+
+devmgr-button-disable-fips =
+ .label = Deaktiveer FIPS
+ .accesskey = F
+
+## Strings used for load device
+
+load-device =
+ .title = Laai PKCS#11-toestelaandrywer
+
+load-device-info = Tik die inligting in vir die module wat u wil byvoeg.
+
+load-device-modname-default =
+ .value = Nuwe PKCS#11-module
+
+load-device-browse =
+ .label = Blaai…
+ .accesskey = B
+
+## Token Manager
+
+devinfo-status =
+ .label = Status
+
+devinfo-status-disabled =
+ .label = Gedeaktiveer
+
+devinfo-status-not-present =
+ .label = Nie teenwoordig nie
+
+devinfo-status-uninitialized =
+ .label = Ongeïnisalisieer
+
+devinfo-status-not-logged-in =
+ .label = Nie aangemeld nie
+
+devinfo-status-logged-in =
+ .label = Aangemeld
+
+devinfo-status-ready =
+ .label = Gereed
+
+devinfo-desc =
+ .label = Beskrywing
+
+devinfo-man-id =
+ .label = Vervaardiger
+
+devinfo-hwversion =
+ .label = HW-weergawe
+devinfo-fwversion =
+ .label = FW-weergawe
+
+devinfo-modname =
+ .label = Module
+
+devinfo-modpath =
+ .label = Pad
+
+login-failed = Kon nie aanmeld nie
+
+devinfo-label =
+ .label = Etiket
+
+devinfo-serialnum =
+ .label = Reeksnommer
+
+unable-to-toggle-fips = Kon nie die FIPS-modus vir die sekuriteittoestel verander nie. Ons stel voor dat jy hierdie toepassing verlaat en herbegin.
+load-pk11-module-file-picker-title = Kies ’n PKCS#11-toestelaandrywer om te laai
+
+# Load Module Dialog
+load-module-help-empty-module-name =
+ .value = Die modulenaam kan nie leeg wees nie.
+
+add-module-failure = Kon nie module byvoeg nie
+del-module-warning = Wil u definitief hierdie sekuriteitsmodule skrap?
+del-module-error = Kon nie module skrap nie
diff --git a/thunderbird-l10n/af/localization/af/security/pippki/pippki.ftl b/thunderbird-l10n/af/localization/af/security/pippki/pippki.ftl
new file mode 100644
index 0000000000..1d7a6cdc8d
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/security/pippki/pippki.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/.
+
+password-quality-meter = Wagwoord-gehaltemeter
+
+## Change Password dialog
+
+# Variables:
+# $tokenName (String) - Security device of the change password dialog
+change-password-token = Sekuriteitstoestel: { $tokenName }
+change-password-old = Huidige wagwoord:
+change-password-new = Nuwe wagwoord:
+change-password-reenter = Nuwe wagwoord (weer):
+
+## Reset Primary Password dialog
+
+reset-password-button-label =
+ .label = Stel terug
+
+## Downloading cert dialog
+
+download-cert-window2 =
+ .title = Laai tans sertifikaat af
+ .style = min-width: 46em
+download-cert-message = U is gevra om 'n nuwe sertifikaatowerheid (SO) te vertrou.
+download-cert-trust-ssl =
+ .label = Vertrou hierdie SO om webwerwe te identifiseer.
+download-cert-trust-email =
+ .label = Vertrou hierdie SO om e-posgebruikers te identifiseer.
+download-cert-message-desc = Voordat u hierdie SO vir enige doeleinde vertrou, behoort u sy sertifikaat en sy beleid en prosedures (indien beskikbaar) te ondersoek.
+download-cert-view-cert =
+ .label = Bekyk
+download-cert-view-text = Ondersoek SO-sertifikaat
+
+## Client Authorization Ask dialog
+
+
+## Client Authentication Ask dialog
+
+client-auth-window =
+ .title = Gebruikersidentifikasie-versoek
+client-auth-site-description = Die werf versoek dat u uself deur middel van 'n sertifikaat identifiseer:
+client-auth-choose-cert = Kies 'n sertifikaat om as identifikasie aan te bied:
+client-auth-cert-details = Besonderhede van gekose sertifikaat:
+# Variables:
+# $issuedTo (String) - The subject common name of the currently-selected client authentication certificate
+client-auth-cert-details-issued-to = Uitgereik aan: { $issuedTo }
+# Variables:
+# $serialNumber (String) - The serial number of the certificate (hexadecimal of the form "AA:BB:...")
+client-auth-cert-details-serial-number = Reeksnommer: { $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 = Geldig vanaf { $notBefore } tot { $notAfter }
+# Variables:
+# $keyUsages (String) - A list of already-localized key usages for which the certificate may be used
+client-auth-cert-details-key-usages = Belangrike gebruike: { $keyUsages }
+# Variables:
+# $emailAddresses (String) - A list of email addresses present in the certificate
+client-auth-cert-details-email-addresses = E-posadresse: { $emailAddresses }
+# Variables:
+# $issuedBy (String) - The issuer common name of the certificate
+client-auth-cert-details-issued-by = Uitgereik deur: { $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 = Gestoor op: { $storedOn }
+client-auth-cert-remember-box =
+ .label = Onthou hierdie besluit
+
+## Set password (p12) dialog
+
+set-password-window =
+ .title = Kies 'n rugsteunsertifikaat-wagwoord
+set-password-message = Die sertifikaat-rugsteunwagwoord wat u hier opstel, beskerm die rugsteunlêer wat u op die punt is om te skep. U moet hierdie wagwoord opstel voor u met die rugsteuning kan voortgaan.
+set-password-backup-pw =
+ .value = Rugsteunsertifikaat-wagwoord:
+set-password-repeat-backup-pw =
+ .value = Rugsteunsertifikaat-wagwoord (weer):
+set-password-reminder = Belangrik: Indien u u sertifikaat-rugsteunwagwoord vergeet, sal u nie hierdie rugsteuning later kan terugkopieer nie. Teken dit op 'n veilige plek aan.
+
+## Protected authentication alert
+
diff --git a/thunderbird-l10n/af/localization/af/services/accounts.ftl b/thunderbird-l10n/af/localization/af/services/accounts.ftl
new file mode 100644
index 0000000000..672b6dbe7f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/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 } se { -brand-short-name } op { $system }
diff --git a/thunderbird-l10n/af/localization/af/toolkit/about/aboutAbout.ftl b/thunderbird-l10n/af/localization/af/toolkit/about/aboutAbout.ftl
new file mode 100644
index 0000000000..9690d4714a
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/about/aboutAbout.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/.
+
+about-about-title = Aangaande Aangaande
+about-about-note = Hierdie is 'n lys van alle “aangaande”-bladsye.<br/> Sekeres daarvan kan dalk verwarrend wees. Sekeres is net vir diagnostiese doeleindes.<br/> En sekeres word weggelaat omdat hulle navraagstringe benodig.
diff --git a/thunderbird-l10n/af/localization/af/toolkit/about/aboutAddons.ftl b/thunderbird-l10n/af/localization/af/toolkit/about/aboutAddons.ftl
new file mode 100644
index 0000000000..153d3f7cf0
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/about/aboutAddons.ftl
@@ -0,0 +1,225 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = Byvoegingbestuurder
+
+## Variables
+## $domain - Domain name where add-ons are available (e.g. addons.mozilla.org)
+
+
+##
+
+list-empty-installed =
+ .value = Daar is geen byvoegings van hierdie tipe geïnstalleer nie
+list-empty-available-updates =
+ .value = Geen bywerkings gevind nie
+list-empty-recent-updates =
+ .value = Geen byvoegings is onlangs bygewerk nie
+list-empty-find-updates =
+ .label = Kontroleer vir bywerkings
+list-empty-button =
+ .label = Kom meer te wete oor byvoegings
+show-unsigned-extensions-button =
+ .label = Sommige uitbreidings kon nie geverifieer word nie
+show-all-extensions-button =
+ .label = Wys alle uitbreidings
+detail-version =
+ .label = Weergawe
+detail-last-updated =
+ .label = Laas bygewerk
+detail-contributions-description = Die ontwikkelaar van hierdie byvoeging vra dat jy die volgehoue ontwikkeling daarvan steun deur 'n klein bydrae te lewer.
+detail-update-type =
+ .value = Outobywerkings
+detail-update-default =
+ .label = Verstek
+ .tooltiptext = Installeer bywerkings outomaties net as dit die verstek is
+detail-update-automatic =
+ .label = Aan
+ .tooltiptext = Installeer bywerkings outomaties
+detail-update-manual =
+ .label = Af
+ .tooltiptext = Moenie bywerkings outomaties installeer nie
+detail-home =
+ .label = Tuisblad
+detail-home-value =
+ .value = { detail-home.label }
+detail-repository =
+ .label = Byvoeging-profiel
+detail-repository-value =
+ .value = { detail-repository.label }
+detail-check-for-updates =
+ .label = Kontroleer vir bywerkings
+ .accesskey = v
+ .tooltiptext = Kontroleer vir bywerking vir hierdie byvoeging
+detail-show-preferences =
+ .label =
+ { PLATFORM() ->
+ [windows] Opsies
+ *[other] Voorkeure
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [windows] O
+ *[other] V
+ }
+ .tooltiptext =
+ { PLATFORM() ->
+ [windows] Verander hierdie byvoeging se opsies
+ *[other] Verander hierdie byvoeging se voorkeure
+ }
+detail-rating =
+ .value = Gradering
+addon-restart-now =
+ .label = Herbegin nou
+disabled-unsigned-heading =
+ .value = Sommige byvoegings is gedeaktiveer
+disabled-unsigned-description = Die volgende byvoegings is nie geverifieer vir gebruik in { -brand-short-name } nie. U kan <label data-l10n-name="find-addons">plaasvervangers soek</label> of die ontwikkelaar vra om hulle te laat verifieer.
+disabled-unsigned-learn-more = Meer inligting oor ons pogings om elkeen veilig te hou aanlyn.
+disabled-unsigned-devinfo = Ontwikkelaars wat hulle byvoegings wil laat verifieer kan gerus ons <label data-l10n-name="learn-more">handleiding</label> lees.
+plugin-deprecation-description = Kort iets? Sommige inproppe word nie meer ondersteun deur { -brand-short-name } nie. <label data-l10n-name="learn-more">Meer inligting.</label>
+legacy-warning-show-legacy = Wys verouderde uitbreidings
+legacy-extensions =
+ .value = Verouderde uitbreidings
+legacy-extensions-description = Dié uitbreidings voldoen nie aan { -brand-short-name } se huidige standaarde nie, en is dus gedeaktiveer. <label data-l10n-name="legacy-learn-more">Lees meer oor veranderinge aan byvoegings</label>
+addon-category-extension = Uitbreidings
+addon-category-extension-title =
+ .title = Uitbreidings
+addon-category-plugin = Inproppe
+addon-category-plugin-title =
+ .title = Inproppe
+addon-category-dictionary = Woordeboeke
+addon-category-dictionary-title =
+ .title = Woordeboeke
+addon-category-locale = Tale
+addon-category-locale-title =
+ .title = Tale
+addon-category-available-updates = Beskikbare bywerkings
+addon-category-available-updates-title =
+ .title = Beskikbare bywerkings
+addon-category-recent-updates = Onlangse bywerkings
+addon-category-recent-updates-title =
+ .title = Onlangse bywerkings
+
+## These are global warnings
+
+extensions-warning-safe-mode = Alle byvoegings is deur veilige modus gedeaktiveer.
+extensions-warning-check-compatibility = Kontrolering of byvoegings versoenbaar is, is gedeaktiveer. U het moontlik onversoenbare byvoegings.
+extensions-warning-safe-mode2 =
+ .message = Alle byvoegings is deur veilige modus gedeaktiveer.
+extensions-warning-check-compatibility2 =
+ .message = Kontrolering of byvoegings versoenbaar is, is gedeaktiveer. U het moontlik onversoenbare byvoegings.
+extensions-warning-check-compatibility-button = Aktiveer
+ .title = Aktiveer byvoeging-versoenbaarheidkontrole
+extensions-warning-update-security = Kontrolering vir bywerkings vir byvoegings is gedeaktiveer. U kan dalk deur bywerkings gekompromitteer word.
+extensions-warning-update-security2 =
+ .message = Kontrolering vir bywerkings vir byvoegings is gedeaktiveer. U kan dalk deur bywerkings gekompromitteer word.
+extensions-warning-update-security-button = Aktiveer
+ .title = Aktiveer byvoegingsbywerking-beveiliging-kontrole
+
+## Strings connected to add-on updates
+
+addon-updates-check-for-updates = Kontroleer vir bywerkings
+ .accesskey = K
+addon-updates-view-updates = Bekyk onlangse bywerkings
+ .accesskey = B
+
+# This menu item is a checkbox that toggles the default global behavior for
+# add-on update checking.
+
+addon-updates-update-addons-automatically = Werk byvoegings outomaties by
+ .accesskey = W
+
+## 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 = Stel alle byvoegings om outomaties by te werk
+ .accesskey = S
+addon-updates-reset-updates-to-manual = Stel alle byvoegings om handmatig by te werk
+ .accesskey = S
+
+## Status messages displayed when updating add-ons
+
+addon-updates-updating = Byvoegings word bygewerk
+addon-updates-installed = Die byvoegings is bygewerk.
+addon-updates-none-found = Geen bywerkings gevind nie
+addon-updates-manual-updates-found = Bekyk beskikbare bywerkings
+
+## Add-on install/debug strings for page options menu
+
+addon-install-from-file = Installeer byvoeging uit lêer…
+ .accesskey = I
+addon-install-from-file-dialog-title = Kies byvoeging om te installeer
+addon-install-from-file-filter-name = Byvoegings
+addon-open-about-debugging = Ontfout byvoegings
+ .accesskey = b
+
+## Extension shortcut management
+
+
+## Recommended add-ons page
+
+
+## Add-on actions
+
+
+## Pending uninstall message bar
+
+
+## "sites with restrictions" (internally called "quarantined") are special domains
+## where add-ons are normally blocked for security reasons.
+
+
+## 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.
+
+
+##
+
+
+## Page headings
+
+addon-page-options-button =
+ .title = Nutsgoed vir alle byvoegings
+
+## Detail notifications
+## Variables:
+## $name (string) - Name of the add-on.
+
+# Variables:
+# $version (String): application version.
+details-notification-incompatible = { $name } is onversoenbaar met { -brand-short-name } { $version }.
+# Variables:
+# $version (string) - Application version.
+details-notification-incompatible2 =
+ .message = { $name } is onversoenbaar met { -brand-short-name } { $version }.
+details-notification-unsigned-and-disabled = { $name } kon nie vir gebruik in { -brand-short-name } geverifieer word nie en is gedeaktiveer.
+details-notification-unsigned-and-disabled2 =
+ .message = { $name } kon nie vir gebruik in { -brand-short-name } geverifieer word nie en is gedeaktiveer.
+details-notification-unsigned-and-disabled-link = Meer inligting
+details-notification-unsigned = { $name } kon nie vir gebruik in { -brand-short-name } geverifieer word nie. Wees versigtig.
+details-notification-unsigned2 =
+ .message = { $name } kon nie vir gebruik in { -brand-short-name } geverifieer word nie. Wees versigtig.
+details-notification-unsigned-link = Meer inligting
+details-notification-blocked = { $name } is gedeaktiveer weens sekuriteit- of stabiliteitprobleme.
+details-notification-blocked2 =
+ .message = { $name } is gedeaktiveer weens sekuriteit- of stabiliteitprobleme.
+details-notification-blocked-link = Meer inligting
+details-notification-softblocked = { $name } is bekend daarvoor dat dit sekuriteit- of stabiliteitprobleme oplewer.
+details-notification-softblocked2 =
+ .message = { $name } is bekend daarvoor dat dit sekuriteit- of stabiliteitprobleme oplewer.
+details-notification-softblocked-link = Meer inligting
+details-notification-gmp-pending = { $name } sal binnekort geïnstalleer word.
+details-notification-gmp-pending2 =
+ .message = { $name } sal binnekort geïnstalleer word.
+
+## Gecko Media Plugins (GMPs)
+
+plugins-gmp-license-info = Lisensiëringinligting
+plugins-gmp-privacy-info = Privaatheidinligting
+plugins-openh264-name = OpenH264-videokodek verskaf deur Cisco Systems, geïnk.
+plugins-openh264-description = Dié inprop word outomaties deur Mozilla geïnstalleer om te voldoen aan die WebRTC-spesifikasie en om WebRTC-oproepe toe te laat met toestelle wat die H.264-videokodering gebruik. Besoek http://www.openh264.org/ om die bronkode te sien en vir meer inligting oor die implementasie.
+plugins-widevine-name = Widevine Content Decryption-module verkaf deur Google Inc.
diff --git a/thunderbird-l10n/af/localization/af/toolkit/about/aboutCompat.ftl b/thunderbird-l10n/af/localization/af/toolkit/about/aboutCompat.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/about/aboutCompat.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/af/localization/af/toolkit/about/aboutGlean.ftl b/thunderbird-l10n/af/localization/af/toolkit/about/aboutGlean.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/about/aboutGlean.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/af/localization/af/toolkit/about/aboutHttpsOnlyError.ftl b/thunderbird-l10n/af/localization/af/toolkit/about/aboutHttpsOnlyError.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/about/aboutHttpsOnlyError.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/af/localization/af/toolkit/about/aboutLogging.ftl b/thunderbird-l10n/af/localization/af/toolkit/about/aboutLogging.ftl
new file mode 100644
index 0000000000..de91005c35
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/about/aboutLogging.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/.
+
+## Logging presets
+
+## Variables:
+## $k (String) - Variable name
+## $v (String) - Variable value
+
diff --git a/thunderbird-l10n/af/localization/af/toolkit/about/aboutMozilla.ftl b/thunderbird-l10n/af/localization/af/toolkit/about/aboutMozilla.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/about/aboutMozilla.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/af/localization/af/toolkit/about/aboutNetworking.ftl b/thunderbird-l10n/af/localization/af/toolkit/about/aboutNetworking.ftl
new file mode 100644
index 0000000000..60bc9285ae
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/about/aboutNetworking.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/.
+
+about-networking-http = HTTP
+about-networking-sockets = Sokke
+about-networking-dns = DNS
+about-networking-websockets = Websokke
+about-networking-refresh = Verfris
+about-networking-auto-refresh = Verfris outomaties elke 3 sekondes
+about-networking-hostname = Rekenaarnaam
+about-networking-port = Poort
+about-networking-ssl = SSL
+about-networking-active = Aktief
+about-networking-idle = Ledig
+about-networking-host = Masjien
+about-networking-sent = Gestuur
+about-networking-received = Ontvang
+about-networking-family = Familie
+about-networking-addresses = Adresse
+about-networking-expires = Verval (sekondes)
+about-networking-messages-sent = Boodskappe gestuur
+about-networking-messages-received = Boodskappe ontvang
+about-networking-bytes-sent = Grepe gestuur
+about-networking-bytes-received = Grepe ontvang
+about-networking-dns-lookup = DNS-navraag
+about-networking-dns-domain = Domein:
+about-networking-dns-lookup-table-column = IP-adresse
+
+## Link is intended as "network link"
+
+
+##
+
diff --git a/thunderbird-l10n/af/localization/af/toolkit/about/aboutPerformance.ftl b/thunderbird-l10n/af/localization/af/toolkit/about/aboutPerformance.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/about/aboutPerformance.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/af/localization/af/toolkit/about/aboutPlugins.ftl b/thunderbird-l10n/af/localization/af/toolkit/about/aboutPlugins.ftl
new file mode 100644
index 0000000000..32af23e678
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/about/aboutPlugins.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/.
+
+title-label = Aangaande inproppe
+installed-plugins-label = Geïnstalleerde inproppe
+no-plugins-are-installed-label = Geen geïnstalleerde inproppe gevind nie
+deprecation-description = Kort iets? Sommige inproppe word nie meer ondersteun nie. <a data-l10n-name="deprecation-link">Meer inligting.</a>
+deprecation-description2 =
+ .message = Kort iets? Sommige inproppe word nie meer ondersteun nie.
+
+## 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">Lêer:</span> { $pluginLibraries }
+path-dd = <span data-l10n-name="path">Pad:</span> { $pluginFullPath }
+version-dd = <span data-l10n-name="version">Weergawe:</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">Status:</span> Geaktiveer
+state-dd-enabled-block-list-state = <span data-l10n-name="state">Status:</span> Geaktiveer ({ $blockListState })
+state-dd-Disabled = <span data-l10n-name="state">Status:</span> Gedeaktiveer
+state-dd-Disabled-block-list-state = <span data-l10n-name="state">Status:</span> Gedeaktiveer ({ $blockListState })
+mime-type-label = MIME-soort
+description-label = Beskrywing
+suffixes-label = Lêeruitgange
+
+## Gecko Media Plugins (GMPs)
+
+plugins-gmp-license-info = Lisensiëringinligting
+plugins-gmp-privacy-info = Privaatheidinligting
+plugins-openh264-name = OpenH264-videokodek verskaf deur Cisco Systems, geïnk.
+plugins-openh264-description = Dié inprop word outomaties deur Mozilla geïnstalleer om te voldoen aan die WebRTC-spesifikasie en om WebRTC-oproepe toe te laat met toestelle wat die H.264-videokodering gebruik. Besoek http://www.openh264.org/ om die bronkode te sien en vir meer inligting oor die implementasie.
+plugins-widevine-name = Widevine Content Decryption-module verkaf deur Google Inc.
diff --git a/thunderbird-l10n/af/localization/af/toolkit/about/aboutProcesses.ftl b/thunderbird-l10n/af/localization/af/toolkit/about/aboutProcesses.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/about/aboutProcesses.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/af/localization/af/toolkit/about/aboutProfiles.ftl b/thunderbird-l10n/af/localization/af/toolkit/about/aboutProfiles.ftl
new file mode 100644
index 0000000000..6c48f12198
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/about/aboutProfiles.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/.
+
+
+profiles-title = Aangaande profiele
+profiles-subtitle = Dié bladsy help om profiele te bestuur. Elke profiel is sy eie wêreld wat afsonderlike geskiedenis, boekmerke, instelling en byvoegings bevat.
+profiles-create = Skep 'n nuwe profiel
+profiles-restart-title = Herbegin
+profiles-restart-in-safe-mode = Herbegin met byvoegings gedeaktiveer…
+profiles-restart-normal = Herbegin gewoonweg…
+profiles-flush-fail-title = Wysigings nie gestoor nie
+profiles-flush-conflict = { profiles-conflict }
+profiles-flush-failed = 'n Onverwagte fout het verhoed dat u veranderinge gestoor word.
+profiles-flush-restart-button = Herbegin { -brand-short-name }
+
+# Variables:
+# $name (String) - Name of the profile
+profiles-name = Profiel: { $name }
+profiles-is-default = Verstekprofiel
+profiles-rootdir = Wortelgids
+
+# 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 = Plaaslike gids
+profiles-current-profile = Hierdie profiel is tans in gebruik en kan nie geskrap word nie.
+profiles-in-use-profile = Hierdie profiel word in 'n ander program gebruik en kan nie uitgevee word nie.
+
+profiles-rename = Hernoem
+profiles-remove = Verwyder
+profiles-set-as-default = Stel as verstekprofiel
+profiles-launch-profile = Begin met profiel in nuwe blaaier
+
+profiles-cannot-set-as-default-title = Kan nie verstek stel nie
+
+profiles-yes = ja
+profiles-no = nee
+
+profiles-rename-profile-title = Hernoem profiel
+# Variables:
+# $name (String) - Name of the profile
+profiles-rename-profile = Hernoem profiel { $name }
+
+profiles-invalid-profile-name-title = Ongeldige profielnaam
+# Variables:
+# $name (String) - Name of the profile
+profiles-invalid-profile-name = Die profielnaam “{ $name }” word nie toegelaat nie.
+
+profiles-delete-profile-title = Skrap profiel
+# Variables:
+# $dir (String) - Path to be displayed
+profiles-delete-profile-confirm =
+ As u 'n profiel skrap, sal die profiel van die lys beskikbare profiele verwyder word, en dit kan nie ontdoen word nie.
+ U kan ook kies om die profieldatalêers te skrap, waaronder u instellings, sertifikate en ander gebruikerverwante data. Hierdie opsie sal die gids “{ $dir }” skrap, en dit kan nie ontdoen word nie.
+ Wil u die profieldatalêers skrap?
+profiles-delete-files = Skrap lêers
+profiles-dont-delete-files = Moenie lêers skrap nie
+
+profiles-delete-profile-failed-title = Fout
+
+
+profiles-opendir =
+ { PLATFORM() ->
+ [macos] Wys in Finder
+ [windows] Open gids
+ *[other] Open gids
+ }
diff --git a/thunderbird-l10n/af/localization/af/toolkit/about/aboutReader.ftl b/thunderbird-l10n/af/localization/af/toolkit/about/aboutReader.ftl
new file mode 100644
index 0000000000..0a1670a091
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/about/aboutReader.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-reader-loading = Laai tans…
+about-reader-load-error = Kon nie artikel uit bladsy laai nie
+
+# 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 } minuut
+ *[other] { $range } minute
+ }
+
+## These are used as tooltips in Type Control
+
+
+## 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 = Sluit leesaansig
+about-reader-toolbar-type-controls = Skrifinstellings
diff --git a/thunderbird-l10n/af/localization/af/toolkit/about/aboutRights.ftl b/thunderbird-l10n/af/localization/af/toolkit/about/aboutRights.ftl
new file mode 100644
index 0000000000..14d42f3e5a
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/about/aboutRights.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/.
+
+rights-title = Aangaande u regte
+rights-intro = { -brand-full-name } is vrye, oop sagteware wat deur 'n gemeenskap van derduisende mense van reg oor die wêreld gebou is. Hier is 'n paar dinge wat u moet weet:
+rights-intro-point-1 = { -brand-short-name } word aan u beskikbaar gestel ingevolge die <a data-l10n-name="mozilla-public-license-link">Mozilla Publieke Lisensie</a>. Dit beteken dat u { -brand-short-name } kan gebruik, kopieer en versprei. U kan ook die bronkode van { -brand-short-name } wysig, as u dit wil, om aan u behoeftes te voldoen. Die Mozilla Publieke Lisensie gee u ook die reg om gewysigde weergawes te versprei.
+rights-intro-point-2 = U kry nie enige handelsmerkregte of lisensies om die handelsmerke van die Mozilla Stigting of enige ander party te gebruik nie, waaronder sonder inperking die Firefox-naam of -logo. Bykomende inligting oor handelsmerke is <a data-l10n-name="mozilla-trademarks-link">hier</a> beskikbaar.
+rights-intro-point-3 = Sekere kenmerke in { -brand-short-name }, soos die omvalverslaggewer, gee die opsie om terugvoer aan { -vendor-short-name } te gee. As u kies om terugvoer te gee, gee u { -vendor-short-name } toestemming om die terugvoer te gebruik om sy produkte te verbeter, om die terugvoer op sy webwerwe te publiseer, en om die terugvoer te versprei.
+rights-intro-point-4 = Hoe ons u persoonlike inligting en terugvoer gebruik wat aan { -vendor-short-name } deur { -brand-short-name } ingedien is, word beskryf in <a data-l10n-name="mozilla-privacy-policy-link">{ -brand-short-name } se privaatheidbeleid</a>.
+rights-intro-point-4-unbranded = Enige toepaslike privaatheidbeleid vir hierdie produk sal daar gelys wees.
+rights-intro-point-5 = Sekere { -brand-short-name }-kenmerke gebruik webgebaseerde inligtingdienste, maar ons kan nie waarborg dat hulle 100% akkuraat of foutvry is nie. Meer inligting oor hoe om die kenmerke wat hierdie dienste gebruik, te deaktiveer, is in die <a data-l10n-name="mozilla-service-terms-link">diensbepalings</a> te kry.
+rights-intro-point-5-unbranded = Indien hierdie produk webdienste bevat, behoort enige toepaslike diensbepalings vir die diens(te) aan die <a data-l10n-name="mozilla-website-services-link">webwerfdienste</a>-afdeling gekoppel wees.
+rights-intro-point-6 = Om sekere soorte video te speel, laai { -brand-short-name } sekere modules vanaf derde partye af vir inhouddekripsie.
+rights-webservices-header = { -brand-full-name } se webgebaseerde inligtingsdienste
+rights-webservices = { -brand-full-name } gebruik webgebaseerde inligtingsdienste ("dienste") om van die kenmerke te bied in hierdie binêre weergawe van { -brand-short-name } ingevolge die bepalings hier onder. As u een of meer van die dienste nie wil gebruik nie of as die bepalings hier onder onaanvaarbaar is, kan u die kenmerk of diens(te) deaktiveer. Inligting oor hoe om 'n sekere kenmerk of diens te deaktiveer, is <a data-l10n-name="mozilla-disable-service-link">hier</a>. Ander funksies en dienste kan in die voorkeure gedeaktiveer word.
+rights-safebrowsing = <strong>Veiligblaai: </strong>Om Veiligblaai te deaktiveer word nie aanbeveel nie omdat u dan per ongeluk na onveilige werwe kan gaan. As u die kenmerk volledig wil deaktiveer, volg hierdie stappe:
+rights-safebrowsing-term-1 = Maak die toepassing se voorkeure oop
+rights-safebrowsing-term-2 = Kies die soort beveiliging
+rights-safebrowsing-term-3 = Verwyder die merk by "{ enableSafeBrowsing-label }"
+enableSafeBrowsing-label = Blokkeer gevaarlike en bedrieglike inhoud
+rights-safebrowsing-term-4 = Veiligblaai is nou gedeaktiveer
+rights-locationawarebrowsing = <strong>Liggingbewuste blaaiery: </strong>werk altyd met vóórtoestemming. Geen ligginginligting word ooit sonder u toestemming gestuur nie. As u die kenmerk volledig wil deaktiveer, volg hierdie stappe:
+rights-locationawarebrowsing-term-1 = In die URL-balk, tik <code>aangaande:konfig</code>
+rights-locationawarebrowsing-term-2 = Tik geo.enabled
+rights-locationawarebrowsing-term-3 = Dubbelkliek die geo.enabled-voorkeur
+rights-locationawarebrowsing-term-4 = Liggingbewuste blaaiery is nou gedeaktiveer
+rights-webservices-unbranded = 'n Oorsig oor die webwerfdienste wat die produk bevat, asook instruksies vir hoe om hulle te deaktiveer, indien van toepassing, behoort hierby ingesluit te wees.
+rights-webservices-term-unbranded = Enige toepaslike diensbepalings vir hierdie produk sal daar gelys wees.
+rights-webservices-term-1 = { -vendor-short-name } en sy bydraers, lisensiegewers en vennote probeer die akkuraatste, mees bygewerkte dienste bied. Ons kan egter nie waarborg dat die inligting omvattend of foutvry is nie. Veiligblaai kan byvoorbeeld nie alle riskante werwe merk nie, en kan ook sekere veilige werwe as onveilig aanmerk. Die liggingbewuste dienste se resultate is ook net by benadering en daarom kan die diensverskaffers nie die resultate waarborg nie.
+rights-webservices-term-2 = { -vendor-short-name } kan die dienste na goeddunke opskort of wysig.
+rights-webservices-term-3 = U is welkom om hierdie dienste te gebruik met die meegaande weergawe van { -brand-short-name }, en { -vendor-short-name } ken u die reg toe om dit te doen. { -vendor-short-name } en sy lisensiegewers behou alle ander regte in die dienste voor. Hierdie bepalings is nie bedoel om enige regte te beperk wat ingevolge oopbron-lisensies toegeken word wat op { -brand-short-name } en ooreenstemmende bronkode-weergawes van { -brand-short-name } van toepassing is nie.
+rights-webservices-term-4 = <strong>Die Dienste word voetstoots verskaf. { -vendor-short-name }, sy bydraers, lisensieerders en verspreiders ontken alle waarborge, hetsy uitdruklik of geïmpliseer, met inbegrip van, sonder beperking, waarborge dat die Dienste verhandelbaar is en geskik is vir u besondere doeleindes. U dra die volle risiko wat betref die keuse van die Dienste vir u doeleindes en die gehalte en prestasie van die Dienste. Sommige owerhede verbied die uitsluiting of beperking van geïmpliseerde waarborge. Hierdie ontkenning is dus moontlik nie op u van toepassing nie.</strong>
+rights-webservices-term-5 = <strong>Tensy die reg dit vereis is { -vendor-short-name } sy bydraers, lisensieerders en verspreiders nie aanspreeklik vir enige indirekte, spesiale, toevallige, gevolg- of bestraffende skadevergoeding wat spruit uit, of op enige manier te doen het met, die gebruik van { -brand-short-name } en die Dienste nie. Die gesamentlike aanspreeklikheid van hierdie bepalings sal nie $500 (vyfhonderd dollars) oorskry nie. Sommige owerhede verbied die uitsluiting of beperking van sekere skadevergoeding. Hierdie uitsluiting is dus moontlik nie op u van toepassing nie.</strong>
+rights-webservices-term-6 = { -vendor-short-name } kan dalk hierdie bepalings van tyd tot tyd bywerk indien nodig. Hierdie bepalings mag nie sonder { -vendor-short-name } se skriftelike toestemming gewysig of gekanselleer word nie.
+rights-webservices-term-7 = Hierdie bepalings word beheer deur die reg van die Staat van Kalifornië, V.S.A., met die uitsluiting van die bepalings in verband met internasionale privaatreg. As beslis word dat enige deel van hierdie bepalings ongeldig of onafdwingbaar is, bly die oorblywende dele ten volle van krag. In die geval waar die vertaalde weergawe in stryd is met die Engelse weergawe van hierdie bepalings, sal die Engelse bepalings geld.
diff --git a/thunderbird-l10n/af/localization/af/toolkit/about/aboutServiceWorkers.ftl b/thunderbird-l10n/af/localization/af/toolkit/about/aboutServiceWorkers.ftl
new file mode 100644
index 0000000000..70997a5d88
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/about/aboutServiceWorkers.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 term "Service Workers" and "Workers" should not be translated
+
+
+## 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.
+
+# This term is used as a button label (verb, not noun).
+update-button = Bywerk
+
+waiting = Wag tans…
diff --git a/thunderbird-l10n/af/localization/af/toolkit/about/aboutSupport.ftl b/thunderbird-l10n/af/localization/af/toolkit/about/aboutSupport.ftl
new file mode 100644
index 0000000000..453c0c6582
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/about/aboutSupport.ftl
@@ -0,0 +1,173 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = Inligting vir probleemoplossing
+page-subtitle = Hierdie bladsy bevat tegniese inligting wat nuttig kan wees wanneer u 'n probleem probeer oplos. Indien u soek vir antwoorde op algemene vrae oor { -brand-short-name }, besoek gerus ons <a data-l10n-name="support-link">steunwerf</a>.
+
+crashes-title = Omvalverslae
+crashes-id = Verslag-ID
+crashes-send-date = Ingedien
+crashes-all-reports = Alle omvalverslae
+crashes-no-config = Hierdie program is nie opgestel om omvalverslae te wys nie.
+support-addons-name = Naam
+support-addons-version = Weergawe
+support-addons-id = ID
+features-name = Naam
+features-version = Weergawe
+features-id = ID
+app-basics-title = Basiese toepassingdetails
+app-basics-name = Naam
+app-basics-version = Weergawe
+app-basics-update-channel = Bywerkkanaal
+app-basics-update-history = Bywerkgeskiedenis
+app-basics-show-update-history = Wys bywerkgeskiedenis
+app-basics-profile-dir =
+ { PLATFORM() ->
+ [linux] Profielgids
+ *[other] Profielvouer
+ }
+app-basics-enabled-plugins = Geaktiveerde inproppe
+app-basics-build-config = Boukonfigurasie
+app-basics-user-agent = Gebruikeragent
+app-basics-memory-use = Geheuegebruik
+app-basics-performance = Werkverrigting
+app-basics-profiles = Profiele
+app-basics-safe-mode = Veilige modus
+
+show-dir-label =
+ { PLATFORM() ->
+ [macos] Wys in Finder
+ [windows] Open gids
+ *[other] Open gids
+ }
+modified-key-prefs-title = Belangrike voorkeure wat verander is
+modified-prefs-name = Naam
+modified-prefs-value = Waarde
+user-js-title = Voorkeure in user.js
+user-js-description = U profielgids bevat 'n <a data-l10n-name="user-js-link">user.js-lêer</a>, wat voorkeure bevat wat nie deur { -brand-short-name } geskep is nie.
+locked-key-prefs-title = Belangrike voorkeure wat vasgesluit is
+locked-prefs-name = Naam
+locked-prefs-value = Waarde
+graphics-title = Grafika
+graphics-features-title = Eienskappe
+place-database-title = Plekkedatabasis
+place-database-integrity = Integriteit
+place-database-verify-integrity = Verifieer integriteit
+a11y-title = Toeganklikheid
+a11y-activated = Geaktiveer
+a11y-force-disabled = Voorkom toeganklikheid
+library-version-title = Biblioteekweergawes
+copy-text-to-clipboard-label = Kopieer teks na die knipbord
+copy-raw-data-to-clipboard-label = Kopieer rou data na die knipbord
+sandbox-title = Sandput
+
+## Media titles
+
+
+## Codec support table
+
+##
+
+
+## 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/
+
+
+##
+
+# Variables
+# $days (Integer) - Number of days of crashes to log
+report-crash-for-days =
+ { $days ->
+ [one] Omvalverslae vir die afgelope { $days } dag
+ *[other] Omvalverslae vir die afgelope { $days } dae
+ }
+
+# Variables
+# $minutes (integer) - Number of minutes since crash
+crashes-time-minutes =
+ { $minutes ->
+ [one] { $minutes } minuut gelede
+ *[other] { $minutes } minute gelede
+ }
+
+# Variables
+# $hours (integer) - Number of hours since crash
+crashes-time-hours =
+ { $hours ->
+ [one] { $hours } uur gelede
+ *[other] { $hours } ure gelede
+ }
+
+# Variables
+# $days (integer) - Number of days since crash
+crashes-time-days =
+ { $days ->
+ [one] { $days } dag gelede
+ *[other] { $days } dae gelede
+ }
+
+# Variables
+# $reports (integer) - Number of pending reports
+pending-reports =
+ { $reports ->
+ [one] Alle omvalverslae (insluitend { $reports } uitstaande omval in die gegewe tydperk)
+ *[other] Alle omvalverslae (insluitend { $reports } uitstaande omvalle in die gegewe tydperk)
+ }
+
+raw-data-copied = Rou data na die knipbord gekopieer
+text-copied = Teks na die knipbord gekopieer
+
+## The verb "blocked" here refers to a graphics feature such as "Direct2D" or "OpenGL layers".
+
+blocked-driver = Geblokkeer vir die weergawe van die grafikadrywer.
+blocked-gfx-card = Geblokkeer vir u grafikakaart vanweë onopgeloste drywerprobleme.
+blocked-os-version = Geblokkeer vir die weergawe van die bedryfstelsel.
+# Variables
+# $driverVersion - The graphics driver version string
+try-newer-driver = Geblokkeer vir die weergawe van die grafikadrywer. Werk die grafikadrywer by na weergawe { $driverVersion } of jonger.
+
+# "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
+
+## 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.
+
+gpu-vendor-id = Verkoper-ID
+gpu-device-id = Toestel-ID
+gpu-driver-version = Drywer-weergawe
+gpu-driver-date = Drywer-datum
+
+glcontext-crash-guard = OpenGL
+
+reset-on-next-restart = Stel terug met volgende herbegin
+
+min-lib-versions = Verwagte minimumweergawe
+loaded-lib-versions = Weergawe wat gebruik word
+
+# Variables
+# $remoteWindows (integer) - Number of remote windows
+# $totalWindows (integer) - Number of total windows
+multi-process-windows = { $remoteWindows }/{ $totalWindows }
+
+async-pan-zoom = Asinkroniese pan/zoem
+
+## Variables
+## $preferenceKey (string) - String ID of preference
+
+
+## Strings representing the status of the Enterprise Policies engine.
+
+## Printing section
+
+## Normandy sections
+
diff --git a/thunderbird-l10n/af/localization/af/toolkit/about/aboutTelemetry.ftl b/thunderbird-l10n/af/localization/af/toolkit/about/aboutTelemetry.ftl
new file mode 100644
index 0000000000..a4daa60c19
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/about/aboutTelemetry.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/.
+
+about-telemetry-page-title = Telemetrie-data
+about-telemetry-general-data-section = Algemene data
+about-telemetry-histograms-section = Histogramme
+about-telemetry-simple-measurements-section = Eenvoudige mates
+about-telemetry-slow-sql-section = Stadige SQL-stellings
+about-telemetry-addon-details-section = Byvoegingbesonderhede
+about-telemetry-late-writes-section = Laat geskryf
+about-telemetry-full-sql-warning = LET WEL: Ontvouting van stadige SQL is geaktiveer. Volledige SQL-stringe word dalk hier onder vertoon, maar sal nie ingedien word aan Telemetry nie.
+# Variables:
+# $telemetryServerOwner (String): the value of the toolkit.telemetry.server_owner preference. Typically "Mozilla"
+about-telemetry-page-subtitle = Dié bladsy wys die inligting wat Telemetry versamel oor werkverrigting, hardeware, gebruik en aanpassings. Dié inligting word ingedien by { $telemetryServerOwner } om { -brand-full-name } te help verbeter.
+# button label to copy the histogram
+about-telemetry-histogram-copy = Kopieer
+# these strings are used in the “Slow SQL Statements” section
+about-telemetry-slow-sql-main = Stadige SQL-stellings op die hoofdraad
+about-telemetry-slow-sql-other = Stadige SQL-stellings op hulpdrade
+about-telemetry-slow-sql-hits = Trefslae
+about-telemetry-slow-sql-average = Gemiddelde tyd (ms)
+about-telemetry-slow-sql-statement = Stelling
+# these strings are used in the “Add-on Details” section
+about-telemetry-addon-table-id = Byvoeging-ID
+about-telemetry-addon-table-details = Besonderhede
+# Variables:
+# $addonProvider (String): the name of an Add-on Provider (e.g. “XPI”, “Plugin”)
+about-telemetry-addon-provider = { $addonProvider }-verskaffer
+about-telemetry-keys-header = Eienskap
+# Variables:
+# $lateWriteCount (Integer): the number of the late writes
+about-telemetry-late-writes-title = Laat geskryf #{ $lateWriteCount }
+about-telemetry-stack-title = Stapel:
+about-telemetry-error-fetching-symbols = Simbole kon nie verkry word nie. Kontroleer die internetverbinding en probeer weer.
diff --git a/thunderbird-l10n/af/localization/af/toolkit/about/aboutThirdParty.ftl b/thunderbird-l10n/af/localization/af/toolkit/about/aboutThirdParty.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/about/aboutThirdParty.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/af/localization/af/toolkit/about/aboutWebauthn.ftl b/thunderbird-l10n/af/localization/af/toolkit/about/aboutWebauthn.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/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/af/localization/af/toolkit/about/aboutWebrtc.ftl b/thunderbird-l10n/af/localization/af/toolkit/about/aboutWebrtc.ftl
new file mode 100644
index 0000000000..cb9342d970
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/about/aboutWebrtc.ftl
@@ -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/.
+
+
+### Localization for about:webrtc, a troubleshooting and diagnostic page
+### for WebRTC calls. See https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API.
+
+
+## These labels are for a disclosure which contains the information for closed PeerConnection sections
+
+## AEC is an abbreviation for Acoustic Echo Cancellation.
+
+
+##
+
+
+## "SDP" is an abbreviation for Session Description Protocol, an IETF standard.
+## See http://wikipedia.org/wiki/Session_Description_Protocol
+
+
+##
+
+
+## "ICE" is an abbreviation for Interactive Connectivity Establishment, which
+## is an IETF protocol, and should not normally be translated.
+
+
+## "Avg." is an abbreviation for Average. These are used as data labels.
+
+
+## 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-save-page-label = Stoor bladsy
+
+## 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 } (gesluit) { $now }
+
+## These are used to indicate what direction media is flowing.
+## Variables:
+## $codecs - a list of media codecs
+
+##
+
+
+## SSRCs are identifiers that represent endpoints in an RTP stream
+
+
+## These are displayed on the button that shows or hides the
+## PeerConnection configuration disclosure
+
+##
+
+## 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.
+
+
+##
+
+
+## "SDP" is an abbreviation for Session Description Protocol, an IETF standard.
+## See http://wikipedia.org/wiki/Session_Description_Protocol
+
+
+## These are displayed on the button that shows or hides the SDP information disclosure
+
+## 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.
+
+##
+
+##
+
+
+##
+
+
diff --git a/thunderbird-l10n/af/localization/af/toolkit/about/aboutWindowsMessages.ftl b/thunderbird-l10n/af/localization/af/toolkit/about/aboutWindowsMessages.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/about/aboutWindowsMessages.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/af/localization/af/toolkit/about/abuseReports.ftl b/thunderbird-l10n/af/localization/af/toolkit/about/abuseReports.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/about/abuseReports.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/af/localization/af/toolkit/about/certviewer.ftl b/thunderbird-l10n/af/localization/af/toolkit/about/certviewer.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/about/certviewer.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/af/localization/af/toolkit/about/config.ftl b/thunderbird-l10n/af/localization/af/toolkit/about/config.ftl
new file mode 100644
index 0000000000..4b79ef147f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/about/config.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/.
+
+## These strings appear on the warning you see when first visiting about:config.
+
+about-config-intro-warning-title = Gaan versigtig voort
+about-config-intro-warning-button = Aanvaar die risiko en gaan voort
+
+##
+
+about-config-search-input1 =
+ .placeholder = Soek voorkeurnaam
+about-config-show-all = Wys alles
+
+about-config-pref-toggle-button =
+ .title = Wissel
+about-config-pref-edit-button =
+ .title = Wysig
+about-config-pref-save-button =
+ .title = Stoor
+
+## Labels for the type selection radio buttons shown when adding preferences.
+
+
+## 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 } (verstek)
diff --git a/thunderbird-l10n/af/localization/af/toolkit/about/url-classifier.ftl b/thunderbird-l10n/af/localization/af/toolkit/about/url-classifier.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/about/url-classifier.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/af/localization/af/toolkit/branding/accounts.ftl b/thunderbird-l10n/af/localization/af/toolkit/branding/accounts.ftl
new file mode 100644
index 0000000000..94b0b6be10
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/branding/accounts.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/.
+
+# “Account” can be localized, “Firefox” must be treated as a brand,
+# and kept in English.
+-fxaccount-brand-name = Firefox-rekening
diff --git a/thunderbird-l10n/af/localization/af/toolkit/branding/brandings.ftl b/thunderbird-l10n/af/localization/af/toolkit/branding/brandings.ftl
new file mode 100644
index 0000000000..bf3a39c63d
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/branding/brandings.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/.
+
+## The following feature names must be treated as a brand, and kept in English.
+## They cannot be:
+## - Declined to adapt to grammatical case.
+## - Transliterated.
+## - Translated.
+
+## 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
+
diff --git a/thunderbird-l10n/af/localization/af/toolkit/contentanalysis/contentanalysis.ftl b/thunderbird-l10n/af/localization/af/toolkit/contentanalysis/contentanalysis.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/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/af/localization/af/toolkit/downloads/downloadUI.ftl b/thunderbird-l10n/af/localization/af/toolkit/downloads/downloadUI.ftl
new file mode 100644
index 0000000000..1e177e3c0b
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/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 = Kanselleer alle aflaaie?
+
+## Variables:
+## $downloadsCount (Number): The current downloads count.
+
+download-ui-confirm-quit-cancel-downloads =
+ { $downloadsCount ->
+ [1] As u nou afsluit, sal 1 aflaai gekanselleer word. Wil u definitief afsluit?
+ *[other] As u nou afsluit, sal { $downloadsCount } aflaaie gekanselleer word. Wil u definitief afsluit?
+ }
+download-ui-confirm-quit-cancel-downloads-mac =
+ { $downloadsCount ->
+ [1] As u nou afsluit, sal 1 aflaai gekanselleer word. Wil u definitief afsluit?
+ *[other] As u nou afsluit, sal { $downloadsCount } aflaaie gekanselleer word. Wil u definitief afsluit?
+ }
+download-ui-dont-quit-button =
+ { PLATFORM() ->
+ [mac] Moenie afsluit nie
+ *[other] Moenie afsluit nie
+ }
+
+download-ui-confirm-offline-cancel-downloads =
+ { $downloadsCount ->
+ [1] As u nou vanlyn gaan, sal 1 aflaai gekanselleer word. Wil u definitief vanlyn gaan?
+ *[other] As u nou vanlyn gaan, sal { $downloadsCount } aflaaie gekanselleer word. Wil u definitief vanlyn gaan?
+ }
+download-ui-dont-go-offline-button = Bly aanlyn
+
+download-ui-confirm-leave-private-browsing-windows-cancel-downloads =
+ { $downloadsCount ->
+ [1] As u alle privateblaai-vensters nou sluit, sal 1 aflaai gekanselleer word. Wil u definitief ophou om privaat te blaai?
+ *[other] As u alle privateblaai-vensters nou sluit, sal { $downloadsCount } aflaaie gekanselleer word. Wil u definitief ophou om privaat te blaai?
+ }
+download-ui-dont-leave-private-browsing-button = Bly in privateblaai-modus
+
+download-ui-cancel-downloads-ok =
+ { $downloadsCount ->
+ [1] Kanselleer 1 aflaai
+ *[other] Kanselleer { $downloadsCount } aflaaie
+ }
+
+##
+
+download-ui-file-executable-security-warning-title = Open uitvoerbare lêer?
+# Variables:
+# $executable (String): The executable file to be opened.
+download-ui-file-executable-security-warning = "{ $executable }" is 'n uitvoerbare lêer. Uitvoerbare lêers kan virusse of ander kwaadwillige kode bevat wat u rekenaar kan beskadig. Wees versigtig wanneer u hierdie lêer open. Wil u definitief “{ $executable }” laat begin?
diff --git a/thunderbird-l10n/af/localization/af/toolkit/downloads/downloadUtils.ftl b/thunderbird-l10n/af/localization/af/toolkit/downloads/downloadUtils.ftl
new file mode 100644
index 0000000000..a95281306f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/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 }/s)
+# 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 } (baie vinnig)
+# — 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 = { $transfer } — { $timeLeft }
+
+download-utils-bytes = grepe
+download-utils-kilobyte = KG
+download-utils-megabyte = MG
+download-utils-gigabyte = GG
+
+# 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 } van { $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 } van { $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 } oor
+# 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 } en { $time2 } oor
+download-utils-time-few-seconds = 'n Paar sekondes oor
+download-utils-time-unknown = Onbekende tyd oor
+
+# Variables:
+# $scheme (String): URI scheme like data: jar: about:
+download-utils-done-scheme = { $scheme }-hulpbron
+# 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 = plaaslike lêer
+
+# Displayed time for files finished yesterday
+download-utils-yesterday = Gister
diff --git a/thunderbird-l10n/af/localization/af/toolkit/featuregates/features.ftl b/thunderbird-l10n/af/localization/af/toolkit/featuregates/features.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/featuregates/features.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/af/localization/af/toolkit/formautofill/formAutofill.ftl b/thunderbird-l10n/af/localization/af/toolkit/formautofill/formAutofill.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/formautofill/formAutofill.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/af/localization/af/toolkit/global/alert.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/alert.ftl
new file mode 100644
index 0000000000..2e214fbdef
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/global/alert.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/.
+
+alert-close =
+ .tooltiptext = Sluit dié kennisgewing
+alert-settings-title =
+ .tooltiptext = Instellings
diff --git a/thunderbird-l10n/af/localization/af/toolkit/global/appPicker.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/appPicker.ftl
new file mode 100644
index 0000000000..7e0d8ff441
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/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 = Blaai…
+app-picker-send-msg =
+ .value = Stuur hierdie item na:
+app-picker-no-app-found =
+ .value = Geen toepassing is vir hierdie lêersoort gevind nie.
diff --git a/thunderbird-l10n/af/localization/af/toolkit/global/browser-utils.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/browser-utils.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/global/browser-utils.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/af/localization/af/toolkit/global/commonDialog.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/commonDialog.ftl
new file mode 100644
index 0000000000..db19020d06
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/global/commonDialog.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/.
+
+common-dialog-copy-cmd =
+ .label = Kopieer
+ .accesskey = K
+common-dialog-select-all-cmd =
+ .label = Merk alles
+ .accesskey = a
diff --git a/thunderbird-l10n/af/localization/af/toolkit/global/contextual-identity.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/contextual-identity.ftl
new file mode 100644
index 0000000000..5b5fc4a85e
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/global/contextual-identity.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/.
+
+
+## Names of the default containers in Firefox.
+## See https://support.mozilla.org/kb/how-use-firefox-containers
+
+user-context-personal =
+ .label = Persoonlik
+ .accesskey = P
+user-context-work =
+ .label = Werk
+ .accesskey = W
+user-context-banking =
+ .label = Bankdienste
+ .accesskey = B
+user-context-shopping =
+ .label = Inkopies
+ .accesskey = s
+
+##
+
+user-context-none =
+ .label = Geen konteks
+ .accesskey = n
diff --git a/thunderbird-l10n/af/localization/af/toolkit/global/cookieBannerHandling.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/cookieBannerHandling.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/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/af/localization/af/toolkit/global/createProfileWizard.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/createProfileWizard.ftl
new file mode 100644
index 0000000000..91b32e707f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/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 = Skep profielslimmerd
+ .style = min-width: 45em; min-height: 32em;
+
+## First wizard page
+
+create-profile-first-page-header2 =
+ { PLATFORM() ->
+ [macos] Inleiding
+ *[other] Welkom by die { create-profile-window2.title }
+ }
+
+profile-creation-explanation-1 = { -brand-short-name } stoor inligting oor u opstelling en voorkeure in u persoonlike profiel.
+
+profile-creation-explanation-2 = Indien u hierdie afskrif van { -brand-short-name } met ander gebruikers wil deel, kan u profiele gebruik om elke gebruiker se inligting apart te hou. Om dit te doen moet elke verbruiker sy of haar eie profiel skep.
+
+profile-creation-explanation-3 = Indien u die enigste persoon is wat hierdie afskrif van { -brand-short-name } gebruik, moet u ten minste een profiel hê. Indien u so verkies, kan u meer as een profiel vir uself skep wat verskillende stelle opstelling en voorkeure stoor. U kan byvoorbeeld 'n aparte profiel vir besigheids- en persoonlike gebruik hê.
+
+profile-creation-explanation-4 =
+ { PLATFORM() ->
+ [macos] Om u profiel te begin skep, kliek Volgende.
+ *[other] Om u profiel te begin skep, kliek Volgende.
+ }
+
+## Second wizard page
+
+create-profile-last-page-header2 =
+ { PLATFORM() ->
+ [macos] Slotsom
+ *[other] Klaar met die { create-profile-window2.title }
+ }
+
+profile-creation-intro = Indien u verskeie profiele skep, kan u hulle herken deur hul profielname. U kan die naam gebruik wat hier verskaf word, of een van u eie gebruik.
+
+profile-prompt = Tik nuwe profielnaam in:
+ .accesskey = T
+
+profile-default-name =
+ .value = Verstekgebruiker
+
+profile-directory-explanation = U gebruikeropstelling, voorkeure en ander gebruikerverwante data sal gestoor word in:
+
+create-profile-choose-folder =
+ .label = Kies vouer…
+ .accesskey = K
+
+create-profile-use-default =
+ .label = Gebruik verstekvouer
+ .accesskey = G
diff --git a/thunderbird-l10n/af/localization/af/toolkit/global/cspErrors.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/cspErrors.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/global/cspErrors.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/af/localization/af/toolkit/global/datepicker.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/datepicker.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/global/datepicker.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/af/localization/af/toolkit/global/datetimebox.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/datetimebox.ftl
new file mode 100644
index 0000000000..96fa3634d4
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/global/datetimebox.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/.
+
+
+## Placeholders for date and time inputs
+
+datetime-year-placeholder = jjjj
+datetime-month-placeholder = mm
+datetime-day-placeholder = dd
+datetime-time-placeholder = --
+
+## Field labels for input type=date
+
+
+## Field labels for input type=time
+
+## 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
+
diff --git a/thunderbird-l10n/af/localization/af/toolkit/global/extensionPermissions.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/extensionPermissions.ftl
new file mode 100644
index 0000000000..f9d9d473d5
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/global/extensionPermissions.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/.
+
+
+## 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 = Lees en redigeer van boekmerke
+webext-perms-description-clipboardRead = Verkryging van data vanaf die knipbord
+webext-perms-description-clipboardWrite = Plasing van data op die knipbord
+webext-perms-description-downloads = Aflaai van lêers en die lees en wysigiging van die blaaier se aflaaigeskiedenis
+webext-perms-description-geolocation = Toegang tot u ligging
+webext-perms-description-history = Toegang tot blaaigeskiedenis
+webext-perms-description-nativeMessaging = Uitruil van boodskappe met programme buiten { -brand-short-name }
+webext-perms-description-notifications = Wys van kennisgewings aan die gebruiker
+webext-perms-description-privacy = Lees en wysiging van privaatheidinstellings
+webext-perms-description-sessions = Toegang tot onlangs geslote oortjies
+webext-perms-description-tabs = Toegang tot blaaieroortjies
+webext-perms-description-topSites = Toegang tot blaaigeskiedenis
+webext-perms-description-webNavigation = Toegang tot blaaieraktiwiteit tydens rondblaai
diff --git a/thunderbird-l10n/af/localization/af/toolkit/global/extensions.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/extensions.ftl
new file mode 100644
index 0000000000..176a404e9e
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/global/extensions.ftl
@@ -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/.
+
+
+## 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 = Voeg “{ $extension }” by?
+webext-perms-sideload-header = { $extension } is bygevoeg
+webext-perms-optional-perms-header = { $extension } vra verdere regte aan.
+
+##
+
+webext-perms-add =
+ .label = Voeg by
+ .accesskey = V
+webext-perms-cancel =
+ .label = Kanselleer
+ .accesskey = K
+
+webext-perms-sideload-text = 'n Ander program op die rekenaar het 'n byvoeging geïnstalleer wat die blaaier kan beïnvloed. Kontrolleer asb. dié byvoeging se toestemmingsversoek en kies Aktiveer of Kanselleer (om dit gedeaktiveer te los).
+webext-perms-sideload-text-no-perms = 'n Ander program op die rekenaar het 'n byvoeging geïnstalleer wat die blaaier kan beïnvloed. Kies Aktiveer of Kanselleer (om dit gedeaktiveer te los).
+webext-perms-sideload-enable =
+ .label = Aktiveer
+ .accesskey = A
+webext-perms-sideload-cancel =
+ .label = Kanselleer
+ .accesskey = K
+
+webext-perms-update-accept =
+ .label = Werk by
+ .accesskey = W
+
+webext-perms-optional-perms-list-intro = Hy wil:
+webext-perms-optional-perms-allow =
+ .label = Laat toe
+ .accesskey = a
+webext-perms-optional-perms-deny =
+ .label = Weier
+ .accesskey = W
+
+webext-perms-host-description-all-urls = Toegang tot u data vir alle webwerwe
+
+# 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 = Toegang tot u data vir werwe in die { $domain }-domein
+
+# 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] Toegang tot u data in { $domainCount } ander domein
+ *[other] Toegang tot u data in { $domainCount } ander domeine
+ }
+# 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 = Toegang tot u data vir { $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] Toegang tot u data ip { $domainCount } ander werf
+ *[other] Toegang tot u data op { $domainCount } ander werwe
+ }
+
+## 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.
+
+
+##
+
+
+## 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.
+
+
+## These should remain in sync with permissions.NAME.label in sitePermissions.properties
+
diff --git a/thunderbird-l10n/af/localization/af/toolkit/global/handlerDialog.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/handlerDialog.ftl
new file mode 100644
index 0000000000..f71a68ef51
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/global/handlerDialog.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/.
+
+
+## Permission Dialog
+## Variables:
+## $host - the hostname that is initiating the request
+## $scheme - the type of link that's being opened.
+## $appName - Name of the application that will be opened.
+
+
+## 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.
+
+## 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
+
+## 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.
+
+##
+
+## Chooser dialog
+## Variables:
+## $scheme - the type of link that's being opened.
+
+## Chooser dialog
+## Variables:
+## $scheme (string) - The type of link that's being opened.
+
+choose-other-app-description = Kies ’n ander toepassing
+choose-app-btn =
+ .label = Kies…
+ .accessKey = K
+choose-other-app-window-title = 'n Ander toepassing…
+
diff --git a/thunderbird-l10n/af/localization/af/toolkit/global/htmlForm.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/htmlForm.ftl
new file mode 100644
index 0000000000..01aa18ce72
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/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] en nog een
+ *[other] en nog { $fileCount }
+ }
diff --git a/thunderbird-l10n/af/localization/af/toolkit/global/mozCard.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/mozCard.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/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/af/localization/af/toolkit/global/mozFiveStar.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/mozFiveStar.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/global/mozFiveStar.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/af/localization/af/toolkit/global/mozMessageBar.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/mozMessageBar.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/global/mozMessageBar.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/af/localization/af/toolkit/global/mozSupportLink.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/mozSupportLink.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/global/mozSupportLink.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/af/localization/af/toolkit/global/notification.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/notification.ftl
new file mode 100644
index 0000000000..e6a645a52f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/global/notification.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/.
+
+close-notification-message =
+ .tooltiptext = Sluit hierdie boodskap
diff --git a/thunderbird-l10n/af/localization/af/toolkit/global/popupnotification.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/popupnotification.ftl
new file mode 100644
index 0000000000..a5c8cbbcf8
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/global/popupnotification.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/.
+
+popup-notification-default-button =
+ .label = OK
+ .accesskey = O
diff --git a/thunderbird-l10n/af/localization/af/toolkit/global/processTypes.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/processTypes.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/global/processTypes.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/af/localization/af/toolkit/global/profileDowngrade.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/profileDowngrade.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/global/profileDowngrade.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/af/localization/af/toolkit/global/profileSelection.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/profileSelection.ftl
new file mode 100644
index 0000000000..5877f261df
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/global/profileSelection.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/.
+
+profile-selection-window =
+ .title = { -brand-short-name } - Kies gebruikerprofiel
+
+profile-selection-button-accept =
+ .label = Laat loop { -brand-short-name }
+
+profile-selection-button-cancel =
+ .label = Afsluit
+
+profile-selection-new-button =
+ .label = Skep profiel…
+ .accesskey = S
+
+profile-selection-rename-button =
+ .label = Hernoem profiel…
+ .accesskey = H
+
+profile-selection-delete-button =
+ .label = Skrap profiel…
+ .accesskey = S
+
+## Messages used in the profile manager
+
+profile-manager-description = { -brand-short-name } stoor inligting oor u opstelling, voorkeure, en ander gebruikeritems in u gebruikerprofiel.
+
+profile-manager-work-offline =
+ .label = Werk vanlyn
+ .accesskey = e
+
+profile-manager-use-selected =
+ .label = Gebruik die gekose profiel sonder om te vra by aanvang
+ .accesskey = s
diff --git a/thunderbird-l10n/af/localization/af/toolkit/global/resetProfile.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/resetProfile.ftl
new file mode 100644
index 0000000000..fc9e22a4c1
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/global/resetProfile.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/.
+
+refresh-profile-dialog-button =
+ .label = Verfris { -brand-short-name }
+refresh-profile = Kry { -brand-short-name } reg vir aksie
+refresh-profile-button = Verfris { -brand-short-name }…
+
+refresh-profile-progress =
+ .title = Verfris { -brand-short-name }
+refresh-profile-progress-description = Amper klaar…
diff --git a/thunderbird-l10n/af/localization/af/toolkit/global/resistFingerPrinting.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/resistFingerPrinting.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/global/resistFingerPrinting.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/af/localization/af/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/global/run-from-dmg.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/af/localization/af/toolkit/global/tabprompts.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/tabprompts.ftl
new file mode 100644
index 0000000000..fcbf77805a
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/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 = Gebruikernaam:
+tabmodalprompt-password =
+ .value = Wagwoord:
+
+tabmodalprompt-ok-button =
+ .label = OK
+tabmodalprompt-cancel-button =
+ .label = Kanselleer
diff --git a/thunderbird-l10n/af/localization/af/toolkit/global/textActions.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/textActions.ftl
new file mode 100644
index 0000000000..b9bef31692
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/global/textActions.ftl
@@ -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/.
+
+text-action-undo =
+ .label = Ontdoen
+ .accesskey = O
+
+text-action-undo-shortcut =
+ .key = Z
+
+text-action-redo =
+ .label = Herdoen
+ .accesskey = H
+
+text-action-redo-shortcut =
+ .key = Y
+
+text-action-cut =
+ .label = Knip
+ .accesskey = p
+
+text-action-cut-shortcut =
+ .key = X
+
+text-action-copy =
+ .label = Kopieer
+ .accesskey = K
+
+text-action-paste =
+ .label = Plak
+ .accesskey = P
+
+text-action-paste-shortcut =
+ .key = V
+
+text-action-delete =
+ .label = Skrap
+ .accesskey = S
+
+text-action-select-all =
+ .label = Merk alles
+ .accesskey = a
+
+text-action-select-all-shortcut =
+ .key = A
+
+text-action-search-text-box-clear =
+ .title = Maak skoon
diff --git a/thunderbird-l10n/af/localization/af/toolkit/global/timepicker.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/timepicker.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/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/af/localization/af/toolkit/global/tree.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/tree.ftl
new file mode 100644
index 0000000000..08570acb05
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/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 = Laai kolomvolgorde terug
diff --git a/thunderbird-l10n/af/localization/af/toolkit/global/unknownContentType.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/unknownContentType.ftl
new file mode 100644
index 0000000000..26c1d72e98
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/global/unknownContentType.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/.
+
+unknowncontenttype-settingschange =
+ .value =
+ { PLATFORM() ->
+ [windows] Instellings kan gewysig word in { -brand-short-name } se opsies.
+ *[other] Instellings kan gewysig word in { -brand-short-name } se voorkeure.
+ }
+
+unknowncontenttype-intro = U het gekies om te open:
+unknowncontenttype-which-is = en dit is 'n:
+unknowncontenttype-from = van:
+unknowncontenttype-prompt = Wil u hierdie lêer stoor?
+unknowncontenttype-action-question = Wat moet { -brand-short-name } met hierdie lêer doen?
+unknowncontenttype-open-with =
+ .label = Open met
+ .accesskey = O
+unknowncontenttype-other =
+ .label = Ander…
+unknowncontenttype-choose-handler =
+ .label =
+ { PLATFORM() ->
+ [macos] Kies…
+ *[other] Blaai…
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [macos] K
+ *[other] B
+ }
+unknowncontenttype-save-file =
+ .label = Stoor lêer
+ .accesskey = S
+unknowncontenttype-remember-choice =
+ .label = Doen dit van nou af outomaties vir lêers soos dié.
+ .accesskey = o
diff --git a/thunderbird-l10n/af/localization/af/toolkit/global/videocontrols.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/videocontrols.ftl
new file mode 100644
index 0000000000..4d7c627a05
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/global/videocontrols.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/.
+
+videocontrols-play-button =
+ .aria-label = Speel
+videocontrols-pause-button =
+ .aria-label = Laat wag
+videocontrols-mute-button =
+ .aria-label = Dower
+videocontrols-unmute-button =
+ .aria-label = Ontdoof
+videocontrols-enterfullscreen-button =
+ .aria-label = Volskerm
+videocontrols-exitfullscreen-button =
+ .aria-label = Verlaat volskerm
+videocontrols-casting-button-label =
+ .aria-label = Stuur na skerm
+videocontrols-closed-caption-off =
+ .offlabel = Af
+
+videocontrols-error-aborted = Laai van video gestop.
+videocontrols-error-network = Terugspeel van video gestaak weens netwerkfout.
+videocontrols-error-decode = Video kan nie gespeel word nie want die lêer is korrup.
+videocontrols-error-src-not-supported = Videoformaat of MIME-soort word nie ondersteun nie.
+videocontrols-error-no-source = Geen video met ondersteunde formaat en MIME-soort gevind nie.
+videocontrols-error-generic = Terugspeel van video gestaak weens onbekende fout.
+
+# 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>
+
diff --git a/thunderbird-l10n/af/localization/af/toolkit/global/wizard.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/wizard.ftl
new file mode 100644
index 0000000000..2d2f6cb7f5
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/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 = Gaan terug
+ .accesskey = t
+wizard-linux-button-back =
+ .label = Terug
+ .accesskey = T
+wizard-win-button-back =
+ .label = < Terug
+ .accesskey = T
+
+wizard-macos-button-next =
+ .label = Gaan voort
+ .accesskey = G
+wizard-linux-button-next =
+ .label = Volgende
+ .accesskey = n
+wizard-win-button-next =
+ .label = Volgende >
+ .accesskey = V
+
+wizard-macos-button-finish =
+ .label = Klaar
+wizard-linux-button-finish =
+ .label = Klaar
+wizard-win-button-finish =
+ .label = Klaar
+
+wizard-macos-button-cancel =
+ .label = Kanselleer
+wizard-linux-button-cancel =
+ .label = Kanselleer
+wizard-win-button-cancel =
+ .label = Kanselleer
diff --git a/thunderbird-l10n/af/localization/af/toolkit/intl/languageNames.ftl b/thunderbird-l10n/af/localization/af/toolkit/intl/languageNames.ftl
new file mode 100644
index 0000000000..dd6633a979
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/intl/languageNames.ftl
@@ -0,0 +1,198 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = Afaries
+language-name-ab = Abgasies
+language-name-ae = Avestanies
+language-name-af = Afrikaans
+language-name-ak = Akanies
+language-name-am = Amharies
+language-name-an = Aragonees
+language-name-ar = Arabies
+language-name-as = Assami
+language-name-ast = Asturiaans
+language-name-av = Avaries
+language-name-ay = Aymara
+language-name-az = Azerbeidjans
+language-name-ba = Basjkir
+language-name-be = Belo-Russies
+language-name-bg = Bulgaars
+language-name-bh = Bihari
+language-name-bi = Bislama
+language-name-bm = Bambarees
+language-name-bn = Bengali
+language-name-bo = Tibettaans
+language-name-br = Bretons
+language-name-bs = Bosnies
+language-name-ca = Katalonies
+language-name-ce = Tsjetsnies
+language-name-ch = Tjamorrees
+language-name-co = Korsikaans
+language-name-cr = Krees
+language-name-cs = Tsjeggies
+language-name-csb = Kasjoebies
+language-name-cu = Kerk-Slawies
+language-name-cv = Tjuvashies
+language-name-cy = Wallies
+language-name-da = Deens
+language-name-de = Duits
+language-name-dv = Divehi
+language-name-dz = Bhoetaans
+language-name-ee = Ewe
+language-name-el = Grieks
+language-name-en = Engels
+language-name-eo = Esperanto
+language-name-es = Spaans
+language-name-et = Estnies
+language-name-eu = Baskies
+language-name-fa = Persies
+language-name-ff = Fulah
+language-name-fi = Fins
+language-name-fj = Fidjies
+language-name-fo = Faroëes
+language-name-fr = Frans
+language-name-fur = Frioelies
+language-name-fy = Fries
+language-name-ga = Iers
+language-name-gd = Skots
+language-name-gl = Gallikaans
+language-name-gn = Guarani
+language-name-gu = Goedjarati
+language-name-gv = Manx
+language-name-ha = Hausa
+language-name-haw = Hawaiïes
+language-name-he = Hebreeus
+language-name-hi = Hindi
+language-name-ho = Hiri Motu
+language-name-hr = Kroaties
+language-name-hsb = Bo-Serwies
+language-name-ht = Haïties
+language-name-hu = Hongaars
+language-name-hy = Armeens
+language-name-hz = Herero
+language-name-ia = Interlingua
+language-name-id = Indonesies
+language-name-ie = Interlingue
+language-name-ig = Igbo
+language-name-ii = Sichuan Yi
+language-name-ik = Inupiak
+language-name-io = Ido
+language-name-is = Yslands
+language-name-it = Italiaans
+language-name-iu = Inuktitut
+language-name-ja = Japannees
+language-name-jv = Javaans
+language-name-ka = Georgies
+language-name-kg = Kongolees
+language-name-ki = Kiekoejoe
+language-name-kj = Koeanjama
+language-name-kk = Kasaks
+language-name-kl = Groenlandies
+language-name-km = Kambodjaans
+language-name-kn = Kannada
+language-name-ko = Koreaans
+language-name-kok = Konkani
+language-name-kr = Kanoeri
+language-name-ks = Kasjmiri
+language-name-ku = Koerdies
+language-name-kv = Komi
+language-name-kw = Cornies
+language-name-ky = Kirgies
+language-name-la = Latyn
+language-name-lb = Luxemburgs
+language-name-lg = Gandees
+language-name-li = Limburgs
+language-name-ln = Lingala
+language-name-lo = Laosies
+language-name-lt = Litaus
+language-name-lu = Loeba-Katanga
+language-name-lv = Letties
+language-name-mg = Malgassies
+language-name-mh = Marshallees
+language-name-mi = Maori
+language-name-mk = Macedonies
+language-name-ml = Malabaars
+language-name-mn = Mongools
+language-name-mr = Marathi
+language-name-ms = Maleisies
+language-name-mt = Maltees
+language-name-my = Birmaans
+language-name-na = Nauru
+language-name-nb = Noorse Boektaal
+language-name-nd = Ndebele, Noord-
+language-name-ne = Nepalees
+language-name-ng = Ndonga
+language-name-nl = Nederlands
+language-name-nn = Noors Nynorsk
+language-name-no = Noors
+language-name-nr = Ndebele, Suid-
+language-name-nso = Sotho, Noord-
+language-name-nv = Navajo
+language-name-ny = Chichewa
+language-name-oc = Occitaans
+language-name-oj = Ojibwa
+language-name-om = Oromo
+language-name-os = Ossetiaans
+language-name-pa = Pandjabi
+language-name-pi = Pali
+language-name-pl = Pools
+language-name-ps = Pashto
+language-name-pt = Portugees
+language-name-qu = Quechua
+language-name-rm = Retoromaans
+language-name-rn = Kirundi
+language-name-ro = Romeens
+language-name-ru = Russies
+language-name-rw = Kinyarwanda
+language-name-sa = Sanskrit
+language-name-sc = Sardinies
+language-name-sd = Sindhi
+language-name-se = Noord-Sami
+language-name-sg = Sangro
+language-name-si = Singhalees
+language-name-sk = Slowaaks
+language-name-sl = Sloweens
+language-name-sm = Samoaïes
+language-name-sn = Sjona
+language-name-so = Somali
+language-name-son = Songhay
+language-name-sq = Albanees
+language-name-sr = Serwies
+language-name-ss = Swazi
+language-name-st = Sotho, Suid-
+language-name-su = Soedannees
+language-name-sv = Sweeds
+language-name-sw = Swahili
+language-name-ta = Tamil
+language-name-te = Telugu
+language-name-tg = Tadjik
+language-name-th = Thais
+language-name-ti = Tigrinya
+language-name-tig = Tigre
+language-name-tk = Turkmeens
+language-name-tl = Tagalog
+language-name-tlh = Klingon
+language-name-tn = Tswana
+language-name-to = Tongaans
+language-name-tr = Turks
+language-name-ts = Tsonga
+language-name-tt = Tatar
+language-name-tw = Twi
+language-name-ty = Tahitian
+language-name-ug = Uighuries
+language-name-uk = Oekraïns
+language-name-ur = Oerdoe
+language-name-uz = Oesbekies
+language-name-ve = Venda
+language-name-vi = Viëtnamees
+language-name-vo = Volapük
+language-name-wa = Walloons
+language-name-wen = Serwies
+language-name-wo = Wolof
+language-name-xh = Xhosa
+language-name-yi = Jiddisj
+language-name-yo = Joruba
+language-name-za = Zhuang
+language-name-zh = Sjinees
+language-name-zu = Zoeloe
diff --git a/thunderbird-l10n/af/localization/af/toolkit/intl/regionNames.ftl b/thunderbird-l10n/af/localization/af/toolkit/intl/regionNames.ftl
new file mode 100644
index 0000000000..1f9c79c4c6
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/intl/regionNames.ftl
@@ -0,0 +1,237 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = Verenigde Arabiese Emirate
+region-name-af = Afganistan
+region-name-ag = Antigua en Barbuda
+region-name-ai = Anguilla
+region-name-al = Albanië
+region-name-am = Armenië
+region-name-ao = Angola
+region-name-aq = Antarktika
+region-name-ar = Argentinië
+region-name-as = Amerikaanse Samoa
+region-name-at = Oostenryk
+region-name-au = Australië
+region-name-aw = Aruba
+region-name-az = Azerbeidjan
+region-name-ba = Bosnië en Herzegowina
+region-name-bb = Barbados
+region-name-bd = Bangladesj
+region-name-be = België
+region-name-bf = Boerkina Faso
+region-name-bg = Bulgarye
+region-name-bh = Bahrein
+region-name-bi = Burundi
+region-name-bj = Benin
+region-name-bm = Bermuda
+region-name-bn = Broenei
+region-name-bo = Bolivia
+region-name-br = Brasilië
+region-name-bs = Bahamas, Die
+region-name-bt = Bhoetan
+region-name-bv = Bouveteiland
+region-name-bw = Botswana
+region-name-by = Wit-Rusland
+region-name-bz = Belize
+region-name-ca = Kanada
+region-name-cc = Kokoseilande
+region-name-cf = Sentraal-Afrikaanse Republiek
+region-name-ch = Switserland
+region-name-ci = Ivoorkus
+region-name-ck = Cook-eilande
+region-name-cl = Chili
+region-name-cm = Kameroen
+region-name-cn = Sjina
+region-name-co = Colombia
+region-name-cr = Costa Rica
+region-name-cu = Kuba
+region-name-cx = Christmas-eiland
+region-name-cy = Ciprus
+region-name-de = Duitsland
+region-name-dj = Djiboeti
+region-name-dk = Denemarke
+region-name-dm = Dominica
+region-name-do = Dominikaanse Republiek
+region-name-dz = Algerië
+region-name-ec = Ecuador
+region-name-ee = Estland
+region-name-eg = Egipte
+region-name-eh = Wes-Sahara
+region-name-er = Eritrea
+region-name-es = Spanje
+region-name-et = Etiopië
+region-name-fi = Finland
+region-name-fj = Fidji
+region-name-fk = Falklandeilande (Malvinas)
+region-name-fm = Mikronesië, Verenigde State van
+region-name-fo = Faroër-eilande
+region-name-fr = Frankryk
+region-name-ga = Gaboen
+region-name-gb = Verenigde Koninkryk
+region-name-gd = Grenada
+region-name-ge = Georgië
+region-name-gf = Frans Guinee
+region-name-gg = Guernsey
+region-name-gh = Ghana
+region-name-gi = Gibraltar
+region-name-gl = Groenland
+region-name-gn = Guinee
+region-name-gp = Guadeloupe
+region-name-gq = Ekwatoriaal-Guinee
+region-name-gr = Griekeland
+region-name-gt = Guatemala
+region-name-gu = Guam
+region-name-gw = Guinee-Bissau
+region-name-gy = Guyana
+region-name-hk = Hongkong
+region-name-hm = Heard- en McDonald-eilande
+region-name-hn = Honduras
+region-name-hr = Kroasië
+region-name-ht = Haïti
+region-name-hu = Hongarye
+region-name-id = Indonesië
+region-name-ie = Ierland
+region-name-il = Israel
+region-name-im = Eiland Man
+region-name-in = Indië
+region-name-io = Britse Indiese Oseaangebied
+region-name-iq = Irak
+region-name-ir = Iran
+region-name-is = Ysland
+region-name-it = Italië
+region-name-je = Jersey
+region-name-jm = Jamaika
+region-name-jo = Jordanië
+region-name-jp = Japan
+region-name-ke = Kenia
+region-name-kg = Kirgisië
+region-name-kh = Kambodja
+region-name-ki = Kiribati
+region-name-km = Comore
+region-name-kn = Sint Kitts en Nevis
+region-name-kp = Korea, Noord
+region-name-kr = Korea, Suid
+region-name-kw = Koeweit
+region-name-ky = Kaaiman-eilande
+region-name-kz = Kasakstan
+region-name-la = Laos
+region-name-lb = Lebanon
+region-name-lc = Sint Lucia
+region-name-li = Liechtenstein
+region-name-lk = Sri Lanka
+region-name-lr = Liberië
+region-name-ls = Lesotho
+region-name-lt = Litaue
+region-name-lu = Luxemburg
+region-name-lv = Letland
+region-name-ly = Libië
+region-name-ma = Marokko
+region-name-mc = Monaco
+region-name-md = Moldovië
+region-name-me = Montenegro
+region-name-mf = Sint Martin
+region-name-mg = Madagaskar
+region-name-mh = Marshall-eilande
+region-name-ml = Mali
+region-name-mm = Burma
+region-name-mn = Mongolië
+region-name-mp = Noordelike Mariana-eilande
+region-name-mq = Martinique
+region-name-mr = Mauritanië
+region-name-ms = Montserrat
+region-name-mt = Malta
+region-name-mu = Mauritius
+region-name-mv = Maldive
+region-name-mw = Malawi
+region-name-mx = Meksiko
+region-name-my = Maleisië
+region-name-mz = Mosambiek
+region-name-na = Namibië
+region-name-nc = Nieu-Caledonië
+region-name-ne = Niger
+region-name-nf = Norfolk-eiland
+region-name-ng = Nigerië
+region-name-ni = Nicaragua
+region-name-nl = Nederland
+region-name-no = Noorweë
+region-name-np = Nepal
+region-name-nr = Nauru
+region-name-nu = Niue
+region-name-nz = Nieu-Seeland
+region-name-om = Oman
+region-name-pa = Panama
+region-name-pe = Peru
+region-name-pf = Frans Polinesië
+region-name-pg = Papua Nieu-Guinee
+region-name-ph = Filippyne
+region-name-pk = Pakistan
+region-name-pl = Pole
+region-name-pm = Sint Pierre en Miquelon
+region-name-pr = Puerto Rico
+region-name-pt = Portugal
+region-name-pw = Palau
+region-name-py = Paraguay
+region-name-qa = Katar
+region-name-re = Reunion
+region-name-ro = Roemenië
+region-name-rs = Serwië
+region-name-ru = Rusland
+region-name-rw = Rwanda
+region-name-sa = Saoedi-Arabië
+region-name-sb = Solomon-eilande
+region-name-sc = Seychelle
+region-name-sd = Soedan
+region-name-se = Swede
+region-name-sg = Singapoer
+region-name-si = Slowenië
+region-name-sk = Slowakye
+region-name-sl = Sierra Leone
+region-name-sm = San Marino
+region-name-sn = Senegal
+region-name-so = Somalië
+region-name-sr = Suriname
+region-name-ss = Suid-Sudan
+region-name-st = Sao Tome en Principe
+region-name-sv = El Salvador
+region-name-sx = Sint Martin
+region-name-sy = Sirië
+region-name-tc = Turkse en Caicos-eilande
+region-name-td = Tsjad
+region-name-tg = Togo
+region-name-th = Thailand
+region-name-tj = Tadjikië
+region-name-tk = Tokelau
+region-name-tl = Timor-Leste
+region-name-tm = Turkmenië
+region-name-tn = Tunisië
+region-name-to = Tongaans
+region-name-tr = Turkye
+region-name-tt = Trinidad en Tobago
+region-name-tv = Tuvalu
+region-name-tw = Taiwan
+region-name-tz = Tanzanië
+region-name-ua = Oekraïne
+region-name-ug = Uganda
+region-name-us = Verenigde State
+region-name-uy = Uruguay
+region-name-uz = Oezbekistan
+region-name-va = Vatikaanstad
+region-name-vc = Sint Vincent en die Grenadiene
+region-name-ve = Venezuela
+region-name-vn = Viëtnam
+region-name-vu = Vanuatu
+region-name-wf = Wallis en Futuna
+region-name-ws = Samoa
+region-name-xr = Svalbard
+region-name-ye = Jemen
+region-name-yt = Mayotte
+region-name-za = Suid-Afrika
+region-name-zm = Zambië
+region-name-zw = Zimbabwe
diff --git a/thunderbird-l10n/af/localization/af/toolkit/main-window/autocomplete.ftl b/thunderbird-l10n/af/localization/af/toolkit/main-window/autocomplete.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/main-window/autocomplete.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/af/localization/af/toolkit/main-window/findbar.ftl b/thunderbird-l10n/af/localization/af/toolkit/main-window/findbar.ftl
new file mode 100644
index 0000000000..2c11ca2bbb
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/main-window/findbar.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/.
+
+
+### This file contains the entities needed to use the Find Bar.
+
+findbar-next =
+ .tooltiptext = Vind die volgende voorkoms van die frase
+findbar-previous =
+ .tooltiptext = Vind die vorige voorkoms van die frase
+
+findbar-find-button-close =
+ .tooltiptext = Sluit soekbalk
+
+findbar-case-sensitive =
+ .label = Kassensitief
+ .accesskey = s
+ .tooltiptext = Soek met in inagneming van hoof- en kleinletters
+
+findbar-entire-word =
+ .label = Hele woorde
+ .accesskey = w
+ .tooltiptext = Soek slegs vir hele woorde
+
+findbar-not-found = Frase nie gevind nie
+
+findbar-wrapped-to-top = Einde van bladsy bereik, gaan voort van bo af
+findbar-wrapped-to-bottom = Bokant van bladsy bereik, gaan voort van onder af
+
+findbar-normal-find =
+ .placeholder = Vind in bladsy
+findbar-fast-find =
+ .placeholder = Kitsvind
+findbar-fast-find-links =
+ .placeholder = Kitsvind (net skakels):
+
+findbar-case-sensitive-status =
+ .value = (Kassensitief)
+findbar-entire-word-status =
+ .value = Slegs hele woorde
+
+# Variables:
+# $current (Number): Index of the currently selected match
+# $total (Number): Total count of matches
+findbar-found-matches =
+ .value =
+ { $total ->
+ [one] { $current } uit { $total } passende
+ *[other] { $current } uit { $total } passendes
+ }
+
+# Variables:
+# $limit (Number): Total count of matches allowed before counting stops
+findbar-found-matches-count-limit =
+ .value =
+ { $limit ->
+ [one] Meer as { $limit } passende
+ *[other] Meer as { $limit } passendes
+ }
diff --git a/thunderbird-l10n/af/localization/af/toolkit/neterror/certError.ftl b/thunderbird-l10n/af/localization/af/toolkit/neterror/certError.ftl
new file mode 100644
index 0000000000..2a59865c75
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/neterror/certError.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/.
+
+# Variables:
+# $hostname (String) - Hostname of the website with cert error.
+cert-error-intro = { $hostname } gebruik 'n ongeldige sekuriteitsertifikaat.
+
+cert-error-trust-cert-invalid = Die sertifikaat word nie vertrou nie omdat dit deur 'n ongeldige SO-sertifikaat uitgereik is.
+
+cert-error-trust-untrusted-issuer = Die sertifikaat word nie vertrou nie omdat die uitreikersertifikaat nie vertrou word nie.
+
+cert-error-trust-signature-algorithm-disabled = Die sertifikaat word nie vertrou nie omdat dit geteken is met 'n handtekeningalgoritme wat gedeaktiveer is omdat daardie algoritme nie veilig is nie.
+
+cert-error-trust-expired-issuer = Die sertifikaat word nie vertrou nie omdat die uitreikersertifikaat verval het.
+
+cert-error-trust-self-signed = Die sertifikaat word nie vertrou nie omdat dit selfonderteken is.
+
+cert-error-untrusted-default = Die sertifikaat kom nie van 'n vertroude bron nie.
+
+# Variables:
+# $hasHSTS (Boolean) - Indicates whether HSTS header is present.
+cert-error-details-hsts-label = HTTP streng oordragsekuriteit: { $hasHSTS }
+
+cert-error-details-cert-chain-label = Sertifikaaatketting:
+
+## Messages used for certificate error titles
+
+connectionFailure-title = Kan nie koppel nie
+deniedPortAccess-title = Hierdie adres het beperkings op
+
+fileNotFound-title = Lêer nie gevind nie
+fileAccessDenied-title = Toegang tot die lêer is geweier
+generic-title = Oeps.
+captivePortal-title = Meld aan by netwerk
+netInterrupt-title = Die verbinding is onderbreek
+notCached-title = Dokumentgeldigheid het verval
+netOffline-title = Vanlynmodus
+contentEncodingError-title = Inhoudenkoderingfout
+unsafeContentType-title = Onveilige lêersoort
+netReset-title = Die verbinding is teruggestel
+netTimeout-title = Die verbinding het uitgetel
+unknownProtocolFound-title = Die adres word nie verstaan nie
+proxyConnectFailure-title = Die instaanbediener weier die verbindings
+proxyResolveFailure-title = Kon nie die instaanbediener vind nie
+redirectLoop-title = Die bladsy herverwys nie behoorlik nie
+unknownSocketType-title = Onverwagse respons vanaf bediener
+nssFailure2-title = Kon nie beveilig koppel nie
+corruptedContentError-title = Fout: inhoud korrup
+sslv3Used-title = Kan nie beveilig koppel nie
+inadequateSecurityError-title = Die verbinding is nie beveilig nie
diff --git a/thunderbird-l10n/af/localization/af/toolkit/neterror/netError.ftl b/thunderbird-l10n/af/localization/af/toolkit/neterror/netError.ftl
new file mode 100644
index 0000000000..2277a090b3
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/neterror/netError.ftl
@@ -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/.
+
+
+## Error page titles
+
+neterror-page-title = Kan nie die bladsy laai nie
+neterror-captive-portal-page-title = Meld aan by netwerk
+
+## Error page actions
+
+neterror-copy-to-clipboard-button = Kopieer teks na die knipbord
+neterror-learn-more-link = Meer inligting…
+neterror-open-portal-login-page-button = Open die netwerk se aanmeldbladF
+neterror-pref-reset-button = Herstel verstekinstellings
+neterror-return-to-previous-page-button = Gaan terug
+neterror-try-again-button = Probeer weer
+
+##
+
+neterror-pref-reset = Dit lyk of u instellings vir netwerksekuriteit dit dalk veroorsaak. Wil u die verstekinstellings herstel?
+neterror-error-reporting-automatic = Rapporteer foute soos dié om { -vendor-short-name } te help om kwaadwillige werwe te identifiseer en te blok
+
+## Specific error messages
+
+neterror-generic-error = { -brand-short-name } kan vanweë 'n onbekende rede nie hierdie bladsy laai nie.
+
+neterror-load-error-try-again = Die werf is moontlik tydelik onbeskikbaar of te besig. Probeer weer oor 'n paar sekondes.
+neterror-load-error-connection = Indien u geen bladsye kan laai nie, kontroleer u rekenaar se netwerkverbinding.
+neterror-load-error-firewall = Indien u rekenaar of netwerk deur 'n brandmuur of instaanbediener beskerm word, maak seker dat { -brand-short-name } toegelaat word om toegang tot die web te verkry.
+
+neterror-captive-portal = Dis nodig om eers by dié netwerk aan te meld vir internettoegang.
+
+## 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.
+
+## Native fallback specific messages
+## Variables:
+## $trrDomain (String) - Hostname of the DNS over HTTPS server that is currently in use.
+
+##
+
+neterror-file-not-found-filename = Kontroleer die lêernaam vir bokas of onderkas of ander tikfoute.
+neterror-file-not-found-moved = Kontroleer of die lêer verskuif, hernoem of geskrap is.
+
+neterror-access-denied = Dit is moontlik verwyder, geskuif, of dalk verbied lêertoegangsregte toegang.
+
+neterror-unknown-protocol = Dalk moet u ander sagteware installeer om hierdie adres te open.
+
+neterror-redirect-loop = Hierdie probleem kan soms veroorsaak word deur koekies te deaktiveer of te weier om koekies te aanvaar.
+
+neterror-unknown-socket-type-psm-installed = Kontroleer of die persoonlike sekuriteitbestuurder op u rekenaar geïnstalleer is.
+neterror-unknown-socket-type-server-config = Dit kan wees vanweë 'n niestandaard-opstelling op die bediener.
+
+neterror-not-cached-intro = Die aangevraagde dokument is nie beskikbaar in { -brand-short-name } se kas nie.
+neterror-not-cached-sensitive = As 'n sekuriteitsmaatreël vra { -brand-short-name } nie outomaties weer vir sensitiewe dokumente nie.
+neterror-not-cached-try-again = Klik Probeer weer om die dokument weer van die webwerf aan te vra.
+
+neterror-net-offline = Klik “Probeer weer” om na aanlynmodus oor te skakel en die bladsy te herlaai.
+
+neterror-proxy-resolve-failure-settings = Kontroleer die instaanopstelling om te verseker dat dit korrek is.
+neterror-proxy-resolve-failure-connection = Kontroleer of u rekenaar 'n werkende netwerkverbinding het.
+neterror-proxy-resolve-failure-firewall = Indien u rekenaar of netwerk deur 'n brandmuur of instaanbediener beskerm word, maak seker dat { -brand-short-name } toegelaat word om toegang tot die web te verkry.
+
+neterror-proxy-connect-failure-settings = Kontroleer die instaanopstelling om te verseker dat dit korrek is.
+neterror-proxy-connect-failure-contact-admin = Kontak u netwerkadministrateur om te verseker dat die instaanbediener werk.
+
+neterror-content-encoding-error = Kontak die webwerf se eienaar om hulle oor die probleem in te lig.
+
+neterror-unsafe-content-type = Kontak die webwerf se eienaar om hulle oor die probleem in te lig.
+
+neterror-nss-failure-not-verified = Die bladsy wat u probeer bekyk, kan nie gewys word nie omdat die egtheid van die ontvangde data nie geverifieer kon word nie.
+neterror-nss-failure-contact-website = Kontak die webwerf se eienaars om hulle oor die probleem in te lig.
+
+neterror-corrupted-content-intro = Die bladsy wat u probeer sien kan nie vertoon word nie omdat 'n fout bespeur is in die dataoordrag.
+neterror-corrupted-content-contact-website = Kontak die webwerf se eienaar om hulle oor die probleem in te lig.
+
+# Do not translate "SSL_ERROR_UNSUPPORTED_VERSION".
+neterror-sslv3-used = Gevorderde inligting: 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> gebruik verouderde sekuriteittegnologie en is kwesbaar vir aanvalle. 'n Aanvaller kan maklik inligting bekom wat mens sou dink veilig was. Die webwerfadministrateur sal die bediener eers moet regmaak voordat die werf besoek kan word.
+# Do not translate "NS_ERROR_NET_INADEQUATE_SECURITY".
+neterror-inadequate-security-code = Foutkode: NS_ERROR_NET_INADEQUATE_SECURITY
+
diff --git a/thunderbird-l10n/af/localization/af/toolkit/neterror/nsserrors.ftl b/thunderbird-l10n/af/localization/af/toolkit/neterror/nsserrors.ftl
new file mode 100644
index 0000000000..bf81b6ef0d
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/neterror/nsserrors.ftl
@@ -0,0 +1,312 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = Kan nie beveilig koppel nie omdat die SSL-protokol gedeaktiveer is.
+psmerr-ssl2-disabled = Kan nie beveilig koppel nie omdat die werf 'n ouer, onveilige weergawe van die SSL-protokol gebruik.
+
+# This is a multi-line message.
+psmerr-hostreusedissuerandserial =
+ U het 'n ongeldige sertifikaat ontvang. Kontak die bedieneradministrateur of e-poskorrespondent en gee aan hulle die volgende inligting:
+
+ U sertifikaat het dieselfde reeksnommer as 'n ander sertifikaat wat deur die sertifikaatowerheid uitgereik is. Kry 'n nuwe sertifikaat wat 'n unieke reeksnommer het.
+
+ssl-error-export-only-server = Kon nie beveilig kommunikeer nie. Eweknie werk nie met hoëgraadse enkripsie nie.
+ssl-error-us-only-server = Kon nie beveilig kommunikeer nie. Eweknie vereis hoëgraadse enkripsie, wat nie hier werk nie.
+ssl-error-no-cypher-overlap = Kan nie beveilig met eweknie kommunikeer nie: geen gemene enkripsiealgoritme(s) nie.
+ssl-error-no-certificate = Kon nie die sertifikaat of sleutel vind wat nodig is vir magtiging nie.
+ssl-error-bad-certificate = Kon nie beveilig met eweknie kommunikeer nie: eweknie se sertifikaat is verwerp.
+ssl-error-bad-client = Die bediener het slegte data van die kliënt teëgekom.
+ssl-error-bad-server = Die kliënt het slegte data van die bediener teëgekom.
+ssl-error-unsupported-certificate-type = Nieondersteunde sertifikaatsoort.
+ssl-error-unsupported-version = Eweknie wat nieondersteunde weergawe van die sekuriteitsprotokol gebruik.
+ssl-error-wrong-certificate = Kliëntmagtiging het misluk: private sleutel in sleuteldatabasis pas nie by die publieke sleutel in die sertifikaatdatabasis nie.
+ssl-error-bad-cert-domain = Kon nie beveilig met eweknie kommunikeer nie: aangevraagde domeinnaam pas nie by die bediener se sertifikaat nie.
+ssl-error-post-warning = Onbekende SSL-foutkode.
+ssl-error-ssl2-disabled = Eweknie werk net met SSL weergawe 2, wat plaaslik gedeaktiveer is.
+ssl-error-bad-mac-read = SSL het 'n rekord ontvang waarvan die boodskapmagtigingskode nie korrek is nie.
+ssl-error-bad-mac-alert = SSL-eweknie rapporteer foutiewe boodskapmagtigingskode.
+ssl-error-bad-cert-alert = SSL-eweknie kan nie u sertifikaat verifieer nie.
+ssl-error-revoked-cert-alert = SSL-eweknie het u sertifikaat verwerp as opgehef.
+ssl-error-expired-cert-alert = SSL-eweknie het u sertifikaat verwerp as verval.
+ssl-error-ssl-disabled = Kan nie koppel nie: SSL is gedeaktiveer.
+ssl-error-fortezza-pqg = Kan nie koppel nie: SSL-eweknie is in 'n ander FORTEZZA-domain.
+ssl-error-unknown-cipher-suite = 'n Onbekende SSL-syfersuite is aangevra.
+ssl-error-no-ciphers-supported = Geen syfersuites is teenwoordig en in hierdie program geaktiveer nie.
+ssl-error-bad-block-padding = SSL het 'n rekord ontvang met swak blokopvulling.
+ssl-error-rx-record-too-long = SSL het 'n rekord ontvang wat langer as die maksimum toegelate lengte is.
+ssl-error-tx-record-too-long = SSL het probeer om 'n rekord te stuur wat langer as die maksimum toegelate lengte is.
+ssl-error-rx-malformed-hello-request = SSL het 'n wanvormde Hello Request-bladskudboodskap ontvang.
+ssl-error-rx-malformed-client-hello = SSL het 'n wanvormde Client Hello-bladskudboodskap ontvang.
+ssl-error-rx-malformed-server-hello = SSL het 'n wanvormde Server Hello-bladskudboodskap ontvang.
+ssl-error-rx-malformed-certificate = SSL het 'n wanvormde Certificate-bladskudboodskap ontvang.
+ssl-error-rx-malformed-server-key-exch = SSL het 'n wanvormde Server Key Exchange-bladskudboodskap ontvang.
+ssl-error-rx-malformed-cert-request = SSL het 'n wanvormde Certificate Request-bladskudboodskap ontvang.
+ssl-error-rx-malformed-hello-done = SSL het 'n wanvormde Server Hello Done-bladskudboodskap ontvang.
+ssl-error-rx-malformed-cert-verify = SSL het 'n wanvormde Certificate Verify-bladskudboodskap ontvang.
+ssl-error-rx-malformed-client-key-exch = SSL het 'n wanvormde Client Key Exchange-bladskudboodskap ontvang.
+ssl-error-rx-malformed-finished = SSL het 'n wanvormde Finished-bladskudboodskap ontvang.
+ssl-error-rx-malformed-change-cipher = SSL het 'n wanvormde Change Cipher Spec-rekord ontvang.
+ssl-error-rx-malformed-alert = SSL het 'n wanvormde Alert-rekord ontvang.
+ssl-error-rx-malformed-handshake = SSL het 'n wanvormde Handshake-rekord ontvang.
+ssl-error-rx-malformed-application-data = SSL het 'n wanvormde Application Data-rekord ontvang.
+ssl-error-rx-unexpected-hello-request = SSL het 'n onverwagte Hello Request-bladskudboodskap ontvang.
+ssl-error-rx-unexpected-client-hello = SSL het 'n onverwagte Client Hello-bladskudboodskap ontvang.
+ssl-error-rx-unexpected-server-hello = SSL het 'n onverwagte Server Hello-bladskudboodskap ontvang.
+ssl-error-rx-unexpected-certificate = SSL het 'n onverwagte Certificate-bladskudboodskap ontvang.
+ssl-error-rx-unexpected-server-key-exch = SSL het 'n onverwagte Server Key Exchange-bladskudboodskap ontvang.
+ssl-error-rx-unexpected-cert-request = SSL het 'n onverwagte Certificate Request-bladskudboodskap ontvang.
+ssl-error-rx-unexpected-hello-done = SSL het 'n onverwagte Server Hello Done-bladskudboodskap ontvang.
+ssl-error-rx-unexpected-cert-verify = SSL het 'n onverwagte Certificate Verify-bladskudboodskap ontvang.
+ssl-error-rx-unexpected-client-key-exch = SSL het 'n onverwagte Client Key Exchange-bladskudboodskap ontvang.
+ssl-error-rx-unexpected-finished = SSL het 'n onverwagte Finished-bladskudboodskap ontvang.
+ssl-error-rx-unexpected-change-cipher = SSL het 'n onverwagse Change Cipher Spec-rekord ontvang.
+ssl-error-rx-unexpected-alert = SSL het 'n onverwagse Alert-rekord ontvang.
+ssl-error-rx-unexpected-handshake = SSL het 'n onverwagse Handshake-rekord ontvang.
+ssl-error-rx-unexpected-application-data = SSL het 'n onverwagse Application Data-rekord ontvang.
+ssl-error-rx-unknown-record-type = SSL het 'n rekord ontvang met onbekende inhoudtipe.
+ssl-error-rx-unknown-handshake = SSL het 'n bladskudboodskap ontvang met onbekende boodskapsoort.
+ssl-error-rx-unknown-alert = SSL het 'n berigrekord ontvang met onbekende berigbeskrywing.
+ssl-error-close-notify-alert = SSL-eweknie het die verbinding gesluit.
+ssl-error-handshake-unexpected-alert = SSL-eweknie het nie 'n bladskudboodskap gekry wat dit verwag het nie.
+ssl-error-decompression-failure-alert = SSL-eweknie kon nie 'n SLL-rekord wat dit ontvang het, suksesvol uitpak nie.
+ssl-error-handshake-failure-alert = SSL-eweknie kon nie oor 'n aanvaarbare stel sekuriteitsparameters onderhandel nie.
+ssl-error-illegal-parameter-alert = SSL-eweknie het 'n bladskudboodskap verwerp vir onaanvaarbare inhoud.
+ssl-error-unsupported-cert-alert = SSL-eweknie werk nie met sertifikate van die tipe wat dit ontvang het nie.
+ssl-error-certificate-unknown-alert = SSL-eweknie het 'n ongespesifiseerde probleem met sertifikaat wat dit ontvang het.
+ssl-error-generate-random-failure = SSL se lukraaknommergenerator wou nie werk nie.
+ssl-error-sign-hashes-failure = Kon nie data digitaal onderteken wat nodig is om u sertifikate te verifieer nie.
+ssl-error-extract-public-key-failure = SSL kon nie die publieke sleutel uit die eweknie se sertifikaat trek nie.
+ssl-error-server-key-exchange-failure = Ongespesifiseerde faling terwyl SSL-Server Key Exchange-bladskud verwerk het.
+ssl-error-client-key-exchange-failure = Ongespesifiseerde faling terwyl SSL-Client Key Exchange-bladskud verwerk het.
+ssl-error-encryption-failure = Grootmaatdataenkripsiealgoritme in die gemerkte syfersuite het misluk.
+ssl-error-decryption-failure = Grootmaatdatadekripsiealgoritme in die gemerkte syfersuite het misluk.
+ssl-error-socket-write-failure = Poging om geënkripteerde data na onderliggende sok te skryf, het misluk.
+ssl-error-md5-digest-failure = MD5-bundelfunksie het misluk.
+ssl-error-sha-digest-failure = SHA-1-bundelfunksie het misluk.
+ssl-error-mac-computation-failure = MAC-berekening het misluk.
+ssl-error-sym-key-context-failure = Kon nie simmetriese sleutelkonteks skep nie.
+ssl-error-sym-key-unwrap-failure = Kon nie die simmetriese sleutel in Client Key Exchange-boodskap ontvou nie.
+ssl-error-pub-key-size-limit-exceeded = SSL-bediener het probeer om publieke sleutel van binnelandse graad met uitvoersyfersuite te gebruik.
+ssl-error-iv-param-failure = PKCS11-kode kon nie 'n IV in 'n param vertaal nie.
+ssl-error-init-cipher-suite-failure = Kon nie die gemerkte syfersuite inisialiseer nie.
+ssl-error-session-key-gen-failure = Kliënt kon nie sessiesleutels vir die SSL-sessie genereer nie.
+ssl-error-no-server-key-for-alg = Bediener het geen sleutel vir die gepoogde sleutelruilalgoritme nie.
+ssl-error-token-insertion-removal = PKCS#11-teken is ingevoeg of verwyder terwyl bewerking besig was.
+ssl-error-token-slot-not-found = Geen PKCS#11-teken kon gevind word om 'n vereiste bewerking uit te voer nie.
+ssl-error-no-compression-overlap = Kan nie beveilig met eweknie kommunikeer nie: geen gemene inpakalgoritme(s) nie.
+ssl-error-handshake-not-completed = Kan nie nog 'n SSL-bladskud inisieer voor huidige bladskud klaar is nie.
+ssl-error-bad-handshake-hash-value = Verkeerde bladskudhutswaardes van eweknie ontvang.
+ssl-error-cert-kea-mismatch = Die sertifikaat wat aangegee is, kan nie met die gemerkte sleutelruilalgoritme gebruik word nie.
+ssl-error-no-trusted-ssl-client-ca = Geen sertifikaatowerheid word vertrou vir SSL-kliëntmagtiging nie.
+ssl-error-session-not-found = Kliënt se SSL-sessie-ID nie in bediener se sessiekas gevind nie.
+ssl-error-decryption-failed-alert = Eweknie kon nie 'n SLL-rekord wat dit ontvang het, dekripteer nie.
+ssl-error-record-overflow-alert = Eweknie het 'n SLL-rekord ontvang wat langer was as wat toegelaat word.
+ssl-error-unknown-ca-alert = Eweknie herken en vertrou nie die owerheid wat u sertifikaat uitgereik het nie.
+ssl-error-access-denied-alert = Eweknie het 'n geldige sertifikaat ontvang, maar toegang is geweier.
+ssl-error-decode-error-alert = Eweknie kon nie 'n SSL-bladskudboodskap dekodeer nie.
+ssl-error-decrypt-error-alert = Eweknie meld faling van handtekeningverifikasie of sleutelruil.
+ssl-error-export-restriction-alert = Eweknie meld onderhandeling voldoen nie aan uitvoerregulasies nie.
+ssl-error-protocol-version-alert = Eweknie meld onversoenbare of nieondersteunde protokolweergawe.
+ssl-error-insufficient-security-alert = Bediener vereis syfers wat meer beveilig is as waarmee kliënt werk.
+ssl-error-internal-error-alert = Eweknie meld dat dit 'n interne probleem teëgekom het.
+ssl-error-user-canceled-alert = Eweknie-gebruiker het bladskud gekanselleer.
+ssl-error-no-renegotiation-alert = Eweknie laat nie heronderhandeling oor SSL-sekuriteitsparameters toe nie.
+ssl-error-server-cache-not-configured = SSL-bedienerkas is nie opgestel en nie gedeaktiveer vir hierdie sok nie.
+ssl-error-unsupported-extension-alert = SSL-eweknie werk nie met aangevraagde TLS-hello-uitbreiding nie.
+ssl-error-certificate-unobtainable-alert = SSL-eweknie kon nie u sertifikaat van die voorsiende URL kry nie.
+ssl-error-unrecognized-name-alert = SSL-eweknie het geen sertifikaat vir die aangevraagde DNS-naam nie.
+ssl-error-bad-cert-status-response-alert = SSL-eweknie kon nie 'n OCSP-respons vir sy sertifikaat kry nie.
+ssl-error-bad-cert-hash-value-alert = SSL-eweknie meld slegte sertifikaathutswaarde.
+ssl-error-rx-unexpected-new-session-ticket = SSL het 'n onverwagte New Session Ticket-bladskudboodskap ontvang.
+ssl-error-rx-malformed-new-session-ticket = SSL het 'n wanvormde New Session Ticket-bladskudboodskap ontvang.
+ssl-error-unsafe-negotiation = Eweknie het oustyl- (potensieel kwesbare) bladskud probeer.
+ssl-error-rx-unexpected-uncompressed-record = SSL het 'n onverwagse niesaamgepakte rekord ontvang.
+ssl-error-weak-server-ephemeral-dh-key = SSL het 'n swak efemere Diffie-Hellman-sleutel in die bedienersleutelruil-bladskudboodskap ontvang.
+
+sec-error-io = 'n T/A-fout het tydens sekuriteitsmagtiging voorgekom.
+sec-error-library-failure = sekuriteitsprogrammateekfaling.
+sec-error-bad-data = sekuriteitsprogrammateek: het slegte data ontvang.
+sec-error-output-len = sekuriteitsprogrammateek: afvoerlengtefout.
+sec-error-input-len = sekuriteitsprogrammateek het 'n toevoerlengtefout ervaar.
+sec-error-invalid-args = sekuriteitsprogrammateek: ongeldige argumente.
+sec-error-invalid-algorithm = sekuriteitsprogrammateek: ongeldige algoritme.
+sec-error-invalid-ava = sekuriteitsprogrammateek: ongeldige AVA.
+sec-error-invalid-time = Onbehoorlik geformateerde tydstring.
+sec-error-bad-der = sekuriteitsprogrammateek: onbehoorlik geformateerde DER-geënkodeerde boodskap.
+sec-error-bad-signature = Eweknie se sertifikaat het 'n ongeldige handtekening.
+sec-error-expired-certificate = Eweknie se sertifikaat het verval.
+sec-error-revoked-certificate = Eweknie se sertifikaat is opgehef.
+sec-error-unknown-issuer = Eweknie se sertifikaatuitreiker word nie herken nie.
+sec-error-bad-key = Eweknie se publieke sleutel is ongeldig.
+sec-error-bad-password = Die sekuriteitswagwoord wat ingetik is, is verkeerd.
+sec-error-retry-password = Nuwe wagwoord wat ingetik is, is verkeerd. Probeer gerus weer.
+sec-error-no-nodelock = sekuriteitsprogrammateek: geen nodusslot nie.
+sec-error-bad-database = sekuriteitsprogrammateek: slegte databasis.
+sec-error-no-memory = sekuriteitsprogrammateek: geheuetoewysingsfaling.
+sec-error-untrusted-issuer = Eweknie se sertifikaatuitreiker is gemerk as nie deur die gebruiker vertrou nie.
+sec-error-untrusted-cert = Eweknie se sertifikaat is gemerk as nie deur die gebruiker vertrou nie.
+sec-error-duplicate-cert = Sertifikaat bestaan reeds in u databasis.
+sec-error-duplicate-cert-name = Afgelaaide sertifikaat se naam is 'n duplikaat van een reeds in die databasis.
+sec-error-adding-cert = Kon nie sertifikaat by databasis voeg nie.
+sec-error-filing-key = Kon nie die sleutel vir hierdie sertifikaat herliasseer nie.
+sec-error-no-key = Die private sleutel vir hierdie sertifikaat kan nie in die sleuteldatabasis gevind word nie.
+sec-error-cert-valid = Hierdie sertifikaat is geldig.
+sec-error-cert-not-valid = Hierdie sertifikaat is nie geldig nie.
+sec-error-cert-no-response = Sertprogrammateek: Geen respons nie
+sec-error-expired-issuer-certificate = Die sertifikaatuitreiker se sertifikaat het verval. Kontroleer die stelsel se datum en tyd.
+sec-error-crl-expired = Die SOL vir die sertifikaatuitreiker het verval. Werk dit by of kontroleer die stelsel se datum en tyd.
+sec-error-crl-bad-signature = Die SOL vir die sertifikaatuitreiker het 'n ongeldige handtekening.
+sec-error-crl-invalid = Nuwe SOL het 'n ongeldige formaat.
+sec-error-extension-value-invalid = Sertifikaat-uitbreidingwaarde is ongeldig.
+sec-error-extension-not-found = Sertifikaat-uitbreiding nie gevind nie.
+sec-error-ca-cert-invalid = Uitreiker-sertifikaat is ongeldig.
+sec-error-path-len-constraint-invalid = Sertifikaatpadlengtebeperking is ongeldig.
+sec-error-cert-usages-invalid = Sertifikaatgebruikveld is ongeldig.
+sec-internal-only = **NET interne module**
+sec-error-invalid-key = Die sleutel werk nie met die aangevraagde bewerking nie.
+sec-error-unknown-critical-extension = Sertifikaat bevat onbekende kritieke uitbreiding.
+sec-error-old-crl = Nuwe SOL is nie jonger as die huidige een nie.
+sec-error-no-email-cert = Nie geënkripteer of onderteken nie: u het nog nie 'n e-possertifikaat nie.
+sec-error-no-recipient-certs-query = Nie geënkripteer nie: u het nog nie 'n sertifikaat vir elkeen van die ontvangers nie.
+sec-error-not-a-recipient = Kan nie dekripteer nie: u is nie 'n ontvanger nie, of passende sertifikaat en private sleutel nie gevind nie.
+sec-error-pkcs7-keyalg-mismatch = Kan nie dekripteer nie: sleutelenkripsiealgoritme pas nie by u sertifikaat nie.
+sec-error-pkcs7-bad-signature = Handtekeningverifikasie het misluk: geen ondertekenaar gevind nie, te veel ondertekenaars gevind, of onbehoorlike of gekorrumpeerde data.
+sec-error-unsupported-keyalg = Nieondersteunde of onbekende sleutelalgoritme.
+sec-error-decryption-disallowed = Kan nie dekripteer nie: geënkripteer met 'n nietoegelate algoritme of sleutelgrootte.
+sec-error-no-krl = Kon geen KRL vir hierdie werf se sertifikaat vind nie.
+sec-error-krl-expired = Die KRL vir hierdie werf se sertifikaat het verval.
+sec-error-krl-bad-signature = Die KRL vir hierdie werf se sertifikaat het 'n ongeldige handtekening.
+sec-error-revoked-key = Die sleutel vir hierdie werf se sertifikaat is ingetrek.
+sec-error-krl-invalid = Nuwe KRL het 'n ongeldige formaat.
+sec-error-need-random = sekuriteitsprogrammateek: het lukraak data ontvang.
+sec-error-no-module = sekuriteitsprogrammateek: geen sekuriteitmodule kan die aangevraagde bewerking uitvoer nie.
+sec-error-no-token = Die sekuriteitkaart of teken bestaan nie, moet geïnisialiseer word, of is ingetrek.
+sec-error-read-only = sekuriteitsprogrammateek: het leesalleen data ontvang.
+sec-error-no-slot-selected = Geen gleuf of teken is gekies nie.
+sec-error-cert-nickname-collision = 'n Sertifikaat met dieselfde bynaam bestaan reeds.
+sec-error-key-nickname-collision = 'n Sleutel met dieselfde bynaam bestaan reeds.
+sec-error-safe-not-created = kon nie veilige objek skep nie
+sec-error-baggage-not-created = kon nie baggasieobjek skep nie
+sec-error-bad-export-algorithm = Vereiste algoritme nie toegelaat nie.
+sec-error-exporting-certificates = Kon nie sertifikate probeer uitvoer nie.
+sec-error-importing-certificates = Kon nie sertifikate probeer invoer nie.
+sec-error-pkcs12-decoding-pfx = Kon nie invoer nie. Dekodeerfout. Lêer nie geldig nie.
+sec-error-pkcs12-invalid-mac = Kon nie invoer nie. Ongeldige MAC. Verkeerde wagwoord of korrupte lêer.
+sec-error-pkcs12-unsupported-mac-algorithm = Kon nie invoer nie. Werk nie met MAC-algoritme nie.
+sec-error-pkcs12-unsupported-transport-mode = Kon nie invoer nie. Werk net met wagwoordintegriteit- en privaatheidmodusse.
+sec-error-pkcs12-corrupt-pfx-structure = Kon nie invoer nie. Lêerstruktuur is korrup.
+sec-error-pkcs12-unsupported-pbe-algorithm = Kon nie invoer nie. Werk nie met enkripsiealgoritme nie.
+sec-error-pkcs12-unsupported-version = Kon nie invoer nie. Werk nie met lêerweergawe nie.
+sec-error-pkcs12-privacy-password-incorrect = Kon nie invoer nie. Verkeerde privaatheidwagwoord.
+sec-error-pkcs12-cert-collision = Kon nie invoer nie. Dieselfde bynaam bestaan reeds in databasis.
+sec-error-user-cancelled = Die gebruiker het 'kanselleer' gedruk.
+sec-error-pkcs12-duplicate-data = Nie ingevoer nie, reeds in databasis.
+sec-error-message-send-aborted = Boodskap nie gestuur nie.
+sec-error-inadequate-key-usage = Sertifikaatsleutelgebruik onvoldoende vir gepoogde werking.
+sec-error-inadequate-cert-type = Sertifikaattipe nie vir toepassing goedgekeur.
+sec-error-cert-addr-mismatch = Adres in ondertekende sertifikaat pas nie by adres in boodskapkop nie.
+sec-error-pkcs12-unable-to-import-key = Kon nie invoer nie. Kon nie private sleutel probeer invoer nie.
+sec-error-pkcs12-importing-cert-chain = Kon nie invoer nie. Kon nie sertifikaatketting invoer nie.
+sec-error-pkcs12-unable-to-locate-object-by-name = Kon nie uitvoer nie. Kon nie sertifikaat of sleutel volgens bynaam vind nie.
+sec-error-pkcs12-unable-to-export-key = Kon nie uitvoer nie. Kon nie private sleutel vind en uitvoer nie.
+sec-error-pkcs12-unable-to-write = Kon nie uitvoer nie. Kon nie die uitvoerlêer skryf nie.
+sec-error-pkcs12-unable-to-read = Kon nie invoer nie. Kon nie die invoerlêer lees nie.
+sec-error-pkcs12-key-database-not-initialized = Kon nie uitvoer nie. Sleuteldatabasis korrup of geskrap.
+sec-error-keygen-fail = Kon nie publieke-/privatesleutel-paar genereer nie.
+sec-error-invalid-password = Ingetikte wagwoord is ongeldig. Kies asseblief 'n ander een.
+sec-error-retry-old-password = Ou wagwoord verkeerd ingetik. Probeer gerus weer.
+sec-error-bad-nickname = 'n Sleutel met dieselfde bynaam bestaan reeds.
+sec-error-not-fortezza-issuer = Eweknie FORTEZZA-ketting het 'n nie-FORTEZZA-sertifikaat.
+sec-error-cannot-move-sensitive-key = 'n Sensitiewe sleutel kan nie na die gleuf geskuif word waar dit nodig is nie.
+sec-error-js-invalid-module-name = Ongeldige modulenaam.
+sec-error-js-invalid-dll = Ongeldige modulepad/-naam.
+sec-error-js-add-mod-failure = Kon nie module byvoeg nie
+sec-error-js-del-mod-failure = Kon nie module skrap nie
+sec-error-old-krl = Nuwe KRL is nie ouer as die huidige een nie.
+sec-error-ckl-conflict = Nuwe CKL het ander uitreiker as huidige CKL. Skrap huidige CKL.
+sec-error-cert-not-in-name-space = Die sertifiserende owerheid vir hierdie sertifikaat mag nie 'n sertifikaat met hierdie naam uitreik nie.
+sec-error-krl-not-yet-valid = Die sleutelopheffingslys vir hierdie sertifikaat is nog nie geldig nie.
+sec-error-crl-not-yet-valid = Die sertifikaatopheffingslys vir hierdie sertifikaat is nog nie geldig nie.
+sec-error-unknown-cert = Kon nie die aangevraagde sertifikaat vind nie.
+sec-error-unknown-signer = Kon nie die ondertekenaar se sertifikaat vind nie.
+sec-error-cert-bad-access-location = Die ligging vir die sertifikaatstatusbediener het 'n ongeldige formaat.
+sec-error-ocsp-unknown-response-type = Die OCSP-respons kan nie ten volle gedekodeer word nie, want dis van 'n onbekende tipe.
+sec-error-ocsp-bad-http-response = Die OCSP-bediener het onverwagse/ongeldige HTTP-data gelewer.
+sec-error-ocsp-malformed-request = Volgens die OCSP-bediener is die versoek korrup of nie behoorlik gevorm nie.
+sec-error-ocsp-server-error = Die OCSP-bediener het 'n interne probleem ervaar.
+sec-error-ocsp-try-server-later = Die OCSP-bediener stel voor dat u later weer probeer.
+sec-error-ocsp-request-needs-sig = Die OCSP-bediener vereis 'n handtekening vir hierdie versoek.
+sec-error-ocsp-unauthorized-request = Die OCSP-bediener het hierdie versoek van die hand gewys as ongemagtig.
+sec-error-ocsp-unknown-response-status = Die OCSP-bediener het 'n nieherkenbare status gelewer.
+sec-error-ocsp-unknown-cert = Die OCSP-bediener het geen status vir die sertifikaat nie.
+sec-error-ocsp-not-enabled = U moet OCSP aktiveer voor u hierdie bewerking kan doen.
+sec-error-ocsp-no-default-responder = U moet die OCSP se verstek antwoorde opstel voor u hierdie bewerking kan doen.
+sec-error-ocsp-malformed-response = Die respons van die OCSP-bediener was korrup of nie behoorlik gevorm nie.
+sec-error-ocsp-unauthorized-response = Die ondertekenaar van die OCSP-respons is nie gemagtig om status vir hierdie sertifikaat te gee nie.
+sec-error-ocsp-future-response = Die OCSP-respons is nog nie geldig nie (bevat 'n datum in die toekoms).
+sec-error-ocsp-old-response = Die OCSP-respons bevat verouderde inligting.
+sec-error-digest-not-found = Kon nie die CMS of PKCS #7 Digest in die ondertekende boodskap vind nie.
+sec-error-unsupported-message-type = Werk nie met CMS of die PKCS #7 Message-tipe nie.
+sec-error-module-stuck = Kon nie PKCS #11-module verwyder nie want dit is nog in gebruik.
+sec-error-bad-template = Kon nie ASN.1-data dekodeer nie. Gespesifiseerde sjabloon was ongeldig.
+sec-error-crl-not-found = Kon geen passende SOL vind nie.
+sec-error-reused-issuer-and-serial = U het probeer om 'n sertifikaat in te voer met dieselfde uitreiker/reeksnommer as 'n bestaande sertifikaat, maar dit is nie dieselfde sertifikaat nie.
+sec-error-busy = NNS kon nie afskakel nie. Objekte is nog in gebruik.
+sec-error-extra-input = DER-geënkodeerde boodskap het ekstra ongebruikte data bevat.
+sec-error-unsupported-elliptic-curve = Nieondersteunde elliptiese kurwe.
+sec-error-unsupported-ec-point-form = Nieondersteunde elliptiesekurwe-puntvorm.
+sec-error-unrecognized-oid = Nieherkende objekidentifiseerder.
+sec-error-ocsp-invalid-signing-cert = Ongeldige OCSP-ondertekenende sertifikaat in OCSP-respons.
+sec-error-revoked-certificate-crl = Sertifikaat is opgehef in uitreiker se sertifikaatopheffingslys.
+sec-error-revoked-certificate-ocsp = Volgens die uitreiker se OCSP-antwoorder is die sertifikaat opgehef.
+sec-error-crl-invalid-version = Die uitreiker se sertifikaatopheffingslys het 'n onbekende weergawenommer.
+sec-error-crl-v1-critical-extension = Uitreiker se V1-sertifikaatopheffingslys het 'n kritieke uitbreiding.
+sec-error-crl-unknown-critical-extension = Uitreiker se V2-sertifikaatopheffingslys het 'n onbekende kritieke uitbreiding.
+sec-error-unknown-object-type = Onbekende objektipe gespesifiseer.
+sec-error-incompatible-pkcs11 = PKCS #11-drywer oortree die spesifikasie op 'n onversoenbare manier.
+sec-error-no-event = Geen nuwe gleufgebeurtenis is op dié oomblik beskikbaar nie.
+sec-error-crl-already-exists = SOL bestaan reeds.
+sec-error-not-initialized = NSS is nie geïnisialiseer nie.
+sec-error-token-not-logged-in = Die bewerking het misluk omdat dit PKCS #11-teken nie aangemeld is nie.
+sec-error-ocsp-responder-cert-invalid = Opgestelde OCSP-antwoorder se sertifikaat is ongeldig.
+sec-error-ocsp-bad-signature = OCSP-respons het 'n ongeldige handtekening.
+sec-error-out-of-search-limits = Sertifikaatvalidering-soektog is buite die soekperke.
+sec-error-invalid-policy-mapping = Beleidkartering bevat enigebeleid
+sec-error-policy-validation-failed = Sertifikaatketting kon nie beleidvalidering slaag nie
+sec-error-unknown-aia-location-type = Onbekende liggingtipe in sertifikaat se AIA-uitbreiding
+sec-error-bad-http-response = Bediener het swak HTTP-respons gelewer
+sec-error-bad-ldap-response = Bediener het swak LDAP-respons gelewer
+sec-error-failed-to-encode-data = Kon nie data met ASN1-enkodeerder enkodeer nie
+sec-error-bad-info-access-location = Swak inligtingtoegang-ligging in sertifikaatuitbreiding
+sec-error-libpkix-internal = Interne libpkix-fout het tydens sertifikaatvalidering voorgekom.
+sec-error-pkcs11-general-error = 'n PKCS #11-module het CKR_GENERAL_ERROR aangegee, wat aandui dat 'n onherwinbare fout voorgekom het.
+sec-error-pkcs11-function-failed = 'n PKCS #11-module het CKR_FUNCTION_FAILED aangegee, wat aandui dat die aangevraagde funksie nie uitgevoer kon word nie. Probeer dieselfde bewerking weer, want dalk werk dit dan.
+sec-error-pkcs11-device-error = 'n PKCS #11-module het CKR_DEVICE_ERROR aangegee, wat aandui dat 'n probleem met die teken of gleuf voorgekom het.
+sec-error-bad-info-access-method = Onbekende inligtingtoegangmetode in sertifikaatuitbreiding.
+sec-error-crl-import-failed = Kon nie 'n SOL probeer invoer nie.
+sec-error-expired-password = Die wagwoord het verval.
+sec-error-locked-password = Die wagwoord is vasgesluit.
+sec-error-unknown-pkcs11-error = Onbekende PKCS #11-fout.
+
+mozilla-pkix-error-inadequate-key-size = Die bediener het 'n sertifikaat aangebied met 'n sleutelgrootte wat te klein is om 'n veilige verbinding te skep.
+mozilla-pkix-error-not-yet-valid-certificate = Die bediener het 'n sertifikaat aangebied wat nog nie geldig is nie.
+mozilla-pkix-error-not-yet-valid-issuer-certificate = 'n Sertifikaat wat nog nie geldig is nie is gebruik om die bediener se sertifikaat uit te reik.
+
+xp-java-remove-principal-error = Kon nie die hoofelement verwyder nie
+xp-java-delete-privilege-error = Kon nie die voorreg skrap nie
+xp-java-cert-not-exists-error = Die hoofelement het nie 'n sertifikaat nie
+
+xp-sec-fortezza-bad-card = Fortezza-kaart nie behoorlik geïnisialiseer nie. Verwyder dit en gee dit terug aan u uitreiker.
+xp-sec-fortezza-no-card = Geen Fortezza-kaart gevind nie
+xp-sec-fortezza-none-selected = Geen Fortezza-kaart gekies nie
+xp-sec-fortezza-more-info = Kies asseblief 'n persoonlikheid om meer info oor te kry
+xp-sec-fortezza-person-not-found = Persoonlikheid nie gevind nie
+xp-sec-fortezza-no-more-info = Geen verdere inligting oor daardie persoonlikheid nie
+xp-sec-fortezza-bad-pin = Ongeldige pen
+xp-sec-fortezza-person-error = Kon nie Fortezza-persoonlikhede inisialiseer nie.
diff --git a/thunderbird-l10n/af/localization/af/toolkit/passwordmgr/passwordmgr.ftl b/thunderbird-l10n/af/localization/af/toolkit/passwordmgr/passwordmgr.ftl
new file mode 100644
index 0000000000..f28308e321
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/passwordmgr/passwordmgr.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/.
+
+
+## Save and update password doorhanger
+
+password-manager-save-password-button-allow =
+ .label = Stoor
+ .accesskey = S
+password-manager-password-password-button-allow =
+ .label = Werk by
+ .accesskey = W
+password-manager-update-password-button-deny =
+ .label = Moenie bywerk nie
+ .accesskey = M
+# This is displayed in place of the username when it is missing.
+password-manager-no-username-placeholder = Geen gebruikernaam
+password-manager-toggle-password =
+ .label = Wys wagwoord
+ .accesskey = y
+password-manager-confirm-password-change = Bevestig wagwoordwysiging
+password-manager-select-username = Kies watter rekening om by te werk:
diff --git a/thunderbird-l10n/af/localization/af/toolkit/payments/payments.ftl b/thunderbird-l10n/af/localization/af/toolkit/payments/payments.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/payments/payments.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/af/localization/af/toolkit/pdfviewer/viewer.ftl b/thunderbird-l10n/af/localization/af/toolkit/pdfviewer/viewer.ftl
new file mode 100644
index 0000000000..7c4346fe01
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/pdfviewer/viewer.ftl
@@ -0,0 +1,212 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = Vorige bladsy
+pdfjs-previous-button-label = Vorige
+pdfjs-next-button =
+ .title = Volgende bladsy
+pdfjs-next-button-label = Volgende
+# .title: Tooltip for the pageNumber input.
+pdfjs-page-input =
+ .title = Bladsy
+# 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 = van { $pagesCount }
+# Variables:
+# $pageNumber (Number) - the currently visible page
+# $pagesCount (Number) - the total number of pages in the document
+pdfjs-page-of-pages = ({ $pageNumber } van { $pagesCount })
+pdfjs-zoom-out-button =
+ .title = Zoem uit
+pdfjs-zoom-out-button-label = Zoem uit
+pdfjs-zoom-in-button =
+ .title = Zoem in
+pdfjs-zoom-in-button-label = Zoem in
+pdfjs-zoom-select =
+ .title = Zoem
+pdfjs-presentation-mode-button =
+ .title = Wissel na voorleggingsmodus
+pdfjs-presentation-mode-button-label = Voorleggingsmodus
+pdfjs-open-file-button =
+ .title = Open lêer
+pdfjs-open-file-button-label = Open
+pdfjs-print-button =
+ .title = Druk
+pdfjs-print-button-label = Druk
+
+## Secondary toolbar and context menu
+
+pdfjs-tools-button =
+ .title = Nutsgoed
+pdfjs-tools-button-label = Nutsgoed
+pdfjs-first-page-button =
+ .title = Gaan na eerste bladsy
+pdfjs-first-page-button-label = Gaan na eerste bladsy
+pdfjs-last-page-button =
+ .title = Gaan na laaste bladsy
+pdfjs-last-page-button-label = Gaan na laaste bladsy
+pdfjs-page-rotate-cw-button =
+ .title = Roteer kloksgewys
+pdfjs-page-rotate-cw-button-label = Roteer kloksgewys
+pdfjs-page-rotate-ccw-button =
+ .title = Roteer anti-kloksgewys
+pdfjs-page-rotate-ccw-button-label = Roteer anti-kloksgewys
+pdfjs-cursor-text-select-tool-button =
+ .title = Aktiveer gereedskap om teks te merk
+pdfjs-cursor-text-select-tool-button-label = Teksmerkgereedskap
+pdfjs-cursor-hand-tool-button =
+ .title = Aktiveer handjie
+pdfjs-cursor-hand-tool-button-label = Handjie
+
+## Document properties dialog
+
+pdfjs-document-properties-button =
+ .title = Dokumenteienskappe…
+pdfjs-document-properties-button-label = Dokumenteienskappe…
+pdfjs-document-properties-file-name = Lêernaam:
+pdfjs-document-properties-file-size = Lêergrootte:
+# 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 } kG ({ $size_b } grepe)
+# 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 } MG ({ $size_b } grepe)
+pdfjs-document-properties-title = Titel:
+pdfjs-document-properties-author = Outeur:
+pdfjs-document-properties-subject = Onderwerp:
+pdfjs-document-properties-keywords = Sleutelwoorde:
+pdfjs-document-properties-creation-date = Skeppingsdatum:
+pdfjs-document-properties-modification-date = Wysigingsdatum:
+# 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 = Skepper:
+pdfjs-document-properties-producer = PDF-vervaardiger:
+pdfjs-document-properties-version = PDF-weergawe:
+pdfjs-document-properties-page-count = Aantal bladsye:
+
+## 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-close-button = Sluit
+
+## Print
+
+pdfjs-print-progress-message = Berei tans dokument voor om te druk…
+# Variables:
+# $progress (Number) - percent value
+pdfjs-print-progress-percent = { $progress }%
+pdfjs-print-progress-close-button = Kanselleer
+pdfjs-printing-not-supported = Waarskuwing: Dié blaaier ondersteun nie drukwerk ten volle nie.
+pdfjs-printing-not-ready = Waarskuwing: Die PDF is nog nie volledig gelaai vir drukwerk nie.
+
+## Tooltips and alt text for side panel toolbar buttons
+
+pdfjs-toggle-sidebar-button =
+ .title = Sypaneel aan/af
+pdfjs-toggle-sidebar-button-label = Sypaneel aan/af
+pdfjs-document-outline-button =
+ .title = Wys dokumentskema (dubbelklik om alle items oop/toe te vou)
+pdfjs-document-outline-button-label = Dokumentoorsig
+pdfjs-attachments-button =
+ .title = Wys aanhegsels
+pdfjs-attachments-button-label = Aanhegsels
+pdfjs-thumbs-button =
+ .title = Wys duimnaels
+pdfjs-thumbs-button-label = Duimnaels
+pdfjs-findbar-button =
+ .title = Soek in dokument
+pdfjs-findbar-button-label = Vind
+
+## Thumbnails panel item (tooltip and alt text for images)
+
+# Variables:
+# $page (Number) - the page number
+pdfjs-thumb-page-title =
+ .title = Bladsy { $page }
+# Variables:
+# $page (Number) - the page number
+pdfjs-thumb-page-canvas =
+ .aria-label = Duimnael van bladsy { $page }
+
+## Find panel button title and messages
+
+pdfjs-find-input =
+ .title = Vind
+ .placeholder = Soek in dokument…
+pdfjs-find-previous-button =
+ .title = Vind die vorige voorkoms van die frase
+pdfjs-find-previous-button-label = Vorige
+pdfjs-find-next-button =
+ .title = Vind die volgende voorkoms van die frase
+pdfjs-find-next-button-label = Volgende
+pdfjs-find-highlight-checkbox = Verlig almal
+pdfjs-find-match-case-checkbox-label = Kassensitief
+pdfjs-find-reached-top = Bokant van dokument is bereik; gaan voort van onder af
+pdfjs-find-reached-bottom = Einde van dokument is bereik; gaan voort van bo af
+pdfjs-find-not-found = Frase nie gevind nie
+
+## Predefined zoom values
+
+pdfjs-page-scale-width = Bladsywydte
+pdfjs-page-scale-fit = Pas bladsy
+pdfjs-page-scale-auto = Outomatiese zoem
+pdfjs-page-scale-actual = Werklike grootte
+# Variables:
+# $scale (Number) - percent value for page scale
+pdfjs-page-scale-percent = { $scale }%
+
+## PDF page
+
+
+## Loading indicator messages
+
+pdfjs-loading-error = 'n Fout het voorgekom met die laai van die PDF.
+pdfjs-invalid-file-error = Ongeldige of korrupte PDF-lêer.
+pdfjs-missing-file-error = PDF-lêer is weg.
+pdfjs-unexpected-response-error = Onverwagse antwoord van bediener.
+pdfjs-rendering-error = 'n Fout het voorgekom toe die bladsy weergegee is.
+
+## Annotations
+
+# .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 }-annotasie]
+
+## Password
+
+pdfjs-password-label = Gee die wagwoord om dié PDF-lêer mee te open.
+pdfjs-password-invalid = Ongeldige wagwoord. Probeer gerus weer.
+pdfjs-password-ok-button = OK
+pdfjs-password-cancel-button = Kanselleer
+pdfjs-web-fonts-disabled = Webfonte is gedeaktiveer: kan nie PDF-fonte wat ingebed is, gebruik nie.
+
+## Editing
+
+
+## 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/af/localization/af/toolkit/pictureinpicture/pictureinpicture.ftl b/thunderbird-l10n/af/localization/af/toolkit/pictureinpicture/pictureinpicture.ftl
new file mode 100644
index 0000000000..f3893fd0cf
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/pictureinpicture/pictureinpicture.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/.
+
+pictureinpicture-player-title = Beeld-in-Beeld
+
+## 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.
+
+##
+
+## 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.
+
+##
+
diff --git a/thunderbird-l10n/af/localization/af/toolkit/preferences/preferences.ftl b/thunderbird-l10n/af/localization/af/toolkit/preferences/preferences.ftl
new file mode 100644
index 0000000000..85bb78523e
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/preferences/preferences.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/.
+
+password-not-set =
+ .value = (nie opgestel)
+
+pw-change-success-title = Wagwoordverandering was suksesvol
+pw-change-failed-title = Kon nie wagwoord verander nie
+pw-remove-button =
+ .label = Verwyder
+
+set-password-old-password = Huidige wagwoord:
+set-password-new-password = Tik nuwe wagwoord in:
+set-password-reenter-password = Tik nuwe wagwoord weer in:
+set-password-meter = Wagwoord-gehaltemeter
+set-password-meter-loading = Laai
+
+remove-info =
+ .value = U moet u huidige wagwoord intik om voort te gaan:
+remove-password-old-password =
+ .value = Huidige wagwoord:
diff --git a/thunderbird-l10n/af/localization/af/toolkit/printing/printDialogs.ftl b/thunderbird-l10n/af/localization/af/toolkit/printing/printDialogs.ftl
new file mode 100644
index 0000000000..2263543887
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/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 = Bladsyopstelling
+custom-prompt-title = Doelmaak…
+custom-prompt-prompt = Tik u doelgemaakte kopstuk-/voetstuk-teks in
+basic-tab =
+ .label = Formaat en opsies
+advanced-tab =
+ .label = Kantlyne en kopstuk/voetstuk
+format-group-label =
+ .value = Formaat
+orientation-label =
+ .value = Oriëntering:
+portrait =
+ .label = Portret
+ .accesskey = P
+landscape =
+ .label = Landskap
+ .accesskey = L
+scale =
+ .label = Skaal:
+ .accesskey = S
+scale-percent =
+ .value = %
+shrink-to-fit =
+ .label = Krimp om bladsywydte te pas
+ .accesskey = w
+options-group-label =
+ .value = Opsies
+print-bg =
+ .label = Druk agtergrond (kleure en prente)
+ .accesskey = a
+margin-group-label-inches =
+ .value = Kantlyne (duim)
+margin-group-label-metric =
+ .value = Kantlyne (millimeter)
+margin-top =
+ .value = Bokant:
+ .accesskey = t
+margin-top-invisible =
+ .value = Bokant:
+margin-bottom =
+ .value = Onderkant:
+ .accesskey = O
+margin-bottom-invisible =
+ .value = Onderkant:
+margin-left =
+ .value = Linkerkant:
+ .accesskey = L
+margin-left-invisible =
+ .value = Linkerkant:
+margin-right =
+ .value = Regterkant:
+ .accesskey = R
+margin-right-invisible =
+ .value = Regterkant:
+header-footer-label =
+ .value = Kopstukke en voetstukke
+hf-left-label =
+ .value = Linkerkant:
+hf-center-label =
+ .value = Middel:
+hf-right-label =
+ .value = Regterkant:
+header-left-tip =
+ .tooltiptext = Linkerkopstuk
+header-center-tip =
+ .tooltiptext = Middelkopstuk
+header-right-tip =
+ .tooltiptext = Regterkopstuk
+footer-left-tip =
+ .tooltiptext = Linkervoetstuk
+footer-center-tip =
+ .tooltiptext = Middelvoetstuk
+footer-right-tip =
+ .tooltiptext = Regtervoetstuk
+hf-blank =
+ .label = --blanko--
+hf-title =
+ .label = Titel
+hf-url =
+ .label = URL
+hf-date-and-time =
+ .label = Datum/tyd
+hf-page =
+ .label = Bladsy #
+hf-page-and-total =
+ .label = Bladsy # van #
+hf-custom =
+ .label = Doelmaak…
+print-preview-window =
+ .title = Drukvoorskou
+print-title =
+ .value = Titel:
+print-preparing =
+ .value = Berei tans voor…
+print-progress =
+ .value = Vordering:
+print-window =
+ .title = Druk
+print-complete =
+ .value = Druktaak is afgehandel.
+
+# Variables
+# $percent (integer) - Number of printed percentage
+print-percent =
+ .value = { $percent }%
+dialog-cancel-label = Kanselleer
+dialog-close-label = Sluit
diff --git a/thunderbird-l10n/af/localization/af/toolkit/printing/printPreview.ftl b/thunderbird-l10n/af/localization/af/toolkit/printing/printPreview.ftl
new file mode 100644
index 0000000000..e6ca492367
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/printing/printPreview.ftl
@@ -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/.
+
+printpreview-simplify-page-checkbox =
+ .label = Vereenvoudig bladsy
+ .accesskey = i
+ .tooltiptext = Dié bladsy kan nie outomaties vereenvoudig word nie
+printpreview-simplify-page-checkbox-enabled =
+ .label = { printpreview-simplify-page-checkbox.label }
+ .accesskey = { printpreview-simplify-page-checkbox.accesskey }
+ .tooltiptext = Verander uitleg om lees te vergemaklik
+printpreview-close =
+ .label = Sluit
+ .accesskey = S
+printpreview-portrait =
+ .label = Portret
+ .accesskey = o
+printpreview-landscape =
+ .label = Landskap
+ .accesskey = L
+printpreview-scale =
+ .value = Skaal:
+ .accesskey = S
+printpreview-shrink-to-fit =
+ .label = Krimp om te pas
+printpreview-custom =
+ .label = Doelmaak…
+printpreview-print =
+ .label = Druk…
+ .accesskey = D
+printpreview-of =
+ .value = van
+printpreview-page-setup =
+ .label = Bladsyopstelling…
+ .accesskey = t
+printpreview-page =
+ .value = Bladsy:
+ .accesskey = l
+
+## Variables
+## $percent (integer) - menuitem percent label
+## $arrow (String) - UTF-8 arrow character for navigation buttons
+
+printpreview-homearrow =
+ .label = { $arrow }
+ .tooltiptext = Eerste bladsy
+printpreview-previousarrow =
+ .label = { $arrow }
+ .tooltiptext = Vorige bladsy
+printpreview-nextarrow =
+ .label = { $arrow }
+ .tooltiptext = Volgende bladsy
+printpreview-endarrow =
+ .label = { $arrow }
+ .tooltiptext = Laaste bladsy
+
diff --git a/thunderbird-l10n/af/localization/af/toolkit/printing/printUI.ftl b/thunderbird-l10n/af/localization/af/toolkit/printing/printUI.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/printing/printUI.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/af/localization/af/toolkit/reportBrokenSite/reportBrokenSite.ftl b/thunderbird-l10n/af/localization/af/toolkit/reportBrokenSite/reportBrokenSite.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/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/af/localization/af/toolkit/updates/backgroundupdate.ftl b/thunderbird-l10n/af/localization/af/toolkit/updates/backgroundupdate.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/updates/backgroundupdate.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/af/localization/af/toolkit/updates/elevation.ftl b/thunderbird-l10n/af/localization/af/toolkit/updates/elevation.ftl
new file mode 100644
index 0000000000..2141f60a8a
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/updates/elevation.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 is temporary until bug 1521632 is fixed
+
+elevation-update-wizard =
+ .title = Sagtewarebywerking
+elevation-details-link-label =
+ .value = Besonderhede
+elevation-error-manual = U kan { -brand-short-name } handmatig bywerk deur hierdie skakel te besoek en die jongste weergawe af te laai:
+elevation-finished-page = Bywerking gereed om geïnstalleer te word
+elevation-finished-background-page = 'n Sekuriteit-en-stabiliteit-bywerking vir { -brand-short-name } is afgelaai en is gereed om geïnstalleer te word.
+elevation-finished-background = Bywerking:
+elevation-more-elevated = Dié bywerking vereis administrateursregte. Die bywerking sal geïnstalleer word die volgende keer wat { -brand-short-name } begin. Herbegin { -brand-short-name } gerus nou, werk verder en herbegin later, of weier dié bywerking.
diff --git a/thunderbird-l10n/af/localization/af/toolkit/updates/history.ftl b/thunderbird-l10n/af/localization/af/toolkit/updates/history.ftl
new file mode 100644
index 0000000000..b775283018
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/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 = Bywerkgeskiedenis
+history-intro = Die volgende opdaterings is geïnstalleer
+
+close-button-label =
+ .buttonlabelcancel = Sluit
+ .title = Bywerkgeskiedenis
+
+no-updates-label = Geen bywerkings is nog geïnstalleer nie
+name-header = Bywerkingnaam
+date-header = Installeringdatum
+type-header = Soort
+state-header = Status
+
+# 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 = Besonderhede
+
+update-installed-on = Geïnstalleer op: { $date }
+
+update-status = Status: { $status }
diff --git a/thunderbird-l10n/af/manifest.json b/thunderbird-l10n/af/manifest.json
new file mode 100644
index 0000000000..07b5188ea3
--- /dev/null
+++ b/thunderbird-l10n/af/manifest.json
@@ -0,0 +1,56 @@
+{
+ "langpack_id": "af",
+ "manifest_version": 2,
+ "browser_specific_settings": {
+ "gecko": {
+ "id": "langpack-af@thunderbird.mozilla.org",
+ "strict_min_version": "115.0",
+ "strict_max_version": "115.*"
+ }
+ },
+ "name": "Language: Afrikaans",
+ "description": "Thunderbird Language Pack for Afrikaans (af)",
+ "version": "115.7.20240119.95007",
+ "languages": {
+ "af": {
+ "version": "20240119104749",
+ "chrome_resources": {
+ "alerts": "chrome/af/locale/af/alerts/",
+ "autoconfig": "chrome/af/locale/af/autoconfig/",
+ "branding": "chrome/af/locale/branding/",
+ "calendar": "chrome/af/locale/af/calendar/",
+ "chat": "chrome/af/locale/af/chat/",
+ "communicator": "chrome/af/locale/af/communicator/",
+ "devtools": "chrome/af/locale/af/devtools/client/",
+ "devtools-shared": "chrome/af/locale/af/devtools/shared/",
+ "global": "chrome/af/locale/af/global/",
+ "global-platform": {
+ "macosx": "chrome/af/locale/af/global-platform/mac/",
+ "linux": "chrome/af/locale/af/global-platform/unix/",
+ "android": "chrome/af/locale/af/global-platform/unix/",
+ "win": "chrome/af/locale/af/global-platform/win/"
+ },
+ "lightning": "chrome/af/locale/af/lightning/",
+ "messenger": "chrome/af/locale/af/messenger/",
+ "messenger-mapi": "chrome/af/locale/af/messenger-mapi/",
+ "messenger-newsblog": "chrome/af/locale/af/messenger-newsblog/",
+ "messenger-region": "chrome/af/locale/af/messenger-region/",
+ "messenger-smime": "chrome/af/locale/af/messenger-smime/",
+ "mozapps": "chrome/af/locale/af/mozapps/",
+ "mozldap": "chrome/af/locale/af/mozldap/",
+ "necko": "chrome/af/locale/af/necko/",
+ "passwordmgr": "chrome/af/locale/af/passwordmgr/",
+ "pdf.js": "chrome/af/locale/pdfviewer/",
+ "pipnss": "chrome/af/locale/af/pipnss/",
+ "pippki": "chrome/af/locale/af/pippki/",
+ "places": "chrome/af/locale/af/places/"
+ }
+ }
+ },
+ "sources": {
+ "browser": {
+ "base_path": "browser/"
+ }
+ },
+ "author": "Translate.org.za (contributors: Translate.org.za, Dwayne Bailey, Samuel Murray, Friedel Wolff)"
+}